我假设这是一个奇怪的问题,但我不确定何时为存储库创建了一个新头,例如在这个问题中:
解释哪条线导致任何引用的存储库中的磁头数量发生变化
1:/ home / user> hg clone http://remoteserver/mainrepository clone1
2:/ home / user> hg clone http://remoteserver/mainrepository clone2
3:/ home / user> cd clone1
4:/ home / user / clone1> echo one> a.txt#创建一个包含“one”的新文件“a.txt”
5:/ home / user / clone1>回声二> b.txt#创建一个包含“two”的新文件“b.txt”
6:/ home / user / clone1> echo 3> c.txt#创建一个包含“three”的新文件“c.txt”
7:/ home / user / clone1> hg添加a.txt b.txt c.txt
8:/ home / user / clone1> hg commit -m"添加文件"
9:/ home / user / clone1> cd ../ clone2
10:/ home / user / clone2> echo none> a.txt#创建一个包含“none”的新文件“a.txt”
11:/ home / user / clone2> echo none> b.txt#创建一个包含“none”的新文件“b.txt”
12:/ home / user / clone2> echo none> c.txt#创建一个包含“none”的新文件“b.txt”
13:/ home / user / clone2> hg添加a.txt
14:/ home / user / clone2> hg commit -m"一个文件"
15:/ home / user / clone2> hg add b.txt
16:/ home / user / clone2> hg commit -m"另一个文件"
17:/ home / user / clone2> hg pull ../ clone1
18:/ home / user / clone2> hg add c.txt
19:/ home / user / clone2> hg commit -m"第三个文件"
20:/ home / user / clone2> hg push -f
21:/ home / user / clone2> cd ../ clone1
22:/ home / user / clone1> hg push -f
23:/ home / user / clone1> hg pull
我不是在寻找这个问题的具体答案,只是一些能帮助我了解它何时发生以及原因的关键。
提前致谢!
答案 0 :(得分:3)
可以通过三种方式创建新头:
--force
时,会在您推送到的存储库上创建一个新头。提示:当你不必使用时,千万不要使用--force
(或其等效的-f)在您的情况下,步骤#22将向远程存储库引入新头。步骤#20中的push --force
并没有帮助您看到它只发生在#22中,因为您系统地静音了正在创建新头的mercurials提示。
当您合并不同的头(或rebase - 但不会传播,除非在非发布存储库和阶段< public之类的特定条件下),头数会减少。