2012-03-07 47 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