无法提交svn因为工作副本总是过时的

时间:2009-11-13 17:01:30

标签: svn tortoisesvn

我正在尝试提交一些工作,但是svn总是失败并且告诉我我修改的文件已经过时了。我先尝试更新,但不起作用。清理不起作用。如果我还原文件,复制我的更改并尝试,它仍然会失败。它不仅仅是一个特定的文件,如果我将整个内容恢复到以前的版本,并修改任何文件,这个问题仍然会发生。

我没有想法。有人有什么?

感谢。

6 个答案:

答案 0 :(得分:5)

尝试创建新的结帐,然后将更改复制到其中。 TortoiseSVN也遇到了一些莫名其妙的问题,这是唯一有帮助的问题。

答案 1 :(得分:4)

如果您可以更新文件,则工作副本似乎可以正常工作。

您是更新目录还是仅更新文件?我遇到svn无法提交的情况,因为存储库中的目录属性已更改。目录的更新解决了这个问题。

另一种尝试是使用svn cleanup

新结账是最后的选择。

答案 2 :(得分:2)

这是我见过的一个常见情景,导致很多人头疼。您可能处于这种状态:

  1. 工作副本处于损坏状态。 SVN 抱怨'foo'下的文件'bar' 目录导致问题。
  2. 开发人员制作了备份副本 foo目录。
  3. 开发人员从工作副本中删除foo目录。
  4. 开发人员确实svn update,foo和 酒吧被还原,svn很高兴。
  5. 开发人员复制foo的备份副本 回到工作副本,svn不再高兴,不再能够更新和/或提交
  6. 这里的致命错误是当开发人员备份dir'foo'时,他们还备份了嵌套在foo中的所有隐藏的“.svn”目录。

    所以,解决方案(根据我的经验),是使用togoise svn的“导出”功能来制作foo的备份副本。 Tortoise svn Export将创建一个没有任何svn元数据(.svn dirs)的目录结构的副本。这样,一旦你回到第3步并且svn很高兴,当你将备份复制回工作副本目录时,svn应该能够正确捕获更改。

    然后,如果它只是一个文件,你正在创建一个备份副本,那么,这将无济于事。

答案 3 :(得分:0)

对我来说,这个程序有效: 在一个文件中,我已经恢复到该文件的旧版本。 当我想提交项目时,我得到的消息是这个特定的文件已经过时而且没有提交。

应该做的是复制文件的内容并返回到该文件的最新svn版本。

完成后,将您保存的内容复制到文件中,然后提交。 这对我有用。

答案 4 :(得分:0)

我在重命名java包(svn的目录)时遇到了这个错误。

我通过对已删除的目录执行“覆盖和更新”来解决它(在我的项目中为空)。然后使用文件提交新目录。之后再次删除了在项目中重命名并再次提交。

答案 5 :(得分:0)

如果使用的是eclipse,请右键单击该项目并进行更新版本。然后在下拉菜单中选择工作副本,然后选择用于通知您合并冲突的选项。请参考图片以获取更多信息。enter image description here