我一直试图将目录结构从一个位置移动到Subversion中的另一个位置,但我得到一个项目“*”是过期提交错误。

我已经检查了最新的版本(据我所知)。SVN st -u除了mv命令外没有其他区别。


当前回答

为了解决这个问题,我需要恢复有问题的文件,并更新我的工作副本,后来我再次修改了文件,在这些步骤之后,错误不再发生。

其他回答

为了安全起见,我把目录移到了本地机器上,然后svn删除了这个愚蠢的目录,然后提交。当我试图从我的本地机器添加文件夹时,它仍然抛出错误(SVN移动做了同样的事情,当我试图重命名文件夹)。因此我返回,然后执行mkdir DIRNAME,添加并提交。然后我添加内容并提交,它工作了。

当我用主干中的文件更新早期版本的一个分支时,就发生了这种情况。我使用Windows资源管理器从主干签出文件夹中复制文件夹,并将它们粘贴到发布分支签出文件夹的Eclipse视图中。现在Windows资源管理器被配置为不显示以“。”开头的“隐藏”文件,所以我没有注意到所有错误的.svn文件被粘贴到我的发布分支签出文件夹中。哎!

我的解决方案是删除损坏的Eclipse项目,再次检出它,然后更仔细地复制新文件。我还更改了Windows以显示“隐藏”文件。

直接在.svn中尝试了所有的更改。没有任何帮助,所以这是我的解决方案。

在Eclipse >窗口>显示视图>历史我已经看到该文件不是在最新的修订,尽管我做了多个svn“覆盖和更新”/“恢复”/删除文件和签出。

所以我去包资源管理器>右键单击文件>替换为>最新从存储库。

再次查看历史记录视图显示该文件现在处于最新修订。

你是用svn mv来移动它,还是只用mv?我认为只使用mv可能会导致这个问题。

如果你正在使用github的svn网桥,很可能是因为github这边的东西发生了变化。解决方案很简单,你只需要运行svn switch,让它正确地找到自己,然后更新,一切都将工作。只需从签出的根目录运行以下命令

svn info | grep Relative 
svn switch path_from_previous_command
svn update

or

svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update

这个解决方案的基础来自Lee Preimesberger的博客