如何在不丢失历史记录的情况下恢复错误分支上的 SVN 提交
How to revert SVN commit on wrong branch without losing history
我搞砸了,需要弄清楚如何在不破坏所有内容的情况下恢复多个提交。
我正在尝试将 branch1
和 branch2
合并到一个临时分支中,如下所示:
1) svn cp ^/branch1 ^/branch1a // Create a branch
2) svn sw ^/branch1a // Switch to that branch
3) svn merge ^/branch2 . // Merge branch2 to branch1a
4) <do lots of manual work>
5) svn ci . // revision 991,994,995, return to step 4 if needed
6) svn sw ^/branch1 // When happy, switch back to branch1
7) svn merge ^/branch1a . // Merge our happy changes back into branch1
8) svn ci // Commit these changes
我仍在重复第 4-5 步,但意识到我忘记执行第 2 步。我需要恢复 branch1
的修订并将它们应用到 branch1a
,所以我可以继续工作。
我尝试使用 svn merge -c991,994,995 .
进行还原,但我的工作副本似乎没有变化。此外,我需要确保我可以保留这些更改并在 branch1a
中重新应用它们。我可以使用的命令序列是什么?
我最终使用 TortoiseSVN 来完成这个。说明主要在这里:
https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html
- 确保您的工作副本是干净的并且
branch1
- 打开
log
对话框
- Select 您不喜欢的修订(shift-click 范围,ctrl-click of
个别转速)
- 右击select"Revert changes from these revisions"。这将还原您的工作副本。
svn ci .
将更改提交到 repo(这是版本 997)
svn sw ^/branch1a
回到预期的分支
svn merge -c 991,994,995 .
将还原的更改带到此处
svn ci .
提交对 repo 的修订。
我只是有点担心,当需要将 branch1a
合并回 branch1
时,修订版 997 会妨碍并阻止良好的合并。如果有人给出了一个很好的解决方案的好答案,我会很高兴 select 这个答案(在我真正开始导入 revs 之前是部分的)。
我搞砸了,需要弄清楚如何在不破坏所有内容的情况下恢复多个提交。
我正在尝试将 branch1
和 branch2
合并到一个临时分支中,如下所示:
1) svn cp ^/branch1 ^/branch1a // Create a branch
2) svn sw ^/branch1a // Switch to that branch
3) svn merge ^/branch2 . // Merge branch2 to branch1a
4) <do lots of manual work>
5) svn ci . // revision 991,994,995, return to step 4 if needed
6) svn sw ^/branch1 // When happy, switch back to branch1
7) svn merge ^/branch1a . // Merge our happy changes back into branch1
8) svn ci // Commit these changes
我仍在重复第 4-5 步,但意识到我忘记执行第 2 步。我需要恢复 branch1
的修订并将它们应用到 branch1a
,所以我可以继续工作。
我尝试使用 svn merge -c991,994,995 .
进行还原,但我的工作副本似乎没有变化。此外,我需要确保我可以保留这些更改并在 branch1a
中重新应用它们。我可以使用的命令序列是什么?
我最终使用 TortoiseSVN 来完成这个。说明主要在这里: https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html
- 确保您的工作副本是干净的并且
branch1
- 打开
log
对话框 - Select 您不喜欢的修订(shift-click 范围,ctrl-click of 个别转速)
- 右击select"Revert changes from these revisions"。这将还原您的工作副本。
svn ci .
将更改提交到 repo(这是版本 997)svn sw ^/branch1a
回到预期的分支svn merge -c 991,994,995 .
将还原的更改带到此处svn ci .
提交对 repo 的修订。
我只是有点担心,当需要将 branch1a
合并回 branch1
时,修订版 997 会妨碍并阻止良好的合并。如果有人给出了一个很好的解决方案的好答案,我会很高兴 select 这个答案(在我真正开始导入 revs 之前是部分的)。