masteryi
V2EX  ›  问与答

svn 怎么撤回某次提交?

  •  
  •   masteryi · Feb 12, 2019 · 4225 views
    This topic created in 2660 days ago, the information mentioned may be changed or developed.

    刚开始没建分支,现在要把我加的新功能提交到新分支上,原来的撤回。回滚的话是不是别人后来的提交也没了。

    5 replies    2019-02-13 09:57:06 +08:00
    msg7086
        1
    msg7086  
       Feb 12, 2019
    revert 掉你的提交。也就是产生两个完全相反的提交,跑完以后完全抵消掉。
    SVN 没有太灵活的底层编辑功能。要永久删除一个提交是可以的但是很麻烦……
    SoloCompany
        2
    SoloCompany  
       Feb 12, 2019
    如果不需要完全删除的话,可以采用这样的方式撤回

    svn cp folder@old folder
    svn commit -m ‘ revert folder to -r old'

    也就是说用一个旧版的状态覆盖当前的最新状态
    delectate
        3
    delectate  
       Feb 13, 2019 via Android
    google 搜索 ✘
    v2 提问 ✔
    masteryi
        4
    masteryi  
    OP
       Feb 13, 2019
    @SoloCompany 同事的提交是不是也被覆盖了
    SoloCompany
        5
    SoloCompany  
       Feb 13, 2019
    @masteryi #4 可以通知作者 cherry-pick 回来,但 svn 无法在 commit 时保留 meta 信息(除非使用后台操作),cherry-pick 后的 commit 日期信息和作者信息都会变了

    如果你的目的不是不希望看到历史的话,直接 svn merge -c -your-commit 就能实现回滚(反向 cherry-pick merge, 注意 revision 数字是负数),
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4773 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 466ea39e · 37ms · UTC 04:02 · PVG 12:02 · LAX 21:02 · JFK 00:02
    ♥ Do have faith in what you're doing.