Persönliche Quellcodeverwaltung über Subversion - stoppen Sie mich, bevor ich zu weit gehe!

1959
STW

Ich wurde in letzter Zeit vom SVN-Fehler gebissen; Der Motor wurde hauptsächlich durch den intensiven Einsatz eines persönlichen Repos angetrieben, um die Kontrolle über den Code des Proof-of-Concept, Dokumente und kleine Dateien sowie die Synchronisierung meiner beiden Maschinen zu gewährleisten.

Mein Heim-NAS, ein D-Link DNS-323, ist eine solide kleine Box, in der zusätzliche Skripts und Pakete installiert sind, um täglich Sicherungskopien zu erstellen. Es hat jedoch auch einige Mängel, die verhindern, dass es wie gewünscht verwendet wird . Ich hoffte, es als permanenter Dateiserver für Zuhause und für die Remoteanwendung verwenden zu können. Die Berechtigungskontrollen sind jedoch recht schwach und unflexibel. Der Zugriff darauf außerhalb meines Heimnetzwerks ist auf SSH / SCP und FTP beschränkt (dies ist jedoch nur möglich.) vorübergehend, wenn überhaupt).

Also dachte ich mir: Was wäre, wenn ich es hauptsächlich als SVN-basierten Dateiserver verwendete und den Fernzugriff über SSH + SVN erlaubte. Ich könnte immer noch eine Nicht-SVN-Windows-Freigabe für große Dateien wie z. B. meine Laptopsicherungen haben. Aber ich könnte es im Großen und Ganzen als SVN-Repo für persönliche Dateien verwenden.

Hier stellt sich die Frage, wo ich aufhöre. Welche Beschränkungen bestehen für SVN in Bezug auf die maximale Repo-Größe oder Größe der darin gespeicherten Dateien?

4

6 Antworten auf die Frage

13
Daff

Subversion wird hauptsächlich als Quellcodeverwaltungssystem verwendet, daher ist es nicht die Absicht, Binärdateien zu versionieren. Welche Vorteile sehen Sie bei der Verwendung von Subversion für die Synchronisierung Ihres Systems (ich würde es als schrecklich empfinden, Subversion-Metainformationen in meinen normalen Dateien zu behalten und zu verwalten, dass dies ziemlich ärgerlich wird).

Vielleicht ist ein Backup-Tool wie rsync oder die Datei Synchronizer Unison über FTP oder SSH besser geeignet für das, was Sie tun möchten.

4
retracile

Während Subversion für die Quellcodeverwaltung bestimmt ist, verwende ich sie für die Sicherung. Es gibt eine Reihe interessanter Einschränkungen, auf die ich gestoßen bin:

  • Bei Verwendung von http-Transport habe ich manchmal 2 GB-Übertragungslimits für Checkout und Commits ausgeführt, aber nicht immer
  • Das .svn-Unterverzeichnis enthält eine zweite Kopie jeder Datei, sodass Sie Ihren Speicherplatz sofort verdoppeln
  • Eine große Anzahl von Dateien in einem Verzeichnis wird sehr langsam
  • das Subversion-Repository schrumpft nie; Sie wird nur dann größer, wenn Sie eine Datei "löschen", da der Verlauf dieser Datei in der Vergangenheit gespeichert wurde

Trotz dieser Einschränkungen finde ich, dass es für mich sehr gut funktioniert. Eine interessante Sache, die Sie auf dem Server tun können, ist die Verwendung des Hooks nach dem Festschreiben, um eine Kopie jedes Commits automatisch an einen externen Standort zu verschieben.

Ich erinnere mich nur an eine andere: Wenn ich mein Home-Verzeichnis auf einem brandneuen Computer auscheckte, muss ich sicherstellen, dass ich die Mbox-Indexdateien berühre, damit kmail sie nicht neu aufbaut und die Lese- / Antwort- / etc-Flaggen auswirft darauf Die Verwendung von Maildir anstelle von Mbox führt zu dem bereits erwähnten dritten Nachteil. retracile vor 14 Jahren 0
Wenn Sie sich zurückverfolgen lassen, können Sie Ihre Antwort bearbeiten, um Ihren Kommentar hinzuzufügen. In einem verwandten Hinweis können Sie Ihren Kommentar auch löschen, nachdem Sie ihn in die Antwort aufgenommen haben. Travis vor 14 Jahren 0
4
Jack M.

