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

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

How do you overcome the svn 'out of date' error?

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

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


我有时在Windows上使用TortoiseSVN来获得此功能。对于我来说,解决方案是svn update目录,即使没有要下载或更新的修订版。它对元数据起到了一定作用,从而神奇地对其进行了修复。


在尝试了所有明显的操作以及此处的一些其他建议之后,没有任何运气,谷歌搜索导致了此链接(该链接不再起作用)-Subversion说:您的文件或目录可能已过期

简而言之,诀窍是转到.svn目录(在包含有问题的文件的目录中),然后删除" all-wcprops"文件。

什么也没做就为我工作。


我相信此问题来自.svn文件。在旧父母,新父母或旧父母中这都不正确。我会尝试回到您的起点。使用导出获取文件夹的干净副本。将干净副本移动到新位置,然后使用添加和删除进行移动。这是手动执行SVN的操作,但它可能有效。


我发现这对我有用:

1
2
3
svn update
svn resolved <dir>
svn commit


试图更新本地副本,并还原有问题的项目,但仍然出现"过期"错误。这样做是出于某种原因:

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

我只是在几个文件夹中遇到了同样的问题,这就是我要提交的内容:

1)在"团队同步"透视图中,右键单击文件夹>覆盖和更新
2)再次删除文件夹
3)付出并快乐


谢谢。这就为我解决了。
svn update --force /路径到文件名/

如果本地目录中的最新文件相同,则不会出现提示。如果文件不同,则会提示输入tf,mf等...选择mf(我的文件已满)可确保没有内容被覆盖,并且在完成后可以提交。

松鸦
电脑


我设法通过点击更新按钮来解决


就像@ Alexander-Klyubin建议的那样,在存储库中移动。它还将更快,尤其是如果您要移动大量数据时,因为您不必再??次通过网络传输所有这些数据。

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

应该很好


使用以下方法删除文件或路径
在执行命令之前,先进行更改

1
sudo rm -r /path/to/dir/

之后:

1
svn up and commit or delete

如果您使用的是github svn桥,则可能是因为github方面的事情有所改变。解决方案很简单,您只需要运行svn switch,它就可以正确地找到自己,然后进行更新,一切将正常进行。只需从结帐的根目录运行以下命令

1
2
3
svn info | grep Relative
svn switch path_from_previous_command
svn update

要么

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

该解决方案的基础来自Lee Preimesberger的博客


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


消息"过期"错误至少还有其他原因。在我的情况下,问题是.svn / dir-props,它是通过运行" svn propset svn:ignore -F .gitignore"创建的。首次。删除.svn / dir-props似乎是一个坏主意,并且可能导致其他错误,因此最好使用" svn propdel"来清理错误的" svn propset"。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 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.

您确定您已经检查了标题,而不是较低版本吗?另外,您是否进行了更新以确保拥有最新版本?

在http://svn.haxx.se/users/archive-2007-01/0170.shtml上对此进行了讨论。


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

在Eclipse>窗口>显示视图>历史记录中,尽管我做了多个svn" Override&Update" /" Revert" /删除文件并签出,但我看到该文件不是最新的修订版。

因此,我进入了程序包资源管理器>右键单击文件>替换为>来自存储库的最新消息。

历史记录视图中的另一个外观显示该文件现在处于最新修订版中。


错误是因为您没有更新该特定文件,而是先更新然后才可以提交该文件。


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

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

您应该升级服务器和客户端以解决该问题。请参见相关的Subversion 1.9发行说明条目:通过HTTPv1提交时出现"过时"错误。


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


我将目录移到我的本地机器上进行安全保存,然后svn删除了愚蠢的目录,然后提交了。当我尝试从本地计算机添加文件夹时,它仍然抛出错误(当我尝试重命名文件夹时,SVN移动执行了相同的操作)。所以我还原了,然后我做了一个mkdir DIRNAME,添加并提交。然后,我在其中添加了内容并提交,它起作用了。


如果曾经解决过类似的问题,只需简单地签出一个新的工作副本并替换为.svn目录,并使用此新签出的副本抛出提交错误。在我的情况下,原因是在存储库损坏并从备份还原后,工作副本指向的是还原的存储库中不存在的修订。还出现"项目过时"错误。在提交之前更新工作副本并不能解决此问题,但是如上所述替换.svn可以解决此问题。


