Ich habe versucht, Quellcode für ein paar Projekte zu verwenden, verstehe es aber immer noch nicht wirklich. Für diese Projekte haben wir TortoiseSVN verwendet und hatten nur eine Zeile mit Revisionen. (Kein Stamm, Zweig oder irgendetwas davon.) Wenn es einen empfohlenen Weg zum Einrichten von Quellcodeverwaltungssystemen gibt, was sind sie? Was sind die Gründe und Vorteile für die Einrichtung? Was sind die grundlegenden Unterschiede zwischen den Funktionen eines zentralisierten und verteilten Quellcodeverwaltungssystems?
Ich empfehle, das Folgende von Eric Sink auszuprobieren:
Eine Art von Revisionskontrollsystem ist wahrscheinlich das wichtigste Werkzeug, das ein Programmierer hat, um Codeänderungen zu überprüfen und zu verstehen, wer was zu wem gemacht hat. Selbst für Einzelperson-Projekte ist es von unschätzbarem Wert, den aktuellen Code mit früheren bekannten Arbeitsversionen vergleichen zu können, um zu verstehen, was aufgrund einer Änderung möglicherweise schief gegangen ist.
Stellen Sie sich Quellcodeverwaltung als riesigen "Undo" -Button für Ihren Quellcode vor. Jedes Mal, wenn Sie einchecken, fügen Sie einen Punkt hinzu, den Sie zurücksetzen können. Selbst wenn Sie keine Verzweigung / Zusammenführung verwenden, kann diese Funktion alleine sehr nützlich sein.
Darüber hinaus wird es durch eine autorisierende Version der Quellcodeverwaltung viel einfacher, eine Sicherungskopie zu erstellen.
Zentralisiert vs. verteilt ... Der Unterschied besteht darin, dass es in verteilten Fällen nicht unbedingt eine "autoritative" Version der Quellcodeverwaltung gibt, obwohl in der Praxis immer noch der Masterbaum vorhanden ist.
Der große Vorteil der verteilten Quellcodeverwaltung ist zweifach:
Wenn Sie die verteilte Quellcodeverwaltung verwenden, haben Sie den gesamten Quelltextbaum auf Ihrem lokalen Rechner. Sie können Commits ausführen, Zweige erstellen und so arbeiten, als wären Sie ganz allein. Wenn Sie Ihre Änderungen dann hochschieben möchten, können Sie sie von Ihrem Computer auf die Master-Kopie heraufstufen. Wenn Sie viel "offline" arbeiten, kann dies ein großer Vorteil sein.
Sie müssen niemanden um Erlaubnis bitten, ein Distributor der Quellcodeverwaltung zu werden. Wenn Person A das Projekt ausführt, aber Person B und C Änderungen vornehmen und diese Änderungen miteinander teilen möchten, wird die verteilte Quellcodeverwaltung viel einfacher.
Hier sind zwei Artikel, die sehr hilfreich sind, um die Grundlagen zu verstehen. Abgesehen davon, dass sie informativ sind, verkauft Sinks Firma ein großartiges Produkt zur Quellcode-Kontrolle namens Vault, das für einzelne Benutzer kostenlos ist (ich bin in keiner Weise mit dieser Firma verbunden).
Tresorinfo auf www.vault.com.
Auch wenn Sie nicht verzweigen, können Sie Tags zur Markierung von Freigaben verwenden.
Stellen Sie sich vor, Sie hätten gestern eine neue Version Ihrer Software veröffentlicht und größere Änderungen für die nächste Version vorgenommen. Ein Benutzer fordert Sie auf, einen schwerwiegenden Fehler in der gestrigen Version zu melden. Sie können es nicht einfach reparieren und die Änderungen aus Ihrem Entwicklungsstamm kopieren, da die Änderungen das Ganze nur instabil gemacht haben.
Wenn Sie die Veröffentlichung markiert hätten, könnten Sie eine funktionierende Kopie davon auschecken und sie verwenden, um den Fehler zu beheben.
Dann könnten Sie wählen, eine Verzweigung am Tag zu erstellen und die Fehlerbehebung darin zu überprüfen. Auf diese Weise können Sie weitere Bugs in dieser Version beheben, während Sie den Trunk weiter aktualisieren. Sie können diese Fixes auch im Stammbereich zusammenführen, damit sie in der nächsten Version vorhanden sind.
Der übliche Standard für die Einrichtung von Subversion besteht darin, drei Ordner im Stammverzeichnis Ihres Repositorys zu haben: Stamm, Zweige und Tags. Der Stammordner enthält Ihre aktuelle Hauptentwicklungslinie. Für viele Geschäfte und Situationen ist dies alles, was sie jemals benutzen ... nur ein einziges funktionierendes Repository von Code.
Der Tag-Ordner geht noch einen Schritt weiter und ermöglicht es Ihnen, Ihren Code zu bestimmten Zeitpunkten zu "checken". Wenn Sie beispielsweise einen neuen Build veröffentlichen oder manchmal sogar einen neuen Build erstellen, "taggen" Sie eine Kopie in diesem Ordner. Dadurch können Sie genau wissen, wie Ihr Code zu diesem Zeitpunkt aussah.
Der Ordner "files" enthält verschiedene Arten von Zweigen, die Sie in besonderen Situationen benötigen könnten. Manchmal ist ein Zweig ein Ort, an dem man an experimentellen Merkmalen oder Merkmalen arbeiten kann, die eine lange Zeit benötigen, um stabil zu werden (deshalb möchte man sie nicht erst in ihre Hauptlinie einführen). In anderen Fällen kann eine Verzweigung die "Produktion" -Kopie Ihres Codes darstellen, die unabhängig von Ihrer Hauptcodezeile, die Änderungen enthält, die für eine zukünftige Version vorgesehen sind, bearbeitet und bereitgestellt werden kann.
Wie auch immer, das ist nur ein Aspekt, wie Sie Ihr System einrichten können, aber ich denke, dass es wichtig ist, über diese Struktur nachzudenken.
Tags und Links version-control