Was ist der Unterschied zwischen den verschiedenen Arten der Versionskontrolle?

StackOverflow https://stackoverflow.com/questions/3859

  •  08-06-2019
  •  | 
  •  

Frage

Nachdem mir von mindestens 10 Leuten auf SO gesagt wurde, dass die Versionskontrolle eine gute Sache sei, auch wenn es nur ich betreffe, habe ich jetzt eine Folgefrage.

Was ist der Unterschied zwischen all den verschiedenen Arten der Versionskontrolle und gibt es eine Anleitung, die jemand für die Versionskontrolle kennt, die sehr einfach und leicht zu verstehen ist?

War es hilfreich?

Lösung

Eric Sink hat einen Guter Überblick über die Quellcodeverwaltung.Es gibt auch welche bestehende Fragen hier auf SO.

Andere Tipps

Wir scheinen uns im goldenen Zeitalter der Versionskontrolle zu befinden, mit einer Menge Auswahlmöglichkeiten, die alle ihre Vor- und Nachteile haben.

Hier sind die, die meiner Meinung nach am häufigsten verwendet werden:

  • svn – derzeit das beliebteste Open Source?
  • Git – sehr heiß, seit Linus darauf umgestiegen ist
  • Quecksilber – einige kluge Leute, die ich kenne, schwören darauf
  • cvs – das, von dem jeder wechselt
  • notgedrungen - meiner Meinung nach die besten Funktionen, aber es ist kein Open Source.Die Zwei-Benutzer-Lizenz ist allerdings kostenlos.
  • visual sourcesafe – Ich bin nicht viel in der Microsoft-Welt und habe daher keine Ahnung davon, abgesehen davon, dass die Leute sich gerne darüber lustig machen, so wie sie über alles von Microsoft reden.
  • sccs – aus historischem Interesse erwähnen wir dies, den Urgroßvater vieler der oben genannten
  • rcs – und der Urvater vieler der oben genannten

Meine Empfehlung:Mit Git, SVN oder Perforce sind Sie am sichersten, da viele Leute sie verwenden, sie plattformübergreifend sind, eine gute Benutzeroberfläche haben, Sie können Bücher darüber kaufen usw.

Berücksichtigen Sie keine Lebensläufe, SCCs und RCS, sie sind antik.

Das Schöne daran ist, dass Sie, da Ihre Projekte relativ klein sind, Ihren Code auf ein neues System verschieben können, sobald Sie mehr Erfahrung haben und sich entscheiden, mit einem anderen System zu arbeiten.

An alle, die gerade erst mit der Versionskontrolle beginnen:

Bitte verwenden Sie wegen des Hypes nicht git (oder hg oder bzr).

Verwenden Sie git (oder hg oder bzr), weil sie es sind bessere Werkzeuge zur Verwaltung von Quellcode als SVN.

Ich habe SVN einige Jahre lang bei der Arbeit verwendet und bin vor 6 Monaten auf Git umgestiegen.Ohne zuerst SVN zu lernen, wäre ich völlig verloren, wenn es um die Verwendung eines DVCS geht.

Für Leute, die gerade erst mit der Versionskontrolle beginnen:

  • Beginnen Sie mit dem Herunterladen von SVN
  • Lernen Warum Sie benötigen eine Versionskontrolle
  • Erfahren Sie, wie Sie Commit, Checkout und Branch durchführen
  • Erfahren Sie, warum die Zusammenführung in SVN so mühsam ist

Dann wechseln Sie zu einem DVCS und lernen Sie:

  • So klonen/verzweigen/festschreiben
  • Wie einfach es ist, Ihre Zweige wieder zusammenzuführen (werden Sie verrückt nach Zweigen!)
  • Wie einfach es ist, den Commit-Verlauf neu zu schreiben und Ihre Zweige beizubehalten
    auf dem neuesten Stand mit der Hauptlinie (git rebase -i, )
  • So veröffentlichen Sie Ihre Änderungen, damit andere davon profitieren können

