在我的团队中,我们在合并中互相帮助。即我的代码被其他人合并回主干。似乎作者信息在合并期间没有完全保留。当我注释(责备)时,合并显示为作者。
合并是否做错了什么,或者原始作者没有保留在合并中?
如果您的服务器进行合并跟踪并且您的客户端工具是 1.5 版或更高版本,这将起作用:
svn blame --use-merge-history TARGET
合并看起来就像某人签出主干,一次进行了大量更改,然后重新提交。合并后进行最终提交的人将显示为作者。如果您要让人们帮助合并,请确保他们使用您希望归于的人的用户名进行合并。
说了这么多,如果有人在合并中犯了错误,那么你想要“帮助”合并的人的名字,如果他们是这样做的人,肯定吗?
SVN 服务器上的唯一信息是提交的作者。这就是责备/注释将使用的。
所以不,在这种合并过程中不会保留作者。它需要比 SVN 句柄更多的信息。
在我看来,合并不是由原始作者完成的方法是错误的……但这是另一回事。
在 Subverison 中,每个提交都与一个作者相关联。合并只能在属于特定作者的工作副本中完成。在我看来,SVN 中的信息是正确的,因为合并代码的人对合并“负责”......所以与他的名字的关系是正确的。
我不是 100% 确定,但我认为答案是:是和否……注释 AFAIK 只会向您显示对该代码行进行最新更改的作者。在您的情况下,这将是进行合并的人。如果需要更进一步,则需要归咎于合并之前的版本。
合并可能会更改svn:mergeinfo
属性。在这种情况下,可以间接发现任何给定合并的原始提交的作者。
但这只是一个创可贴——如果您想通过合并跟踪真正的作者,您可能需要切换到为分布式开发设计的工具工具:类似git
, hg
, 甚至darcs
.