Chr*_*ing 2 svn version-control mercurial dvcs
我有一个Hg存储库,变更集0代表"添加.hgignore".从变更集1开始,我通过脚本从许多Subversion修订版中逐步添加了变更集.然后我和Hg一起工作了一段时间.
现在我决定需要更多的Svn修订版,这些修订版位于历史早期,而不是开始修订版(Hg中的变更集1).
是否可以在0和1之间插入新的变更集?如果是的话:怎么样?
您可以为此使用Mercurial到Mercurial转换.您需要为此启用转换扩展.该扩展程序将允许您将历史记录拼接在一起作为转换的一部分.这只是意味着您可以为现有变更集指定新父项.
所以,如果你开始
$ hg glog
@ changeset: 1:aaee9686dedf
| tag: tip
| user: Martin Geisler <mg@lazybytes.net>
| date: Fri Mar 23 15:08:11 2012 +0100
| summary: bar
|
o changeset: 0:17474bd28fe5
user: Martin Geisler <mg@lazybytes.net>
date: Fri Mar 23 15:08:05 2012 +0100
summary: foo
Run Code Online (Sandbox Code Playgroud)
您可以先从SVN导入所需的修订:
$ hg update null
$ run-your-script.sh
Run Code Online (Sandbox Code Playgroud)
这将创建第二个根变更集 - 您现在在存储库中实际上有两个不相交的历史记录.我在一个变更集中添加了一个baz
文件:
$ hg glog
@ changeset: 2:515e1292862b
tag: tip
parent: -1:000000000000
user: Martin Geisler <mg@lazybytes.net>
date: Fri Mar 23 15:09:19 2012 +0100
summary: baz
o changeset: 1:aaee9686dedf
| user: Martin Geisler <mg@lazybytes.net>
| date: Fri Mar 23 15:08:11 2012 +0100
| summary: bar
|
o changeset: 0:17474bd28fe5
user: Martin Geisler <mg@lazybytes.net>
date: Fri Mar 23 15:08:05 2012 +0100
summary: foo
Run Code Online (Sandbox Code Playgroud)
最后一步是将历史链接在一起:我们希望17474bd28fe5将515e1292862b作为其第一个父级.使用hg log --debug
查看完整的变更哈希值,并与片地图文件
17474bd28fe535c15c7dad3659994ab048146e99 515e1292862ba2d6776294ffb00c533dc6850c66
Run Code Online (Sandbox Code Playgroud)
然后跑
$ hg convert --splicemap map.txt your-repo your-spliced-repo
Run Code Online (Sandbox Code Playgroud)
您将在中找到修改过的历史记录your-spliced-repo
.
归档时间: |
|
查看次数: |
177 次 |
最近记录: |