Was die Größenbeschränkungen angeht, habe ich noch nie eine Datei ablehnen lassen. Einschließlich das Einfügen von ISO-Dateien usw. Die Repo-Größe ist fast immer durch die Größe der Festplatte begrenzt, nicht durch Subversion .

Antwort auf Daffs Antwort: rsync Nicht was Subversion kann. Haben Sie ein Ubuntu- ISO, das Sie überall für Sie brennen können? Großartig! rsynckann die Datei verteilen, es funktioniert großartig. Aber jetzt haben Sie ein Update auf Ubuntu 69.88, aber eine Woche später funktioniert es auf Ihrem alten 486sx-Laptop nicht . Mit rsyncmüssen Sie nach einem älteren ISO suchen, es herunterladen usw. Mit Subversion können Sie einfach auf eine ältere Version der Datei zurückgreifen.

Wenn Sie Subversion für einige Dateien verwenden, können Sie auch alles dafür tun und alles für alles verwenden. Die größeren Dateien sind nicht so effizient, können aber auch zentralisiert bleiben.

</ 2 Cent>

Sie KÖNNEN inkrementelle, versionierte Sicherungen mit RSync durchführen, und der Hauptpunkt war, dass es bessere Werkzeuge für die Handhabung binärer Dateisicherungen gibt als für ein SOURCE-Versionskontrollsystem (für Sicherungen bevorzuge ich es andersherum: Lassen Sie den Server stattdessen neue Sicherungen ziehen alles die ganze Zeit begehen zu müssen). Ich habe nie gesagt, dass es nicht funktioniert, wenn Sie mit all den Nachteilen leben können. Daff vor 14 Jahren 0
http://backuppc.sourceforge.net/ zeigt, wie Sie während der Verwendung von rsync Sicherungsrevisionen beibehalten können. gbjbaanb vor 13 Jahren 0
4
Doug Harris

Joey Hess, ein Entwickler des Debian-Projekts, hat einen langen, lehrreichen Artikel über die Verwendung von Subversion für den persönlichen Gebrauch geschrieben: Unterwerfen Sie Ihre Homedir oder halten Sie Ihr Leben in SVN . Ich denke, Sie finden dort ein paar gute Ideen.

Wenn Sie oben und unten in diesem Artikel sorgfältig gelesen haben, werden Sie feststellen, dass er diese Idee zuerst in CVS implementiert hat und nun den Großteil seines Home-Verzeichnisses in git speichert

2
Joshua K

Ich habe versucht, Subversion für andere Zwecke als für meinen Entwicklungscode einzusetzen. Ich verstehe das, obwohl es für Benutzer von Designern sehr gut funktioniert, weil es eine historische Darstellung des Fortschritts des Kunstwerks hat. Das Buch, das ich für Subversion gekauft habe, beginnt mit der Erwähnung, dass sie Subversion für alles verwenden, einschließlich ihrer Einkaufslisten. Während ich nicht viel Grafik mache, bietet ein Mediawiki die gleiche Funktionalität in einer bereits benutzerfreundlichen webbasierten Oberfläche. Es hat auch zusätzliche Funktionen wie eine Diskussion über den Inhalt. Ich denke, Trac tut sehr gut, wenn er die Extrameile zurücklegt und ein Wiki mit svn integriert. Da ich neu bei svn bin, habe ich keine andere Einschränkung als die zusätzliche Zeit, die für die zusätzlichen Schritte erforderlich ist.

1
Hugo

Mach weiter! Ich mache das schon seit ein paar Jahren und es ist wirklich großartig! Es ist zwar ein bisschen vorsichtig, aber jetzt, wo ich eine neue Maschine bekomme, mache ich svn co und führe dort ein Skript aus, und ich bekomme Firefox und alles, was mir gefällt.