Chcę utworzyć archiwum dystrybucyjne mojego kodu, które zawiera podzbiór katalogów i wyklucza wszystkie pliki subversion. Chciałbym, aby pliki zostały dodane do archiwum z folderem głównym, który identyfikuje wersję wydania, aby po rozpakowaniu archiwum używał tego folderu głównego (tj. MyAppV1.3)
Nie mogę znaleźć „przełącznika” do tego, więc obecnie muszę spakować wszystko (używając wyjątków 7zip do odfiltrowania plików, których nie chcę), a następnie rozpakować do mojego określonego folderu. Następnie ponownie skompresuj cały folder.
Przykład obecnego trzyetapowego procesu, którego używam:
c:\dev\myApp>7za -xr!?svn\* a myApp_temp.zip @listOfFilesInRelease.txt
c:\dev\myApp>7za -omyAppV1.3 x myApp_temp.zip
c:\dev\myApp>7za a myAppV1.3.zip myAppV1.3
Czy można to zrobić w bardziej elegancki sposób?
export
polecenie, które zapewnia, że otrzymasz czyste zamówienie bez wszystkich katalogów subversion.Tak było w przypadku prawie wszystkich formatów kompresji, które znam, lub aplikacji, które je obsługują. Patrząc na formacie ZIP, choć myślę, że to mogłoby być teoretycznie możliwe. Widocznie po prostu nie ma dużej zachęty do tego.
Ale dlaczego nie umieścisz folderu w pierwszej kolejności?
źródło
Możesz to zrobić jako proces dwuetapowy
Root-dir-name to nazwa katalogu, do którego wyeksportujesz pliki.
W twoim przykładzie zrobiłbyś
Spowoduje to wyeksportowanie tylko źródeł twojego projektu do katalogu o nazwie MyApp1.3, z pominięciem wszystkich plików subversion. Po tym użyj 7-zip, aby utworzyć archiwum.
Spowoduje to utworzenie archiwum zip z folderu, w którym wyeksportowano źródło. Archiwum będzie mieć pliki w katalogu głównym o nazwie MyAppV1.3. Możesz oczywiście użyć 7z jako rozszerzenia, aby uzyskać lepszą kompresję.
Dla klienta SVN z linii poleceń polecam SlickSVN .
źródło