【问题标题】:Why does SVN sometimes "forget" that an entire folder has been added and deletes it on commit?为什么 SVN 有时会“忘记”整个文件夹已被添加并在提交时将其删除?
【发布时间】:2011-06-09 13:37:26
【问题描述】:

也许有人可以解释这种行为。有时我会做一个 SVN 更新,由于某种原因 SVN 会忘记一个文件在源代码控制下,它会从我的目录中删除它;我必须 Revert 将文件添加回来。

刚才我对文件进行了更改并提交了它。更改为Deleted,我在按下 Commit 按钮后很快意识到了这一点。检查文件夹,我发现none 下的文件不再受版本控制; SVN 不知何故“忘记”(在此之前根本没有运行更新)它们已被添加到其中,如果我提交了整个目录,它会删除 所有内容。再次,我必须恢复文件夹,重新添加我更改的文件,并重新提交我的更改,并注明上一次提交错误地删除了文件。

知道为什么会这样吗?几乎每次我尝试更新我的工作副本时,我也经常遇到“您的 tmp 目录已损坏。运行清理”错误;在运行更新之前,我基本上必须每次运行 Cleanup。

我这里没有设置SVN系统,也不知道是怎么配置的。在之前使用 SVN 的任何工作中,我都没有遇到过这种“不稳定”。

编辑:我在 Windows XP 上使用 VisualSVN 1.7.11 和(偶尔)TortoiseSVN。存储库托管在 Windows Server 2003 上(我认为是标准的)。

【问题讨论】:

  • 你用的是什么SVN客户端?
  • VisualSVN/TortoiseSVN。编辑 OP 以说明这一点。
  • 什么在为存储库提供服务?
  • 你是说服务器?它是 Windows Server 2003,但我不知道 SVN 是如何设置的或有哪些选项。
  • 存储库 URL 是什么样的?是 http(s) 还是 file:///?

标签: svn version-control


【解决方案1】:

由于这种情况也发生在没有进行更新/提交/...我很确定您有一个正在运行的应用程序可以“清理”空文件或空文件夹,或者以其他方式弄乱您的文件。

Subversion 使用隐藏的 .svn 文件夹来保存其元数据。该文件夹中的某些文件是空的,甚至其中的某些文件夹通常是空的,并且仅在某些操作期间填充了文件。

现在,如果其他应用程序正在删除那些空文件和文件夹,那么 svn 将无法正常工作,您最终可能会得到一个损坏/损坏的工作副本,甚至会得到错误的状态。

【讨论】:

  • 我得检查一下。它似乎是非常零星的。我会用几周的时间让它正常工作,然后突然间随机更新/提交会将这个文件夹(仅那个文件夹)中的所有内容标记为“已删除”。
猜你喜欢
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-13
相关资源
最近更新 更多