tldr;Menge:

Beginnen Sie mit SVN, erlernen Sie die Grundlagen und machen Sie dann den Abschluss zum DVCS.

Ich würde beginnen mit:

Sobald Sie es gelesen haben, laden Sie es herunter und installieren Sie es SVN, TortoiseSVN und überfliege die ersten paar Kapitel des Buch und legen Sie los.

Die Versionskontrolle ist für die Entwicklung unerlässlich, auch wenn Sie alleine arbeiten, denn sie schützt Sie vor sich selbst.Wenn Sie einen Fehler machen, können Sie ganz einfach auf eine frühere Version Ihres Codes zurückgreifen, von der Sie wissen, dass sie funktioniert.Dies gibt Ihnen auch die Freiheit, Ihren Code zu erkunden und damit zu experimentieren, da Sie sich keine Gedanken darüber machen müssen, ob das, was Sie tun, umkehrbar ist oder nicht.Es gibt zwei Hauptzweige von Versionskontrollsystemen (VCS): zentralisiert und verteilt.

Zentralisierte VCS basieren auf der Verwendung eines zentralen Servers, auf dem jeder ein Projekt „auscheckt“, daran arbeitet und seine Änderungen an den Server „überträgt“, damit jeder andere sie verwenden kann.Die wichtigsten zentralisierten VCS sind CVS und SVN.Beide stehen in der Kritik, weil das „Zusammenführen“ von „Zweigen“ bei ihnen äußerst schmerzhaft ist.[MACHEN:Schreiben Sie eine Erklärung dazu, was Zweige sind und warum das Zusammenführen mit CVS und SVN schwierig ist.]

Mit verteiltem VCS verfügt jeder über einen eigenen Server, auf dem Sie Änderungen von anderen Personen „abrufen“ und Änderungen an einen Server „übertragen“ können.Die am häufigsten verwendeten verteilten VCS sind Git und Mercurial.[MACHEN:Schreiben Sie mehr über Distributed VCS]

Wenn Sie an einem Projekt arbeiten, empfehle ich dringend die Verwendung eines verteilten VCS.Ich empfehle Git, weil es unglaublich schnell ist, aber es wurde kritisiert, dass es zu schwer zu bedienen sei.Wenn es Ihnen nichts ausmacht, ein kommerzielles Produkt zu verwenden, ist BitKeeper angeblich einfach zu bedienen.

Der Antwort Zu eine andere Frage gilt auch hier vor allem

Jon Works sagte:
Das Wichtigste an der Versionskontrolle ist:

Fangen Sie einfach an, es zu verwenden

Seine Antwort geht detaillierter, und ich möchte nicht des Plaigerismus beschuldigt werden, also schauen Sie mal rein.

Die einfache Antwort lautet: Mögen Sie Rückgängig-Schaltflächen?Die Antwort ist natürlich ja, denn wir als Menschen machen ständig Fehler.

Als Programmierer ist es jedoch oft so, dass es mehrere Stunden des Testens, Code-Änderns, Überschreibens, Löschens, Verschiebens und Umbenennens von Dateien dauern kann, bis wir herausfinden, dass die Methode, mit der wir ein Problem beheben möchten, völlig falsch ist Der Code ist fehlerhafter als zu Beginn.

Daher ist die Quellcodeverwaltung eine riesige Rückgängig-Schaltfläche, um den Code auf eine frühere Zeit zurückzusetzen, als das Gras noch grün und das Essen reichlich war.Und nicht nur das: Aufgrund der Funktionsweise der Quellcodeverwaltung können Sie immer noch eine Kopie Ihres defekten Codes behalten, für den Fall, dass Sie ein paar Wochen später noch einmal darauf zurückgreifen und sich die guten Ideen herauspicken möchten, die dabei herausgekommen sind .

