SVN不同的树合并

时间:2010-11-24 14:01:51

标签: svn tortoisesvn merge

假设我的SVN中有A:/ A_Project / trunk / A和B:/ B_Project / trunk / B.我想将A与B合并并将其存储在B中。我在TortoiseSVN GUI中使用了“合并两个不同的树”选项。一切都很好,除了最终版本没有A树的更改日志!

问题是:如何合并两个不同的树并在最终版本中保留两个树的日志?

感谢您的帮助!

3 个答案:

答案 0 :(得分:5)

老实说,我的猜测是Tortoise只是创建分支B的工作副本,从树A插入代码,并且合并就好像只是一个大规模的编码练习。

我不认为SVN本身支持项目之间的合并,因为修订号(以及附加的提交日志)会发生明显的冲突,因为两个项目都有修订1..n。

所以我不知道你的目标是否可行。

有关使用命令行界面进行合并的详细信息,请参阅Subversion圣经:

http://svnbook.red-bean.com/en/1.5/svn.branchmerge.html

答案 1 :(得分:0)

由于您进行了合并(树或文件,无关紧要),因此A的历史记录无法查看。但是,如果您与支持1.5.x或更高版本的Subversion客户端合并并在svn:merge-info属性中签入,则可以查看A的历史记录。在命令行中使用svn log命令和-g选项,您可以看到文件或树的历史记录,包括多次合并的路径。

这也可以用TortoiseSVN完成。请参阅TortoiseSVN 1.5.x版本中的this release note,了解如何使用常规历史记录查看合并历史记录。

答案 2 :(得分:0)

Subversion不支持将两棵树合并到一个保留合并双方历史记录的修订版中。

这是Subversion模型与其他一些版本控制系统(如Mercurial或Git)之间的一个非常基本的区别。

Subversion的现代版本可以使用mergeinfo属性来模拟它,但它本身并不是内置的。