CVS oder SVN?
-
Was ist zur privaten Nutzung zu bevorzugen?
:schland:
-
Git
-
Und warum?
-
Servus,
GIT oder Mercurial
siehe GIT vs. MercurialBegründung: Beide System laufen lokal auf deinem Rechner und somit funktionieren beide auch dann, wenn du mal keine Internetverbindung hast. Wenn eine Verbindung besteht, kannst du die Änderungen mit dem Server abgleichen.
Gruß,
Thomas
-
Siassei schrieb:
[...]Begründung: Beide System laufen lokal auf deinem Rechner und somit funktionieren beide auch dann[...]
Und das trifft auf CVS und SVN nicht zu
Ich finde unter Windows SVN+Tortoise ganz brauchbar.
-
Also ich möchte eine Versionskontrolle auf meinem Heimserver laufen lassen.
Bisher tendiere ich zur SVN.Weitere Anregungen?
-
Tachyon schrieb:
Siassei schrieb:
[...]Begründung: Beide System laufen lokal auf deinem Rechner und somit funktionieren beide auch dann[...]
Und das trifft auf CVS und SVN nicht zu
Insofern nicht, als CVS und SVN beide einen Server benötigen, den Du irgendwo installieren musst, zB. bei Dir zuhause.
Verteilte Versionskontrollsysteme brauchen hingegen keinen Server. Du kannst zwar einen verwenden, aber Du kannst auch komplett ohne arbeiten.
curry-king: CVS ist von vorvorgestern und SVN von vorgestern. Nimm Git, da brauchst Du nur lokal überall Git installieren. Wenn Du Deine Sourcen dann irgendwo auf einem zentralen Server haben möchtest, installierst Du dort auch Git und machst hin und wieder "git push" und die Sache ist gegessen.
http://git-scm.com/
http://whygitisbetterthanx.com/Und falls Du Windows verwendest und tortoisesvn magst, gibts natürlich auch GUI-Tools wie tortoisegit
-
Weder CVS noch SVN. CVS ist ja sogar noch schmerzhafter als SVN. Subversion ist wirklich langsam, man benötigt ständig den Server, branchen/merging ist eine frickelige Angelegenheit, etc.
Das man ständig einen Server braucht ist ja gerade für private Projekte nervig. Machst du regelmäßig ein Backup von dem Server? Bei einem verteilten VCS wie git oder mercurial ist jedes Repo vollwertig und man verliert nicht die ganze Geschichte, wenn mal der Server stirbt.
CVS und SVN sind einfach von gestern bzw. vorgestern. Heutzutage nutzt man git oder mercurial.
-
Was redet ihr denn da? Bei Subversion brauche ich nicht unbedingt einen Server. Ich kann ein Subversion Repository einfach in einem Verzeichnis anlegen und gut ist.
Sicher ist Git oder Mercurial moderner und besser, aber so schlecht ist Subversion ja auch nicht.
-
Kann mich meinem Vorgänger nur anschließen...
ich nutze SVN+Turtoise+Ankh und man benötigt dafür DEFINITIV keinen Server. Ich habe mein privates Repository z.B. auf einem Stick liegen (zum lässigen Wechseln zwischen PC, Notebook und Arbeit).
-
Ach, nicht aufregen. Wenns um git geht, kommt bei diversen leuten gern mal der fanatismus raus. Nix neues.
Benutzte auch SVN. Ohne "server".
-
SolidOffline schrieb:
Ich habe mein privates Repository z.B. auf einem Stick liegen (zum lässigen Wechseln zwischen PC, Notebook und Arbeit).
Den brauchst Du auch, wenn Du keinen Server betreiben möchtest und trotzdem von mehreren Rechnern aus bequem SVN verwenden möchtest. Und wenn der Stick kaputtgeht, ist die gesamte Versionsgeschichte weg, sofern Du sie nicht irgendwohin synchronisiert hast.
Bei verteilten Versionskontrollsystem ist genau dieses synchronisieren integraler Bestandteil des VCS und braucht nicht so krampfige Tools wie svnsync, mit denen in der Regel alles außer trivialer Repo-Replikationen ein Kampf ist. (Merging in Subversion ist einfach nur schmerzhaft, auch ganz ohne replizierte Repos.)
(Und wenn ein zentrales Repo (sofern vorhanden) kaputtgeht, ist immer noch jeder Checkout ein vollwertiger Klon.)
Ob Du nun Mercurial oder git nimmst, ist dabei weitestgehend Geschmackssache, aber wenn Du mit Versionskontrolle gerade frisch anfängst, dann tu Dir den Gefallen und fange nicht mit veralteten Tools an, die die meisten Leute nur mehr aus Gewohnheit und Angst vorm Umsteigen benutzen. (Solltest Du irgendwann mal in die Verlegenheit kommen, SVN verwenden zu müssen, kannst Du als Client übrigens einfach Mercurial oder git verwenden und lokal vernünftig offline arbeiten.)
-
edit: wakckelige Verbindung, Doppelpost
-
KuhTee schrieb:
Ach, nicht aufregen. Wenns um git geht, kommt bei diversen leuten gern mal der fanatismus raus. Nix neues.
Benutzte auch SVN. Ohne "server".
Das wird wohl ein Flameware
Subversion hat eine sehr guten Ruf und wird seit Jahren benutzt. Für das arbeiten mit den Daten wird keine Verbindung zum zentralen Repository benötigt.Erst bei Änderungsanfragen (merge, commit, ...) muss eine Verbindung zum zentralen Repository bestehen. Zudem geht man das Risiko ein, dass beim einem Crash des zentralen Repository die gesamte History verloren geht.
Dezentrale Systeme haben diesen Nachteil nicht. Dort stellt jede Kopie ein vollwertiges Repository dar.
Da sollte man den Wiki-Artikel durchlesen: http://de.wikipedia.org/wiki/Versionsverwaltung#Verteilte_VersionsverwaltungSolidOffline schreib:
ich nutze SVN+Turtoise+Ankh und man benötigt dafür DEFINITIV keinen Server. Ich habe mein privates Repository z.B. auf einem Stick liegen (zum lässigen Wechseln zwischen PC, Notebook und Arbeit).
Das zentrale Repository liegt sommit auf dem USB-Stick. Mit der installierten Software betreibst du einen "Server" (biete nicht 1zu1 verstehen) auf jeden Computer. Aber das ist nicht genau das, was wir hier meinen.
Wenn du das so machst, dann ist das schön und gut. Aber du wirst hier nicht abstreiten, dass du ein zentrales Repository besitzt und auf diesem alle Änderungen durchgeführt werden.
Somit arbeitest du nicht mit einer lokalen Kopie, sondern direkt auf dem zentralen Repository und schlepst dieses von Ort zu Ort. In diesem Fall unterscheiden sich zentrale und verteilte Systemen nicht.Gruß,
Thomas
-
Siassei schrieb:
Erst bei Änderungsanfragen (merge, commit, ...) muss eine Verbindung zum zentralen Repository bestehen.
Und für alles, was irgendwie mit Versionsgeschichte zu tun hat. Somit braucht man also für "svn log", Blame und Bisect Serververbindungen. Und die entsprechenden Anfragen sind dann auch quälend langsam.
-
Kann ich nur empfehlen: http://chaosradio.ccc.de/cre130.html
-
Hab frueher auch SVN verwendet und bin jetzt bei git. Der Umstieg brachte keine Nachteile, keine Vorteile mit sich. Wenn du "frisch" anfaengst, gibts echt absolut keinen Grund, bei sowas Altem wie SVN zu bleiben.
-
Es gibt mit Sicherheit auch Szenarien, die eher fuer svn sprechen.
Und für alles, was irgendwie mit Versionsgeschichte zu tun hat. Somit braucht man also für "svn log", Blame und Bisect Serververbindungen. Und die entsprechenden Anfragen sind dann auch quälend langsam.
Muss ich bedingt zustimmen, aber wir haben bisher noch keine andere alternative wirklich ausmachen koennen.
Unsere Anforderungen z.b.:
- Defizieles RechteManagment
- Kommunikation ueber nur bestimmte protokolle fuer externe zugriffe. FTP/SFTP faellt raus wegen Sicherheitsapekte, direktzugriff (SSH, telnet ... ) faellt raus wegen Sicherheitsaspekte ... nfs/cifs(smb) no chance ... das einzige was geht ist http/https
- zentrales Managment vs. dezentrales. Wenn man die Projecte und zustaendigkeiten klar abgrenzen kann, iss nen dezentrales sicher besser. Hat man viele Anteile, wo fuer eine Datei z.b. viele Maintainer zustaendig sind, laeufst eh schnell in Probleme. Da iss nen klassisches zentrales System mit onlinezwang eher positiv.
Wenn ich bei einem so einen Project mal 3 Tage ned Comitte, bin ich hinterher locker schneller wenn ich meine Aenderungen verwerfe und in den aktuellen Stand komplett neu einpflege, als wie wenn ich die Kollisionen bearbeite ....
Klar, das Projectmanagment an der STelle iss ned so optimal, geht aber manchmal ned anders ...Ciao ...
-
nman schrieb:
SolidOffline schrieb:
Ich habe mein privates Repository z.B. auf einem Stick liegen (zum lässigen Wechseln zwischen PC, Notebook und Arbeit).
Den brauchst Du auch, wenn Du keinen Server betreiben möchtest und trotzdem von mehreren Rechnern aus bequem SVN verwenden möchtest. Und wenn der Stick kaputtgeht, ist die gesamte Versionsgeschichte weg, sofern Du sie nicht irgendwohin synchronisiert hast.
Und wenn ich ausschliesslich auf einem Rechner arbeite und git verwende und dann meine Festplatte abraucht, dann ist bei git die Versionsgesschichte etwa nicht weg? Ein Versionsverwaltungssystem ist kein Ersatz für ein Backup.
Man kann mit svn sehr viel machen. Dass mit git mehr geht, ist sicher so, aber wenn svn reicht, dann reicht svn.
-
Vielleicht könnte man sich darauf einigen, dass folgende Aussagen in Bezug auf SVN falsch sind:
- git und mercurial sind besser weil: Beide System laufen lokal auf deinem Rechner und somit funktionieren beide auch dann, wenn du mal keine Internetverbindung hast. Wenn eine Verbindung besteht, kannst du die Änderungen mit dem Server abgleichen.
Aussage falsch, weil: SVN ebenfalls lokal läuft und ebenfalls auch dann bestens funktioniert, wenn keine Internetverbindung besteht.
- ... CVS und SVN beide einen Server benötigen, den Du irgendwo installieren musst, zB. bei Dir zuhause.
Aussage falsch, weil: SVN keinen Server benötigt, den man irgendwo installieren muss.
Alles unter der Annahme, dass ein Server nicht mit einem Verzeichnis gleichzusetzen ist.
Vielleicht könnte man sich dann darauf einigen, dass folgende Aussage wahr und unmissverständlich ist:
- Für SVN wird ein zentrales Repository benötigt (sofern man auch mal commiten möchte
), was dann einen Unterschied zu z.B. git oder mercurial darstellt, sobald man auf mehr als einem Rechner arbeiten möchte.
Zur "privaten Nutzung" kann ich SVN also auch ohne Internetverbindung und Server empfehlen.
Das Repository sollte (wie eigentlich alle Daten) natürlich regelmäßig gesichert werden.
-
ich bins schrieb:
nman schrieb:
SolidOffline schrieb:
Ich habe mein privates Repository z.B. auf einem Stick liegen (zum lässigen Wechseln zwischen PC, Notebook und Arbeit).
Den brauchst Du auch, wenn Du keinen Server betreiben möchtest und trotzdem von mehreren Rechnern aus bequem SVN verwenden möchtest. Und wenn der Stick kaputtgeht, ist die gesamte Versionsgeschichte weg, sofern Du sie nicht irgendwohin synchronisiert hast.
Und wenn ich ausschliesslich auf einem Rechner arbeite und git verwende und dann meine Festplatte abraucht, dann ist bei git die Versionsgesschichte etwa nicht weg? Ein Versionsverwaltungssystem ist kein Ersatz für ein Backup.
Stimmt schon, nur Git hat ein Automatisches "Backup".
Jeder der aus checkt hat es, wenn deine Platte ab raucht, frag jemanden der es noch aus gecheckt hat ob er dir sein Repo geben kann, schon ist alles wieder da.@SolidOffline
Was ist wenn du Online sowie Offline arbeiten können willst? Dann musst du immer das Repo lokal und auf den Server manuell Synchronisieren, mit History und alles -> Viel Spaß.Mit "Server" ist ein zentrales Repository gemeint.