Versionskontrollsystem für einen einzelnen Entwickler
Was ist die empfohlene source-control-system für ein sehr kleines team (ein Entwickler)?
Preis spielt keine Rolle. Kunden bezahlen würden 🙂
Ich arbeite auf Vista32 mit VS 2008 C++ und später in C# und mit WPF. Die Einrichtung einer zusätzliche (physikalische) server scheint übertrieben zu mir.
Irgendwelche Meinungen?
InformationsquelleAutor der Frage kaiz.net | 2008-09-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde Subversion (in der Tat ich benutze es) [update: Jul 2014-ich benutze Git -- siehe Ende der Antwort].
SVN ist:
Ich würde stark empfohlenen separaten Maschine-zu-source-control-server. Am besten irgendwo auf die cloud. Vorteile:
Gibt es Unternehmen, die Gastgeber SVN-repositories.
Hier sind links zu SVN (client und server) - Pakete sind für verschiedene Betriebssysteme.
Nachteile der SVN
Bin ich mit SVN auf einer Windows Maschine seit etwa 5 Jahren und fand, dass der SVN hat ein paar Nachteile :).
Es ist langsam bei großen repositories
SVN (oder seine AUFTRAGGEBER -- TortoiseSVN) hat eine großen Nachteil -- es schrecklich langsam (beim aktualisieren oder zu Begehen) auf große (mehrere tausend Dateien) repositories, es sei denn, Sie haben SSD fahren.
Zusammenführung kann schwierig sein
Viele Leute beschweren sich über wie schwer ist ein Zusammenführen mit SVN.
Ich Tue das für etwa 4 Jahren (einschließlich über 2 Jahre in CVS -- das war schrecklich, aber machbar) und etwa 2 Jahre mit SVN.
- Und ich persönlich finde es nicht schwer-auf der anderen Seite-jede Zusammenführung ist einfach nach dem Zusammenführen von branches in CVS :).
Ich tun Zusammenführen von großen repository (zwei repositories in der Tat) einmal in der Woche und selten habe ich Konflikte sind schwer zu lösen (die meisten Konflikte werden automatisch gelöst mit diff software, die ich benutze).
Jedoch im Falle des Projekts von ein paar Entwickler Zusammenführen sollte kein problem sein, wenn Sie halten ein paar einfache Regeln:
Hinzugefügt im Juli 2011
Viele devs empfohlen Distributed Version Control wie Git oder Mercurial.
Vom Entwickler Perspektive gibt es nur ein paar wichtige Vorteile von DVCS über SVN:
Und ich glaube nicht, dass die Zusammenführung ein problem bei einzelnen Entwickler.
Joel Spolsky schrieb tutorial über Mercurial was ist wirklich Wert zu Lesen.
So, trotz der vielen Vorteile von DVCS ich würde bleiben mit SVN, wenn die Verschmelzung oder die Geschwindigkeit ist nicht ein problem.
Oder versuchen, Mercurial, die nach diese und diese SO Fragen, wird besser unterstützt (im Juli 2011) auf Windows.
Hinzugefügt, im Juli 2014
Seit etwa einem Jahr benutze ich Git (Git-Bash hauptsächlich) für meine pet-Projekte (d.h. Lösung des Euler-Probleme) und lokalen Niederlassungen für jede Euler-problem sind wirklich ein nettes feature -- genau so, wie es beschrieben wird, da der Vorteil des DVCS.
Heute Git-tooling auf Windows ist viel, viel besser als in 2 oder mehr Jahren.
Sie können remote-repo (wie GitHub oder ProjectLocker und viele andere) zu halten
Kopie von Ihrem Projekt entfernt von Ihrem Arbeitsplatz ohne zusätzlichen Aufwand/Geld.
Aber ich benutze GUI-client nur sieht diffs (und manchmal bei der Auswahl von Dateien zu Begehen),
so ist es besser, keine Angst vor der Kommandozeile-es ist wirklich schön.
So, ab heute würde ich mit Git.
InformationsquelleAutor der Antwort Grzegorz Gierlik
Ich würde auch empfehlen, Mercurial. Es Befehlssatz ist ähnlich wie die gefunden in Subversion, so dass die Lernkurve ist nicht so steil. Wie bereits erwähnt, es ist entworfen, um lokal ausführen, aber es ist auch leicht zu teilen/Zusammenführen von änderungen über Computer, oder auch nur schieben Sie es auf einem remote-server für Ihre sicherungen.
Bietet es hervorragende tools, wie TortoiseHGund es hat gute plugins für NetBeans und Eclipse. Es läuft auch nativ auf Win32, wie es ist in Python geschrieben.
Wenn Sie nicht möchten, richten Sie einen server selbst (für backups, z.B.), es gibt kostenlosen hosting-Dienstleister zur Verfügung; es gibt einen umfassenden Liste auf Der Mercurial Wiki.
InformationsquelleAutor der Antwort jespern
Ich würde definitiv empfehlen, git
Funktioniert gut für sowohl große und kleine teams. Einziger Nachteil ist die schlechte native windows-Unterstützung. Obwohl es funktioniert gut für mich in Cygwin. Es existiert auch eine die nativen windows-port.
Einige seiner Vorteile:
Einige Leute finden, dass es hat eine steile Lernkurve. Aber sobald Sie es verstehen können Sie fast alles, was Sie möchten.
InformationsquelleAutor der Antwort Thomas Watnedal
Gehen für subversion und tortoiseSVN, die Sie nicht brauchen, um es einzurichten auf einem server.
InformationsquelleAutor der Antwort binOr
Sourcegear ' s Vault ist eine gute option, es läuft auf SQL Server, und es hat schon seit vielen Jahren. Würde ich nicht verwenden, eine beliebige version von VSS (Visual Source Safe).
InformationsquelleAutor der Antwort Erick Sgarbi
Subversion hat eine sehr niedrige Barriere zum Eintrag.
TortoiseSVN ist ein kostenloser client, und integriert sich ins explorer - also im Rechte-Maus-Klick-Menü.
Repository können nur auf ein Verzeichnis irgendwo auf Ihrem PC oder auf einem Netzlaufwerk. Sichern bedeutet nur zippen und dann dieses Verzeichnis
Gibt es ein paar plugins für Visual studio, Subversion, AnkSvn ist, das ich verwendet habe, es ist kostenlos und integriert sich schön (ich.e es wird intelligent sein, über das verschieben und löschen von Dateien etc)
Subversion ist eine gute Wahl für einen Entwickler.
Update:
Seit diesem post, ich habe mit Mercurial. Es ist ein Verteiltes SVN. Die 'verteilten' Aspekt, der vielleicht nicht direkt hilfreich, ein einziger Entwickler, aber es ist besser Zusammenführen und ist etwas schneller. Es gibt auch eine Kostenlose und gute Erweiterung für Windows Explorer, client - Tortoise Hg.
So, in Zusammenfassung, wenn Sie die Art von person, die Arbeit auf viele äste auf einmal (spikes etc) oder wenn man die Arbeit auf mehrere PCs auf einmal und möchte die volle offline-Zugriff auf Check-in-Geschichte auf beiden, dann Mercurial. Wenn Sie wollen einfach nur einfache tracking und eine gut bewährte und leicht verständliche Lösung, dann Subversion.
InformationsquelleAutor der Antwort Frep D-Oronge
Ich bin überrascht, niemand hat erwähnt Perforce. Es ist kostenlos, für 2 Personen, rasend schnell, und lässt sich mit VS. Auch Quellserver hat Bindungen für die es standardmäßig.
Neben der source-control, es lohnt sich wirklich, um die komplette Schleife und Einrichtung einer Symbolserver und ein Quellserverso dass Sie einfacher zu Debuggen, was Sie geliefert haben (z.B. nicht mehr die Suche nach PDB-Dateien oder source, die mit der binary). Beide source-und symbol-server sind komplett kostenlos und unterstützt in VS seit 2005.
InformationsquelleAutor der Antwort Steve Steiner
Können Sie verwenden, SourceGear Vault, die Ersatz-tool für visual studio source safe.
Die IDE integriert sich in Visual Studio.
Das tool ist kostenlos für einzelne Anwender.
Mehr Informationen: http://www.sourcegear.com/vault/index.html
InformationsquelleAutor der Antwort Niki
Benutze ich Mercurial. Es läuft eine Behandlung läuft allein auf meinem Vista-system für die Entwicklung, die keine andere Abhängigkeiten benötigt. Ich verwende die Kommandozeile, aber es gibt auch TortoiseHG Integration mit Explorer.
Zwei Kommentare:
Edit: @Slartibartfast - wenn Sie nur wollen, zu laufen, source code control auf einer einzigen Maschine eine Verteilte Source-Code-Control-Tools wie git oder Mercurial ist ideal, da Sie sind entworfen, um eine vollständige Repositorys auf einer Maschine ohne den Aufwand für einen server. Die Tatsache, dass Sie nie mit Ihrem repository, um jemand anderes zu push-und pull-änderungen bedeutet nicht, dass das tool nicht richtig sein.
InformationsquelleAutor der Antwort Dave Webb
Gibt es zwei mögliche Lösungen für dein problem: ein zentralisiertes VCS oder Verteilte Versionskontrolle (DVCS).
Zentralisiertes VCS, wie Subversion erfüllen würde, Sie verfügen über zu Begehen, und durchsuchen Sie das Protokoll. Es ermöglicht Ihnen auch, um sicher zu speichern Ihr repository auf einen anderen computer, das sollte eine Ihrer wichtigsten Ziele als Festplatte scheitern ist immer eine Möglichkeit. Jedoch, die Verwendung von Subversion die Geschichte befindet sich immer noch nur auf die zentrale Lage macht es anfällig und Sie haben gesagt, dass Sie nicht wollen, um über einen anderen server.
Distributed Version Control Systeme (DVCS) wie Mercurial und Git können Sie mehr komplexe Operationen auf dem repository. Mit beiden tools das gesamte repository befindet, mit dem gleichen computer, so dass es etwas einfacher ist, backups zu machen, und verwenden des repository mit einem anderen computer, z.B. laptop. Während der Mercurial könnte scheinen Komplex zunächst die Operationen, die Sie verwenden würden, mit subversion sind so ziemlich das gleiche mit Mercurial. Deshalb gibt es keinen zusätzlichen Aufwand, wenn Sie bereits wissen, Subversion und Sie können leicht mit fortgeschrittenen Funktionen von Mercurial später.
Sollten Sie in der Lage zu finden online-repository-service für Ihre Mercurial-repository, sodass Sie einfach backups und machen die Zusammenarbeit eines Tages, wenn Sie benötigen es.
Meine Empfehlung ist Mercurial mit TortoiseHg.
InformationsquelleAutor der Antwort Aku Ankka
Einem source-control-system kümmert sich nicht, wenn es nur einen Entwickler gibt, die beteiligt sind 🙂
Ich würde empfehlen, dass Sie verwenden ein source-control-system, die Sie verwendet haben, bevor, und mochte.
Wenn Sie wie vs 2008 integration des source-control-system, jedoch würde ich mit TFS obwohl ich nie die Erfahrung gehabt, um es einzurichten, aber es sollte nicht so schwer sein.
Andere Möglichkeit ist die Verwendung von svn (Sie finden auf einigen Servern von google), und verwenden Sie Tortoisesvn , integriert sich in die windows shell und ist schön, mit zu arbeiten.
InformationsquelleAutor der Antwort Stormenet
Einer Anzahl der Beiträge befürworten, putting-repository auf einem server, denn Sie sorgt für Redundanz. Ich glaube nicht, dass dies alles ist, was hilfreich für einen einzelnen Benutzer. Mit einer separaten server-Maschine fügt eine Menge an Komplexität, aber es nicht kaufen, viel Redundanz: wenn Sie verlieren, der server-Computer, haben Sie immer noch die aktuellen Quellen, die sich auf Ihre Entwicklung Maschine, Sie können Sie aber verloren haben ALLE Ihre Geschichte. Setzen Sie das repository auf einem server keinen Sinn machen, wenn dieser server wird regelmäßig gesichert. Mit einem externen hosting-service für das repository bereitstellen können-storage-Redundanz, aber du bist auf die Gnade des externen service-UND Sie brauchen eine Internetverbindung, um Zugriff auf das repository. Wenn Sie einen externen host, machen regelmäßige backups des Repositorys, die Sie unter Kontrolle halten!
Ich würde presonally empfehlen TortoiseSVN über eine lokale Datei-basierten repository. Nur stellen Sie sicher, sichern das lokale repository an einen zweiten Rechner oder ein externes Medium (z.B. CD-ROMs) auf einer regulären basis.
InformationsquelleAutor der Antwort Stephen C. Steel
Empfehle ich zwei Dinge:
Erste, dass die anderen server - was passiert, wenn Ihr Computer stirbt? das Haus brennt? etc. Dass es auf einem anderen Rechner ist eine gute Idee von einer Redundanz Sicht.
Das zweite ist WAS:
Wenn Sie sind sehr vertraut mit visual source(un -) sicher, denke über SourceGearVault. Es ist SEHR schön, sehr schnell und sehr stark verbessert "Klon" der VSS (ie funktioniert auf die gleiche Weise von dem Benutzer POV, nicht unter der Haube). Muss SQL server-und windows-tho (es .NET + SQL server). Kostenlos für 1 Benutzer.
Nicht, dann schlage ich vor, Sie tun eines von zwei Dingen:
Erste, VisualSVN. Es ist toll, arbeiten mit VS2008 wirklich gut.
Zweitens, wenn Sie MÜSSEN, um Sie lokal auszuführen, erhalten VisualSVN server (kostenlos!). Stellen Sie sicher, Sie haben eine gute backup-plan. Läuft auf XP/2003/2008/Vista etc.Es ist nur Apache + SVN, unter der Haube, so dass es nur speichert Sie auf der setup - hat mich 5 Minuten zu installieren und haben es ausgeführt.
ODER, und ich bevorzuge diese:
gehen irgendwo wie Unfuddle, Dreamhost etc, und erhalten hosting für SVN. Es ist privat, es ist schnell, und die meisten von allen - es ist OFFSITE. Meine dreamhsot Konto, mit etwas verrücktes wie 500 GB Speicher und 1-2 TB transfer/Monat kostet etwa 6 $/Monat! Es gibt andere, die tun, SVN hosting + bug-tracking, etc. Schauen Sie sich um.
Aber ja - SVN ist das schizzzznit.Sie könnte erstellen Sie ein lokales repository, aber ich mag einen entfernten, gesicherten server.
TFS ist totaler, völliger overkill für 1 Entwickler (oder <5 IMO)
InformationsquelleAutor der Antwort Nic Wise
Erkenne ich, dass die Kosten nicht ein problem, aber eine schöne Kostenlose Lösung, wäre nicht die Check-in-und out-sein würde, um host-code in Dropbox dadurch würden Sie sofort bekommen, Versionierung und backup-welches sind die wichtigsten Funktionen, die ein Entwickler-system bieten würde.
InformationsquelleAutor der Antwort Smallinov
Basar ist eine gute version control system. Ich möchte es für meine linux-configs, da brauchen Sie nicht zum erstellen einer separaten repo.
InformationsquelleAutor der Antwort Tanj
Einer Weile habe ich ein how-to-blog-post mit SVN mit nur einem Entwickler.
Ich nannte es Portion source-control
InformationsquelleAutor der Antwort Anthony
Gut, für den Anfang, brauchen Sie nicht vertrieben 🙂
Ich bin mir nicht sicher, was dieser physische Teil bedeutet, weil Sie setzen könnte, svn-server auf eine eigene Maschine, in der wenig Mühe.
Auf der anderen Seite, NetBeans haben die lokale Geschichte Modul protokolliert alle lokalen änderungen an einer Datei. Vielleicht wäre so etwas genug für Sie, wenn Sie Visual Studio haben, etwas ähnliches.
InformationsquelleAutor der Antwort Slartibartfast
Ich würde empfehlen, Subversion, da es für einzelne Entwickler und ich nehme an, Sie sind nicht sonderlich Komplex Zusammenführen und viel log/Geschichte überprüfen.
Scheint, wie viele Menschen sind mit http://svnrepository.com/ für Ihr hosting. Es kommt mit Trac und auch Git-wenn Sie es später benötigen.
InformationsquelleAutor der Antwort htanata
Einige gute Antworten hier.
Ich möchte zu re-iterieren, den Vorschlag, einen separaten computer zum hosten der source-control-server, obwohl es nicht zu einer gewidmet Maschine. Es könnte Ihr die Windows Home Server-box, oder einen anderen server, mit dem Sie bereits läuft. Oder könnte es sein, eine virtuelle Maschine gehostet auf einem anderen server. Was auch immer, nur machen es getrennt von der Maschine(s), wo Sie den code schreiben.
Ich möchte auch vorschlagen, dass man einen guten backup-Disziplin für Ihren server. Etwas nightly zumindest stundenweise, wenn Sie können. Zurück bis zu einem dedizierten Gerät (wie einer externen Festplatte) oder etwas offsite (auf einen server in Ihrem Vetter-Haus in einem anderen Staat) oder in der cloud (Amazon S3). Denken Sie daran, dass Sie Ihre source-code ist Ihr Schlüssel asset; kümmern!
InformationsquelleAutor der Antwort Jay Bazuzi
Arbeite ich mit Basar jetzt für ein paar Wochen und mag es wirklich. Ich bin linux-Entwickler also nicht wirklich viel Ahnung von Tortois aber wenn Sie es mögen, Sie sollten wissen, dass es eine Tortoisbzr
InformationsquelleAutor der Antwort cparrish817
Hände nach unten würde ich die git verwenden, und ich glaube, viele Gründe, warum ein single-Entwickler möchte mithilfe von git sind angedeutet oder beschrieben in git magic
InformationsquelleAutor der Antwort skiphoppy
Benutze ich Springloops - version control tool für Entwickler
Also, versuchen Sie, Springloops
InformationsquelleAutor der Antwort user3095323
Ich sehe nicht ein, warum die Tatsache, dass Ihr ein Entwickler ändert nichts an der source-control-Problem. Ich würde Folgen Sie dem gleichen system (in der Tat mache ich auf meine solo-Projekte). Ich benutze wush.net (svn und trac) in diesen Fällen. Es ist schnell aufzubauen und nicht erfordern, dass Sie selbst tun oder wissen irgendwelche server-Probleme. Ich empfehle, verwenden Sie etwas wie dieses.
InformationsquelleAutor der Antwort Alexander Morland
Ich würde empfehlen die Verwendung von subversion ab. Viele haben empfohlen, mit einer seperaten box als server, falls Ihr dev-Maschine stirbt. Was passiert, wenn der SVN-server stirbt? Die Antwort hier ist, dass, egal wo Sie wählen, um den server zu starten, sicherzustellen, dass Sie immer tun häufigen backups, wird möglicherweise eine automatisierte tägliche zu einigen sekundären, preferrebly offsite-Maschine.
InformationsquelleAutor der Antwort Kibbee
Benutze ich Notgedrungen auch für meine eigenen persönlichen Sachen, vor allem, weil wir verwenden es bei der Arbeit. Es gibt emacs-bindings für Sie als gut, so dass Sie synchronisieren können, prüfen Sie, Sachen in oder out, etc. alle innerhalb von emacs.
InformationsquelleAutor der Antwort Graeme Perrow
Ich vor kurzem umgezogen, mein studio und Subversion, Perforce und legte einige Notizen über Sie, eine Art post-mortem, auf meinem blog hier. Hoffe, es ist nützlich.
InformationsquelleAutor der Antwort scobi