Versionskontrolle für MP3s?

1745
Electrons_Ahoy

Ich habe viele "binäre Medien", die ich als "MP3s" abstrahiere. Ich habe auch mehrere Computer, auf denen ich die gesamte Bibliothek haben möchte - einen Desktop, eine Media-Box, einen Laptop hier oder dort usw. Kurz gesagt, es wäre schön, alle Computer mit jedem Computer synchronisieren zu können andere, so dass sie alle den gleichen Stapel von Dateien haben.

Im Gegensatz zu einem rsync / robocopy-Lashup scheint ein Versionskontrollsystem im groben Sinne der Weg zu sein. Erstens gibt es mehrere Betriebssysteme (Windows-, Mac- und Linux-Versionen). Zweitens wäre es schön, wenn das ID3-Tag und solche aktualisiert werden, das System nur das Dateidelta aktualisieren und nicht die gesamte Datei erneut kopieren kann. (Schließlich wäre es sehr cool, die Bibliothek über das Internet und nicht über das LAN aktualisieren zu können.)

Ihr klassisches CVS / SVN-System hat jedoch den offensichtlichen Nachteil, dass ein vollständiges Repository erforderlich ist, und ich möchte wirklich nicht, dass zwei Kopien meines 60-GB-MP3-Ordners irgendwo auf einer Maschine sitzen und sich normalerweise nicht mit binären Deltas befassen Gut.

Die verteilte Versionskontrolle hört sich also jetzt ziemlich gut an. Auf dem Papier sehen Mercurial, Idiot und Basar gut aus, aber mit keinem von ihnen habe ich Erfahrung. Hat jemand versucht, mit einem von ihnen ein "Binaries-only" -DVCS einzurichten? Irgendwelche Empfehlungen? Fallstricke

