如何克服svn';过时';错误?

如何克服svn';过时';错误?,svn,Svn,我一直试图在Subversion中将目录结构从一个位置移动到另一个位置,但我得到一个项'*'已过期提交错误 我已经签出了最新版本(据我所知)svn st-u除了mv命令外没有显示任何差异。您确定已签出头部而不是较低版本吗?另外,您是否进行了更新以确保获得最新版本 上对此进行了讨论。直接在存储库中执行移动。我认为此问题来自.svn文件。它在旧的父项、新的父项或旧的父项中是不正确的。我会试着回到你的出发点。使用导出获取文件夹的干净副本。将干净副本移动到新位置,然后使用“添加”和“删除”进行移动。这是

我一直试图在Subversion中将目录结构从一个位置移动到另一个位置,但我得到一个
项'*'已过期
提交错误


我已经签出了最新版本(据我所知)
svn st-u
除了mv命令外没有显示任何差异。

您确定已签出头部而不是较低版本吗?另外,您是否进行了更新以确保获得最新版本


上对此进行了讨论。

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

我认为此问题来自.svn文件。它在旧的父项、新的父项或旧的父项中是不正确的。我会试着回到你的出发点。使用导出获取文件夹的干净副本。将干净副本移动到新位置,然后使用“添加”和“删除”进行移动。这是手动执行SVN所做的操作,但它可能会工作。

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

就像@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 move在我尝试重命名文件夹时做了相同的事情)。所以我回复,然后我做了一个mkdir DIRNAME,添加,并提交。然后我在中添加了内容并提交了,它成功了。

在尝试了所有明显的事情和这里的其他一些建议后,没有任何运气,谷歌搜索导致了这个链接(链接不再有效)——

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


在没有其他工作的情况下为我工作。

谢谢。这就解决了我的问题。 svn更新--强制/文件名路径/

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

杰伊
CompuMatter

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

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

我通过点击更新按钮来解决此问题。

使用删除文件或路径 在执行命令之前,请对所做的更改进行bk检查

sudo rm -r /path/to/dir/
之后:

svn up and commit or delete 

If曾经通过简单地签出一个新的工作副本并用这个新签出的副本替换抛出提交错误的.svn目录来解决类似的问题。在我的案例中,原因是在存储库损坏并从备份中恢复后,工作副本指向的修订版在恢复的存储库中不存在。还出现“项目过期”错误。在提交之前更新工作副本并不能解决此问题,但如上所述替换.svn可以解决此问题。

我发现这对我来说很有效:

svn update
svn resolved <dir>
svn commit
svn更新
svn已解决
svn提交

消息“过期”错误至少还有一个原因。在我的例子中,问题是.svn/dir props,它是通过第一次运行“svn propset svn:ignore-F.gitinore”创建的。删除.svn/dir props似乎是个坏主意,可能会导致其他错误,因此最好使用“svn propdel”来清理错误的“svn propset”


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

1) 在“团队同步”透视图中,右键单击文件夹>覆盖和更新
2) 再次删除文件夹

3) 提交并快乐

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

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

要解决此问题,我需要还原有问题的文件,并更新我的工作副本,
# 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.
svn info | grep Relative 
svn switch path_from_previous_command
svn update
svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update