【问题标题】:SVN different trees mergingSVN不同的树合并
【发布时间】:2010-11-24 14:01:50
【问题描述】:

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

问题是:如何合并两个不同的树并在最终修订中保留它们的日志?

感谢您的帮助!

【问题讨论】:

    标签: svn tortoisesvn merge


    【解决方案1】:

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

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

    所以我不知道你想做的事情是否可行。

    有关使用命令行界面进行合并的详细信息,我推荐 Subversion 圣经:

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

    【讨论】:

    • 感谢您的参考资料——很明显,我之前已经阅读过它们,并且按照乌龟帮助中的所有内容完成了所有工作。结果是,正如您正确注意到的那样,B 树的简单更新:/ 还是谢谢
    • 那些参考资料已经过时了。小心使用 Google 和那里列出的 Subversion Book 参考资料。早期 1.0 版本的许多命令行函数具有许多新特性。以及您发布的两个参考版本超过 5 年的参考版本。
    【解决方案2】:

    因为您进行了合并(树或文件,没关系),所以 A 的历史记录不容易查看。但是,如果您使用支持 1.5.x 或更新版本的 Subversion 客户端进行此合并并检查 svn:merge-info 属性,则可以查看 A 的历史记录。从命令行使用svn log 命令和-g 选项,您可以查看文件或树的历史记录,包括多次合并的路径。

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

    【讨论】:

      【解决方案3】:

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

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

      现代版本的 Subversion 可以使用 mergeinfo 属性模拟这一点,但它不是原生内置的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-27
        • 2013-01-02
        • 1970-01-01
        • 2011-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多