Was bringt die Versionskontrolle?


19

Ich bin neu in der Versionskontrolle (benutze derzeit SVN), verstehe aber nicht, wie dies Entwicklern hilft. Was macht die Versionskontrolle in einer Entwicklungsumgebung sinnvoll?


4
Lesen Sie einfach Eric Sinks hervorragende HOWTO-Reihe zur Quellcodeverwaltung : ericsink.com/scm/source_control.html . Im Übrigen gibt es hier nicht viel zu beantworten oder zu diskutieren.
Deckard

4
Die Quellcodeverwaltung ist eines der Dinge, die sinnlos erscheinen, bis Sie sie brauchen. Dann merkt man, dass man darauf nicht verzichten kann. Leider ist es dann zu spät. Eine Art Hochwasserversicherung, außer dass ich finde, dass Quellcodeverwaltung weitaus nützlicher ist.
Rein Henrichs

2
@rahmanisback du willst es gleich nachdem du File | New Project gemacht hast ... du brauchst es sobald du> 1 Entwickler im Projekt hast (meine Standardzeile ist> 0 Entwickler - und ich glaube das ist jetzt wahrer als je zuvor)
Murph

8
Wenn Sie ohne Versionskontrolle arbeiten, entfernen Sie den Befehl "Rückgängig" aus dem Textverarbeitungsprogramm, mit dem Sie Ihren Aufsatz eingeben, oder entfernen Sie alle Radiergummis und Korrekturflüssigkeiten von Ihrem Schreibtisch.
rwong

2
@rahmanisback Sobald Sie versehentlich eine Datei löschen oder anderweitig Daten verlieren, zum einen. @rwong schöne Analogie.
Rein Henrichs

Antworten:


21

VisualSVN und TortoiseSVN sind nur UI-Clients für SVN-Server. Der SVN-Server ist ein Versionsverwaltungssystem. Das Versionskontrollsystem ist ein Schlüsselelement für jede echte Entwicklung, da es Versionen Ihrer Quellcodes speichert. Bei Verwendung des Versionskontrollsystems behalten Sie nur lokale Kopien der Quellcodes. Die Hauptkopie wird im Versionskontrollsystem gespeichert, und Sie schreiben Änderungen am System fest.

SVN ermöglicht:

  • Einfache Weitergabe von Quellcodes an das gesamte Team über das zentrale Repository
  • Sichern Sie Ihre Quellcodes und andere Ressourcendateien, die sich auf das Projekt beziehen
  • Aufzeichnen der Geschichte, wie sich Quellcodes geändert haben
  • Sie können zu jeder Version im Verlauf zurückkehren
  • Sie können Änderungen zwischen Versionen vergleichen
  • Sie können sehen, wer Änderungen vorgenommen hat
  • Sie können die Datei für den exklusiven Zugriff sperren, damit niemand an der Datei arbeiten kann
  • Sie können sehen, wer an einer Quellcodedatei arbeitet oder wer die Datei gesperrt hat
  • Sie können Änderungen zusammenführen, wenn Sie parallel an derselben Datei arbeiten
  • Sie können Kommentare zu festgeschriebenen Änderungen sehen
  • Mit zusätzlichen Tools können Sie festgeschriebene Änderungen mit Aufgaben verknüpfen
  • Sie können die Version beschriften / markieren, um beispielsweise Produktionsversionen leicht zu finden
  • Sie können Quellcode verzweigen - erstellen Sie parallele Versionen, wobei eine Verzweigung als die Hauptversion betrachtet werden kann und die andere verwendet werden kann, um einige spezielle Funktionen zu testen oder die Entwicklung der neuen Produktversion fortzusetzen, während Fixes für die aktuelle Produktionsversion in der Hauptversion behoben werden Ast
  • Sie können Änderungen zwischen Zweigen zusammenführen
  • etc.

VisualSVN ist eine Erweiterung von Visual Studio, mit der Sie das SVN-Repository direkt über die Visual Studio-Benutzeroberfläche verwenden können. TortoiseSVN ist eine Erweiterung von Windows Explorer, mit der Sie das SVN-Repository direkt beim Durchsuchen von Ordnern und Dateien verwenden können.


+1. Haaa .. nach mehr als einem Jahrzehnt mit VCS ist es ziemlich schwierig zu sagen, warum. Ich meine, es ist nur so offensichtlich - aber es ist wirklich schwer, wirklich zu artikulieren, warum Sie es getan haben! Gute Antwort.
Dipan Mehta

Ich glaube, AnkhSVN macht auch einen Killerjob bei der Integration von SVN in Visual Studio.
Saul Delgado

6

Die Versionskontrolle bietet eine Reihe von Dingen:

  • Archivieren Sie Ihre Software so, dass Sie den Stand zu früheren Zeitpunkten sehen können. Sehr nützlich, um herauszufinden, wo ein Fehler aufgetreten ist.
  • Ermöglichen Sie mehreren Entwicklern im selben Projekt, ihre Arbeit zu teilen und zu koordinieren, und schützen Sie sich gleichzeitig vor gegenseitigem Überschreiben.
  • Unterstützen Sie die Kontinuität von Einzelpersonen und Unternehmen, insbesondere durch einen zentralen Server, der geschützt und gesichert ist.

Es ist ein Minimum für jede Software-Entwicklungsarbeit, die über das bloße Basteln hinausgeht, um zu sehen, was passiert.

Ich warne immer jeden, der zum ersten Mal mit einem Versionskontrollsystem arbeitet, davor, dass es nur Ärger macht, es zu vermeiden. Sie WILL auf ein Problem stoßen, wenn sie sie zurückblicken WILL es nicht passiert wäre erkennen, wenn sie das System verwendet.


0

Der produktivste Entwickler ist allein. Ein Einzelentwickler muss sich nie darum kümmern, mit jemand anderem zu koordinieren. Aber sobald das Projekt in den Plural geht, entsteht Overhead. Und für jeden Entwickler, der zum Team hinzugefügt wird, wird der Overhead noch schlimmer. Es ist die Aufgabe des VCS, diesen Overhead zu verwalten und die Auswirkungen zu minimieren.

http://www.ericsink.com/vcbe/html/dvcs_private_workspace.html


8
Auch ein einzelner Entwickler benötigt eine Versionskontrolle. Das VCS verwaltet nicht nur den Overhead, wie aus diesem Zitat hervorgeht.
Alroc

5
Selbst ein einzelner Entwickler kann erkennen, dass er vor einer Woche etwas falsch gemacht hat und den alten Code zurückbekommen möchte. Selbst ein Einzelentwickler möchte möglicherweise eine große, komplexe Menge von Refaktoren ausprobieren, ohne die ursprüngliche Codebasis zu gefährden.
Gort the Robot

Ich denke, die Aspekte "Sichern" und "Wiederherstellen" der Versionskontrolle sind für die meisten offensichtlich, aber erst wenn Sie erkennen, wie die Versionskontrolle den Aufwand für die Zusammenarbeit verringert, versteht jemand ihren Wert wirklich.
Jace Browning
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.