Versionskontrolle für unabhängige Entwickler?

60

Denken Sie, dass es sich lohnt, die Versionskontrolle zu verwenden, wenn Sie ein unabhängiger Entwickler sind, und wenn ja, warum? Bewahren Sie das Repository auf Ihrem eigenen Computer oder an einem anderen Ort auf, wo es als Backup dienen kann?

Eifer
quelle
54
Am liebsten würde ich einen Apotheker fragen sehen: "Soll ich Medikamente organisiert aufbewahren oder einfach alle in eine Schublade werfen? Lohnt sich der Aufwand?"
Erik
23
Stellen Sie sich vor, Sie arbeiten eine Woche lang hart, um diese großartige Software zu entwickeln. Dann löschen Sie es. Wie würdest du dich fühlen? Es ist nicht nur Lagerung. Wenn etwas kaputt ist, das letzte Woche funktioniert hat, können Sie nachsehen, was sich geändert hat, und in der Regel sehen, was Sie kaputt gemacht haben. Ich sehe immer noch 'professionelle' Entwickler mit den Ordnern backup001 und backup_backup001, die mit ihrer Quelle gemischt sind. Gute Gewohnheiten bilden, während Sie noch jung sind.
Erik
@Erik Yuck, die Backup-Ordner klingen unangenehm. Ich verwende die Quellcodeverwaltung für meine Projekte, obwohl ich nicht so gut darin bin, mich oft zu engagieren.
vedosity

Antworten:

61

Wenn Sie die dezentrale Quellcodeverwaltung verwenden (Mercurial oder Git oder Bazaar oder was auch immer), erhalten Sie gegenüber SVN / CVS Vorteile, die es einfach, nützlich und leistungsstark machen, wenn Sie ein Indy sind:

  1. Sie legen lokal fest : Ihr Projektverzeichnis ist Ihr Repo mit der vollständigen Historie. Sie müssen also keinen Server haben, Sie legen direkt in Ihrem Repo fest und Sie können mehrere Repos auf demselben Computer haben. Mit einem Laptop, den Sie manchmal öffnen, um weiter an Ihren Dingen zu arbeiten? Toll! Sie müssen keinen Server einrichten, und wenn Sie später einen benötigen, ist dies ganz einfach. Sie müssen lediglich die Änderungen zwischen den Repositorys "pushen" und "ziehen".
  2. Es wurde entwickelt, um das Experimentieren zu vereinfachen : Oft müssen Sie eine Vorstellung von einer Funktion haben, ohne den Code zu verschmutzen. Mit SVN und CVS können Sie bereits ein Verzweigungssystem verwenden und die Verzweigung entfernen, wenn die Funktion nicht so gut ist, wie Sie es sich gewünscht haben. Wenn Sie die Funktion jedoch mit der Trunk-Version zusammenführen möchten, sind viele Überraschungen nur schwer zu beheben. Git, Mercurial und Bazaar (zumindest) machen das Zusammenführen und Verzweigen wirklich einfach. Sie können sogar einfach ein Repo duplizieren, einige Zeit daran arbeiten, es dennoch festschreiben und beenden oder Ihre Änderungen im Haupt-Repo vornehmen, wenn Sie möchten.
  3. Flexibilität der Organisation : Wie bereits erwähnt, können Sie, da Sie über Repos verfügen, die Sie nach Bedarf organisieren, ganz einfach alleine beginnen und anderen Personen die Möglichkeit geben, mit Ihnen zu arbeiten, indem Sie Ihre Organisation ändern. Es gibt keine Organisation, Sie müssen sie nur einrichten und loslegen. Ich wechsle oft nur zwischen meinen eigenen Computern (Laptop / Desktop / Server) und bin immer noch allein mit meinen Entwicklern. Ich verwende Mercurial und das hilft mir, meine Arbeit zu duplizieren, aber auch an Funktionen zu arbeiten, die ich außerhalb meines Laptops in Betracht gezogen habe. Dann arbeite ich weiter an anderen Funktionen auf meinem Desktop Laptop und legte es (als Backup und zukünftige Teamarbeit Repo) auf meinem Server.
  4. Es hilft beim Einrichten von Backups : Wenn Sie ein zentrales Repo einrichten (auf GitHub, wenn es öffentlich ist, oder in einem privaten Repo auf BitBucket), können Sie einfach ein Skript schreiben, das bei jedem Neustart eines Computers ausgeführt wird, und dieses Skript dann weitergeben an Ihre Freunde, damit diese regelmäßig automatische Backups Ihrer Arbeit erstellen. Ich bin mir sicher, dass es nicht einfach sein wird, meine Arbeit zu verlieren.

Tatsächlich haben Sie derzeit keine Entschuldigung dafür, kein Steuerelementquellentool für ein Projekt zu verwenden. Weil sie leistungsfähiger und flexibler als zuvor sind und sich Ihren Bedürfnissen anpassen lassen.

