颠覆:“;svn更新“;丢失CSS数据

颠覆:“;svn更新“;丢失CSS数据,css,linux,svn,Css,Linux,Svn,最近,我注意到Subversion的奇怪行为。偶尔,“svn up”命令会对我的CSS文件造成严重破坏,这看起来是随机的。99%的情况下,它工作正常,但当它坏了,就相当糟糕了 Subversion并没有像它应该注意的那样注意冲突,它似乎在破坏所有传入的冲突线并报告成功的合并。这会导致非常不方便的手动合并,因为传入的更改实际上会消失,除非手动将它们放回文件中 我本以为这是一个用户错误的案例,但我只是看着它发生。我们有两个设计师,他们经常处理同一个CSS文件,但他们都熟悉并精通冲突解决 正如我们所能

最近,我注意到Subversion的奇怪行为。偶尔,“svn up”命令会对我的CSS文件造成严重破坏,这看起来是随机的。99%的情况下,它工作正常,但当它坏了,就相当糟糕了

Subversion并没有像它应该注意的那样注意冲突,它似乎在破坏所有传入的冲突线并报告成功的合并。这会导致非常不方便的手动合并,因为传入的更改实际上会消失,除非手动将它们放回文件中

我本以为这是一个用户错误的案例,但我只是看着它发生。我们有两个设计师,他们经常处理同一个CSS文件,但他们都熟悉并精通冲突解决

正如我们所能想象的,当两个设计师都有大量的更改要签入,并且一个在冲床上击败另一个时,就会发生这种情况。这是否可能会让SVN的合并算法变得混乱


欢迎从SVN获得任何处理此类行为的经验或有用的轶事。

这可能会很乏味,但您可以使用

svn diff -r 100:101 filename/url

例如,从你的头上后退。这应该说明进行了哪些更改、进行了哪些修订以及由谁进行。这听起来像是我以前遇到过的一个合并问题,但不幸的是,我发现自己通过查看以前的修订并手动合并它们来解决它。

如果你能找到一个diff/merge程序,它能够更好地检测此结构文件中的最小更改,使用
-diff cmd
选项来调用它。

包含大量重复内容的文件通常会混淆diff/merge算法,因为有几种不同的方法来选择“相等”行。我没有考虑到这一点。我的大脑正在考虑不同的CSS类/定义,但是我忘记了在这些类中的几行是重复的样式。您知道有什么方法可以解决这个问题吗?
svn update
允许您指定一个
--diff cmd
选项来提供备用合并程序。因此,您需要找到一个更擅长处理这些文件的合并程序。在以前的一份工作中,我在执行diff而不是合并时遇到了这个问题,我发现唯一运行良好的diff程序是kdiff3。但它是一个GUI应用程序,我不知道是否有CLI API。我不知道这是一个选项。我想我会开始寻找一个新的差异/合并程序。如果你把这个作为回答,我会接受的。