2011-01-10 78 views
4

我有一個在mercurial下的visual studio 2010項目。我通過命令行或TortoiseHG使用mercurial。我想工作一個新功能,所以我克隆回購。但是現在我很困惑,我是否應該將一個全新的項目導入到VS2010中來處理這個功能?我試圖導入被克隆的VS解決方案,但從依賴關係無法找到錯誤,我承擔了很多構建錯誤,我認爲是因爲我試圖加載這個克隆的解決方案就像原來的解決方案和一些路徑是錯誤的(不知道哪裏雖然)。Mercurial和Visual Studio

你應該如何使用mercurial和VS2010?

回答

3

這聽起來像是你的根本問題是你使用完整路徑而不是相對路徑添加引用。在分支對你來說很容易之前,你需要糾正它。我通常會創建一個與「.sln」文件位於同一文件夾級別的「參考文件」文件夾,但是從單個項目開始一層,然後分支整個文件。

Example Folder Structure 
    MySolution 
     MySolution.sln 
     References 
     MyProject1 
     MyProject2 

至於VS集成,我用TortoiseHG結合VisualHG,它的偉大工程。

還有Mercurial Toolbar

Other tools

4

克隆產生的原始資料庫的精確副本。
克隆的工作方式應與原始存儲庫完全相同,因此您可以按照與原始存儲庫完全相同的方式打開克隆的解決方案。

如果在克隆的解決方案中出現構建錯誤,但在原始解決方案中出現錯誤,則可能存在一些依賴項(即應用程序需要正常工作的第三方程序集),這些依賴項存在於原始解決方案中,但未提交到存儲庫。
因此,當您克隆存儲庫時,所引用的文件在克隆中缺失......所以克隆將無法工作。

源控制工作的最好方法,如果你在完整的解決方案檢查,包括所有依賴
做一個「利布斯」文件夾中的某個地方在您的解決方案,把所有的依存關係裏面,從引用這些文件您解決方案和將整個「Libs」文件夾提交到存儲庫

如果你這樣做,你可以從另一臺機器克隆版本庫並打開解決方案,而不用擔心任何依賴關係......它只是起作用。

0

這可能是也可能不是相關的,但我不得不加載hotfix KB2286556爲了擺脫VS2010中的「無法更新項目依賴關係」錯誤時,建立一個新的結算我們的代碼。似乎只有在從命令行(例如在我們的構建系統中)調用編譯時纔會發生設置和部署項目,但是當它發生時,找到解決方案是一個非常令人沮喪的問題。

另外,VisualHg是一種在Visual Studio中跟蹤和調用版本控制的好方法。

0

雖然VisualHG在這麼多年後仍然是一個很棒的工具,但我也建議HgSccPackage是所有Visual Studio版本(最高VS2015)的非常可行的替代方案。

  • PROS:(TortoiseHg不需要)獨立包裝。
  • 缺點:不具有TortoiseHgGit support所有方便的功能(我覺得這令人難以置信的方便來處理GitHub上 -hosted項目)和水銀匙扣

他們兩個都是免費的,並且可以通過Visual Studio的GUI安裝(工具>擴展和更新...)。

對於他們之間的更廣泛的比較,你也可以閱讀the following post