Erste Schritte mit der Versionskontrolle

75

Ich muss die Versionskontrolle implementieren, auch nur für die Entwicklung, die ich zu Hause mache. Ich habe gelesen, wie großartig Subversion in den letzten Jahren ist, und wollte mich nebenbei dem Lernen widmen, bis ich hörte, dass Git das aufstrebende Versionskontrollsystem ist.

Sollte ich mich angesichts der Situation zurückhalten und sehen, welches die Nase vorn hat? Was sind ihre relativen Vorteile?

Ein Problem, das mir bei Git aufgefallen ist, ist, dass es nicht viele voll funktionsfähige GUIs gibt, was für viele Benutzer in meinem Team wichtig ist.

Es würde auch nichts ausmachen, Vorschläge zu machen, wie man mit dem einen oder anderen anfängt. (Tutorials usw.)

Mark Norgren
quelle
Ich denke nicht, dass dies bestimmte Versionskontroll-Tags haben sollte. Ich habe überlegt, es selbst zu ändern, aber ich wollte wissen, was andere Leute dachten.
Brad Gilbert

Antworten:

82

Das Wichtigste an der Versionskontrolle ist:

Fangen Sie einfach an, es zu benutzen

Die Versionskontrolle nicht zu verwenden, ist eine schreckliche Idee. Wenn Sie die Versionskontrolle nicht verwenden, hören Sie sofort auf zu lesen und verwenden Sie sie.

Es ist sehr einfach zu konvertieren

cvs<->svn<->git<->hg

Es spielt keine Rolle, welche Sie wählen. Wählen Sie einfach die für Sie am einfachsten zu verwendende aus und beginnen Sie mit der Aufzeichnung des Verlaufs Ihres Codes. Sie können später jederzeit auf ein anderes (D) VCS migrieren.

Wenn Sie nach einer benutzerfreundlichen Benutzeroberfläche suchen, schauen Sie sich TortoiseSVN (Windows) und Versionen (Mac) an (empfohlen durch Codierung ohne Kommentare ).


Bearbeiten:

pix0r sagte:

Git hat einige nette Funktionen, aber Sie werden sie erst schätzen können, wenn Sie bereits etwas Standardisierteres wie CVS oder Subversion verwendet haben.

Diese. Die Verwendung von git ist sinnlos, wenn Sie nicht wissen, was die Versionskontrolle für Sie tun kann.

Bearbeiten 2:

Habe gerade diesen Link auf reddit gesehen: Subversion Cheat Sheet . Gute Kurzreferenz für die svn-Kommandozeile.

Jonathan Works
quelle
Haben Sie ein großartiges Tool zum Konvertieren des Repositorys von einem zum anderen im Sinn? Ich stimme Start Now voll und ganz zu, muss mich aber fragen, wie einfach es wäre, den gesamten Verlauf und die Revisionen von einem VC-System auf ein anderes zu portieren.
Steve Tranby
19

Verwenden Sie Subversion, es ist einfach einzurichten, einfach zu bedienen und verfügt über zahlreiche Tools. Jedes zukünftige Revisionssystem wird von der SVN-Funktion importiert, sodass Sie nicht später Änderungen vornehmen können, wenn Ihre Anforderungen steigen.

Karl Seguin
quelle
16

Das Subversion-Buch ist die beste Wahl, um das Tool zu erlernen. Es gibt vielleicht andere Schnellstart-Tutorials, aber das Buch ist die beste Referenz, die Sie finden werden.

Git hat einige nette Funktionen, aber Sie werden sie erst schätzen können, wenn Sie bereits etwas Standardisierteres wie CVS oder Subversion verwendet haben. Ich würde definitiv den vorherigen Postern zustimmen und mit Subversion beginnen.

pix0r
quelle
13

Wenn Sie neu in versioncontrol sind, lesen Sie Folgendes :
Quellcodeverwaltung HOWTO

John Smithers
quelle
Eric Sink sagt sich, dass dieses Online-Buch etwas veraltet ist.
Jakub Narębski
Es gibt ein gedrucktes Buch (und PDF) von Eric Sink, aber ich erinnere mich nicht an die Download-URL. Obwohl das Buch gut zum Verständnis der VCS-Grundlagen geeignet ist, ist es nicht wirklich fair. Mehr Wahrhaftigkeitsmarketing als echte Informationen.
Bahrep
11

