Ich habe einige Freunde, die möglicherweise daran interessiert sind, ein Versionskontrollsystem für unsere bevorstehenden Masterarbeiten (Latex-Dokumente und verschiedene Programmierungen) zu erlernen. Ich spreche hier nicht von irgendetwas Großem und Kompliziertem, sondern nur davon, es für Backups, das Betrachten alter Revisionen und einige grundlegende Verzweigungen und Zusammenführungen zu verwenden.
Ich denke jedoch, dass es eine gute Idee ist, eine zu wählen, die für einen Anfänger leicht zu erlernen ist. Die Frage ist also, welches Versionskontrollsystem würden Sie jemandem empfehlen, der neu in solchen Dingen ist, um es zu lernen?
Ich persönlich habe Git und Mercurial ein bisschen benutzt und im Moment denke ich, dass ich zu Mercurial tendiere. Bazaar habe ich allerdings noch nicht ausprobiert.
Soweit meine Eindrücke zu den für neue Benutzer geeigneten Funktionen:
Mercurial
Vorteile:
- Nummerierung der Revisionen
- Einfaches Auschecken eines alten Commits, Bearbeiten und Einfügen
- Einfaches Zusammenführen direkt mit einem Mergetool
- Einfache Verzweigung (?)
- Schöne Plugins wie glog
Nachteile:
- Zweige und Lesezeichen können beide für das verwendet werden, was Git als Verzweigung bezeichnet - das könnte ein wenig verwirrend sein
- Gibt nicht viele Informationen darüber, was bei der Ausführung eines Befehls geschieht/falsch ist
Git
Vorteile:
- Vollständige Kontrolle (zumindest wird der Eindruck erweckt)
- Ausführliche Hilfe und Informationen, wenn etwas schief geht
Nachteile:
- Einige schwierige Konzepte (wie der Bereitstellungsraum)
- Einige Verzweigungsoperationen können etwas schwierig sein
Basar
Ich habe es noch nicht ausprobiert...
Was meinen Sie dazu? Bitte folgen Sie dem gute subjektive Leitlinien hier bei der Beantwortung.
0 Stimmen
Ich sehe, dass du einige Vorteile für Mercurial hast, die du praktischerweise von der Git-Liste ausgelassen hast. Ziemlich voreingenommen?
1 Stimmen
@Kevin: Paula möchte anscheinend, dass diese Frage als Community-Wiki erstellt wird. Also füge ruhig deine eigenen Vor- und Nachteile hinzu ;)
0 Stimmen
Ich denke nicht, dass wir gemeinsam an dieser Pro/Con-Liste arbeiten sollten, da sie von Anfang an ziemlich voreingenommen ist. Eine einfache Liste wichtiger Funktionen wäre besser, aber ich bezweifle, dass es für diese Frage wirklich wichtig ist.
0 Stimmen
Der wichtigste Vorteil von Git - sein einzigartiges lokales Branching-Modell - fehlt seltsamerweise in den meisten Pro/Kontra-Listen, die ich zu diesem Thema gesehen habe. Aber diese Funktion allein entscheidet für mich - ich könnte nicht mehr darauf verzichten (zumindest würde ich nicht wollen).
0 Stimmen
Möglicher Duplikat: stackoverflow.com/questions/4420566/scm-choice-for-a-new-user
2 Stimmen
@Sven: hg unterstützt die gleiche Art von Zweigen. Gehen Sie einfach zurück zu jeder Revision und bestätigen Sie diese.
0 Stimmen
@Wim: Aus der verlinkten Seite: "Sie können Wege finden, um einige davon mit anderen Systemen zu machen, aber die Arbeit ist viel schwieriger und fehleranfälliger. Git macht diesen Prozess unglaublich einfach und verändert die Art, wie die meisten Entwickler arbeiten, wenn sie es lernen." Als ich vor einigen Jahren hg ausprobiert habe, hatte ich die gleiche Erfahrung. Vielleicht haben sich die Dinge inzwischen geändert. (Und natürlich ist die verlinkte Seite nicht gerade unvoreingenommen...)
2 Stimmen
@Sven: Soweit ich das beurteilen kann, gibt es nichts Schwieriges oder Fehleranfälliges an
hg update -r
, einige Änderungen vorzunehmen undhg commit -m "verzweigt!
". Der Autor denkt wahrscheinlich, dasshg clone
der einzige Weg ist, um zu verzweigen. Die verdächtig lange Zeit, die er für "verzweigt" in seinen Leistungszahlen aufgezeichnet hat, scheint dies zu bestätigen.