考虑以下情况:
$ md repo1; cd repo1
$ echo some data > myfile
$ hg init; hg addremove; hg commit -m "First commit."
adding myfile
myfile
committed changeset 0:32c7aa047f3b
$ hg serve
listening at http://vostro.rath.org:8000/ (bound to *:8000)
然后在另一个终端:
$ hg clone http://vostro.rath.org:8000/ repo2
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
updating to branch default
resolving manifests
getting myfile
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd repo2; hg phase tip
0: public
..并再次在第一个终端:
127.0.0.1 - - [25/May/2013 16:38:40] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks
^Cinterrupted!
$ hg phase tip
0: draft
在我看来,这看起来非常错误。有人刚刚从第一个存储库中提取了变更集,所以它显然是公开的。但是,它仍然在存储库中显示为“草稿”。
有人可以解释这种行为的理由吗?作为第一个存储库的所有者,我非常想知道何时有人拉了修订版(例如,我不再对其进行变基),所以我认为如果 hg 服务器进程会更新阶段是明智的因此。