SVN Endless Loop - [文件]“在存储库中不存在”

时间:2011-01-04 05:52:26

标签: tortoisesvn

这一直困扰着我一周。

SVN一直告诉我某个文件“does not exist in repository”。

精细。我们只是删除它。忘掉它。忽略它。随你。我并不关心这个文件(特别是如果它在夜间办理登机手续时仍然失败)。

最离奇的部分? “还原”实际上会从存储库中恢复文件,所以它在那里(已损坏,可能是?)。

......这必须是锦上添花。如果我通过Windows资源管理器删除该文件,SVN将从存储库中恢复该文件,并在该状态之后存储库中不存在该文件。 WTF?

有没有人知道如何摆脱这个?

我已经尝试过清理,转换,删除以及其他任何可以想象的事情,但这个让我感到难过。

感谢您提供的任何提示......

3 个答案:

答案 0 :(得分:17)

您最有可能损坏了本地工作副本,例如:通过移动文件夹或您使用Windows资源管理器执行的其他操作,但应该通过TortoiseSVN上下文菜单完成。 .svn文件夹中的信息现在不再与工作副本的状态相匹配,这使Subversion感到困惑。

要解决此问题,请使用Windows资源管理器(不使用TortoiseSVN)删除工作副本中的父文件夹(“Originals”)。然后在工作副本的根目录下执行TortoiseSVN“更新”。这应该按工作顺序恢复文件夹。

另一种选择是完全丢弃您的工作副本并进行新的结帐。

请注意,Subversion(1.7)的下一个版本将通过将所有元数据集中在根目录下的单个.svn文件夹中来减少损坏工作副本的机会。

答案 1 :(得分:0)

我在使用损坏的工作副本时遇到了类似的问题。有时,工作副本有很多未决的更改,但无法签入。要解决这个问题,我使用以下方法(svn 1.7 +):

  1. 将新的工作副本签出到新目录(path2)
  2. 在新的工作副本中,如果有违规文件,请在需要时将其删除。
  3. 提交新的工作副本
  4. 在新工作副本中,删除.svn目录以外的所有内容
  5. 将除.svn目录之外的旧工作副本中的所有内容复制到新的工作副本中。
  6. 再次提交新的工作副本
  7. 删除(或备份)旧工作副本
  8. 将新工作重命名为旧工作副本(path2 to path)

答案 2 :(得分:0)

我遇到了类似的问题,其中我有一个文件夹,例如" FolderA"即使我已删除它,它仍然在svn更新中始终显示。 它甚至不会显示在文件夹列表中,但svn仍会识别它,就好像它存在一样。

我按照以下步骤操作:

1.在同一文件位置中创建svn给出错误的相同文件夹名称
2.将其添加到svn checkout。由于它给出了冲突错误,我使用svn选项解决了它 3.删除文件夹并提交我的svn。

错误已解决