Diese Diskussion wurde archiviert.
Es können keine neuen Kommentare abgegeben werden.
|
|
|
|
|
|
|
|
|
Im aktuellen iX, ab Seite 116 kann man mehr über den CVS-Nachfolger Subversion lesen. Hat schon jemand Erfahrungen damit gemacht?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Im aktuellen iX, ab Seite 116 kann man mehr über den CVS-Nachfolger Subversion lesen. Hat schon jemand Erfahrungen damit gemacht?
Ich konnt's mir grade noch verkneifen im Artikel Werbung für SVN (Kurzform für Subversion) zu machen. Schön, daß Du danach fragst. :-)
Wir setzen bei uns in der Firma seit ca. einem halben Jahr Subversion im Echtbetrieb für alle neuen Projekte als CVS-Ersatz ein. Allerdings verwende ich es nur als Benutzer und kann zum Thema Wartung der Repositories nur sagen, was ich von Kollegen mitbekommen habe. Hier also mein Braindump zu Features und Stabilität:
Subversion ist geil. Für mich als Apache-Freak sowieso. Im Gegensatz zu CVS ist von vorneherein als Client-Server-System designt. Als Übertragungsprotokoll dient das auf HTTP und XML aufbauende Protokoll WebDAV, als Server Apache 2.0 mit mod_dav und mod_svn, d.h. es greift an vielen kritischen Stellen auf bekannte Protokolle und Bibliotheken zurück, was etwas die Scheu mindert und es auch vor gröberen Designfehlern bei den Komponenten, die nicht den Kern ausmachen (Netzwerk-Server, Protokolle, Proxy, etc.), schützt.
SVN hat nur ein Ziel: CVS zu ersetzen und alle mit der Zeit aufgetretenen Schwächen auszumerzen ohne dafür neue einzuführen. SVN
- geht im Gegensatz zu CVS davon aus, daß der Benutzer viel Plattenplatz hat, aber Bandbreite kostbar ist, d.h. z.B., daß man lokal immer eine Kopie der letzten ein- oder ausgecheckten Version hat und damit z.B. ein CVS diff oder ein rollback ohne Netzwerkverbindung funktionieren,
- kann Verzeichnisse und nicht nur Dateien versionieren,
- kann problemlos versionierte Dateien kopieren, umbennen oder verschieben,
- kennt ein übersichtliches status-Kommando (ihr wißt doch: Man verwendet lieben cvs up als cvs status, weil cvs status pro Datei 7 Zeilen und cvs up nur 1 braucht :-),
- kann Diffs in beiden Übertragungsrichtungen und verwendet unterschiedliche Diff-Algorithmen für Text- und Binärdateien,
- versioniert nicht den Zustand einzelner Dateien sondern ganzer Verzeichnisstrukturen.
- den MIME-Type mit abspeichern, versionieren und auswerten (und weiß damit, ob es sich um eine Text- oder Binärdatei handelt),
- beliebige Metadaten mit abspeichern,
- kann per SSL getunnelt werden, da auf HTTP basierend,
- hat keine Probleme mit Firewalls, da es auf Port 80 arbeitet,
- kann über HTTP-Proxies eingesetzt werden (weiß nicht, ob das schon implementiert ist),
- ist ohne größere Umgewöhnung für einen bisherigen CVS-Benutzer bedienbar, einzige psychologische Hürde: Versionnummern lauten nicht mehr x.yy sondern yy und gelten auch nicht für einzelne Dateien sondern für das gesamte Projekt mit (IIRC) allen Branches. Das hat den Vorteil, daß man sehr schnell und übersichtlich den Stand zu einem bestimmten Zeitpunkt bekommt. Außerdem sind Commits wirklich atomar, d.h. wenn die Verbindung während dem Einchecken abbrach, ist keine der Dateien commited, wie das bei CVS passieren kann
- ist unter der Apache License veröffentlicht
Nachteile: Es gibt keine File-System-Only-Variante mehr (ist das wirklich ein Nachteil :-) und der Server braucht recht viel RAM. 256 MB waren definitiv zu wenig, um ein größeres Binary-Paket einzuchecken. Ein weiterer Nachteil, der aber sicher bald ausgemerzt ist, ist, daß die Clients noch bei kaum einer Linux-Distribution dabei sind (bei Debian z.B. bisher nur in unstable), d.h. wenn man viel an fremden Rechnern arbeitet, kommt man momentan um CVS noch nicht herum.
Zum Stand der Entwicklung: SVN ist zwar noch im Beta-Stadium, aber definitiv bereits benutzbar: Es tauchen hier und da noch die einen oder anderen Problemchen auf und Updates sind noch häufig noch mit etwas Handarbeit verbunden. Wir hatten auch vor ein paar Monaten noch den einen oder anderen commit, bei dem nur Müll im Repository ankam und Segfaults in den Clients, aber trotzdem: Hier sind alle Entwickler mit SVN zufrieden, vorallem die, die sich vorher immer über die Erblasten und Unflexibilität von CVS aufgreget haben.
Achja, es gibt auch Windows-Clients, sowohl für GUI als auch für die Kommandozeile und sie hinken der Entwicklung meist nur wenige Stunden bis einige Tage hinterher.
Und noch ein bißchen Zukunftsmusik: Noch nicht implementierte, aber für eine Version nach 1.0 geplante Features sind u.a. Symlink-Support ;-), ein Gegenstück zu "cvs annotate" namens "svn blame", PlugIn-Support für verschiedene Diff-Algorithmen sowie Internationalisierung.
Ok, das sollte für's erste ersma reichen. :-) Gleich auf der Startseite von subversion.tigris.org findet sich übrigens eine schöne Zusammenfassung über die Ideen, Konzepte und Features von Subversion.
--
Einer der Gnutella-Klone heißt Gnutoka, und ich frag mich, wann Gnusspli rauskommt...
|
|
|
|
|
|
|
|
|
|
|
|
|
Muß mich kurz noch selbst korrigieren: Subversion ist noch im Pre-Beta-Stadium, aber das Major-Feature-Freeze war bereits im Juli 2002. Der Termin für die erste Beta steht noch nicht fest, ich würde ihn aber dieses Frühjahr/Sommer erwarten. --
Einer der Gnutella-Klone heißt Gnutoka, und ich frag mich, wann Gnusspli rauskommt...
|
|
|
|
|
|
|
|
|
|
|
|
|
Cool, danke fuer diese kleine Kritik, ich werds mir sicher bald mal reinziehen.
Aaaber, is das nicht ein wenig heftig wenns das ganze Repository versaut hat?
----------------
Wer gegen ein Minimum
Aluminium immun ist, besitzt
Aluminiumminimumimmunität
|
|
|
|
|
|
|
|
|
|
|
|
|
Aber James, wir werden doch regelmäßig ein Backup ziehen, von der Repository-Platte.
|
|
|
|
|
|
|
|
|
|
|
|
|
Wie gesagt, das war vor einiger Zeit und ist eigentlich seit einigen Monaten auch nicht mehr passiert. Ausserdem hat es nur die committete Version nicht richtig eingecheckt.
Klar, das ist ärgerlich und verschafft Arbeit, grade wenn man's erst beim auschecken bemerkt, aber den Glauben an SVN hat's wenig erschüttert.
Du willst für Projekte, die mehr als eine Handvoll Dateien umfassen einfach kein CVS mehr, wenn Du einmal die Vorteile von SVN kennengelernt hast. Klar, damals hätte ich es auch nicht so empfohlen, aber wir haben nun einfach schon längere Zeit keinen Ärger mehr gehabt (mancher lag wohl auch ursächlich an zuwenig RAM im Server) und die Neuerungen gegenüber CVS sind einfach nützlich.
--
Einer der Gnutella-Klone heißt Gnutoka, und ich frag mich, wann Gnusspli rauskommt...
|
|
|
|
|
|
|
|
|
|
|
|
|
Bleibt die Frage: lassen sich CVS Repositories übernehmen? Was nützt ein neues super Tool, wenn dadurch altes weg muß - und manchmal will man halt doch eine alte Version haben oder die Gründe (aus dem Kommentar) warum etwas wie gelöst wurde oder einfach nur, weil man eine komplexe Branch-Struktur hat.
Hast Du damit Erfahrungen sammeln können? Oder jemand anderes? --
$ cd /dos/c/MICROSO~1
$ rm -rf *
|
|
|
|
|
|
|
|
|
|
|
|
|
Ja, so ein Tool hat's dabei oder gibt's zumindest dort auf der Webseite. Haben wir aber nicht in Verwendung. War uns IIRC zuviel Aufwand... --
Einer der Gnutella-Klone heißt Gnutoka, und ich frag mich, wann Gnusspli rauskommt...
|
|
|
|
|
|
|
|
|
|
|
|
|
Hm... Laut iX gibts auch die Möglichkeit das Repository lokal zuhalten: Statt "http" einfach "file" als URL-Schema für's Repository verwenden. Hab' aber kein SVN am Laufen, kann's also nicht nachprüfen.
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Tuesday 21. January, 08:06 MEW (#4)
|
|
|
|
|
Dein Beitrag sagt mehr aus, als der IX Artikel :-)
|
|
|
|
|
|
|
|
|
|
|
|
|
Danke. Denke aber daran, daß er vermutlich auch deutlich subjektiver ist und gestern Nacht zwischen 1 und 2 Uhr geschrieben wurde. :-)
--
Einer der Gnutella-Klone heißt Gnutoka, und ich frag mich, wann Gnusspli rauskommt...
|
|
|
|
|
|