11

这更像是一个假设性问题,但我一直想知道为什么这个案例被认为是冲突。如果我在本地删除了一个已经从存储库中删除的目录,为什么不能像您期望的那样解决?我没有想到哪些极端情况会使冲突状态成为必要?

4

2 回答 2

9

我开始深入研究这一点,我认为这可能是因为 SVN 并不完全确定这delete是一个简单的删除,还是实际上是一个move(acopy和 a delete)。从文档中,它指出:

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

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

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

于 2013-07-01T16:08:30.830 回答
2

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

于 2013-07-02T14:49:15.907 回答