似乎你想要的是补丁队列。因为您有未提交的更改,并且您希望在提交之前从新的仓库中提取......
$ hg qinit -c # initialize mq for your repo containing the uncommitted changes
$ hg qnew name_of_patch # create patch that contains your uncommitted changes
$ hg qpop # resets your working dir back to the parent changeset
不过不用担心,您的更改在 .hg/patches/name_of_patch 中是安全可靠的,您可以自己查看.....
$ cat .hg/patches/name_of_patch
现在拉入新的仓库
$ hg pull -u http://location.of.new/repo # pull in changes from new repo update working dir
$ hg qpush # apply your uncommitted changes to new repo
如果你很幸运,你不会有合并冲突,你可以继续提交补丁......
$ hg qfinish -a # change all applied patches to changeset
如果你愿意的话……
$ hg push http://location.of.new/repo
如果 repos 不相关,只需在新 repo 上初始化一个补丁 repo。并手动复制补丁并将其添加到 .hg/patches/series 文件中。
假设补丁已创建。克隆新的仓库
$ hg clone http://location.of.new/repo ./new_repo
初始化补丁仓库
$ cd ./new_repo && hg qinit -c
复制补丁
$ cp ../old_repo/.hg/patches/name_of_patch .hg/patches/
使用某种编辑器编辑系列文件
$ your_favorite_editor .hg/patches/series
name_of_patch # <---put this in the series file
将你的补丁应用到新的仓库
$ hg qpush
如果没有合并冲突并且您确信它有效
$ hg qfinish -a