Gehen Sie für SVN. Wenn Sie noch nie zuvor die Quellcodeverwaltung verwendet haben, spielt dies für Sie auf die eine oder andere Weise keine Rolle.

Außerdem ist die Verwendung eines Quellcodeverwaltungssystems nicht sehr lernintensiv. Wenn Sie eines lernen, können Sie zu einem späteren Zeitpunkt problemlos zu einem anderen wechseln.

SVN ist ein großartiges Tool, das die meisten Ihrer Anforderungen erfüllen sollte. Und da es das schon gibt, gibt es eine ganze Reihe von GUI-Tools (zum Beispiel TortoiseSVN).

Gehen Sie für SVN.

Vaibhav
quelle
"Wenn Sie eines lernen, können Sie zu einem späteren Zeitpunkt problemlos zu einem anderen wechseln." <- nicht wahr. Viele Menschen haben Probleme, ihre Einstellung von zentralisiertem VCS zu verteiltem VCS anzupassen.
Afriza N. Arief
8

Ich habe RCS, CVS, SCCS, SourceSafe, Vault, Perforce, Subversion und Git verwendet.

Ich habe BitKeeper, Dimensions, Arch, Basar, SVK, ClearCase, PVCS und Synergy bewertet.

Wenn ich heute ein neues Repository starten müsste, würde ich git wählen . Hände runter.

Es ist kostenlos, schnell und befindet sich in der aktiven Entwicklung.

Und Sie können es mit git-svn als Client für jedes Subversion-Repository verwenden.

Es rockt.

Nick Brosnahan
quelle
5

@ superjoe30

Was ist mit der Quellcodeverwaltung auf Ihrem eigenen Computer, wenn Sie der einzige Programmierer sind? Ist das eine gute Praxis? Gibt es verwandte Tipps oder Tricks?

Ich finde, dass Git dafür einfacher ist, da Sie keinen Server benötigen oder sich Gedanken über die Eingabe von URLs machen müssen und so weiter. Ihr Versionskontrollmaterial befindet sich nur im .gitVerzeichnis in Ihrem Projekt, und Sie können es einfach verwenden.

5 Sekunden Intro (vorausgesetzt, Sie haben es installiert)

cd myproject
git init
git add * # add all the files
git commit

Das nächste Mal nehmen Sie einige Änderungen vor

git add newfile1 newfile2 # if you've made any new files since last time
git commit -a

Solange du das tust, hat Git deinen Rücken. Wenn Sie es vermasseln, ist Ihr Code im netten Git-Repository sicher. Es ist toll

  • Hinweis: Es ist vielleicht etwas schwieriger, Dinge aus Git herauszuholen, als sie hineinzuholen, aber es ist weitaus besser, dieses Problem zu haben, als die Dateien überhaupt nicht zu haben!
Orion Edwards
quelle
Verwenden Sie git add .( aktuelles Verzeichnis hinzufügen ), nicht git add *(Shell-Erweiterung verwenden), es ist schneller.
Jakub Narębski
5

Aus eigener Erfahrung würde ich git nicht als Einführung in die Versionskontrolle empfehlen. Ich benutze es jetzt seit ein paar Monaten und mein Eindruck ist, dass es sehr mächtig und - jetzt, wo ich es teilweise im Kopf habe - einigermaßen intuitiv ist. Die Lernkurve ist jedoch sehr steil, obwohl ich seit Jahren die Versionskontrolle verwende. Es leidet auch daran, zu ausdrucksstark zu sein - es unterstützt viele verschiedene Workflows und Entwicklungsmodelle, aber die einzige Anleitung zur "besten" Verwendung ist ein paar Seiten tief in einer Google-Suche, was es für einen Neuling auch schwierig macht, sie auszuwählen oben.

Das heißt, es ist möglich, dass das Starten von einer leeren Tafel mit Git tatsächlich einfacher ist - meine VCS-Erfahrung basiert ausschließlich auf der zentralen Versionskontrolle (CVS, SVN, Perforce ...) und ein Teil meiner (laufenden!) Schwierigkeiten mit Git war Verständnis der Auswirkungen des verteilten Modells. Ich habe kurz einen Blick auf andere DVCSes wie Bazaar und Mercurial geworfen und sie schienen etwas neuerfreundlicher zu sein.

