it-swarm.com.de

Wie gut ist Subversion beim Speichern vieler Binärdateien?

Ich bin auf der Suche nach einem Platz für ein paar GB Dokumente (meistens .doc und .xls). Mein Team hat bereits einen Subversion-Server eingerichtet, um die von uns erstellten Dokumente zu verwalten. Wie wird Subversion mit all diesen Extras umgehen? Bei den meisten Informationen handelt es sich um veraltete Informationen und es wird immer nur eine Version vorhanden sein. Möglicherweise werden jedoch einige Dokumente aktualisiert.

Ich wurde gewarnt, dass SVN nicht besonders für große Binärdateien geeignet ist. Ich versuche es zu versuchen, um zu sehen, ob es funktioniert, da sie immer im Repository-Verlauf gespeichert sind, auch wenn ich sie später lösche.

Irgendwelche Alternativen? Wir benötigen die Möglichkeit, Dokumente zu kommentieren und/oder zu markieren, aber wir können einen Delicious-ähnlichen Dienst in Kombination mit den URLs für die Dokumente in SVN (oder ähnlichem) verwenden.

Später Ich mache mir nicht so viele Sorgen um diffs auf den Binaries, da sie, wie oben erwähnt, nicht viel ändern werden. Ich bin in Ordnung mit einem leichten Ärger, wenn sie es tun - es ist nicht schlimmer als SharePoint.

36
James A. Rosen

Es gibt einen Unterschied zwischen vielen großen Binärdateien und einer großen Anzahl von Binärdateien. 

Nach meiner Erfahrung ist SVN mit einzelnen Binärdateien von mehreren hundert Megabyte in Ordnung. Die einzigen Probleme, die ich gesehen habe, treten bei einzelnen Dateien von etwa einem Gigabyte auf. Der Vorgang schlägt aus mysteriösen und unbekannten Gründen fehl. Möglicherweise kann SVN keine netzwerkbedingten Probleme lösen.

Ich kenne keine SVN-Probleme im Zusammenhang mit der Anzahl der Binärdateien, über deren fehlende Zusammenführungsfähigkeit und die Tatsache, dass Binärdateien häufig nicht effizient als Deltas gespeichert werden können (SVN kann Deltas verwenden).

So;

  • 1000 1 MB-Dateien = gut.
  • 100 10MB-Dateien = gut
  • 10 100 MB-Dateien = gut
  • 1> 1000MB-Datei = keine gute Idee.

Ich hoffe, dass die Größe Ihrer Dokumente in eine der feinen Kategorien passt :)

31
Andrew Grant

In meiner früheren Firma haben wir Subversion eingerichtet, um CAD -Dateien zu speichern. Dateien bis zu 100 MB wurden in Subversion gespeichert. Wenn viele Benutzer große Dateien zum Subversion-Webserver hinzufügen, kann dies zu Engpässen führen. Inkrementelle Commits waren jedoch vollkommen in Ordnung.

Subversion gespeichert 'binäres Delta'. Tatsächlich werden auf Serverseite Binär- und Textdateien beim Speichern des 'Deltas' genauso behandelt. Überprüfen Sie den Abschnitt "Verbesserungen bei der Verbesserung der binären Delta-Kodierung" auf Seite http://Subversion.tigris.org/svn_1.4_releasenotes.html . Er sagt ausdrücklich "Subversion verwendet den Xdelta-Algorithmus, um Unterschiede zwischen Zeichenfolgen von Bytes "(und keine Zeichenfolgen von" Zeichen "). 

Nur für Experimente habe ich die 10-Version von CAD (CATIA-Teiledatei) gespeichert. Bei jeder Version habe ich kleinere Änderungen vorgenommen und dann die Größe des serverseitigen Repositorys überprüft. Die Gesamtgröße betrug etwa 1,2x für etwa 10 Versionen (x - die ursprüngliche Dateigröße).

Denken Sie daran, die Eigenschaft svn: needs-lock festzulegen. Meiner Erfahrung nach ist es am besten, "Auto-Requisiten" zu verwenden, um die svn: needs-lock auf der Dateierweiterung festzulegen.

35
Nitin Bhide

Genau dafür haben wir unseren Subversion - Client gebaut, da wir wirklich große Design-/Consulting-Jobs erledigten, für die eine Versionskontrolle erforderlich war. Wir hatten nie Probleme damit.

3
Koen Bok

Es hängt davon ab, wie oft die Dateien aktualisiert werden. Es kann nichts tun, um binäre Dateien zusammenzuführen, und so gibt es jedes Mal, wenn Sie einen Konflikt haben, Schmerzen. Ansonsten ist es nur Speicherung und Abruf, und obwohl es nicht so gut ist wie mit Text, kann es trotzdem gut damit umgehen.

1
Joel Coehoorn

Ich persönlich benutze Mercurial für solche Aufgaben. Ich habe es verwendet, um mehrere hundert Medienkonzerte zu speichern. Ja, es nimmt etwas Speicherplatz in Anspruch, aber Speicherplatz ist billig. Mit Mercurial profitieren Sie auch davon, dass es verteilt wird. Wenn Sie also einen "Checkout" durchführen oder einen Klon erstellen, wie es in Mercurial bekannt ist, erhalten Sie das gesamte Repo und nicht nur eine Momentaufnahme. Wenn Ihr Server jemals stirbt, sind Sie noch im Geschäft.

0
Dave