TortoiseSVN - “你必须先更新你的工作副本”

时间:2010-02-08 20:25:40

标签: tortoisesvn

当我尝试提交时,我收到此错误。做了什么,我认为是文件夹的重命名。我尝试重命名/移动文件夹。但我继续得到错误。

Command: Commit  
Error: Commit failed (details follow):  
Error: File 'Page.aspx' is out of date  
Error: File not found: transaction '99-4a', path '/trunk/src/Solution.UI/Views/ViewName/Page.aspx'  
Error: You have to update your working copy first.  

我确实尝试更新,但不幸的是没有解决问题。

Command: Update  
Completed: At revision: 99  
从文件夹中删除文件后,

编辑,执行更新以恢复它们,并将恢复的文件替换为原始文件我收到此错误:

Error: Commit failed (details follow):  
Error: Base checksum mismatch on '/trunk/src/Solution.UI/Views/ViewName/Page.aspx':  
Error:    expected:  ed3bc4a70ee4256bd2f7cf8c57f29a1f  
Error:      actual:  b8a2797dc262dc714fae6dc897b5ebd2  

8 个答案:

答案 0 :(得分:13)

SVN知道存储库中存在更改,但它不知道更改的内容。您可能在工作副本上进行了完全相同的更改,但除非您实际尝试进行更新以便SVN可以运行解析,否则不会检查您的本地更改是否与repo更改相同。

执行svn update并且冲突解决应该是自动的。但是,如果您对相同的文件进行了更改,它可能会要求您手动解析,即使它是完全相同的更改(如果更改是文件夹重命名,则更有可能)

您可能还需要执行svn resolved来强制执行手动解决冲突。

最糟糕的是,您可以随时复制已更改的文件,还原本地更改,更新和替换新文件夹中的文件。

答案 1 :(得分:2)

我正在使用TortiseSVN,遇到了你遇到的问题。

尝试的努力:删除目录及其中的文件。

我的解决途径(整个有效程序)

  1. 选择相关文件。右键单击| TortiseSVN |删除

    回复:标记为删除的文件。

  2. 右键单击包含目录| TortiseSVN |提交

    回复:已删除文件。

  3. 右键单击上述包含目录中的下一个更高目录SVN更新

    回复:更新完成。

  4. 右键单击我要删除的目录TortiseSVN |删除

    回复:标记为删除的目录。

  5. 右键单击上述目录中的下一个更高目录 - 删除| SVN提交

    回复:目录已删除

  6. 流程完成。

答案 2 :(得分:1)

您必须更新工作副本。

即,执行“SVN更新”以获取最新版本,并检查以确保您的更改不会发生冲突。

答案 3 :(得分:1)

执行“SVN清理”,然后进行更新

答案 4 :(得分:1)

看起来你的工作副本中有Page.asx,它不再存在于存储库中了吗?

也许尝试从驱动器中物理删除它,或者如果仍然需要将它移到不同的位置,尝试提交然后再添加它?

答案 5 :(得分:1)

有时候你可以得到这些奇怪的破碎的工作副本问题,尽管尝试了所有的东西,但你无法让它再次工作而且你完全无法承诺你的工作。摆脱这种情况的一种方法是执行以下操作:

  • 将项目签出到新文件夹。
  • 仅将修改过的文件从旧的工作副本复制到新的工作副本。如果你经常这样做,这不应该花很长时间。如果你每个月犯一次,这可能需要一些时间......
  • 仔细检查两个工作副本上的修改列表是否相同。
  • 从您的新工作副本提交。
  • 删除旧的工作副本并重新检查。

这样做并不是很令人满意,因为它没有告诉你出了什么问题以及为什么,但如果你只是想继续你的工作,那么很高兴知道有一个快速修复。

答案 6 :(得分:0)

我试过这个解决方案,它对我来说非常适合。 1 - 将工作副本导出到另一个Temp目录。 2 - 删除工作目录中的所有文件 3 - 在工作目录中查看 4将Temp目录中的Files复制到工作目录,覆盖所有现有文件 5-提交

答案 7 :(得分:-1)

执行svn commit

时,您应该取消选中已删除或丢失的文件