2012-03-07 31 views
2

我有一个_project_目录(嗯,它不是名字项目但没关系,下划线在那里虽然)与几个子目录和一堆文件。 100Mb左右的大小,内外兼有.hg回购的大小。hg状态忽略一个新的移动目录

现在,我已经有另一个,我们打电话_something_目录与.hg回购里面,我已经完全移动到_project_和运行hg status。没有出现!

东西有日期,运行速度高达落后5年,其中一些年龄超过项目回购,但我不认为应该的问题的文件。

没有.hgignore在任何这些,任何地方。

有没有人有线索为什么hg status不会在其子目录中显示这些“新”文件?名称中的下划线与它有什么关系?

...

“嵌套”回购?

\_project_\.hg 
\_project_\_something_\.hg 
+0

您有嵌套的存储库。正确? – zerkms 2012-03-07 03:28:42

+0

@zerkms - 你的意思是上面的?对。 – Rook 2012-03-07 03:32:02

+0

你不能只将它们嵌套。嵌套存储库以特殊方式处理:http://mercurial.selenic.com/wiki/Subrepository?action=show&redirect=subrepos – zerkms 2012-03-07 03:35:38

回答

5

你得到了问题,因为你手动嵌套存储库。这是错误的,不应该工作。您将看不到任何文件添加到嵌套存储库,而使用hg status作为外部文件。适当的嵌套将解决问题。

https://www.mercurial-scm.org/wiki/Subrepository

+0

感谢zerkms!我不在乎嵌套的回购,只是该状态总是显示文件的当前状态。无论如何,我不会失去任何......非常重要......谢谢! – Rook 2012-03-07 03:43:10

2

如果你巢库就像您演示:

\_project_\.hg 
\_project_\_something_\.hg 

那么所有的Mercurial命令将非常仔细地忽略嵌套_something_库。

这样做是因为在两个存储库中跟踪_something_中的文件会很奇怪。此外,有很多谁的版本控制自己的主目录,以便有两个

/home/mg/.hg/ 

/home/mg/src/foo/.hg/ 

foo库仅仅是一个东西,我的工作克隆人。当我在我的主目录的根目录中时,hg status不会在foo中显示文件,这真的很不错。

像zerkms指出的那样,我们有一个名为subrepositories的功能,可让您以特殊方式处理嵌套存储库。不过,我认为这不是你想要的。

我认为你不想失去你的文件的历史_something_和你希望有_something__project_。如果是这样,那么您可以重新命名_something_中的文件,将它们向下推一层,然后在顶层添加_project_中的文件。详情请参阅this answer