如何解决这个问题在使用svn?

时间:2011-04-08 15:00:29

标签: svn zend-studio

我实际上是在IDE中使用它:zend studio,它嵌入了svn工具,但我认为它应该与eclipse相同,甚至是svn工具本身。

假设svn中有一个目录 A ,请执行以下操作以重现:

  1. A 重命名为 A2 (退出IDE),然后在IDE中刷新 A ,它就会消失
  2. 在IDE中刷新 A2 的父目录,名为 P ,然后出现 A2
  3. A2 重命名为 A ,然后刷新 P ,报告:Problems occured refreshing the selected resources: A2/.svn [in <project root>] does not exist
  4. 如何解决此问题?

2 个答案:

答案 0 :(得分:2)

这实际上不是SVN应该如何工作的。对SVN中包含的目录结构,文件等的更改必须通过IDE或其他支持SVN的应用程序完成,而不是通过文件系统本身(即通过Windows资源管理器)完成。

SVN实际上跟踪对其文件系统的更改,当您使用SVN“控制器”时,会导致整个事情不同步。

答案 1 :(得分:1)

Josh是对的。当您在SVN存储库中移动或重命名文件必须使用SVN 时,这是绝对必要的。 Svn movesvn rename(后者是前者的别名)具有非常简单的语法。 TortoiseSVN也支持该操作。以这种方式,下次另一个用户尝试执行SVN操作时,程序将看到存储库已更改。如果您在结构发生变化时没有告诉存储库,那么您将会像这样混淆它。

要解决问题,我会:

  1. 查看存储库的全新副本。
  2. 将文件夹(无论是A还是A2)复制到存储库中以保存数据。
  3. Svn delete A或A2。
  4. Svn commit
  5. 将A或A2复制回存储库。
  6. Svn add A或A2。
  7. Svn commit