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

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


当前回答

当我试图提交一些文件时,我得到了这个错误,只有它是一个文件/文件夹,在我的工作副本中不存在。我真的不想经历移动文件和重新签出的麻烦,最后,我最终编辑了.svn/entries文件并删除了冒犯的目录引用。

其他回答

更isyly使这个:

1)我复制我的修改代码在一个记事本。 2)下一步,更新文件。 3)将记事本的代码复制到更新后的文件中。 4)在svn中提交。

只需在命令行中执行svn up,或者如果您在windows中选择svn更新选项。

一旦完成,你就可以做出进一步的行动,比如提交和其他。

至少有一个其他原因导致消息“过期”错误。在我的例子中,问题是.svn/dir-props,这是通过运行“svn propset svn:ignore -F .gitignore .”第一次创建的。删除.svn/dir-props似乎是一个坏主意,可能会导致其他错误,所以最好使用"svn propdel"来清理错误的"svn propset"。

# Normal state, works fine.
> svn commit -m"bump"  
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 509.

# Set a property, but forget to commit.
> svn propset svn:ignore -F .gitignore .
property 'svn:ignore' set on '.'

# Edit a file. Should have committed before the edit.
> svn commit -m"bump"                   
Sending        .
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating

# Delete the property.
> svn propdel svn:ignore .              
property 'svn:ignore' deleted from '.'.

# Now the commit works fine.
> svn commit -m"bump"     
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 510.

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

直接在存储库中执行移动。