7
Haben Sie typische Deltas auf Aktualisierungen von Mediendateien geprüft? Ich glaube, sie sind fast so groß wie die Originaldatei. nagul vor 15 Jahren 4
@Nagul: genau! Ich hatte gehofft, dass jemand von einem DVCS wusste, das binäre Deltas gemacht hat, die nicht so groß waren. Electrons_Ahoy vor 15 Jahren 0
Oh, oh. Kampf der Versionierungssysteme ... bgw vor 15 Jahren 0
@Electrons_Ahoy: Ich denke, sowohl SVN als auch Git machen binäre Deltas. Das Problem ist, dass, wenn Sie etwas mit den Audiodaten machen, Ihre MP3s erneut komprimiert werden. Das ändert sich wahrscheinlich jedes einzelne Bit. Die Delta-Komprimierung hilft hier nicht weiter. Wenn Sie die Sounddaten selten ändern und normalerweise nur ID3-Tags bearbeiten, sind die Dinge anders. Ludwig Weinzierl vor 15 Jahren 1
Hast du nicht gehört? `rsync` existiert speziell, um das Kopieren der gesamten Dateien zu vermeiden, wenn Sie dies tun. SamB vor 14 Jahren 0
@ SamB: Nun, sicher. Und wenn es sich bei den beteiligten Maschinen nicht hauptsächlich um Windows-Maschinen ohne rsync oder SSH handelt, hätte ich das zuerst getan. ;) Die DVCS-Idee war ein Versuch, das plattformübergreifende Problem zu lösen, ohne dass ein komplettes Unix-Subsystem auf der Windows-Box ausgeführt werden musste, nur um einige MP3-Dateien zu kopieren. Electrons_Ahoy vor 14 Jahren 0
@Electrons_Ahoy: ah. Ja, es scheint ein netter, einfach zu installierender, benutzerfreundlicher rsync-Client zu sein, der nicht die Installation von Cygwin erfordert ... SamB vor 14 Jahren 0
[git-annex] (http://git-annex.branchable.com/) lässt git so arbeiten, als würde es nach Lust und Laune klingen derobert vor 11 Jahren 0

5 Antworten auf die Frage

5
The How-To Geek

Dies ist nicht wirklich eine Antwort auf Ihre Frage, aber ich habe DropBox aus dem gleichen Grund eingesetzt . Es ist plattformübergreifend und Sie können ein Konto mit 100 GB erhalten, wenn Sie nichts dagegen haben, etwas mehr zu bezahlen. Es speichert auch Revisionen von Dateien, die der Quellcodeverwaltung sehr ähnlich sind.

Er fragte, "das System könnte nur das Dateidelta aktualisieren, nicht die gesamte Datei erneut kopieren". DropBox kopierte die gesamte Datei und würde viel Bandbreite für nichts verwenden, da er nicht außerhalb seines ... Patrick Desjardins vor 15 Jahren 0
DropBox führt einen binären Vergleich aus und kopiert nicht die gesamte Datei. https://www.getdropbox.com/help/8 The How-To Geek vor 15 Jahren 1
3
Ludwig Weinzierl

Ihr klassisches CVS / SVN-System hat jedoch den offensichtlichen Nachteil, dass ein vollständiges Repository erforderlich ist, und ich möchte wirklich nicht, dass zwei Kopien meines 60-GB-MP3-Ordners irgendwo auf einer Maschine sitzen und sich normalerweise nicht mit binären Deltas befassen Gut.

Mit CVS / SVN verfügen Sie über ein Repository und mehrere Arbeitskopien. Das Repository enthält also jede Datei einmal plus die gesamte Historie für jede Datei. Die Arbeitskopie enthält jede Datei einmal plus einige zusätzliche Daten pro Datei (normalerweise ungefähr die Größe der Datei).

Ganz grob: Nehmen wir an, unser Revisionskontrollsystem kann Differenzen von Binärdateien nicht effizient speichern (nicht wirklich wahr, aber der Einfachheit halber). Ihre Sammlung besteht aus 60 GB MP3-Dateien. Wenn Sie im Durchschnitt 10 Revisionen pro Datei haben und die Komprimierung vernachlässigen (weil MP3s schlecht komprimieren), wird Ihr Repo-Repertoire ca. 600 GB und Ihre Arbeitskopie 120 GB.

Die verteilte Versionskontrolle hört sich also jetzt ziemlich gut an.

In einem verteilten System ist jede Arbeitskopie im Wesentlichen ein Repository, dh jede Arbeitskopie enthält jede Datei plus Historie.

Gleiche Annahmen wie oben, jede Kopie hat ca. 600 GB.

Unterm Strich wird ein verteiltes System mehr Platz benötigen als zentral.

BEARBEITEN:

Selbst wenn Ihre Frage eher eine große Anzahl von Binärdateien als große Binärdateien in der Versionskontrolle betrifft, könnte der folgende Beitrag interessant sein: Erneutes Überarbeiten großer Binärdateien.

Überraschenderweise ist es genau rückwärts. SVN ist sehr platzsparend - eine Arbeitskopie ohne Verlauf ist doppelt so groß wie die Dateien, die unter ihrer Kontrolle stehen. Git, Mercurial und Bzr haben oft kleinere Repository-Größen als SVN-Checkouts UND umfassen den vollständigen Verlauf. Informationen zu GIT-Größen: http://git.or.cz/gitwiki/GitSvnComparsion#SmallSpaceRequirements ehempel vor 15 Jahren 0
@echempel: Sie haben Recht, wenn wir über typische Anwendungsfälle für SVN und Git sprechen, das heißt Quellcode mit wenig Änderung zwischen den Überarbeitungen. MP3s unterscheiden sich: 1. kann nicht komprimiert werden 2. leichte Modifikation (z. B. normalisieren) ändert sich jedes einzelne Bit Ludwig Weinzierl vor 15 Jahren 3
Gute Punkte ... Ich habe noch nie viel mit binären Dateien in VCSes gemacht. Jemand sollte ein umfassendes VCS-Shootout wie http://shootout.alioth.debian.org erstellen ehempel vor 15 Jahren 1
Tatsächlich glaube ich, dass die meisten DVCS-Deltas Deltas gut genug komprimieren, sodass das bloße Ändern der ID3-Tags wahrscheinlich * keinen * Ärger verursachen wird ... SamB vor 14 Jahren 1
2
Ryan Bolger

Das Problem beim Versuch, Versionskontrollsysteme in Dateisynchronisationssysteme zu integrieren, besteht darin, dass Sie am Ende eine Menge Speicherplatz verschwenden, um alle alten Versionsverlaufsdaten in den Repositorys zu speichern.

Persönlich für meine großen binären Mediensammlungen kümmere ich mich nicht darum, Änderungen an einer bestimmten Datei wiederherstellen zu können. Alles, was mich interessiert, ist, dass die Sammlung zwischen meinen Systemen synchronisiert wird. Es gibt viele Dateisynchronisierungslösungen, aber alle haben ihre verschiedenen Vor- und Nachteile. Einige behaupten, sie seien plattformübergreifend, aber das bedeutet nur Win / Mac. Andere sind wirklich plattformübergreifend, haben jedoch keine ausreichenden Dateigrößen- / Mengenlimits, um für große Sammlungen nützlich zu sein. Einige bieten Webzugriff auf die Dateien, unterliegen aber auch den Beschränkungen der Dateigröße / -menge. Jede Lösung, die eine Kopie Ihrer Dateien auf einem Drittanbieter-Server aufbewahrt, kostet Sie unweigerlich Geld, wenn Sie über eine große Sammlung von Dateien verfügen.

2
Oskar Duveborn

Nicht wirklich eine Antwort, aber ich dachte, ich würde es teilen. Ich habe angefangen, SVN für meine HD-Videoprojekte zu verwenden (wie Ereignisse und Hochzeiten, bei denen das Ergebnis stark bearbeitete Videos ist). Dies wird aus verschiedenen Gründen immer großartig.

Normalerweise enthält ein Videoprojekt ein paar oder vielleicht mehrere zehn oder sogar hunderte GB an rohen AVCHD-Dateien (die meisten davon sind nur einige hundert MB groß, seitdem sie von DV-Bändern verschoben wurden;). Diese werden einmal hinzugefügt und festgeschrieben und dann nie geändert, da die gesamte Arbeit an (sehr kleinen und oft text- oder xml-basierten) Projektdateien für Videobearbeitungssoftware, einige Standbilder (die manchmal, aber nicht sehr oft geändert werden) und verschiedene Änderungen vorgenommen werden andere Deskriptordateien.

Das Markieren und Benennen von Clips wird ebenfalls in den Projektdateien gespeichert und nicht zu den eigentlichen Rohvideodateien hinzugefügt, was dies ideal macht. Angenommen, eine Projekt-Repository-Datenbank beginnt mit 10 GB, endet normalerweise mit 11 GB und besteht aus ~ 100 Revisionen. Das gerenderte Endergebnis in verschiedenen Formaten wird natürlich überhaupt nicht im Repository gespeichert, da es immer wieder erzeugt werden kann.

Da MP3s insbesondere ihre Metadaten in der eigentlichen MP3-Datei speichern, stellt dies eine größere Herausforderung dar, aber gemäß dieser Stackoverflow-Frage könnte Subversion dies am Ende ordentlich behandeln, da id3-Tag-Daten am Anfang (oder v1 am Ende) gespeichert werden. der Datei. Da v2.x jedoch beliebig lang sein kann - ich habe keine Ahnung, was passiert, wenn Sie zusätzliche Tag-Daten hinzufügen - wenn die Datei größer wird und möglicherweise den Delta-Vergleich durcheinander bringt, lohnt sich ein Test ...

Und Speicherplatz ist günstig - nur 60 GB? Holen Sie sich ein paar TB-Laufwerke für das Repository und machen Sie es fertig;)

0
STW

Windows Vista & 7 bieten Shadow Copy / Frühere Versionen. Es ist definitiv nicht so reichhaltig wie ein echter Source-Control-Anbieter, bietet aber einige Vorteile. Wie andere bereits sagten, wird der Speicher, der für mehrere Revisionen erforderlich ist, wahrscheinlich ziemlich groß sein - abhängig von der Größe der Dateien.

Die kostenlosen und beliebten SCMs sind allesamt so an der Aufgabe. SVN zum Beispiel wird gut funktionieren, aber das Repository wird schnell größer und der lokale .svn-Ordner wird ebenfalls ziemlich groß sein.

Wenn Sie alles gesagt und getan haben, sollten Sie in Betracht ziehen, einfach alle Dateien an einen sicheren Ort zu kopieren, bevor Sie große Änderungen an Ihrer Sammlung vornehmen. Wenn Sie tatsächlich MP3s im normalen Alltag verwenden, gibt es keinen Grund, die Dateien zu ändern, und die Kosten für ein Revisionssystem, das selten geänderte große Binärdateien betrachtet, scheint schwer zu rechtfertigen ... aber wenn Sie ' re auf, dann macht SVN zumindest binäre Diffs, CVS macht volle Kopien (viel größer)