加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

版本控制 – 使用未提交的更改从“hg update”恢复

发布时间:2020-12-16 22:58:49 所属栏目:Python 来源:网络整理
导读:我一直在使用Mercurial遇到以下问题,这非常烦人: 我正在进行一些修订A. 我有本地更改,我打算在A之上提交或修改,但还没有. 我想去修订版B,但我忘了我有本地修改! 我做了hg更新B. Mercurial“帮助”尝试将我的本地更改重新设置为在B之上应用.这通常会导致冲
我一直在使用Mercurial遇到以下问题,这非常烦人:

>我正在进行一些修订A.
>我有本地更改,我打算在A之上提交或修改,但还没有.
>我想去修订版B,但我忘了我有本地修改!
>我做了hg更新B. Mercurial“帮助”尝试将我的本地更改重新设置为在B之上应用.这通常会导致冲突,现在它要求我修复冲突.

但是,我不想修复冲突!我不希望我的本地更改完全适用于B之上.我希望他们留在A,或者作为A之后的新提交,或者根据具体情况修改为A.

有没有办法可以从这个州恢复?我知道的唯一方法是

>修复B处的合并冲突
>回到A,再次发生合并冲突
>再次在A处修复合并冲突
>在A处提交我的更改并返回到B.

这是很多工作,而且毫无意义.我不应该将我的本地更改重新设置为在B之上应用,只是再次将它们重新绑定以应用于A之上.

如果没有更好的方法可以从这个错误中恢复,那么当你有本地更改时,是否有办法让hg拒绝进行更新?我从来不想这样做 – 如果我想要我只是提交本地更改并在B之上重新定义它们.

解决方法

在更新某个地方并返回后获取脏文件有点棘手. “技巧”是确保您的工作副本在第一次更新后具有脏文件.

所以你做完之后

hg update $SOMEWHERE

并发现混乱,因为Mercurial开始打开合并工具,平静地关闭合并工具,然后运行

hg resolve --unmark --all
hg resolve --all --tool internal:local

由于您对其进行了更改而合并的所有文件现在看起来就像它们在脏工作副本中所做的那样.这包括干净地合并的文件和提示您合并的文件.现在可以更新回来:

hg update $BACK
hg resolve --unmark --all
hg resolve --all --tool internal:local

你现在应该回到你开始的地方.如果您在第一次更新后修改了文件,那么它是您在第二次解析后看到的修改后的版本.这就是您希望在第一次更新后解析文件的原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读