svn rebasing和历史丢失

dim*_*mba 8 svn history rebase

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

/repo/branch/current_version
/repo/branch/next_version
Run Code Online (Sandbox Code Playgroud)

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

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

由于current_branch已经开发,我们周期性地(比如说每2周一次)认为改变next_version.这是为了保持两个分支同步,所以当所有开发人员最终都会删除current_branch并转移到next_release时,next_release将包含所有current_branch的功能集成和测试.

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

我错过了什么吗?

Thi*_*Not 20

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

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

这就是为什么新版本控制软件具有更好的合并功能(Git,Mercurial和Bazaar)的原因.


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

  • @ThisSuitIsBlack没有关于svn 1.6功能的删除评论"Merge-Sensitive Logs and Annotationscomment"是我正在寻找的.使用标志-use-merge-history(-g)和svn log/blame将完成工作.我也看到1.5中的功能.更新你的答案,我会接受它:) (4认同)