在提交其他更改之前,如何修复并提交Mercurial中的一个更改?
我有一个使用Mercurial的项目,我独自一人在做,我经常发现自己一次又一次地处于同样的情况:在做某件事的过程中,我意识到,在我完成当前的工作之前,其他的更改应该被修复并提交。所以,我尝试创建一个“匿名分支” 但不幸的是,它不能处理未提交的更改(我真的不想提交未完成的工作)。所以,每次,我用源代码复制目录,恢复到以前的版本,修复,提交,切换回我的工作副本,提取更改并继续我的工作。。。但这需要太多的时间,所以也许有更好的方法来做到这一点,而仅仅是一个副本的来源?多谢各位在提交其他更改之前,如何修复并提交Mercurial中的一个更改?,mercurial,workflow,Mercurial,Workflow,我有一个使用Mercurial的项目,我独自一人在做,我经常发现自己一次又一次地处于同样的情况:在做某件事的过程中,我意识到,在我完成当前的工作之前,其他的更改应该被修复并提交。所以,我尝试创建一个“匿名分支” 但不幸的是,它不能处理未提交的更改(我真的不想提交未完成的工作)。所以,每次,我用源代码复制目录,恢复到以前的版本,修复,提交,切换回我的工作副本,提取更改并继续我的工作。。。但这需要太多的时间,所以也许有更好的方法来做到这一点,而仅仅是一个副本的来源?多谢各位 顺便说一句,这可能与问题
顺便说一句,这可能与问题相同,但我的想法是“是否可以将默认分支中未完成的工作保持“原样”状态,然后在不加载外部补丁的情况下对其进行处理?”(无论如何,如果它是重复的,请随时关闭它)有未完成的提交不是一件坏事。它可以帮助你在硬盘崩溃等情况下生存下来。为什么不用“this is progress”这样的提交消息提交您的进行中代码,做您需要做的任何事情,然后继续处理它 根据定义,旧的提交是未完成的。这就是为什么你在他们之后做了更多的事情。不要担心旧存储库的状态
当然,当您在特性分支中工作时,您应该进行补救,这样您就可以将代码推送到一个不是默认分支的分支,这是解决“间歇工作”任务的三种方法
- 使用:保存所有当前更改
,在clean WC中进行所需的独立更改,提交,恢复工作的中间结果,保存在步骤1hg shelve--all
hg unshelve
- 使用匿名分支:按原样提交您的WC,
到上一次提交,进行“必须在”更改,提交,返回到旧头,合并头,继续工作hg up
- 使用:作为起点,第一章:“不耐烦者的Mq”(在您的案例中,qrefresh和qfinish之间将是纯提交)
(修订版m)hg提交-m“未完成的工作”
hg up-r“tip^1”
(修订版N)hg提交-m“基本更改”
(线性化历史)hg-rebase-rm-dn
hg up
hg提交--amend-m“完全依赖更改”
PS:我看不出变更集的反向集合有什么不好的地方,即在CSET中写入
a=something(data)
,在CSET+1中写入function something(int subject){…}
如果“必须”变更是不同的代码块,为什么不hg record
,然后选择“必须”的大块头,在其他人之前提交。所以,实际上我的问题是重复的…:-/好的,无论如何谢谢:)@OlegKuznetsov-虽然它没有被标记为重复,但它不是重复的为什么添加--检查?如果删除--check
标志,它将更新到上一版本,同时保留(就地合并)您的本地更改。然后,一旦进入上一个版本,就可以提交要更改的位,它将创建一个匿名分支。
hg update --check PREVIOUS_REVISION