Wie andere bereits gesagt haben, ist Subversion wahrscheinlich der einfachste Weg, sich an die Denkweise der Versionskontrolle zu gewöhnen und praktische Erfahrungen mit den Vorteilen von VCS zu sammeln (Rollback, Verzweigungen, gemeinsame Entwicklung, einfachere Codeüberprüfung usw.).

Oh, und fang nicht mit CVS an. Es ist immer noch in der Praxis und hat Vorteile, aber meiner Meinung nach hat es zu viele historische Macken und Implementierungsprobleme (nicht-atomare Commits!), Um eine gute Möglichkeit zum Lernen zu sein.

Sam Stokes
quelle
4

Meine Stimme geht an Subversion. Es ist sehr leistungsfähig und dennoch einfach zu bedienen und verfügt über einige großartige Tools wie TortoiseSVN .

Aber wie andere vor mir gesagt haben, fangen Sie einfach an, es zu benutzen. Die Quellcodeverwaltung ist ein wichtiger Bestandteil des Softwareentwicklungsprozesses. Kein "ernstes" Softwareprojekt sollte ohne es sein.

Brandon Wood
quelle
4

Bei meinem derzeitigen Job verwendete mein Vorgänger keinerlei Versionskontrolle. Es gibt nur Berge von Ordnern an mindestens drei verschiedenen Orten, an denen er alle seine Projekte aufbewahrt hat. Von jedem zufälligen Projektordner kann erwartet werden, dass er mindestens einen Ordnernamen "Projekt (ALT)" und einen mit dem Namen "Projekt" findet.

Mit der Versionskontrolle müssen Sie niemals Kopien von "sicheren" Builds erstellen. Sie müssen sich nicht wirklich Sorgen machen, dass Ihre IDE die Datei, an der Sie arbeiten, beschädigt (ich sehe Sie an, REALBasic 5.5), da es so einfach ist, Ihre Arbeit jeden Tag festzuschreiben (Lesen: Speichern).

Unnötig zu erwähnen, dass ich die Versionskontrolle am Tag, nachdem ich herausgefunden hatte, dass sie existiert, installiert habe.

TortoiseSVN macht das Festschreiben in der Datenbank so einfach wie das Klicken mit der rechten Maustaste auf einen Ordner.

Gewähren
quelle
4

Probieren Sie auch Visual SVN für Ihren Server aus, wenn Sie keine Befehlszeilenarbeiten ausführen möchten.

DShook
quelle
3

Wenn Sie unter Mac OSX arbeiten, habe ich festgestellt, dass http://www.versionsapp.com/"> Versionen ein unglaubliches (kostenloses) GUI-Frontend für SVN sind.

CodingWithoutComments
quelle
3

Git ist der Subversion überlegen, aber es ist ein bisschen auf dem neuesten Stand.

Ich würde sagen, wenn Sie gerade erst anfangen, springen Sie auf die Kante; Richten Sie ein kostenloses Konto unter http://github.com ein

Sie haben vor Ort Lehrmaterial zum Einrichten und Verwenden von Git.

ryw
quelle
Deine Worte, in denen ich Ungerechtigkeit sehe. Git ist im Vergleich zu Subversion NICHT überlegen. Git ist ein DVCS, das als "am besten für die Open-Source-Entwicklung geeignet" angesehen werden kann. Die schickste Funktion ist, dass Sie ein Projekt schnell abspalten können. Subversion ist ein CVCS, das viel ausgereifter und stabiler als Git ist .
Bahrep
2

Warte nicht. Wählen Sie eine aus und machen Sie mit. Alle Systeme haben ihre Vor- und Nachteile. Ihre Stromversorgung könnte ausfallen, Ihr Computer wird gestohlen oder Sie vergessen, eine größere Änderung rückgängig zu machen, und Ihr gesamter Code wird gebraten, während Sie darauf warten, wer als Sieger hervorgeht.

Rob Allen
quelle
2

