如何避免“svn:过时:”问题?

时间:2009-05-02 21:00:53

标签: svn

在使用svn的过去几年中,我经常遇到上述错误导致提交失败的问题。我最初认为这与使用samba安装的工作空间有关,但我已经看到它与svn + ssh一起远程发生。

以下是最近出现的一个例子:

  1. 使用svn move
  2. 重命名目录
  3. 提交更改到新目录
  4. 尝试删除旧目录 - 失败:

    删除(子目录) svn:提交失败(详情如下): svn:过时:交易x中的'(某些路径)/(旧目录)/(子目录)'

  5. 增加: 解决这些问题的最佳方法是什么?

5 个答案:

答案 0 :(得分:17)

查看SVN FAQ entry on this issue。我相信你真的已经过时了,只需要运行“svn update”。

答案 1 :(得分:4)

您应该从Subversion FAQ

中查看这些内容
  1. 提交失败的碎片会乱丢你的工作副本。
  2. 混合修订
  3. 你可能真的过时了
  4. 您的重命名示例指向第2位作为问题的根源:如果您提交新目录,旧的和新的父目录将是混合版本,因此如果您尝试提交父目录,则将失败。通过命名父目录在一个事务中提交移动(这是一个组合的复制和删除)是很有意义的。

答案 2 :(得分:1)

我认为你应该在一个步骤中完成整个更改,这样就可以将父级和移动的目录置于相同的版本中。

在你的情况下,你必须在父目录中进行svn更新,这将恢复你已删除的目录,然后svn再次删除它并尝试另一次提交

答案 3 :(得分:1)

在尝试了所有显而易见的事情以及其他一些建议之后,没有任何运气,谷歌搜索引发了这个链接 - Subversion says: Your file or directory is probably out-of-date

简而言之,诀窍是转到 .svn目录(在包含违规文件的目录中),然后删除" all-wcprops&#34 ;文件

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

答案 4 :(得分:1)

我这么想。

1)我将修改代码复制到记事本中。

2)接下来,更新文件。

3)在更新的文件中复制记事本的代码。

4)在svn。

中提交