Краткий ответ: неотслеживаемые файлы не включаются в клон.
Если вы сначала удалите каталог метаданных .hg и повторно инициализируете новый, он больше не будет отслеживать файлы;по умолчанию файлы не добавляются при инициализации.Поэтому, когда вы клонируете его, вы получаете клон пустого хранилища.Вот так:
$ 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-привет "не клонированы.