你如何克服svn“过时”的错误?

我一直在尝试在Subversion中将一个目录结构从一个位置移动到另一个位置,但是我得到一个Item '*' is out of date提交错误。

我有最新版本检出(据我所知)。 svn st -u除了mv命令之外没有什么区别。

我有时在Windows上使用TortoiseSVN。 我的解决scheme是svn update目录,即使没有修改下载或更新。 它对元数据做了一些修改,

在尝试了所有显而易见的事情之后,还有一些其他的build议,没有任何运气,谷歌search导致这个链接(链接不再工作) – Subversion说:你的文件或目录可能已经过时

简而言之,诀窍是转到.svn目录 (在包含违规文件的目录中),并删除“all-wcprops”文件

当没有别的事情的时候为我工作。

我相信这个问题来自.svn文件。 在旧的父母,新的父母或旧的父母中,要么是不正确的。 我会尝试恢复到你的出发点。 使用导出来获取文件夹的干净副本。 将干净的副本移动到新的位置,并使用添加和删除来执行移动。 这是手动做什么SVN做的,但它可能工作。

我发现这对我有用:

 svn update svn resolved <dir> svn commit 

试图更新本地副本,并恢复有问题的项目,仍然得到了“过时”的错误。 这工作出于某种原因:

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

我在几个文件夹中遇到了同样的问题,这就是我所做的:

1)在“团队同步”的angular度,右键单击文件夹>覆盖和更新
2)再次删除文件夹
3)承诺并开心

谢谢。 这只是为我解决了。 svn更新 – 强制/path文件名/

如果您在本地目录中的最近文件是相同的,则没有提示。 如果文件不同,它会提示inputtf,mf等等…selectmf(我的满的)确保没有任何东西被覆盖,我可以提交完成。

杰伊CompuMatter

我设法解决它通过点击更新button

就像@ Alexander-Klyubinbuild议的那样,在存储库中做这个动作。 这也会更快,特别是如果你有大量的数据移动,因为你不必再通过networking传输所有的数据。

 svn mv https://username@server/svn/old/ https://username@server/svn/new/ 

应该工作得很好

删除您的文件或您的path使用之前执行命令做你的更改

 sudo rm -r /path/to/dir/ 

之后:

 svn up and commit or delete 

你确定你已经检查了头,而不是一个较低的修订? 另外,你有没有做过更新,以确保你有最新版本?

有关于这个http://svn.haxx.se/users/archive-2007-01/0170.shtml的讨论。;

至less有一个其他原因的消息“过时”的错误。 在我的情况下,问题是通过运行“svn propset svn:ignore -F .gitignore”创build的.svn / dir-props。 首次。 删除.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的一些东西改变了。 解决scheme很简单,你只需要运行svn switch ,它可以正确地find自己,然后更新,一切都将工作。 只需从结帐的根目录运行以下内容

 svn info | grep Relative svn switch path_from_previous_command svn update 

要么

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

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

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

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

我把dir移到我的本地机器保存,然后svn删除了这个愚蠢的目录,然后提交。 当我试图从我的本地机器添加文件夹时,仍然抛出错误(当我尝试重命名文件夹时,SVN移动做了同样的事情)。 所以我回复了,然后我做了一个mkdir DIRNAME,添加并提交。 然后,我添加了内容,并承诺,它的工作。

删除几个包含一些文件的目录后,我随机收到这个错误。 我通过Netbeans删除了目录,并意识到它并没有实际删除它们。 它似乎只是删除目录中的所有内容,并删除了对Netbeans内的目录的引用。 他们仍然存在于文件系统上。 确保它们已从文件系统中删除,然后再次尝试提交。

如果通过简单地检出一个新的工作副本并replace.svn目录来解决类似的问题,就会抛出这个新检出的错误。 在我的情况下,原因是在存储库损坏并从备份还原后,工作副本指向恢复的存储库中不存在的修订。 还得到“项目过时”的错误。 在提交之前更新工作副本并没有解决这个问题,但是如上所述replace了.svn。

我做到了这一点,它为我工作:
1.备份你的文件。 您可以简单地将您的代码复制到一个文本文件。
2.右键单击要提交的文件>> Team >> Show History。 3.在“显示历史”面板中,您将看到该文件的所有修订。 右键单击文件的最新版本>>获取版本:它将覆盖您的本地更改。
4.现在,使用备份文件将您的代码与最新文件合并(步骤#1)。
5.同步并提交新合并的文件。

升级你的服务器和客户端到Subversion 1.9。

如果通常不应该出现out of date错误,那么当您运行提交时,可能表示您正在使用过时且不受支持的Subversion 1.7或更早版本的客户端或服务器。

您应该升级服务器和客户端以解决问题。 在通过HTTPv1提交时,请参阅相关Subversion 1.9发行说明条目: “过期”错误

错误是因为你没有更新那个特定的文件,所以只有你可以提交文件。

当我使用trunk中的文件更新早期版本的分支时发生了这种情况。 我使用Windows资源pipe理器从我的trunk结帐文件夹中复制文件夹,并将其粘贴到发布分支签出文件夹的Eclipse视图中。 现在Windows资源pipe理器被configuration为不显示以“。”开头的“隐藏”文件,所以我忘了所有不正确的.svn文件被粘贴到我的发布分支结帐文件夹中。 卫生署!

我的解决scheme是吹掉损坏的Eclipse项目,再次检查出来,然后更仔细地复制新的文件。 我也改变了Windows显示“隐藏”的文件。

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

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

我刚刚得到这个错误。 我build议你首先检查你的服务器是否有原始文件。 有时更改不是在您的本地文件夹中进行的。 如果这是你的情况,只需删除你的文件夹,并再次结帐。

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

只需要svn进入命令行或者如果你在窗口中selectsvn更新选项。

  • 一旦完成,这可以让你做出进一步的行动,如提交和其他人。

当我试图从一个trunk目录commit ,我刚刚得到了这个。 从trunk目录进行svn update并没有解决错误; 但是,从父目录( .svn目录所在的位置)执行svn update确实解决了错误。

我猜想发生了什么事情(一个用例,其中,可能有多个原因,这个“svn:E160024:资源过时;尝试更新”):一直到trunk ,有一个branches目录。 我从GitHub中将一个branches/branch-1入主。 从父目录(也就是我的工作副本的根目录),而不是trunk svn update似乎已经做了除了trunk之外的branches 。 当我尝试再次commit时,没有错误。

但是,正如我上面所说,这可能是其中许多其他情况之一。

附注:不像别人build议的,我不认为在.svn目录下手动播放是一个好主意。

试图直接在.svn中改变。 没有什么帮助,所以这是我的解决

在Eclipse>窗口>显示视图> 历史logging我已经看到该文件不在最新版本,虽然我做了多个svn“覆盖&更新”/“恢复”/删除文件和结帐。

所以我去了Package Explorer>右键单击文件> replace为>来自Repository的Latest

历史视图中的另一个外观显示该文件现在在最新版本。

更多的是让这个:

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