【问题标题】:svn rebasing and history lostsvn 变基和历史丢失
【发布时间】:2010-12-03 04:49:15
【问题描述】:

我们目前有 2 个分支机构:

/repo/branch/current_version
/repo/branch/next_version

current_version 是所有开发人员当前工作的分支。

我们开始下一个版本并从 current_version 的某个点创建 next_version 分支,而 current_version 的工作仍在继续。在 next_version 我们进行一些开发,在接下来的几个月中,该分支将成为我们的主要分支,所有开发都将在这里完成。

由于 current_branch 有开发,我们会定期(比如每 2 周一次)考虑重新调整 next_version。这是为了使两个分支保持同步,所以当所有开发人员最终将放弃 current_branch 并转移到 next_release 时,next_release 将包含所有 current_branch 的功能集成和测试。

问题是变基。实际上,变基是将 current_branch 的最新提交合并到 next_version。因此,如果我在 next_release 中检查已提交文件的历史记录,我将看到的只是合并提交,而不是 current_version 的历史记录(提交/作者/注释)。

我错过了什么吗?

【问题讨论】:

    标签: svn history rebase


    【解决方案1】:

    不,你没有错过任何东西。这是使用 SVN 进行版本控制的一个大问题。

    我在上一份工作中一遍又一遍地遇到它。每次有人向 current_branch 提交某些内容时(坚持使用您的术语),必须手动复制提交消息,以便可以在合并提交消息中使用它。这很快就变成了一个巨大的痛苦。

    这就是为什么新版本控制软件具有更好的合并功能的原因(我想到了 Git、Mercurial 和 Bazaar)。


    编辑:显然 SVN 已经解决了这个问题。 SVN 1.5 及更高版本包含merge-sensitive logs and annotations。使用标志 --use-merge-history (-g) 与 svn merge 和 svn blame 来查看来自合并分支的提交消息。

    【讨论】:

    • @ThisSuitIsBlackNot 您已删除的关于 svn 1.6 功能“合并敏感日志和注释注释”的评论是我正在寻找的。使用标志 -use-merge-history(-g) 和 svn log/blame 将完成这项工作。我也看到了 1.5 中的功能。更新你的答案,我会接受的:)
    猜你喜欢
    • 2012-09-19
    • 1970-01-01
    • 2012-02-29
    • 2011-04-26
    • 2021-12-12
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多