你如何克服svn '错误呢?

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

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

326031 次浏览

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

< a href = " http://svn.haxx.se/users/archive - 2007 01/0170。Shtml " rel="nofollow noreferrer">http://svn.haxx.se/users/archive-2007-01/0170.shtml上有关于此的讨论。

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

我相信这个问题来自于.svn文件。在原父、新父或旧父中都是不正确的。我会试着回到你的出发点。使用导出可获得文件夹的干净副本。将干净的副本移动到新位置,并使用添加和删除操作进行移动。这是手动完成SVN所做的工作,但它可能有效。

我有时会在windows上使用TortoiseSVN。我的解决方案是svn update目录,即使没有修订下载或更新。它对元数据做了一些事情,神奇地修复了它。

就像@Alexander-Klyubin建议的那样,在存储库中进行移动。它也会快得多,特别是如果你有大量的数据要移动,因为你不需要再次通过网络传输所有的数据。

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

应该可以正常工作

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

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

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

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

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

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

在尝试了所有明显的东西之后,以及这里的一些其他建议,没有任何运气,谷歌搜索导致这个链接(链接不再工作)- Subversion表示:您的文件或目录可能已经过期

简而言之,诀窍是找到. svn目录(在包含问题文件的目录中)和删除all-wcprops文件

别的都没用的时候,对我有用。

< p >谢谢。这就解决了我的问题。 SVN update——force /path to filename/

如果您最近在本地目录中的文件是相同的,则没有提示。如果文件是不同的,它会提示tf, mf等…选择mf(我的满)确保没有什么被覆盖,我可以提交时完成。

< p >周杰伦 CompuMatter < / p >

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

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

我设法通过点击更新按钮来解决这个问题

删除您的文件或路径使用 在执行命令之前,对您的更改进行bk

sudo rm -r /path/to/dir/

后:

svn up and commit or delete

如果一旦解决了类似的问题,只需签出一个新的工作副本,并用这个新签出的目录替换抛出提交错误的.svn目录。在我的例子中,原因是在存储库损坏和从备份恢复之后,工作副本指向一个在恢复的存储库中不存在的修订。还得到了“项目过期”错误。在提交之前更新工作副本并不能解决这个问题,但是替换上面描述的.svn可以解决这个问题。

我发现这对我很管用:

svn update
svn resolved <dir>
svn commit

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

我只是在几个文件夹中有同样的问题,这就是我所做的提交:

1)在“Team Synchronize”透视图中,右键单击文件夹> Override and Update
2)再次删除
文件夹 3)承诺和快乐

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

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

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

更isyly使这个:

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

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

  • 一旦完成,你就可以做出进一步的行动,比如提交和其他。
我这样做了,这对我很有效:
1. 备份你的文件。你可以简单地复制你的代码到一个文本文件 2. 右键单击要提交>> Team >> Show History的文件。 3.在“显示历史”面板中,您将看到该文件的所有修订。右键单击文件>>的最新版本获取修订:它将覆盖您的本地更改 4. 现在,将您的代码与最新文件合并到备份文件中(步骤#1)。< br > 5. 同步并提交新合并的文件。< br > < / p >

如果你正在使用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的博客

当我试图从trunk目录commit时,我刚刚得到了这个。从trunk目录执行svn update不能解决错误;但是,从父目录(.svn目录所属的目录)执行svn update确实解决了这个错误。

我对发生的事情的猜测(在其他用例中,可能有多个原因导致这个“svn: E160024:资源过期;try updating "):沿着trunk,有一个branches目录。我从GitHub拉了一个branches/branch-1master。从父目录(即我的工作副本的根目录)执行svn update,而不是trunk,似乎在branches中除了trunk之外还做了一些事情。当我再次尝试commit时,没有错误。

然而,正如我上面所说的,这可能只是众多案例中的一个。

旁注:与某些人建议的不同,我不认为在.svn目录中手动播放是一个好主意。

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

如果out of date错误在正常情况下不会随机发生,当你运行commit时,它可能表明你正在使用过时且不受支持的Subversion 1.7或更老的客户端或服务器。

为了解决这个问题,您应该升级服务器和客户端。参见相关的Subversion 1.9发布说明条目:"Out of date"错误时提交HTTPv1

错误是因为你没有更新特定的文件,首先更新,然后才能提交文件。

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

在Eclipse >窗口>显示视图> 历史我已经看到该文件不是在最新的修订,虽然我做了多个svn“覆盖&更新/ "Revert" / delete文件并签出。

所以我打开包资源管理器右键单击文件> 替换为来自存储库的> Latest

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

“清理”会让你走上正轨。

右键单击svn文件夹,然后单击“清理”,如果你得到错误,就这样做。