2009-01-31 6 views
13

Ich habe eine große Datei in meinem Repository, die nicht Text-Mergeable ist und ich brauche keine Multiple-Versionskontrolle für (PPT zum Beispiel). Ich möchte es für Sicherungszwecke im Repository aufbewahren und mit mehreren Personen teilen, aber ich möchte nicht, dass die Größe des Repositorys enorm zunimmt, da es bei jeder Änderung eine Kopie der Datei speichert. Gibt es eine Möglichkeit, dieses Verhalten für eine Datei in einem Subversion-Repository anzugeben?Wie kann ich Subversion nur die neueste Version einer Datei behalten?

Danke!

+1

Ich möchte nur sagen, dass ich denke, dass dies eine lohnendere Frage ist, als viele Kommentatoren darauf hinweisen. Sicher, der Zweck von Subversion ist nicht, nur die neueste Version einer Datei zu fühlen - aber es gibt etwas, das für Konsistenz gesagt werden muss ... – philsquared

+1

... Der Übergeber sagte, dass sie die Dateien neben anderen, versionierten Dateien behalten wollen. Ich kann mir auch einen hybriden Fall vorstellen, in dem es Ihnen nichts ausmacht, eine begrenzte Historie zu haben, aber nach so vielen Revisionen oder Speicherschwellen eine automatische Löschoption haben. Das könnte nützlich sein – philsquared

+0

Ich frage mich, ob es als Alternative eine Methode gibt, einige svn-Hooks zu verwenden, die Sie verwenden könnten, um beim Checkout/Update automatisch eine Datei von einem anderen Ort abzurufen? – Zoredache

Antwort

7

Dies ist in Subversion nicht möglich. Allerdings: subversion behält die Änderungen an dieser Datei als Binärdiffs im Repository bei. Je nach Art der vorgenommenen Änderungen wird daher nicht viel zusätzlicher Speicherplatz beansprucht.

+0

+1 Mit anderen Worten, nur die Änderungen an einer Datei werden hinzugefügt, wenn sie versioniert ist, nicht eine vollständige Kopie der Datei in ihrem neuen Zustand. –

1

Sie können nicht - und das zu Recht.

Wenn sich eine Datei nicht ändert, wird nur eine Version gespeichert. Wenn sich eine Datei ändert, dann ist der Punkt, an dem Sie die Versionskontrolle eines Formulars verwenden, sicher, dass Sie eine frühere Version abrufen können. Es mag jetzt so scheinen, als würdest du das niemals tun wollen, aber die Wahrscheinlichkeit ist groß, dass du es irgendwann in der Zukunft wiederfinden willst.

Wenn Platz ein Problem ist, besorgen Sie sich eine größere Festplatte oder aktualisieren Sie Ihren Plan. Es wird sich langfristig lohnen.

+0

Ich stimme nicht völlig zu. Ich habe ein anderes, aber etwas vergleichbares Arrangement zu Hause, wo ich iMovie-Dateien von Time Machine gesichert habe. Jedes Mal, wenn ich eine iMovie-Datei bearbeite, wird das Ganze dupliziert - und jede Datei ist etwa 5-10 GB groß! Meine Backup-Platten füllen sich ziemlich schnell – philsquared

+0

Das ist nicht wirklich die gleiche Situation, weil Sie bei der Verwendung der Versionskontrolle Ihre Änderungen festschreiben, wenn sie fertig sind. Die Versionierung großer (Medien-) Dateien ist fast eine separate Disziplin und ich bin mir nicht sicher, ob ich dafür Subversion verwenden würde. –

0

Eine Alternative könnte sein, einen Symlink zu speichern und dann die Datei auf einer Netzwerkfreigabe zu hosten.

2

Sie können nicht. Subversion wurde entwickelt, um die verschiedenen Versionen von Dateien zu behalten. Es ist schließlich ein Versionskontrollsystem.

Vielleicht einfach nicht in Subversion, aber sichern Sie es oder teilen Sie es mit rsync statt.

0

Sie verwenden wahrscheinlich ein falsches Werkzeug für den Job.

0

Ich kann nicht glauben, dass ich es sage, aber MS Visual Source Safe hat diese Funktionalität. Ich würde jedoch die Verwendung von MS-VSS aus zu vielen Gründen nicht empfehlen. Die zwei wichtigsten sind Instabilitätsprobleme und da es praktisch unmöglich ist, Verzweigungen zu verwenden (offiziell existiert diese Option, aber praktisch funktioniert es nicht gut).

+0

Die ursprüngliche Frage war über Subversion. – Starkey

Verwandte Themen