Gibt es eine Möglichkeit, die neueste Version eines SVN-Ordners ohne die versteckten SVN-Dateien direkt zu tarieren? Ich möchte ein tar-Archiv ohne die SVN-Dateien erstellen. Ich weiß, dass Sie die neuesten SVN-Tracking-Dateien erhalten können, aber gibt es einen Einzeiler, der die Informationen direkt an ein Archiv sendet?
13
Antworten:
Der einfachste Weg, eine Kopie der neuesten Version eines Repositorys ohne alle .svn-Ordner zu erstellen, ist die Verwendung des
svn export
Befehls.So würde ich das Archiv erstellen:
Dabei ist URL die URL Ihres SVN-Repositorys und PATH ein lokaler Pfad, der zum Speichern einer Kopie des exportierten Repositorys geeignet ist. Ich weiß nicht, wie ich es direkter machen könnte. Leider bleibt die exportierte Kopie hängen, sodass Sie das Ganze möglicherweise in ein kurzes Bash-Skript einfügen möchten, das die temporären Dateien anschließend löscht.
BEARBEITEN: Während dies die einfachste Methode ist und das ist, was ich auch verwendet habe, wäre ich vorsichtig. Bei meiner Recherche habe ich festgestellt, dass http://narfation.org/2009/01/08/creating-recreatable-tar-gz-from-svn das Problem der Beibehaltung der Gruppen- / Benutzerbesitzverhältnisse deutlich macht, das Probleme bei der Bereitstellung auf einem anderen Computer verursacht System. Ich habe dieses Skript mit eigenen Modifikationen ausprobiert, um meinem Zweck zu entsprechen, und Sie könnten auch davon profitieren.
quelle
Möglicherweise können Sie mit der Version 1.23 von tar alle Versionsdateien von der Befehlszeile ausschließen, aber meine Version 1.20 funktioniert leider nicht:
quelle
Wechseln Sie in das Subversion-Arbeitsverzeichnis (Checkout) und führen Sie Folgendes aus:
Wenn Sie GNU-Dienstprogramme verwenden, können Sie auch Folgendes ausführen:
Nach Möglichkeit würde ich die Verwendung des Formats ustar (
-H ustar
) empfehlen .quelle
Ich sehe auch:
Danke Teer.
quelle
Wenn ich das richtig verstehe, möchten Sie die Ergebnisse einer SVN-Prüfung tarieren?
Im Pseudocode würde es also ungefähr so aussehen:
quelle
Dies ist einem Einzeiler nachempfunden, den ich geschrieben habe. Es wird davon ausgegangen, dass Sie ein ~ / tmp-Verzeichnis haben. In den ersten beiden Schritten müssen Sie die Variablen PROJ und URL ändern. Der Rest sollte funktionieren.
Zum einfachen Kopieren:
Zur einfachen Anzeige:
quelle
Dies ist meine Bemühung, aus einem SVN-Repo einen deterministischen Tarball zu erstellen.
Benötigt GNU tar 1.27 oder neuer.
Eigenschaften:
pax
erweitertem Headergit archive
gewohnt.tar.gz
und.tar.xz
Kompressionen. Für gzip können Sie die Komprimierung mithilfeadvdef
von AdvanceCOMP (advdef
verwendet die zopfli-Bibliothek) weiter optimieren .Als Beispiel verwende ich Subversion Repo selbst als Quelle für das Auschecken und Erstellen des Tarballs. Beachten Sie, dass dies nicht die Art und Weise ist, wie SVN seine Tarballs paket, und ich bin in keiner Weise mit der SVN-Entwicklung verwandt. Es ist schließlich nur ein Beispiel .
quelle