2011-01-10 36 views
4

Ich habe ein Visual Studio 2010 Projekt unter Mercurial. Ich benutze Mercurial entweder über die Befehlszeile oder TortoiseHG. Ich möchte an einem neuen Feature arbeiten, also klicke ich das Repo. Aber jetzt bin ich verwirrt, soll ich ein ganzes neues Projekt in VS2010 importieren, nur um an dieser Funktion zu arbeiten? Ich habe versucht, die VS-Lösung zu importieren, die geklont wurde, aber viele Build-Fehler von Abhängigkeiten konnte nicht gefunden werden Fehler, die ich vermute, weil ich versuche, diese geklonte Lösung wie die ursprüngliche Lösung zu laden und einige Pfade sind falsch (keine Ahnung, wo obwohl).Mercurial und Visual Studio

Wie sollen Sie Mercurial und VS2010 verwenden?

Antwort

3

Es klingt wie Ihr Stammproblem ist, dass Sie Referenzen mit vollständigen Pfaden anstelle von relativen Pfaden hinzufügen. Sie müssen das korrigieren, bevor die Verzweigung für Sie einfach wird. Normalerweise mache ich einen "References" -Ordner, der sich auf der gleichen Ordner-Ebene wie die .sln-Datei befindet, aber eine Ebene höher als die einzelnen Projekte, dann verzweigen Sie die ganze Sache.

Example Folder Structure 
    MySolution 
     MySolution.sln 
     References 
     MyProject1 
     MyProject2 

Wie für VS-Integration, ich TortoiseHG verwenden mit VisualHG kombiniert, es funktioniert super.

Es gibt auch Mercurial Toolbar

Other tools

4

Cloning eine exakte Kopie der Original-Repository erzeugt.
Der Klon sollte genau wie das Originalrepository funktionieren, also öffnen Sie Ihre geklonte Lösung genau so wie die ursprüngliche.

Wenn Sie Build-Fehler in der geklonten Lösung bekommen, aber nicht in der ursprünglichen, gibt es wahrscheinlich einige Abhängigkeiten (= 3rd Party Assemblies, die Ihre Anwendung benötigt, um ordnungsgemäß zu funktionieren), die in der ursprünglichen Lösung vorhanden waren, aber nicht festgeschrieben wurden zum Repository.
Wenn Sie also das Repository klonen, fehlen die referenzierten Dateien im Klon ... also funktioniert der Klon nicht.

Quelle Steuerung arbeitet der beste Weg, wenn Sie in der Komplettlösung zu überprüfen, inklusive aller Abhängigkeiten:
Machen Sie einen „Libs“ Ordner irgendwo in Ihrer Lösung, setzen Sie alle Ihre Abhängigkeiten innerhalb Bezugs diese Dateien von Ihrem Lösung und übergeben Sie den gesamten Ordner "Libs" in das Repository.

Wenn Sie es auf diese Weise tun, können Sie das Repository von einem anderen Computer klonen und die Lösung öffnen, ohne sich um irgendwelche Abhängigkeiten kümmern zu müssen ... es funktioniert einfach.

0

Das kann oder darf nicht verwandt sein, aber ich musste hotfix KB2286556 laden, um den Fehler "Unable to update Projektabhängigkeiten" von VS2010 loszuwerden, wenn Sie einen neuen Checkout unseres Codes erstellen. Es scheint, dass dies nur bei Setup- und Bereitstellungsprojekten geschieht, wenn die Kompilierung über die Befehlszeile aufgerufen wird (wie in unserem Build-System), aber wenn es passiert, ist es ein sehr frustrierendes Problem, die Lösung dafür zu finden.

Außerdem ist VisualHg eine gute Möglichkeit, Versionierung innerhalb von Visual Studio zu verfolgen und aufzurufen.

0

Während VisualHG immer noch ein wunderbares Werkzeug nach so vielen Jahren ist, würde ich auch vorschlagen, HgSccPackage als eine sehr praktikable Alternative für alle Visual Studio-Versionen (bis zu VS2015).

  • PROS: Stand-alone-Paket (TortoiseHg nicht erforderlich ist).
  • CONTRA: Hat nicht alle praktischen Funktionen von TortoiseHg wie Git support (was ich unglaublich praktisch finden GitHub -hosted Projekte zu handhaben) und Mercurial Keyring.

Beide sind Freeware und kann durch das Visual Studio GUI (Werkzeuge>Erweiterungen und Updates ...) installiert werden.

Für einen ausführlicheren Vergleich zwischen ihnen können Sie auch the following post lesen.