Tegyük fel, hogy egy windowsos gépre szeretnénk egy svn projectet letölteni, de a gépünkről proxy miatt nem érjük el az svn szervert. Viszont van hozzáférésünk egy távoli linuxos géphez, amit elérünk. Checkout után szeretnénk jól összetömöríteni a fájlokat, hogy hamar áthozhassuk a gépünkre. Ezeket a műveletet sokszor kell elvégezni, így célszerű egy scriptet írni hozzá.
Hozzávalók a saját gépen:
- putty, winscp, winrar vagy 7zip
Hozzávalók a távoli gépen:
- svn, 7zip (elég csak a 7za)
A script pedig:
cd ~
rm pack.7z
rm -r project
svn checkout http://svn.domain.hu/proj project -r HEAD --username user --password pass
cd project
find . -name ".svn" -exec rm -rf {} \;
cd ~
./7za a -r pack ./project
echo cleanup...
rm -r project
echo done.
És már meg is vagyunk. A scriptbe értelemszerűen a project url-jét, az svn usert és jelszót be kell helyettesítenünk. A toolok ingyenesek, letölthetők a netről. A 7za-t innét is letölthetnéd, ha engednék feltölteni. (Elküldöm bárkinek aki kéri) Ügyeljünk arra hogy a scriptnél jól állítsuk be a futtatási jogot. A find paranccsal kezdődő csúnya sor, a .svn könyvtárakat írtja ki, mivel azokban minden file duplán benne van. Lehetne a tar+gzip párost használni, de a 7zip sokkal jobban tömörít. Nálam pl. 70 megából a tar+gzip csinált 32 megát, míg a 7zip 20 megára nyomta össze a több mint ezer fájlom. Remélem valakinek hasznos lesz ez a bejegyzés :D
Edit: Időközben megismerkedtem az svn export funkciójával. Vele sokkal egyszerűbb a dolog :)