我这样做了,对我有用:
1.备份您的文件。您可以简单地将代码复制到文本文件中。
2.右键单击要提交的文件>>团队>>显示历史记录。
3.在"显示历史记录"面板中,您将看到该文件的所有修订版。右键单击文件的最新修订>>获取修订:它将覆盖您的本地更改。
4.现在,将您的代码与具有备份文件的最新文件合并(步骤1)。
5.同步并提交新合并的文件。


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


"清理"它将使您步入正轨。

右键单击svn文件夹,然后单击"清理",如果出现该错误,请执行此操作。


我刚收到这个错误。我建议您首先检查服务器上是否有原始文件。有时,这些更改不是在您的本地文件夹中进行的。
如果是这种情况,只需删除您的文件夹并再次签出即可。


当我使用主干中的文件更新了较早版本的分支时,发生了这种情况。我使用Windows资源管理器从主干结帐文件夹中复制文件夹,并将其粘贴到发行分支结帐文件夹的Eclipse视图中。现在,Windows资源管理器已配置为不显示以"。"开头的"隐藏"文件,因此我没有将所有不正确的.svn文件粘贴到发行分支签出文件夹中。卫生署!

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


当我尝试从trunk目录中commit时,才得到此消息。从trunk目录执行svn update不能解决该错误;但是,从父目录(.svn目录所属的目录)执行svn update确实解决了该错误。

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

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

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


只需将svn升级到命令行,或者如果您在Windows中,请选择svn更新选项。

  • 完成此操作后,您就可以进行其他操作,例如提交和执行其他操作。

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


就我而言,仅删除本地版本并重新签出新副本是解决方案。


尝试提交某些文件时出现此错误,只是它是我的工作副本中不存在的文件/文件夹。我真的不想经历移动文件和重新签出的麻烦,最后,我最终编辑了.svn / entries文件并删除了令人讨厌的目录引用。


更麻烦的是:

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


推荐阅读

    linux命令补全工具?

    linux命令补全工具?,工具,系统,软件,地址,命令,名称,智能,环境,信息,终端,简

    linux如何引入命令?

    linux如何引入命令?,单位,系统,首页,名字,命令,终端,音乐,文件,目录,选项,lin

    linux关闭系统的命令?

    linux关闭系统的命令?,系统,工作,命令,时间,用户,指令,通知,目的,终端,表示,

    linux命令出现箭头?

    linux命令出现箭头?,系统,终端,箭头,等级,网络,状态,情况,首页,第一,命令,在l

    linux组播路由命令?

    linux组播路由命令?,网络,信息,地址,系统,通信,工具,命令,服务,数字,控制台,L

    更新文件命令linux?

    更新文件命令linux?,工作,系统,地址,信息,时间,命令,目录,基础,标准,网络,lin

    linux切换目标命令?

    linux切换目标命令?,系统,密码,工具,命令,一致,工作,用户,终端,目录,用户名,l

    linux系统nl命令?

    linux系统nl命令?,系统,工作,命令,信息,文件,标准,工具,单位,公式,内容,nl是

    aix与linux的命令?

    aix与linux的命令?,系统,信息,命令,时间,管理,设备,平台,环境,地址,电脑,给些

    linux命令删除用户组?

    linux命令删除用户组?,管理,密码,系统,用户组,用户,概念,命令,文件,管理员,

    linux运行图形界命令?

    linux运行图形界命令?,系统,密码,地址,电脑,图形界面,地方,工具,界面,终端,

    linux怎样运行命令?

    linux怎样运行命令?,系统,工作,信息,基础,地址,命令,目录,工具,密码,一致,Lin

    linux移动文档命令?

    linux移动文档命令?,文件,名称,系统,位置,目录,信息,命令,源文件,目标,文件

    光盘挂载linux命令?

    光盘挂载linux命令?,系统,数据,设备,盘中,光盘,通用,命令,文件,目录,虚拟机,

    linux里生产常用命令?

    linux里生产常用命令?,工作,地址,系统,信息,生产,命令,目录,网络,管理,标准,l

    linux命令中的作用?

    linux命令中的作用?,系统,网络,地址,管理,信息,服务,软件,工具,命令,通用,lin

    linux下读取文件命令?

    linux下读取文件命令?,系统,工作,地址,数字,图片,信息,网络,命令,文件,一致,l

    linux的nc命令安装?

    linux的nc命令安装?,网络,检测,状态,项目,工具,系统,环境,软件,通信,服务,在l

    linux命令修复系统?

    linux命令修复系统?,系统,地址,时间,工作,数据,一致,第一,工具,流程,命令,当L