在如何使用 mercurial 进行原始结帐?Martin Geisler 讨论如何使用以下方法删除已提交的 Mercurial 文件:
hg strip "outgoing()"
但是,如果我想保留我添加到“ outgoing()
”中的文件怎么办 - 例如:
两个用户 a 和 b——从同一个变更集开始
用户一:
echo "A" > A.txt; hg ci -M -m ""; hg push
用户 b(忘记运行hg pull -u
):
echo "B" > B.txt; hg ci -M -m "" B.txt;
echo "C" > C.txt; hg ci -M -m "" C.txt;
如果用户 b 运行,hg strip "outgoing()"
则 B.txt 和 C.txt 将丢失。hg rollback
不是一个选项,因为有两个提交。
用户 b 可以将他的文件恢复为“本地添加 - 未跟踪”,然后执行hg pull -u
获取 A.txt,然后处理 B.txt 和 C.txt 的添加/提交/推送吗?
Martin Geisler 在前面提到的线程中回答了这个问题(我删除并移到这里的评论:
hg update "p1(min(outgoing()))"
hg revert --all --rev tip
hg strip "outgoing()"
hg pull -u
现在用户 c 可以在新文件 B.txt 和 C.txt 中完成他的工作并提交+推送这些文件。
其他方法可以做到这一点?