2009-05-08 6 views
12

Ich habe gerade angefangen, an einem Projekt zu arbeiten, das Mercurial als Versionskontrollsystem verwendet, und ich brauche einige grundlegende Tipps, wie man das benutzt. Bitte verwenden Sie diese Frage, um einige einführende Tipps zu dieser Technologie zu geben.Einführung in Mercurial

Vor allem, ich bin für Tipps zu den besten Programmen der Suche zu nutzen und die besten Techniken zu verwenden (Filialen, in und out-Prüfung usw. Ich brauche die besten Praktiken zu lernen !)

Antwort

13

Ich weiß, dass Sie bereits die Mercurial-Seite haben, aber die nützlichste Ressource für mich war die Mercurial book. Es ist ein ausgezeichneter Überblick über das Programm und wie man es benutzt.

Ich fand den besten Weg zu lernen, Mercurial war nur, um es für ein Projekt zu verwenden. Ich importierte ein Projekt, das ich aus Subversion exportiert hatte, in Mercurial und führte damit eine regelmäßige Entwicklung durch. Ich habe dafür gesorgt, dass ich das Repository für verschiedene Changesets geklont habe, damit ich mich an das Zusammenführen und Aktualisieren gewöhnen konnte. Ich habe nicht alle fortgeschrittenen Anwendungen gelernt, aber ich bin jetzt ziemlich gut damit vertraut und bin noch nicht zu Subversion zurückgekehrt.

Viele Projekte haben verschiedene Techniken für den Commit-Workflow. Einige haben Änderungen von den Entwicklern, wie zentralisierte Systeme, und einige werden die Änderungen von Mitwirkenden (zum Beispiel Linux) ziehen. Es ist schwierig, zu viel zu verallgemeinern, ohne den Prozess für Ihr Projekt zu kennen.

Dies ist, wie ich meine Entwicklung:

  • Zentralisierte Baum auf einer Dateifreigabe oder http, project-trunk oder project genannt, dass der endgültige Projektversion
  • Ein sauberer Baum auf meinem System, das ich von Klon das entfernte Repository und verwenden, um zurück zum Repository zu schieben. Ich klonen dann von diesem Baum für meine Änderungen. Ich nenne diesen Baum project-local
  • Klon der project-local Baum für jede meiner Änderungen: z. project-addusers, project-141 usw.
  • Nachdem ich mit den Commits zu einem Baum fertig bin, habe ich die Änderungen dann drücken Sie auf das project-local Repository
  • Schließlich drücken Sie die Änderungen in der project-local zu project-trunk

Ich habe der saubere project-local Baum, denn dann kann ich alle Changesets gleichzeitig zurück zum Stamm schieben, was hilfreich ist, wenn es eine Gruppe verwandter Änderungen gibt, die zusammenrücken müssen.

Wie für Werkzeuge, hängt es von Ihrer Plattform ab. Ich benutze nur das Vanilla Kommandozeilenwerkzeug. Von TortoiseSVN kommend, war es eine kleine Veränderung, zur Kommandozeile zu gehen. Aber mir geht es jetzt gut. Ich habe versucht, TortoiseHg, aber es funktioniert nicht gut auf meinem Windows 7 x64 virtuellen Maschine. Ich habe gehört, dass es viel besser auf den unterstützten 32-Bit-Plattformen ist.

+0

Das Buch wurde mit seiner letzten Iteration besser und ist reif genug, um in gedruckter Form veröffentlicht zu werden. Wenn Sie dies lesen und immer noch nach einem Mercurial-Startpunkt suchen, ist es definitiv der richtige Ort. – quark

+1

Als zusätzlichen Bonus finden Sie die Quelle für das Buch in einem Mercurial-Repository auf BitBucket: http://bitbucket.org/bos/hgbook. Das heißt, Sie können Änderungen vornehmen und sie dem Autor mit dem Tool selbst präsentieren. – quark

2

Wenn Sie den neuesten TortoiseHG-Client verwenden und umfassen das Verzeichnis in der PATH-Umgebung installieren, werden Sie in der Lage sein, sowohl die nette GUI verwenden sie bieten, und die Befehlszeile ‚hg‘

ich nicht die Verwendung empfehlen mq Erweiterungen zu viel. Sie sorgen für eine großartige Arbeitsumgebung.

Ich verwende die Warteschlangen, um lokale Änderungen gegen ein Subversion-Repository zu verwalten. Ich mache meine lokalen kurzfristigen Änderungen und benutze mercurial, um mit Subversion und dem Rest des Teams synchron zu bleiben.

13

Hier ist ein helpful tutorial auf Mercurial geschrieben von Joel Spolsky.

Es behandelt die grundlegende Verwendung und Befehle sowie die Arbeit mit Mercurial auf einer konzeptionellen Ebene. Wenn Sie mit SVN bereits vertraut sind, dann ist der erste Teil definitiv lesenswert: Er handelt von den wesentlichen konzeptionellen Unterschieden zwischen SVN und Mercurial, denn der Versuch, Mercurial auf die gleiche Weise wie SVN zu verwenden, verlangt nach Schwierigkeiten.

+1

Dieses Tutorial ist absolut erstaunlich, so klar und einfach zu verstehen. Genau das, was ich als jemand gebraucht habe, der DVCSs und Versionskontrolle im Allgemeinen völlig neu ist. – Acorn

+0

Höchstwahrscheinlich warnen Sie vor der Verwendung von Mercurial, als wäre es SVN, aber für viele grundlegende Operationen ist dies immer noch möglich. Und Erweiterungen wie * hgsubversion * (siehe https://bitbucket.org/durin42/hgsubversion/overview/) deuten sogar darauf hin, dass dies vollkommen korrekt ist.Nichtsdestotrotz setzen spezielle Funktionen wie * Mercurial Queues * (http://mercurial.selenic.com/wiki/MqExtension) die wahre Kraft von Mercurial frei und Sie verpassen es, bevor Sie sich mit diesen Funktionen vertraut machen. – hasienda

0

Neben dem Mercurial Buch und der Hg Init Tutorial werden Ich mag das Beispiel gesteuerte Anleitung, die ich geschrieben habe erwähnen:

  • Mercurial Kick Start
  • Es zeigt

      , wie man Begann mit Mercurial und behandelt auch einige fortgeschrittenere Konzepte wie benannte Zweige und hgsubversion. Ich habe es benutzt, um Mercurial neuen Benutzern beizubringen, und sie schienen es zu mögen.