我正在寻找执行以下操作的最佳做法:
当我需要实现功能或修复错误时,我正在从主要的(主干)创建新的Mercurial存储库。 然后,在几天或几周内,我在新创建的存储库中实现任务,进行提交并定期与主干合并。在新存储库中的代码将通过所有代码审查之后,我应该提供一个存储库,其中所有更改都会折叠为单个修订版。
我这样做的常用方法(rdiff extension应该启用):
hg clone ~/repos/trunk ~/repos/new-collapsed cd ~/repos/new-collapsed hg diff ~/repos/new > new.diff patch -p1 < new.diff hg commit
除非在〜/ repos / new的更改中存在二进制文件,否则这几乎可以正常工作。另一种方式可能是:
hg clone ~/repos/trunk ~/repos/new-collapsed cd ~/repos/new-collapsed hg pull ~/repos/new hg update hg rollback then resolve possible conflicts and manually commit the changes
两种方式都让我看起来有点丑陋和非原生,所以我看看这个操作如何简化。我玩过rebase extension,但似乎hg rebase --collapse
命令不适用于上述工作流程。
欢迎任何想法。
答案 0 :(得分:1)
对于mercurial队列来说,这听起来很好。
答案 1 :(得分:0)
我使用histedit扩展程序执行类似操作。
我的工作流程如下:
hg histedit
并根据需要选择/弃置/弃置修订hg push
折叠后的回购至中央仓库我确保通过向本地repo根目录中的default-push
文件添加无效的.hg/hgrc
路径,我的本地仓库永远不会被推送到中央仓库。
答案 2 :(得分:0)
已解决:只需添加
即可[diff]
git = True
到您的hgrc文件,然后使用我的第一个rdiff扩展解决方案,将patch
替换为hg import
:
hg clone ~/repos/trunk ~/repos/new-collapsed
cd ~/repos/new-collapsed
hg diff ~/repos/new > new.diff
hg import new.diff
hg commit