我想合并不同分支中两个文件的历史记录。两个文件的内容不一样
例子Branch1 a.txt
History(rev)
1 make file
7 Modify file
15 add functions
Branch 2 b.txt
32 make file
45 Modify file
60 add functions
Expectation
a.txt
1 make file
7 Modify file
15 add functions
32 make file
45 Modify file
60 add functions
文件名可以是a.txt或b.txt
- 你可以很容易做到(伪造历史)
- 如果
Branch1
是Branch2
的祖先(测试它),你可以尝试一些技巧dump of repo (dump-edit-import intonew)repo,测试结果,用扩展的repo替换未修改的repo):
艰难
为了有共同的历史记录,你必须在r15和r32之间有新的或编辑的现有更改集,其中rename a.txt ->b.t txt将被记录…但是,如果您在现有历史记录的中间添加修订,您还必须更改所有后续修订的编号(AFAICR)也
- 在创建转储之前,您必须创建这样的"rename-revision;在任何受影响分支的HEAD中(以便在转储中复制粘贴其表示) <
- 转储/gh>
- 编辑
- 加载完全修改的转储
更简单的方法
- p。1 .困难的方式,写|记住这个提交的rev-id N
- p。2 . hard way
- 从开始加载转储部分到15:32之间的某个地方,注意最大加载版本M
- 加载"重命名"只N,在步骤1中准备
- 在M+1范围内加载转储的剩余部分:N-1(从断点到结束,不包含最后一个"技术");修订,在抛光历史中不需要)