Es ist nicht so schwierig, zwischen Versionskontrollsystemen zu wechseln. Wie andere bereits erwähnt haben, ist es wichtig, so schnell wie möglich mit der Verwendung zu beginnen. Die Vorteile der Verwendung der Quellcodeverwaltung gegenüber der Nichtverwendung der Quellcodeverwaltung überwiegen bei weitem die unterschiedlichen Vorteile zwischen verschiedenen Arten der Quellcodeverwaltung.

Denken Sie daran, dass Sie unabhängig von der verwendeten Versionsverwaltungsversion immer eine Brute-Force-Konvertierung auf ein anderes System durchführen können, indem Sie die Dateien von Ihrem alten System auf die Festplatte legen und diese Rohdateien dann in das neue System importieren.

Darüber hinaus ist es als Softwareentwickler sehr, sehr wichtig, mit den Grundlagen der Quellcodeverwaltung vertraut zu sein.

Keil
quelle
1

Ja, SVN für die Präferenz, es sei denn, Sie benötigen wirklich die besonderen Funktionen von git. SVN ist schwer genug; Es klingt so, als wäre es komplizierter, mit Git zu leben. Sie können svn von Leuten wie Beanstalk gehostet werden - es sei denn, Sie haben Linux-Leute, ich würde es wirklich empfehlen. Dinge können schrecklich leicht schief gehen und es ist schön, jemanden zu haben, dessen Aufgabe es ist, das Problem zu beheben.

Es gibt ein ausgezeichnetes Tutorial zur Revisionskontrolle von Eric Sink, das es wert ist, gelesen zu werden, egal welches System Sie verwenden.

Polsonby
quelle
1

Verwenden Sie TortoiseSVN (version.app auf Mac). Einfach installieren und loslegen. Wenn Sie einen Ort zum Hosten Ihres Codes benötigen, besuchen Sie http://beanstalkapp.com/

icco
quelle
1

Wenn Sie sich für Subversion entscheiden und Ihren eigenen SVN-Server hosten möchten, gibt es einen sehr schönen und einfachen Windows-basierten Server namens VisualSVN-Server. Es verbirgt die Komplexität des Einrichtens eines Apache-Servers. Sie gehen einfach weiter. Die Benutzerkonfiguration wird mit einer webUI anstelle einer Konfiguration durchgeführt

http://www.visualsvn.com/server/

Die Verwendung einer öffentlich zugänglichen Bohnenstange ist wahrscheinlich einfacher, aber einige Leute möchten aus Gründen der Geschwindigkeit oder Sicherheit ihre eigenen Repositories haben

s3v1
quelle
1

Coding Horror hat einen großartigen Beitrag zum Einrichten von Subversion unter Windows .

Nach dem Tutorial konnte ich Subervsion und TortoiseSVN lokal zum Laufen bringen, und ich bekam die Ausbildung, die ich brauchte.

Für Git ist es wahrscheinlich eine gute Idee, mit beiden experimentieren zu müssen, um zu verstehen, welche zu Ihrer spezifischen Entwicklungspraxis passt.

Benutzer290
quelle
0

Als ich mich entschied, ein Code-Versionierungssystem zu verwenden, sah ich mich nach guten Tutorials für den Einstieg um, fand aber keine, die mir helfen könnten.

Also habe ich einfach den SVN-Server und Tortoise SVN für den Client installiert und bin in das Deepend eingetaucht, und ich lerne nicht, wie man es auf dem Weg benutzt.

GateKiller
quelle
0

Fangen Sie an, SVN für Ihre eigentliche Arbeit zu verwenden, aber nehmen Sie sich Zeit, um mit Git und / oder Mercurial herumzuspielen. SVN ist für die Produktion relativ stabil, aber irgendwann werden Sie mit einem Szenario konfrontiert sein, in dem Sie ein verteiltes SCM benötigen. Zu diesem Zeitpunkt sind Sie ordnungsgemäß bewaffnet und die neuen Systeme sind ausgereift genug.

Ishmaeel
quelle
0

superjoe30 schreibt :

Verwandte Frage (möglicherweise können Antworten auch bearbeitet werden, um diese Frage zu beantworten):

