为什么“本地删除,更新时传入删除”目录存在冲突?

时间:2013-07-01 15:48:23

标签: svn tree-conflict

这更像是一个假设的问题,但我一直想知道为什么这个案子被认为是冲突。如果我在本地删除了一个已经从存储库中删除的目录,为什么这不会像你期望的那样解决?我不知道哪个角落的情况会使冲突地位成为必要?

2 个答案:

答案 0 :(得分:9)

我开始深入研究这个问题,我认为这可能是因为SVN并不完全确定delete是一个简单的删除,还是一个move({{1}和copy)。从documentation开始,它声明:

  

因为Subversion中的移动被实现为复制操作,然后是删除操作,并且这两个操作在更新期间不能轻易地相互关联,所以所有Subversion都可以警告您关于本地修改的传入删除操作文件。此删除操作可能是移动的一部分,也可能是真正的删除操作。

所以听起来很安全,SVN警告你应该更新。当然,它可以忽略删除“冲突”,只需复制新移动的文件夹,但我认为某些元数据可能会在本地丢失。

一个可能的解决方法是在本地恢复您的更改并让传入更新处理删除。

答案 1 :(得分:2)

当您要求SVN在无法执行更改的目标文件或文件夹上启用更改(使用合并或更新)时,会出现树冲突。在您的情况下,您要求SVN启用删除本地副本中不存在的文件夹。为什么有必要?这对你来说更像一个警告,对我来说,当一个人试图移动一个目录时另一个试图在另一个分支中删除它时,这是有帮助的。树冲突就像你描述的那样,而且它是真实的。这两个人必须通过决定如何处理该文件夹来解决它。