更改修订 parents 以从历史记录中删除较早的修订?
Change revision parents to remove earlier revisions from history?
如何在 Mercurial 中快速重命名一棵树,如果这是原始结构:
A-B-C-D-E-F
我想改成:
D-E-F
(甚至 A-D-E-F
也行)
我用拼接图尝试了 this answer 中的建议,但失败并显示错误 splice map revision <hash> is not being converted, ignoring'
它也打印出abort: no node!
如有任何帮助,我们将不胜感激。谢谢。
我会使用 histedit
扩展来做到这一点:
首先,让我们创建一个具有您想要的结构的测试仓库:
hg init
echo "a" > file
hg ci -m "a"
echo "b" >> file
hg ci -m "b"
echo "c" >> file
hg ci -m "c"
echo "d" >> file
hg ci -m "d"
echo "e" >> file
hg ci -m "e"
echo "f" >> file
hg ci -m "f"
然后,执行 hg histedit
,并在您的编辑器中输入以下选项:
pick e4c09693d7a6 0 a
r 380d6d1ef006 1 b
r 33131e82bb1b 2 c
r pick 9325fb48b48e 3 d
pick 844ebb0b3844 4 e
pick bc85bc9ade8f 5 f
这将在回购协议中只留下三个提交。
请注意,要使其正常工作,您的存储库中的 phase 提交必须是草稿。您可能还需要激活 mercurial 附带的 histedit 扩展。
如何在 Mercurial 中快速重命名一棵树,如果这是原始结构:
A-B-C-D-E-F
我想改成:
D-E-F
(甚至 A-D-E-F
也行)
我用拼接图尝试了 this answer 中的建议,但失败并显示错误 splice map revision <hash> is not being converted, ignoring'
它也打印出abort: no node!
如有任何帮助,我们将不胜感激。谢谢。
我会使用 histedit
扩展来做到这一点:
首先,让我们创建一个具有您想要的结构的测试仓库:
hg init
echo "a" > file
hg ci -m "a"
echo "b" >> file
hg ci -m "b"
echo "c" >> file
hg ci -m "c"
echo "d" >> file
hg ci -m "d"
echo "e" >> file
hg ci -m "e"
echo "f" >> file
hg ci -m "f"
然后,执行 hg histedit
,并在您的编辑器中输入以下选项:
pick e4c09693d7a6 0 a
r 380d6d1ef006 1 b
r 33131e82bb1b 2 c
r pick 9325fb48b48e 3 d
pick 844ebb0b3844 4 e
pick bc85bc9ade8f 5 f
这将在回购协议中只留下三个提交。
请注意,要使其正常工作,您的存储库中的 phase 提交必须是草稿。您可能还需要激活 mercurial 附带的 histedit 扩展。