使用SVN merge重做手动合并
我正在尝试修复发生以下情况的SVN项目: 从主干中提取特征分支 对该分支有定期提交。 当需要将分支合并回主干时,开发人员没有使用SVN merge,而是使用WinMerge(!),因此我们丢失了所有的历史记录。 此外,手动WinMerge中还缺少一些小错误修复。 这发生在几周前,从那时起就有对trunk的定期提交,所以我们不能简单地恢复 所以,我试图返回并正确地重做合并,但事实证明这比我想象的要复杂 如果我试图恢复到“坏合并”之前的某个点,然后进行适当的合并,我就无法重新合并BM之后发生的其他更改 所以,我想我必须使用svnadmin dump和load,类似于,但我不能精确地计算出我需要做什么使用SVN merge重做手动合并,svn,merge,restore,svnadmin,Svn,Merge,Restore,Svnadmin,我正在尝试修复发生以下情况的SVN项目: 从主干中提取特征分支 对该分支有定期提交。 当需要将分支合并回主干时,开发人员没有使用SVN merge,而是使用WinMerge(!),因此我们丢失了所有的历史记录。 此外,手动WinMerge中还缺少一些小错误修复。 这发生在几周前,从那时起就有对trunk的定期提交,所以我们不能简单地恢复 所以,我试图返回并正确地重做合并,但事实证明这比我想象的要复杂 如果我试图恢复到“坏合并”之前的某个点,然后进行适当的合并,我就无法重新合并BM之后发生的其他更
Tom可能不是最优雅的方式,但在客户端是可行的:
- svn将中继头导出到目录A中
- svn签出中继到目录B的错误提交
- 将文件从A复制到B
- svn签出中继到目录C的错误提交-1
- 执行分支的svn合并,并将主干中分支的起点合并到工作副本C中
- 将C复制到A
- svn更新B至HEAD
- 解决冲突
- 提交B
A----------+
| |
| |
\_/ \_/
B X
| |
| |
\_/ \_/
C <======= Y Merge without being recorded by svn as a merge (right?), aka BadMerge
|
|
\_/
D
|
|
\_/
E
A----------+
| |
| |
\_/ \_/
Bx
| |
| |
\_/ \_/
查看第140页的svn命令。。。