我有一个奇怪的问题,我还没有解决。当我从 SVN 签出一个分支时,我经常看到多个不相关的文件,这些文件带有SVN 属性更改,无论是在签出后直接还是在我更改一两个文件之后。
在分支的工作过程中,我更改了一些文件;这些更改正常显示在“svn stat”中。但是,其他文件的属性已更改-仅此而已。有人见过这个吗?有人有想法吗?
马特
我有一个奇怪的问题,我还没有解决。当我从 SVN 签出一个分支时,我经常看到多个不相关的文件,这些文件带有SVN 属性更改,无论是在签出后直接还是在我更改一两个文件之后。
在分支的工作过程中,我更改了一些文件;这些更改正常显示在“svn stat”中。但是,其他文件的属性已更改-仅此而已。有人见过这个吗?有人有想法吗?
马特
svn:mergeinfo
即使被合并的文件本身没有改变或者文件之间似乎没有差异,Subversion 也会改变值。svn:mergeinfo
用于跟踪合并完成的位置,而不是合并是否导致更改。这样,Subversion 可以说这个分支上的这个修订已经被合并,所以它们不应该再次被合并。
我不喜欢通过这个属性进行合并跟踪。可以svn merge
报告数百个文件被更改,但仔细检查显示只有少数文件被更改。其余的只是svn:mergeinfo
改变了他们的财产。
有时,开发人员会故意还原仅更改了其svn:mergeinfo
属性的文件,并仅签入实际更改了其内容的文件。当然,这会导致下一次需要合并更多文件。有时开发人员会清理 svn:mergeinfo
这真的把事情搞砸了。
svn:mergeinfo
真的会引起很多混乱。事实上,有时我希望有一个开关可以关闭合并跟踪。有些网站更愿意跟踪自己的合并。
然而,这就是我们所拥有的,所以我会接受它,并培训开发人员。
有人可能已经从另一个分支合并到“你的”分支。SVN 跟踪哪些修订已合并到一个分支,并相应地更新 svn:mergeinfo 属性
(AFAIK,这仅适用于 Subverson 1.5 或更高版本)。