Ich persönlich verwende (obwohl man es als übertrieben bezeichnen könnte) eine kostenlose Einzelbenutzerlizenzversion von Source Gear Fortress (das ist ihr Vault-Quellcodeverwaltungsprodukt mit Funktionen zur Fehlerverfolgung).Ich finde die Benutzeroberfläche wirklich einfach zu bedienen, sie unterstützt sowohl das Modell „Auschecken“ > „Bearbeiten“ > „Einchecken“ als auch das Modell „Bearbeiten“ > „Zusammenführen“ > „Festschreiben“.Die Einrichtung kann jedoch etwas schwierig sein, da Sie eine lokale Kopie von ISS und SQL Server ausführen müssen.Vielleicht möchten Sie ein kleineres Programm ausprobieren, wie es in anderen Antworten hier empfohlen wird.Sehen Sie, was Ihnen gefällt und was Sie sich leisten können.

Mark sagte:

Git – sehr heiß, seit Linus darauf umgestiegen ist

Ich möchte nur darauf hinweisen, dass Linus nicht dazu gewechselt ist, Linus schrieb Es.

Wenn Sie alleine in einer Windows-Umgebung arbeiten, dann ist dies der Fall Einzellizenz für SourceGear's Vault ist kostenlos.

Wir nutzen und mögen Mercurial.Es folgt einem verteilten Modell – es eliminiert einen Teil des Gefühls, Arbeit „einchecken“ zu müssen.Mozilla hat wechselte zu Mercurial, was ein gutes Zeichen dafür ist, dass es nicht so schnell verschwinden wird.Ein Nachteil ist meiner Meinung nach, dass es dafür keine sehr gute GUI gibt.Wenn Sie jedoch mit der Befehlszeile vertraut sind, ist sie ziemlich praktisch.

Mercurial-Dokumentation Inoffizielles Handbuch

Beginnen Sie einfach mit der Verwendung der Quellcodeverwaltung, egal welchen Typ Sie verwenden.Was Sie verwenden, spielt keine Rolle;Es ist die Verwendung, die wichtig ist

Wie alle anderen hängt auch SC stark von Ihren Bedürfnissen, Ihrem Budget, Ihrer Umgebung usw. ab.

Im Grunde ist die Quellcodeverwaltung darauf ausgelegt, ein zentrales Repository für Ihren gesamten Code bereitzustellen und zu verfolgen, wer wann was damit gemacht hat.Es sollte eine vollständige Historie vorhanden sein, und Sie können Produkte erhalten, die vollständige Änderungsprotokolle, Audits, Zugriffskontrolle und so weiter durchführen ...

Jedes verfügbare Produkt beginnt (sozusagen) zu glänzen, wenn Sie darüber nachdenken, wie Sie SC in Ihre Umgebung integrieren möchten oder müssen (sei es Ihr persönlicher Code und Ihre Dokumente oder ein großes Unternehmen).Und wenn die Leute sie verwenden, entdecken sie, dass das Tool Einschränkungen hat, also schreiben sie neue.SVN entstand aus den Einschränkungen, die die Entwickler bei CVS sahen.Linus wollte etwas Besseres für den Linux-Kernel, also haben wir es jetzt Idiot.

Ich würde sagen, fangen Sie an, eines zu verwenden (so etwas wie SVN, das sehr beliebt und ziemlich einfach zu verwenden ist) und sehen Sie, wie es funktioniert.Im Laufe der Zeit stellen Sie möglicherweise fest, dass Sie andere Funktionen benötigen oder eine Schnittstelle zu anderen Systemen benötigen, sodass Sie möglicherweise SourceSafe oder ein anderes Tool benötigen.

Die Quellcodeverwaltung ist immer wichtig, und während Sie Versionen von PSD-Dateien oder ähnlichem bei der Arbeit manuell neu nummerieren können, werden Sie vergessen, das Batch-Skript ein- oder zweimal auszuführen, oder wahrscheinlich vergessen, welche Nummer gegangen ist mit welcher Änderung.Hier können die meisten dieser SC-Tools hilfreich sein (solange Sie ein-/auschecken).

Siehe auch diese SO-Frage:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top