Gibt es Vorteile bei der Verwendung eines DVCS für einen Einzelentwickler?

19

Im Moment verwende ich Visual Svn auf meinem Server und habe Ankhsvn / Tortoise auf meinem PC. Es funktioniert gut genug und ich muss nicht wechseln, aber wenn ich einige Vorteile der Verwendung eines DVCS sehe, kann ich es versuchen.

Wenn es jedoch keinen Sinn oder Unterschied gibt, es ohne andere Leute zu benutzen, dann werde ich mich nicht darum kümmern.

Also noch einmal, ich frage, gibt es irgendwelche Vorteile bei der Verwendung eines DVCS, wenn Sie der einzige Entwickler sind?

Steven Evers
quelle
1
Siehe ähnlichen Beitrag auf stackoverflow: stackoverflow.com/questions/179161/… . Alles, was Sie wissen müssen, ist dort gut zusammengefasst.
Ysolik
Also wurde meine Frage als genaues Duplikat wie dieses geschlossen. Diese Frage beantwortet meine leider nicht. Schieben und ziehen Sie Jungs vom Master, wenn Sie ein Solo-Entwickler sind, oder verzweigen und verschmelzen Sie? Ich versuche nur zu sehen, wie man ein DVCS richtig einsetzt, wenn man
alleine ist
1
Backups sind im Wesentlichen nur ein weiterer Klon. Das kann eines Tages sehr wichtig sein. Auch Git Tooling ist Lichtjahre vor SVN.
Arbeiten Sie jemals an einem Laptop außerhalb Ihres Servers?
JBRWilkinson

Antworten:

19

Ja! Ich denke, der größte Vorteil ist die bessere Unterstützung für das Verzweigen und Zusammenführen, die von vielen DVCS angeboten wird. Verzweigen und Zusammenführen ist in SVN eine Art Schmerz im Arsch; Es ist ärgerlich genug, dass es sich nicht lohnt, kleine, kurzlebige Zweige für schnelle Funktionen, Fehlerkorrekturen oder Experimente zu erstellen, aber das Zusammenführen ist auch ärgerlich genug, dass es mühsam ist, auch langlebige Zweige zu erstellen. Andererseits ist das Verzweigen und Zusammenführen in Git ein Kinderspiel, so dass ich für fast jede Fehlerbehebung oder jedes Feature, an dem ich arbeite, einen (lokalen) Zweig erstelle.

Ich denke, dass die von Git angebotenen Tools zur Visualisierung von Repos, Grepping Logs usw. auch viel besser sind als in SVN (obwohl das eher eine Git-Sache als eine DVCS-spezifische Sache ist).

Ein DVCS benötigt auch keinen zentralen Server. Wenn Sie SVN als Entwickler verwenden, müssen Sie ein lokales Repo zum Pushen erstellen, was bei Git nicht erforderlich ist, da jedes Repo den vollständigen Verlauf enthält. Die Archivierung eines Repos ist nur eine Frage des Reißverschlusses Ihres Projekts - es gibt keine "zentrale Datenbank", die gesichert werden müsste.

Ich habe vor fast vier Jahren angefangen, Git zu verwenden, nachdem ich SVN für eine Weile verwendet habe, und ich habe nicht zurückgeschaut.

mipadi
quelle
4
Es gibt eine Ansicht , dass DVCSs nicht Verschmelzung zu erleichtern, aber die DVCS Anwender bei der Durchführung verschmilzt mehr praktiziert. Dadurch wird das subjektive Erscheinungsbild von Zusammenführungen erleichtert. Natürlich ist es die subjektive Sichtweise, die zählt.
Richard
3
DVCS nicht ausschließlich gleich Git
Murph
6
@Richard Aber das ist falsch, zentralisierte Tools haben in der Regel einen linearen Verlauf, der komplexe Zusammenführungen nicht gut unterstützt.
Alternative
2
@Murph: Das stimmt, aber ich benutze Git, also habe ich es in meinem Beispiel benutzt.
Mipadi
7