Was ist mit der Quellcodeverwaltung auf Ihrem eigenen Computer, wenn Sie der einzige Programmierer sind? Ist >> diese gute Praxis? Gibt es verwandte Tipps oder Tricks?

Ich benutze SVN für alle meine persönlichen Projekte. Ich begann mit dem Ausführen von svn auf meinem Heimcomputer, migrierte aber schließlich zu Dreamhost. Ihre Hosting-Pakete, die Subversion enthalten, sind ziemlich vernünftig.

Mark Biek
quelle
0

Wenn auf einer Windows-Box eine schnelle und schmutzige Lösung CVSNT ist. Einfach zu bedienen, einfach einrichten und funktioniert sehr gut.

Ich selbst bevorzuge SVN, aber dies ist eine gute für den schnellen Gebrauch.

Adam Lerman
quelle
0

Ich würde SVN definitiv CVS vorziehen, schon allein deshalb, weil Leute, die die Quellcodeverwaltung mit CVS gelernt haben, dazu neigen, " svn delete" dann " svn add" anstelle von " svn move" zu verwenden. Dies macht es schwieriger, alle vorherigen Revisionen einer bestimmten Datei zu finden. Und Sie können jederzeit auf git-svn upgraden. Ich persönlich denke, es ist einfacher zu lernen als hg, aber wirklich das Wichtigste zu verwenden SVN ist es das de-facto - Versionskontrollsystem von Open Source Software weitgehend worden ist.

Wenn Sie jemals D lernen / verwenden möchten, ist es fast obligatorisch, auf Repositorys von Drittanbietern wie DSource zuzugreifen .

Brad Gilbert
quelle
0

@ superjoe30 Ja, absolut. Sobald Sie die Versionskontrolle verwenden, kehren Sie nie mehr zurück. Ich benutze es für alles, sogar für meinen "Home" -Ordner.

@Orion Edwards Subversion benötigt keinen Server. Sie können direkt auf ein lokales Repository zugreifen (natürlich über einen Client), und es ist kein Serverprozess beteiligt.

Anders Sandvig
quelle
0

Verwenden Sie einfach TortoiseSVN, und Sie können auch ohne Kenntnis der tatsächlichen Subversion-Befehle leben ... Aber das ist schlecht. Glücklicherweise wird es immer eine „großartige Gelegenheit“ geben, sie auswendig zu lernen - wenn Ihr unbezahlbares Repository zum ersten Mal beschädigt wird.

Ja, das passiert.

ansgri
quelle
0

Wie schon oft an anderer Stelle erwähnt, mach es einfach. Mit Subversion unter Windows konnte ich in kürzester Zeit von vorne anfangen, indem ich die Kurzanleitung im Red Book las. Nachdem ich TortoiseSVN auf das Repository gerichtet hatte, war ich im Geschäft. Es dauerte eine Weile, bis ich die Feinheiten erreicht hatte, aber es waren kleine Buckel, um darüber hinwegzukommen.

Ich würde vorschlagen, den Subversion-Dienst zu installieren, anstatt file: // URLs zu verwenden, aber das ist meistens eine persönliche Präferenz. Für ein auf Ihrem Entwicklungscomputer gespeichertes Repository funktioniert file: // einwandfrei.

SarekOfVulcan
quelle
Die Verwendung von file: // URLs in einer Mehrbenutzerumgebung ist im Allgemeinen nicht die sicherste Idee, da die Art und Weise, wie auf die Dateien zugegriffen wird, viel wahrscheinlicher ist, dass sie beschädigt werden. Da es so einfach ist, einen Subversion-Server einzurichten, müssen Sie file: // wirklich nicht verwenden. That being said, ich habe Datei verwendet: // für Projekte , bei denen ich der einzige Entwickler war, in diesem Fall ist es schön gearbeitet.
Jim Raden
0

Aus persönlicher Erfahrung wäre SVN meine Empfehlung. Sie können sogar einen Dienst wie Beanstalk verwenden , der kostenlose Konten anbietet (mit Einschränkungen, die jedoch für jedes kleinere Projekt ausreichen), um das Wasser zu testen. Aber wie andere gesagt haben, ist Git überlegen und es lohnt sich wahrscheinlich, einen Blick darauf zu werfen.

jonezy
quelle