我一直试图在Subversion中将目录结构从一个位置移动到另一个位置,但是出现Item '*' is out of date
提交错误。
我已经签出了最新版本(据我所知)。svn st -u
除了mv命令外,没有其他区别。
我一直试图在Subversion中将目录结构从一个位置移动到另一个位置,但是出现Item '*' is out of date
提交错误。
我已经签出了最新版本(据我所知)。svn st -u
除了mv命令外,没有其他区别。
Answers:
我有时在Windows上使用TortoiseSVN来获得此功能。对于我来说,解决方案是svn update
目录,即使没有要下载或更新的修订版。它对元数据起到了一定作用,从而神奇地对其进行了修复。
在尝试了所有明显的操作以及此处的一些其他建议之后,没有任何运气,Google搜索导致了该链接(该链接不再起作用)-Subversion说:您的文件或目录可能已过期
简而言之,诀窍是转到.svn目录(在包含有问题的文件的目录中),然后删除“ all-wcprops”文件。
什么也没做就为我工作。
all-wcprops
在内部文件.sv
目录
我发现这对我有用:
svn update
svn resolved <dir>
svn commit
svn update
以前没有做过,但是我有一个情况想要避免更新。(所以我只是解决了问题并做出了承诺,它确实起作用了)
我只是在几个文件夹中遇到了同样的问题,这就是我要做的:
1)在“团队同步”透视图中,右键单击文件夹>覆盖和更新
2)再次删除该文件夹
3)提交并感到高兴
您确定您已经检查了标题,而不是较低版本吗?另外,您是否进行了更新以确保拥有最新版本?
关于这个有一个讨论 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.
如果您使用的是github svn桥,则可能是因为github方面的事情有所改变。该解决方案很简单,您只需要运行svn switch
,它就可以正确找到自己,然后进行更新,一切将正常进行。只需从结帐的根目录运行以下命令
svn info | grep Relative
svn switch path_from_previous_command
svn update
要么
svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update
该解决方案的基础来自Lee Preimesberger的博客
您是使用svn mv
还是仅移动它mv
?我认为使用just mv
可能会导致此问题。
我做到了,它为我工作:
1.备份您的文件。您可以简单地将代码复制到文本文件中。
2.右键单击要提交的文件>>团队>>显示历史记录。3.在“显示历史记录”面板中,您将看到该文件的所有修订版。右键单击文件的最新修订>>获取修订:它将覆盖您的本地更改。
4.现在,将您的代码与具有备份文件的最新文件合并(步骤1)。
5.同步并提交新合并的文件。
将服务器和客户端升级到Subversion 1.9。
如果 out of date
错误通常在正常情况下不应发生,则在运行commit时,它可能表明您使用的是过时且不受支持的Subversion 1.7或更旧的客户端或服务器。
您应该升级服务器和客户端以解决该问题。请参见相关的Subversion 1.9发行说明条目:通过HTTPv1提交时出现“过时”错误。
尝试了所有内容,但直接更改了.svn。没有任何帮助,所以这是我的解决方案。
在Eclipse>窗口>显示视图> 历史记录中,我看到该文件不是最新的修订版,尽管我多次进行了SVN“覆盖和更新” /“还原” /删除文件并签出。
所以我去了Package Explorer>右键单击文件> Replace with> Repository中的Latest。
历史记录视图中的另一个外观显示该文件现在处于最新修订版中。
“清理”它将使您步入正轨。
右键单击svn文件夹,然后单击“清理”,如果出现该错误,请执行此操作。
为了解决该问题,我需要还原有问题的文件,并更新我的工作副本,然后我再次修改了该文件,在执行了这些步骤之后,该错误不再发生了。
当我尝试commit
从trunk
目录中获取时,才得到此信息。svn update
从trunk
目录执行操作无法解决错误;但是,svn update
从父目录(该.svn
目录所属的目录)进行操作确实解决了该错误。
我对发生的事情的猜测(其中,用例可能是“ svn:E160024:资源已过期;请尝试更新”的多种原因):到trunk
,都有一个branches
目录。我拉着branches/branch-1
到master
从GitHub。这样做svn update
从父目录(也就是我的工作拷贝的根),而不是trunk
似乎已经做了branches
除trunk
。当我试图commit
再次时,没有错误。
但是,正如我上面所说,这可能是许多其他情况中的一种。
旁注:与其他人的建议不同,我认为在.svn
目录中手动播放不是一个好主意。