Ich benutze ein DVCS viel für meine persönlichen Sachen. (Ich bin einer von denen, die bei $ HOME in Git sind .) Es gibt mehrere Vorteile:

  • Das macht die Replikation zwischen meinem Laptop und Desktop- und Laborcomputern wirklich einfach. Obwohl dies auch für SVN zutrifft ...
  • Ich kann mich auf dem Laptop festlegen, auch wenn ich keinen Internetzugang habe.
  • Backups sind so einfach wie git pull.
  • Ich kann git citoolviele Änderungen in logisch große Festschreibungen aufteilen, auch wenn ich vor der Entscheidung für eine Festschreibung viele unabhängige Änderungen vorgenommen habe. Mir ist kein Tool bekannt, das dies in Subversion ermöglicht.
  • Wenn ich ein Open-Source-Projekt patchen muss, ist es einfacher, die Dinge zu organisieren, indem Sie ein neues Git-Repository im Projektverzeichnis erstellen, als eine zweite Kopie des Quellbaums zu erstellen, den ich patche. (Dies ist mit Subversion nicht einfach möglich, da Sie ein separates Repository auf Ihrer Festplatte benötigen.)
  • Ich benutze die einfachen Verzweigungsfunktionen, um Revisionen von anderen Personen einzuchecken. Wenn ich beispielsweise eine Konferenzarbeit mit meinem Berater bearbeite, obwohl er keinen Zugriff auf das Repository hat, kann ich ihm eine Kopie der Arbeit senden und seine Revisionen in einem Zweig einchecken, der auf der von mir gesendeten Version basiert ihn, und verwenden Sie dann git merge, um seine Überarbeitungen mit allem zusammenzuführen, was ich in der Zwischenzeit getan habe.

Git hat mich daran gewöhnt, über all meine Änderungen in logischen Blöcken nachzudenken, viel mehr als Subversion es jemals getan hat.

Ken Bloom
quelle
(oder Git holen für einen Spiegel)
5

Meine Mutter schaltet das Modem aus, wenn es zu spät zum Schlafen ist. Mit DVCS kann ich weiterhin mit VCS arbeiten, nachdem das Modem ausgeschaltet ist.

linquize
quelle
1
Ich würde es als "arbeiten können von einem Flugzeug aus" oder "arbeiten können, wenn bitbucket.com ausfällt" bezeichnen, aber +1, um den Offline-Fall abzudecken.
Wyatt Barnett
Auch Orte im Freien ohne 3G-Netz.
19.1.13
3

Nun, die Standardantwort wäre: "Wenn (was auch immer Sie jetzt verwenden) für Sie funktioniert, warum würden Sie sich ändern?".

Aber ja, auch wenn es keinen Grund für eine Änderung gibt, finde ich die Verwendung von DVCS etwas einfacher als die "älteren Modelle". Das Folgende gilt für Mercurial , das ich am häufigsten benutze, sodass Ihre Laufleistung je nach verwendetem System variieren kann.

  • Sehr einfach zu bedienen - Ich habe alle Befehle gefunden, die ich in einer Stunde oder so brauche
  • alles ist lokal (der Remote-Server muss nicht online sein)
  • Sehr einfaches Verzweigen / Zusammenführen - Sie denken nicht einmal mehr an diese Dinge
  • einfaches Klonen (auch eine Art von Verzweigung) - und im Allgemeinen eine viel benutzerfreundlichere Oberfläche (ich fand es angenehmer als Git auf Windows; auch einige Konzepte sind einfacher; dh erfordern kein Denken auf meiner Seite, was zu führt) weniger Fummelei mit VS und mehr Arbeit erledigt)
  • funktioniert gut mit svn

Jumping Gate zu einem Mercurial-Intro und einem Blog (hübsche Farben ;-) mit nützlichen Tipps .

Turm
quelle
Hmm, CVS hat früher für uns gearbeitet, aber bei weitem nicht so gut wie Subversion, als wir dorthin wechselten. Neue Spielzeuge geben Ihnen neue Möglichkeiten - aus genau diesem Grund überlege ich, ob Mercurial jetzt eine bessere Option ist (insbesondere, weil ich FogBugz verwende) und auch das Potenzial von Wahrhaftigkeit ...
Murph
3
Der Wechsel von SVN zu Mercurial war für mich eine Offenbarung. Es wurde von Joels wundervollem hginit.com inspiriert, und ich habe nie zurückgeschaut.
Adam Crossland