简短的回答:未跟踪文件中不包括的克隆。
如果您第一次删除.hg元数据目录并重新初始化一个新目录,它将不再跟踪任何文件;在init中没有默认添加文件。所以当你克隆它的时候,你会得到一个空的仓库的克隆。像这样:
$ hg clone https://www.mercurial-scm.org/repo/hello my-hello
requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd my-hello
$ ls
Makefile hello.c
$ hg st --all
C Makefile
C hello.c
上面是没有修改文件的完全正常的回购副本。
$ rm -rf .hg
$ hg st --all
abort: There is no Mercurial repository here (.hg not found)!
现在没有回购了。
$ hg init
$ hg st --all
? Makefile
? hello.c
现在有一个,但它不再跟踪文件,因此“?”。
$ hg clone . ../new-my-hello
updating to branch default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../new-my-hello
$ hg st --all
$ ls
该克隆不包含未跟踪文件,因此来自“my-hello”的两个“?-files”未被克隆。
为什么要删除克隆附带的.hg文件夹?通过这样做,你就失去了所有的版本库历史记录,并且你的新回购(在你的`hg init`将与你在9.e中克隆它的回购不兼容),你将无法将更改推回去) – Matt 2011-01-09 22:13:33