2010-01-24 6 views
17

Mit Phil Haack und anderen vor kurzem zwitschern über CodePlex's move to support Mercurial als DVCS, dachte ich, es könnte einen Blick wert sein.Wie funktioniert Mercurial gegen GIT und SVN?

Als jemand, der derzeit SVN für persönliche Projekte und TFS bei The Office verwendet, wie vergleicht Mercurial in Bezug auf Benutzerfreundlichkeit, Funktionen und was sind einige der besseren Mercurial-Hosting-Services zur Verfügung?

+0

Dies sollte ein "Git" -Tag haben. –

+0

@Chad Okere - fair genug. Erledigt. –

+0

Es gibt nicht genug Tags, um diese SO Frage vollständig zu beschreiben! D: – Spoike

Antwort

18

Soweit zu Git zu vergleichen, Google hat vor kurzem einen interessanten Vergleich von Git und Mercurial auf deren Bewertung auf Basis veröffentlicht: http://code.google.com/p/support/wiki/DVCSAnalysis

+0

Perfect. Das hat alles, was ich brauche. Danke für den Tipp, @Dave Ward. –

+4

Beachten Sie, dass diese Analyse veraltet ist, zum Beispiel Git hat nicht so lange Zeit Unterstützung für "Smart" HTTP-Transport erworben. –

+0

Etwas mehr Zeug ist veraltet: Mercurial hat jetzt auch Rebase (nicht mehr ein git Vorteil); Git-Gc ist jetzt etwas automatisch (nicht mehr ein sinnvoller Vorteil), und Windows-Unterstützung ist weniger schrecklich (nicht wirklich sicher, das ist immer noch ein Vorteil hg). Und natürlich hat Microsoft angekündigt, Git-Unterstützung in ihre TFS-Linie zu integrieren. –

1

Eine Sache, nicht im Google-Vergleich erwähnt war, dass Git viel schneller zu sein scheint. Mercurial scheint schnell genug (zumindest mit kleinen Projekten), aber Git ist einfach blitzschnell, egal wie groß das Projekt ist.

+0

Denken Sie jedoch daran, dass Sie Blitz und Überschallstrahl vergleichen. Das einzige wirkliche Problem, das Git hat, ist Tool-Unterstützung auf anderen Plattformen als Linux, aber ich nehme an, dass sich das irgendwann ändern wird. – Esko

+2

Tatsächlich werden sowohl Git als auch Mercurial sehr langsam, wenn die überprüfte Größe des Projekts anfängt, in Richtung GBs zu kriechen. Also ist die Größe wichtig. – Spoike

+3

TortoiseGit ist ein sehr gutes GUI-Tool für Windows. Ich denke, die Benutzer anderer Plattformen sind meistens mit dem Kommandozeilen-Tool zufrieden, vielleicht kombiniert mit einer grafischen Baumvisualisierungssoftware wie gitg. – Tronic

0

SVN hat viel Unterstützung von Drittanbieter-Tools einschließlich IDE und Bug-Tracking-Systeme usw. einschließlich der ziemlich nett TortoiseSVN.

Die meisten Entwickler haben SVN in der Vergangenheit verwendet, so dass neue Entwickler mit SVN schneller in Ihrem Team sind.

Wie wichtig diese Art von Sache für Sie ist, können nur Sie entscheiden.

6

Verglichen mit SVN, für das ich vor kurzem wieder mit einer Weile zusammengearbeitet habe, ist Mercurial erstaunlich. Es gab mir ein Gefühl von "Warum sollte jemand SVN mehr benutzen?". SVN ist ziemlich gut, aber Mercurial funktioniert einfach besser.

Für persönliche Projekte würde ich ohne Zweifel zu einem DVCS wechseln. Es macht alles, was SVN macht, aber besser und viel schneller. Die "Lernkurve" versteht nur einige Begriffe.

In der Realität ist der Unterschied zwischen SVN und einem DVCS, dass jeder ein vollständiges funktionierendes Repository auf seinem System hat. Wenn Sie sich für einen "Master-Server" entscheiden, ist dieser identisch mit dem, was Sie haben, außer dass er so eingerichtet ist, dass er kontinuierlich über ein Netzwerk bedient wird. Um diese zu synchronisieren, senden/empfangen (drücken/ziehen) Sie die Änderungen zwischen diesen Repositories.

1

Es ist wahrscheinlich nur ich, aber ich benutze Mercurial seit sechs Monaten, nach mehreren Jahren der ausschließlichen Verwendung von SVN, und aus irgendeinem Grund passt es auch nicht mein geistiges Modell. Ich weiß genau, was ich in SVN mache, und wenn etwas schief geht, weiß ich immer, wie ich es beheben kann. Conceptually habe ich kein Problem mit Mercurial - liebe, dass ich zum Beispiel eine lokale Kopie des Repository habe - aber in der Praxis verliere ich immer Dinge. Ich denke, es könnte daran liegen, dass eine Zusammenführung in SVN eine ziemlich große Sache ist, während es in Hg der normale Weg der Dinge ist. Ich möchte mehr Kontrolle über meine Zusammenführungen haben. In SVN ist immer klar, welcher Changeset vorausgeht, aber Mercurial scheint das zu vermissen. Selbst TortoiseHg, das visuell sehr nett ist, scheint nicht genug Möglichkeiten zu bieten, genau zu sehen, was zusammengeführt wird.