Czy istnieje sposób bezpośredniego tarowania najnowszej wersji folderu SVN bez ukrytych plików SVN? Chciałbym utworzyć archiwum tar bez plików SVN. Wiem, że możesz uzyskać najnowsze dzięki plikom śledzenia SVN, ale czy istnieje jedna linijka, która bezpośrednio wyśle informacje do archiwum?
14
Odpowiedzi:
Najprostszym sposobem na utworzenie kopii najnowszej wersji repozytorium bez wszystkich folderów .svn jest użycie
svn export
polecenia.Oto jak utworzę archiwum:
Gdzie URL jest adresem URL twojego repozytorium svn, a PATH jest ścieżką lokalną odpowiednią do zapisywania kopii eksportowanego repozytorium. Nie wiem, jak to zrobić bardziej bezpośrednio niż to. Niestety skończyło się na tym, że wyeksportowano kopię, więc możesz po prostu umieścić całość w krótkim skrypcie bash, który następnie usuwa pliki tymczasowe.
EDYCJA: Chociaż jest to najłatwiejsza metoda i tego też użyłem, byłbym ostrożny. W moich badaniach znalazłem ten http://narfation.org/2009/01/08/creating-recreatable-tar-gz-from-svn, który wyraźnie mówi nam problem zachowanej własności grupy / użytkownika, który powoduje problemy podczas wdrażania na innym system. Próbowałem tego skryptu z własnymi modyfikacjami, aby dopasować go do mojego celu, a Ty również możesz skorzystać.
źródło
Może wersja 1.23 tar pozwala na wykluczenie wszystkich plików wersji z wiersza poleceń, ale niestety nie działa na mojej wersji 1.20:
źródło
Przejdź do katalogu roboczego subversion (kasa) i uruchom to:
Jeśli używasz narzędzi GNU, możesz także uruchomić:
Jeśli to możliwe, polecam użycie formatu ustar (
-H ustar
).źródło
Widzę również:
Dzięki tar.
źródło
Jeśli dobrze rozumiem, chcesz tarować wyniki transakcji svn?
W pseudokodzie wyglądałoby to mniej więcej tak:
źródło
Jest to dostosowane z jednego linijki, którą napisałem. Zakłada się, że masz katalog ~ / tmp. Musisz zmienić zmienne PROJ i URL w pierwszych dwóch krokach. Reszta powinna działać.
Dla łatwego kopiowania:
Dla łatwego przeglądania:
źródło
To jest mój wysiłek, aby spróbować deterministycznego archiwum z repozytorium SVN.
Wymaga GNU tar 1.27 lub nowszego.
Cechy:
pax
rozszerzonemu nagłówkowigit archive
by to zrobił.tar.gz
i.tar.xz
uciśnięcia. W przypadku gzip możesz dodatkowo zoptymalizować kompresję, korzystającadvdef
z AdvanceCOMP (advdef
używa biblioteki zopfli).Jako przykład używam samego repozytorium subversion jako źródła do kasy i tworzenia tarballa. Zauważ, że to nie jest sposób, w jaki SVN pakuje swoje archiwum i nie jestem w żaden sposób związany z rozwojem SVN. W końcu to tylko przykład .
źródło