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

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


当前回答

在我的情况下,只有删除本地版本和重新签出新的副本是一个解决方案。

其他回答

尝试更新本地副本,并恢复有问题的项目,但仍然得到“过期”错误。出于某种原因,这种方法奏效了:

svn update --force /path/to/dir/or/file

我刚刚得到这个错误。我建议你先在服务器上检查一下原始文件是否在那里。有时更改不是在本地文件夹中进行的。 如果这是你的情况,只需删除文件夹并再次签出。

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

你确定你检查的是头部而不是较低的版本吗?另外,你是否进行了更新以确保获得了最新版本?

在http://svn.haxx.se/users/archive-2007-01/0170.shtml上对此有一个讨论。

至少有一个其他原因导致消息“过期”错误。在我的例子中,问题是.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.