当使用SharpSVN客户端调用Update()更新也具有本地修改的文件时,是否有一种方法可以“尝试”更新,如果它能够在没有任何冲突的情况下自动合并,则继续进行,如果有冲突,则告诉我,这样我就不会进行更新,而是通知用户需要手动更新,因为需要手动解决冲突。
发布于 2014-01-14 06:27:33
一般情况下我会说不。因为假设一个更新没有特定的修订,那么您就有了一个竞争条件。即使您尝试了更新,并且它已经成功,下一次更新也可能失败,因为其他人可能已经犯下了造成冲突的事情。
Subversion客户端库的update函数无法进行更新的试运行。
然而,您可以处理您想要做的事情,尽管它不会非常方便或准确。首先,找出当前的头部修改。然后执行状态调用,并将update标志设置为true,并从HEAD修订中检索到的修订。查看是否有任何修改过的文件需要更新。如果不运行您的更新与您检索的修订。
这将出现错误,因为同一文件中的某些更改可以在更新时合并。由于树冲突可能不会被检测到,所以它也会有一些错误的否定。
即使更改在真正的更新过程中成功地合并到Subversion,它仍然可能不是一个很好的合并。可能存在语义冲突(例如,一个用户重命名一个函数,而另一个用户向该函数添加了另一个调用)。
因此,我不认为它真的可以被很好的自动化。
https://stackoverflow.com/questions/21103136
复制相似问题