2011-06-29 178 views
3

我是一個沒有經驗的Mercurial用戶。我正在使用VS2010和Mercurial。我有一切工作很好地對單個存儲庫,其中包含一個解決方案文件和嵌套在「父」文件夾中的兩個項目。每當我改變一個文件,然後提交過程會檢測到更改等,等等。Mercurial - 添加不在存儲庫文件夾中的項目

然後,我添加了第三個項目。我在一個新文件夾中添加了這個項目,其中新文件夾是包含原始解決方案文件(嵌套在原始2個項目中)的頂級文件夾的同位體。雖然第三個項目已被添加到解決方案文件中,但Mercurial並未將其視爲「屬於」源代碼管理解決方案。事實上,它並沒有表現爲完全處於源代碼控制之下。

即使位於映射到原始Mercurial存儲庫的原始文件夾「外部」,我如何將第三個項目添加到同一個存儲庫?

非常感謝。

回答

0

您應該爲每個項目使用不同的存儲庫。這是因爲當你在hg中進行提交時,提交是針對整個層次結構的,而不僅僅是你所在的目錄(和下方)。更多細節請看最後一個重大概念區別http://hginit.com/00.html

3

不,您不能添加任何不在存儲庫根目錄下的東西。 hg add將以X not under root消息中止。將文件移入存儲庫或移動存儲庫,以便所有文件都位於根目錄下(請注意,這會產生大量文件移動,而且您確實不應這樣做)。

1

我發現了通過創建符號鏈接(Windows中的mklink)來管理一個回購庫中多個文件夾的最佳方式。我通常在Visual Studio中工作,所以我通常有一個代碼庫和一個網站目錄,但它們不在同一個父文件夾中。

可以在Windows創建一個符號鏈接,像這樣:

mklink /J "Target Path" "Source Path" 

所以我想有一個結構,像這樣:

 
project root 
- Code Library 
- Solution File 
- Web Folder (symlink from locally-hosted website folder) 
相關問題