Pat*_*gne 8 svn mercurial mercurial-convert
将我的项目FakeItEasy的VCS 从SVN 更改为Google Code上的Mercurial时,我有点过于渴望(我很有趣).我所做的只是检查SVN的最新版本,然后将结帐作为新Mercurial仓库的第一个修订版.这显然会导致所有历史遗失.
后来当我对Mercurial采取了更好的习惯时,我意识到有一个"转换扩展"这样的东西允许你将SVN仓库转换为Mercurial仓库.现在我要做的是转换旧的SVN仓库,然后将当前存在的Mercurial仓库中的所有变更集导入到此转换后的仓库中,除了第一次提交到Mercurial.
我已经将SVN回购转换为当地的Mercurial回购,但现在是我被困的时候.我以为我能够使用转换扩展来将当前的Mercurial存储库转换为已转换的存储库并且使用拼接映射删除第一次提交,但我似乎无法使其工作.
我也尝试过使用不带拼接映射的转换来从当前的Mercurial repo到转换后的版本中获取所有更改集,并将当前第二个版本的rebase从旧SVN存储库中的最后一次提交但是我无法获得那要么工作.
为了使这个更清楚,我可以说我有这两个存储库:
A: revA1-revA2
B: revB1-revB2-revB3 (Where revB1 is actually a copy of revA2)
现在我想将这两个组合到包含以下内容的新存储库中:
C: revA1-revA2-revB2-revB3
Ry4*_*ase 11
只要你改变新版本的哈希值(你是),你也可以使用export和import(或者transplant是围绕两者的包装器的命令).
你已经完成了你的转换,这很棒,现在进入回购B并做:
hg export -o 'changeset-%R.patch' 1:tip
这将为repo B中的每个变更集创建一个变更集 - ##.补丁,除了第一个(编号为零).
现在去回购C并导入它们:
hg import $(ls *.patch | sort -V)
如果revA2和revB1确实相同,那么应该干净利落地应用.
| 归档时间: | 
 | 
| 查看次数: | 3392 次 | 
| 最近记录: |