SharpSVN测试更新

时间:2014-01-13 23:02:40

标签: svn merge sharpsvn

使用SharpSVN客户端调用Update()时,要更新也有本地修改的文件,有没有办法“尝试”更新,如果它设法自动合并而没有任何冲突,那么继续,否则如果有将要发生冲突,然后告诉我,以便我不进行更新,而是通知用户需要手动更新,因为会有需要手动解决的冲突。

1 个答案:

答案 0 :(得分:1)

总的来说,我会说不。因为假设没有特定修订的更新,您就会遇到竞争条件。即使您尝试了更新并且它会成功,下一次更新可能会失败,因为其他人可能已经提交了一些产生冲突的内容。

Subversion客户端库的更新功能无法进行干预运行。

然而,你可以处理你想做的事情,虽然它不会特别方便或准确。首先找出当前的HEAD修订版。然后执行状态调用,将update标志设置为true,并从HEAD修订版中检索修订。查看是否有任何已修改的文件需要更新。如果没有使用您检索的修订版运行更新。

这会产生误报,因为同一文件中的某些更改可以在更新时合并。它也会有一些漏报,因为可能无法检测到树冲突。

即使在实际更新期间关于Subversion成功地进行了更改合并,它仍然可能不是一个好的合并。可能存在语义冲突(例如,一个用户重命名一个函数,另一个用户添加了另一个函数调用)。

因此,我认为这不是一个可以很好地实现自动化的东西。