Klaim
quelle
6
Es gibt immer GitHub .
HedgeMage
8
Oder bitbucket.org, wenn Sie Mercurial verwenden.
Terence Ponce
7
Mercurial mit einem lokalen Dateisystem Repo auf Dropbox funktioniert wirklich gut für einen einzelnen Entwickler.
Pieter Breed
1
@ Guillaume: Ein einzelner Entwickler kann den "verteilten" Aspekt eines DVCS verwenden. Ich mache. Zum Beispiel kann ich auf Computer A arbeiten, meine Arbeit auf meinen USB-Schlüssel drücken und dann auf Computer B von diesem USB-Schlüssel abziehen.
barjak
1
@Guillaume "Distributed" ist ein technischer Aspekt, kein organisatorischer. Sie können ein zentrales Steuerungsquellsystem mit einer Organisation verwenden, deren Integratoren nur festgeschriebenen Code validieren dürfen. Dies ist möglich, aber aufgrund der zentralen Struktur des Tools schwierig einzurichten. Aber das ist immer noch ein orthogonales Problem.
Klaim
34

Quellcodeverwaltung ist für unabhängige Entwickler völlig nutzlos, denn wie wir alle wissen:

  • Unabhängige Entwickler machen niemals Fehler
  • Unabhängige Entwickler nehmen niemals Revisionen vor, die nicht funktionieren
  • Unabhängige Entwickler haben nie mehr als eine Version, so dass sie keine Verwendung für Zweige haben
  • Unabhängige Entwickler kümmern sich nie darum, was sie gestern oder letzte Woche geändert haben
  • Unabhängige Entwickler benötigen niemals Backups

Nennen Sie mich einen "abhängigen Entwickler": Mercurial-Repositorys können problemlos zwischen meinem Desktop, Laptops, USB-Sicherungslaufwerken und bitbucket.org geklont werden. Ich bin abhängig geworden und mag es auch so!

Steven A. Lowe
quelle
6
Ist diese Antwort sarkastisch?
4
@kurtnelle: extrem!
Steven A. Lowe
1
Kewlio, schaut nur nach.
21

Warum nicht?

Ich bin ein Solo-Entwickler und benutze BitBucket und Mercurial für meine persönlichen Projekte. Es ist einfach zu gut, den Code zurückzusetzen und abzweigen zu können, um darauf zu verzichten.

Terence Ponce
quelle
8
+1 für BitBucket - sie bieten unbegrenzte private Repositories kostenlos an.
Jon Sagara
2
Die kostenlosen privaten Repositories sind der Grund, warum ich BitBucket über GitHub verwende.
Terence Ponce
4
kostenloses privates repo ?? Du hast mich vielleicht von git zu hg konvertiert.
Gauthier
@Gauthier, yep, BitBucket hat kostenlose private Repos. Ich bin mir nicht sicher, ob sie unbegrenzt sind.
Terence Ponce
1
Sie können Git weiterhin mit Bitbucket verwenden. In der Tat ist der Import direkt von Github einschließlich SSH-Schlüssel. Hab gerade den Umzug gemacht, benutze aber immer noch git (ich mag es besser!)
Daniel Casserly
1

Ich persönlich finde es wertvoll. Meine Projekte werden alle in Git-Repositorys eingecheckt (die ich im Falle eines Hardwarefehlers auf mehreren Computern verwalte). Die nützlichsten Funktionen sind Verzweigen (damit ich ein Experiment durchführen kann, das die Hälfte meiner Codebasis durcheinander bringt und keine permanenten Sprengungen verursacht) und Zurücksetzen (was bei Steroiden im Grunde genommen nur rückgängig gemacht wird, falls ich feststelle, dass ich welche gemacht habe) Fehler, der außerhalb des normalen Bereichs für das Rückgängigmachen liegt).

Inaimathi
quelle
1

Ja. Es ist sehr sehr nützlich. Mein Freund Matt Gallagher hat vor wenigen Tagen in seinem iOS / MacOS-Entwicklungsblog "Cocoa With Love" einen hervorragenden Artikel zu diesem Thema veröffentlicht.

Der Artikel ist Mac & Git-orientiert, behandelt jedoch die Grundlagen.

Möglicherweise interessieren Sie auch die folgenden StackExchange-Fragen (und deren Antworten).

orj
quelle
1

Wert?? Muss! Wenn Sie die Quellcodeverwaltung nicht verwenden, können Sie Ihre Quellen nicht steuern, und das ist schlecht. Sie können nicht unterscheiden, Sie können nicht zurücksetzen, Sie können Änderungen nicht nachverfolgen - Sie werden Stunden damit verbringen, den Dummy-Fehler herauszufinden, den Sie gerade eingegeben haben. Es ist besser, es auf einem gesicherten Server zu haben, aber Sie können auch Ihren Computer und jede geeignete Sicherungsmethode verwenden.

Assimiz
quelle
2
Eigentlich verwende ich die Quellcodeverwaltung, aber ich tendiere auch dazu, Dinge zu übertreiben und Dinge zu übernehmen, die übertrieben sind. Dafür bin ich bei der Arbeit bekannt. Andererseits glaube ich nicht, dass Programmierer, bei denen ich arbeite, einschließlich mir, irgendwo anders als Programmierer gearbeitet haben, und die meisten von uns sind noch in der High School.
Vedosity
1

Verwenden Sie unbedingt die Quellcodeverwaltung. Richten Sie dann einen Build-Server ein und automatisieren Sie Ihre Build- und Testprozesse. Triggerbuilds aus Ihren Quellcommits Ihres zentralen Repos. Ich arbeite seit drei Jahren alleine auf diese Weise und es ist wunderbar.

Dave Neeley
quelle
0

Ja.

Sogar einzelne Entwickler müssen manchmal den Status ihres Codes aus früheren Überarbeitungen sehen. Und es ist immer eine gute Idee, alles Wichtige zu sichern, und das gilt für alle Menschen.

Whatsisname
quelle