Kurz gesagt, was sind die Vorteile von git und mercurial gegenüber Subversion? [Duplikat]

7

Kann mir jemand sagen, was der Hype über Git und Mercurial gegenüber Subversion ist?

    
yogurt 19.05.2009, 21:52
quelle

9 Antworten

6

Was Git betrifft, denke ich, dass es ziemlich viele gibt, von denen (meiner Meinung nach) Git die fortschrittlichste Verzweigungs- und Merging-Unterstützung ist. Git macht es wirklich, wirklich einfach zu verzweigen, und seine Fähigkeit, in Änderungen zusammenzuführen, ist viel, viel besser als die von SVNs. Tools wie gitk machen es auch wirklich sehr einfach, die Beziehungen zwischen Zweigen in einem Git-Repository zu visualisieren.

Es gibt zahlreiche andere Vorteile. Ich denke Git hat bessere Tools und eine bessere Toolchain, und die Tatsache, dass es kein zentrales Repo und ein "ausgechecktes" Repo braucht, ist schön, wenn Sie selbst an kleinen Projekten arbeiten. Ich denke jedoch, dass das Zusammenführen und Verzweigen der größte Vorteil ist.

(Vieles gilt auch für Mercurial, obwohl ich Mercurials Betonung lokaler Klone für "Verzweigung" nie mochte; ich bevorzuge Git's Methode, alle Zweige in demselben Repo zu halten.)

    
mipadi 19.05.2009 22:01
quelle
5

Ein Pro-Git-Vergleich zu verschiedenen Quellcodeverwaltungssystemen finden Sie unter Ссылка . Was ich an Git am meisten mag ist:

  • Es ist schneller.
  • Es wird kein Quellcode wie SVN im .svn-Unterverzeichnis dupliziert.
  • Es ermöglicht das Offline-Senden und dann das Drücken.
ismail 19.05.2009 21:57
quelle
4

Git und Mercurial sind verteilt , SVN ist nicht.

Vorteil oder nicht? Sie entscheiden ...

    
Yuval Adam 19.05.2009 21:57
quelle
4

Sagen Sie, Sie haben ein persönliches Projekt, würden Sie es unter Versionskontrolle stellen? (Ich hoffe du sagst ja).

Wenn ja, würden Sie nicht lieber etwas Einfaches? Git erfordert nicht, dass Sie einen Server oder etwas Ähnliches einrichten. Ihr Arbeitsverzeichnis ist Ihr Repository.

Willst du eine neue verrückte Idee ausprobieren? Verzweigen und experimentieren Sie einfach in diesem Zweig. Wenn es erfolgreich ist, gehen Sie zurück zu Ihrem Hauptzweig und fusionieren. Wenn deine Idee nicht gut gelaufen ist, geh einfach zurück zum Hauptzweig und lösche den Zweig crazy_idea.

Willst du an einer crazy_idea arbeiten, aber entwickelst auch den Master-Zweig normal weiter? Auch hier kein Problem, Sie können zwischen den Zweigen hin- und herwechseln und nur crazy_idea zusammenführen, nachdem es genug gereift ist.

Selbst wenn Sie in einem Team sind, kann jeder Entwickler (oder eine kleine Gruppe von Entwicklern) an einer Idee in einem experimentellen Zweig arbeiten, bevor er sie mit dem Rest des Codes zusammenführt.

Ich nehme an, es macht Open Source noch einfacher. Sie müssen niemandem Zugriffsberechtigungen erteilen. Wenn jemand ein großartiges Feature implementiert hat, kann er Sie bitten, von ihm zu ziehen. Wenn Sie mögen, was Sie sehen, können Sie es zusammenführen.

Hier ist eine Überraschung: Git ist viel einfacher als Svn.

Wirklich. Ich habe immer von Versionskontrolle gehört, aber ich habe es nie getan. Als ich versuchte, meinen Code unter einen lokalen Server zu stellen, war das ein Alptraum. Ich hasste es wirklich.

Jetzt lege ich alles unter Git.

    
hasen 19.05.2009 22:59
quelle
3

Dies ist nicht so sehr, dass es auf der einen Seite "besser" ist als auf der anderen, sondern dass GIT, Mercurial und andere Ihnen erlauben, auf eine Art zu arbeiten, die sich von Subversion oder CVS unterscheidet. Subversion und CVS bieten nur eine zentralisierte Repository-Struktur, während die anderen "verteilt" werden. Der verteilte Ansatz erleichtert die Ad-hoc-Zusammenarbeit zwischen Entwicklern und kann sich auch auf die Verwaltung von Änderungsgruppen auf dem eigenen Computer auswirken.

Welche Methode für Sie am besten geeignet ist, müssen Sie oder Ihre Organisation entscheiden.

    
dwc 19.05.2009 21:58
quelle
3

Für mich eine wichtige Sache: SVN unterstützt Tags nicht wirklich:

  1. Tags sind nicht symbolisch. Sie sind Pfade in Repo (COW-Kopien)
  2. In SVN gehört eine Datei zu einem Tag (da das Tag eine Kopie der Datei ist). In anderen Systemen und in der menschlichen Intuition: Tag gehört zu einer Datei. Es ist eine andere Beziehung.
  3. Daher ist es schwierig, etwas wie "alle Tags, die die Dateien haben" aufzulisten. Diese Information wird nicht direkt im SVN-Repository gespeichert.
anon 19.05.2009 21:59
quelle
2

Sie haben den gleichen Bereich von "Differenzen" zwischen Git und SVN als zwischen Git und CleaCase
(Siehe meinen Beitrag zu diesen " VCS-Kernkonzepten
")

  • SVN: linear zentrales VCS, wobei Zweig und Tag identisch sind (ein Punkt in einem linearen Verlauf).
  • Git: DAG ( Directed Azyklic Graph ) verteilt VCS, wobei jeder Pfad des Graphen ein Zweig ist und jeder Arbeitsbereich das vollständige Repository ist.

Da Git inhaltsorientiert ist, wird es viel effizienter verschmelzen als Subversion mit:

  • sehr schnell innerhalb seines Graphen finden, was zusammengeführt werden muss
  • Anwenden des richtigen Patches
VonC 19.05.2009 22:05
quelle
1

Für mich SVN funktioniert gut. Für 1 - 10 Entwickler, basierend auf Erfahrung.

Es ist klar, wo die "echte" Version liegt - in der Cloud auf dem redundanten Host (hoffentlich ein Ort, der sich um Ihre Daten und Uptime kümmert). Es sieht aus wie etwa git lesen ist, dass es komplizierter, größer und besser in der Lage ist. Wenn Sie also ein ‚svn zentralisierte‘ Workflow wollen, (siehe Ссылка site) mit weniger Möglichkeiten, Dinge zu tun, etc, dann SVN verwenden.

Ich habe CVS, bis es klar war, wo der ganze Spaß war. Ich denke, in ein paar Jahren, wenn ich wieder zu ändern, wird es git sein? Aber wirklich - wenn Sie an einem anderen Tag als dem Tag, an dem Sie es eingerichtet haben, Zeit mit Ihrem Versionskontrollsystem verbringen, dann machen Sie etwas falsch.

    
Tom Andersen 19.05.2009 22:52
quelle
1

Sie organisieren Revisionen konzeptionell als Changesets, mit denen Sie Ihren Code sehr einfach verzweigen / zusammenführen können. Das Zusammenführen einer Verzweigung in SVN ist eine qualvoll schmerzhafte Erfahrung.

    
Adam Lassek 19.05.2009 23:08
quelle