Subversion versteckte Revisionsdateien
Frage
Sie wissen, wie Subversion speichert eine Kopie jeder es abgemeldeten in den versteckten .svn Ordner hat Datei? Die Website, die ich baue ist ziemlich groß (hat über 1Gig von PDF-Dateien). Diese PDF-Dateien werden nur sehr selten in der gesamten Existenz der Website ändern.
Ich frage mich, ob es einen Weg war Subversion zu sagen, dass es nicht eine lokale Revision Kopie eines bestimmten Satz von Dateien (meine PDF-Dateien), sondern nur die Synchronisierung mit dem Server, wenn eine Änderung an einer dieser Punkte gemacht wird gespeichert werden sollte Dateien?
Lösung
Subversion verwendet die Version in den .svn Ordnern die neue Datei gegen die alte Datei und sendet nur die Unterschiede zu dem Subversion-Server diff zu können.
Also nein, gibt es keine Möglichkeit, die Dateien nicht in den .svn Ordner haben, die Sie immer noch erlaubt, diese Dateien zu begehen
Andere Tipps
Eine Idee in einer anderen Vene., Wenn Sie verwenden Bazaar + bzr-svn oder Git + git-svn, sie halten eine viel platzsparender Arbeitskopie und Sie können nach wie vor direkt von Ihrem Repository aktualisieren
Sie können die „live“ Kopie Ihrer Website mit svn export
anstelle einer Kasse zu prüfen, zu verwalten. Dies würde das Problem der großen Dateien in .svn Ordner vollständig vermeiden.
Ihr Workflow wie folgt sein könnte:
- Bearbeiten von Dateien lokal, Test in Testbereitstellung
- Commit Änderungen an Repository
- Führen Sie einen
svn export
aus dem Repository in das Live-System
Der Nachteil dabei ist, dass alle Änderungen, die an dem Live-System in der Zwischenzeit überschrieben werden erhalten vorgenommen wurden. Aber Sie können Ihren Workflow anordnen, dass zu vermeiden.
Eigentlich kommt es mir, dass ich nicht weiß, ob Sie über diese versteckten PDF-Dateien in Ihrer Arbeits Kasse betroffen sind, oder in der Server-Bereitstellung. Wenn es in Ihrer Arbeits Kasse ist, dann weiß ich nicht, eine Möglichkeit, diese Dateien mit Subversion zu vermeiden. Wenn Sie jedoch Git verwenden, um mit git-svn
, dann wird Git seine eigene komprimierte Geschichte zu verwalten, ohne vollständige Kopien aller Dateien.
Wie Greg sagt, einen SVN-Export verwenden -. Aber in einem lokalen Verzeichnis den SVN Export tun, und dann das lokale Verzeichnis auf den entfernten Standort rsync
Diese bekommt man die Kombination von (a) nicht mit den .svn Verzeichnissen mit und (b) nur die Änderungen aus dem lokalen System an die Fern senden.
Gelingt das nicht, da beide Greg und oriP vorgeschlagen, die Remote-Kasse machen mit 'git-svn'. Es hat immer noch eine gewisse Menge an Overhead über den Raum von einem SVN-Export verbraucht, aber es wird weniger als eine volle SVN Arbeitskopie.