【问题标题】:How to revert SVN commit on wrong branch without losing history如何在不丢失历史记录的情况下恢复错误分支上的 SVN 提交
【发布时间】:2017-06-07 13:38:20
【问题描述】:

我刚刚搞砸了,需要弄清楚如何在不破坏所有内容的情况下恢复多个提交。

我正在尝试将 branch1branch2 合并到一个临时分支中,如下所示:

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 中重新应用它们。我可以使用什么命令序列?

【问题讨论】:

    标签: svn merge


    【解决方案1】:

    我最终使用 TortoiseSVN 来完成这项工作。说明主要在这里: https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html

    1. 确保您的工作副本干净且位于branch1
    2. 打开log 对话
    3. 选择你不喜欢的版本(shift-click for range, ctrl-click of 个人转速)
    4. 右键单击并选择“从这些修订中恢复更改”。这将还原您的工作副本。
    5. svn ci . 提交对 repo 的更改(这是 rev 997)
    6. svn sw ^/branch1a 回到预期的分支
    7. svn merge -c 991,994,995 . 将还原的更改带到这里
    8. svn ci . 提交对 repo 的修订。

    我只是有点担心,当需要将 branch1a 合并回 branch1 时,修订版 997 会阻碍并阻止良好的合并。如果有人给出了一个很好的解决方案的好答案,我很乐意选择这个答案而不是这个答案(在我实际导入转速之前,这是部分答案)。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 2011-07-20
      • 2013-12-18
      • 1970-01-01
      • 2023-02-09
      • 2020-08-30
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      相关资源
      最近更新 更多