2019独角兽企业重金招聘Python工程师标准>>>
现象:
配置管理员将svn分支(branch)合并到主干(trunk)上,分支的修改是由A同学提交的,合并到主干上的时候是由配置管理的B同学完成的,某天你突然心血来潮想看看主干上某个文件的修改的完整历史,发现使用svn log或者乌龟都只能看到配置管理员B
同学merge的日志记录。难道将分支合并到主干上,分支的提交日志都丢失了??这也太不可能了吧,可能的原因有两个,一个是svn merge有问题,一个是svn log查看日志有问题。下面逐一排查
1.使用svn log查看主干上的merge日志信息,发现merge都很正常,类似这样的 svn merge -r 7090:7102 分支,所以应该不是svn merge的问题,那就应该是svn log查看的方式有问题,进入2
2.使用svn help log 命令查看svn log的用法,如下
默认下 svn log 相当于svn log --stop-on-copy,是不会显示合并分支里的提交日志的
通过帮助信息知道你只要使用svn log -g 就可以打印出合并分支里的提交日志了。
3.通过2知道是查看日志的方式有问题,那么乌龟一定也可以做到这样,但是怎么使用才可以查看合并分支里的信息呢?
先看下,默认情况下乌龟是显示日志的吧!如下:
看到了吧基本上全是merge信息,而且全是配置管理同学的提交日志,这不科学呀!so 你不要以为svn合并会把分支的提交记录丢弃掉,这更不科学了。像下面这样使用乌龟就可以看到合并的所以分支的提交日志了,真正的幕后黑手浮出水面(文件的修改作者),哈哈。如图
记得勾选 include merged revisions呀。