Co by nie powiedzieć, to system ingorowania plików w SVN (subversion) jest dość toporny.. Przynajmiej w porównaniu z innymi systemami kontroli wersji gdzie jest to nieco przyjaźniejsze. W każdym razie też ma duże możliwości przy odrobinie trudu. Po niżej trochę teorii. Jeżeli chcemy zignorować wszystkie pliki z rozszerzeniem JPG w danym folderze wywołujemy w nim: […]
Więcej…
Posty oznaczone przez tag 'svn'
Export (tylko) zmienionych plików pomiędzy dwoma rewizjami w SVN
Niestety komenda
1 |
svn export |
Nie zezwala na użycie zakresów jak np. w przypadku
1 |
svn merge |
Poniższa komenda powinna być pomocna w osiągnięciu tego celu. Należy w niej określić 3 parametry: rewizję początkową – jej numer (tutaj 2) rewizję końcową (tutaj 5) pełen adres url repozytorium (tutaj svn checkout svn://svn.code.sf.net/p/googlemapsprestashopmodule/svn/ )
1 |
for i in $(svn diff --summarize -r 2:5 svn://svn.code.sf.net/p/googlemapsprestashopmodule/svn | awk '{ print $2 }'); do p=$(echo $i | sed -e 's{svn://svn.code.sf.net/p/googlemapsprestashopmodule/svn/{{'); mkdir -p $(dirname $p); svn export $i $p; done |
Pliki pojawią się w folderze w […]
Więcej…
svn i błąd „a peg revision is not allowed here”
Podczas próby dodania (w konsoli) do commitu plików z naszej kopii roboczej pojawia się taki błąd:
1 |
a peg revision is not allowed here |
Wynika on z dość prozaicznej przyczyny. Zapewne w nazwie pliku jest znak małpki: „@”. Aby sobie poradzić z tym problemem użyj komendy:
1 |
svn status | grep \.png | awk '{print $2"@"}'| xargs svn add |
W komendzie jest rozszerzenie pliku PNG. Podmień je na Twoje.
Więcej…
svn – jak cofnąć zmiany wykonane w kopii roboczej i już zacommitowane?
Jeśli pracujemy w oparciu o system kontroli wersji Subversion (SVN) Czasem zachodzi potrzeba cofnięcia zmian wykonanych przez nas w projekcie. Zazwyczaj w tym celu służy komenda:
1 |
svn revert * -R |
Aby uwzglęnić także pliki ukryte (np. w nazwie rozpoczynające się porzez kropkę „.”) użyjmy takiej komendy:
1 |
svn st | grep -e '^M' | awk '{print $2}' | xargs svn revert |
Cofa wszystkie zmiany wykonane w plikach i przywraca ich do wartości […]
Więcej…
SVN – problem z commit typu „svn: Plik już istnieje: system plików …” itd.
Podczas pracy z SVN natrafić możemy podczas commitu na dość kuriozalny błąd. Szczególnie jeśli nasze repozytorium posiada z hakiem kilkadziesiąt tysięcy rewizji. Błąd typu:
1 2 3 |
Dodawanie wp-content/plugins/akismet svn: Zatwierdzenie nie powiodło się (szczegóły poniżej): svn: Plik już istnieje: system plików '/home/user/repo/db', transakcja '52329-dey, ścieżka '/wordpress/blog/wp-content/plugins/akismet' |
Może wytrącić z równowagi. Szczególnie dlatego, że uniemożliwia commit i np. pójście do domu.. Pomocne może być następujące działanie. 1. Zmieniamy lokalizację na folder nadrzędny i zmieniamy nazwę folderu z […]
Więcej…
wylistowanie ostatnich zmian w plikach w SVN
Jeśli chcemy przegladnąć ostatnie zmiany w repozytorium SVN używamy komendy:
1 |
svn log |
Spełnia ona swoje zadanie, jednak listuje wszystkie wpisy bez żadnych ograniczeń albo stronicowania. Stronicowanie możemy dodać poprzez prosty dodatek:
1 |
svn log | less |
Następnie kolejne strony przełączamy klawiszami:
1 |
[Page Up], [Page Down] |
Od tego widoku uwalniamy się poprzez kombinację:
1 |
CTRL + Z |
Dodatkową ciekawą modyfikacją jest dodanie do każdej rewizji listy zmodyfikowanych […]
Więcej…
svn (subversion) – usunięcie wszystkich nowych plików z kopii roboczej
Prezentujemy kolejny post poświęcony systemowi kontroli wersji Subversion (SVN). Poprzednie posty w tej tematyce znajdziesz tutaj: https://linuxporady.pl/tag/svn/ Tym razem pokażemy jak 1 komendą usunąć wszystkie nowe pliki w naszej kopii roboczej. Jak wiemy – jeśli w naszej kopii roboczej pojawi się taki plik jest przy listowaniu zmian przez konsolę:
1 |
svn st |
Oznaczany pytajnikiem. Np:
1 2 3 4 5 |
linux@linux-System-Product-Name:~/Pulpit/blog$ svn st ? css ? image.php ? images ? script.php |
Jeśli […]
Więcej…
svn (subversion) – oznaczenie wszystkich usuniętych plików jako kandydatów do usunięcia z repozytorium
Jeżeli w naszej kopii roboczej usuniemy parę plików ręcznie (np. poprzez manager plików lub innym programem) a nie przez svn komendą:
1 |
svn rm [PLIK-LUB-FOLDER] |
to svn nie wie dlaczego nie ma pliku. Jeżeli użyjemy komendy pokazujący zmiany w naszej kopii roboczej:
1 |
svn st |
Obok tych plików będą wykrzykniki. Możemy automatycznie oznaczyć wszystkie te pliki do usunięcia przy najbliższym commicie. […]
Więcej…
znajdowanie plików w repozytorium SVN wg nazwy
jeśli chcemy znaleźć gdzie w repozytorium znajduje się plik o określonej nazwie możemy użyć następującej komendy:
1 |
svn list --depth infinity | grep [nazwa-pliku] |
przykład – szukamy pliku README.txt w tym repozytorium:
1 |
svn list svn://svn.code.sf.net/p/googlemapsprestashopmodule/svn/ --depth infinity | grep README.txt |
czyszczenie folderów w kopii roboczej z plików svn (subversion)
Chodzi o foldery o nazwie
1 |
.svn |
O ile od wersji 1.7 jest tylko jeden folder w katalogu głównym kopii roboczej – we wcześniejszych wersjach każdy folder posiada ten podfolder. Aby pozbyć się ich wszystkich wystarczy:
1 |
find . -name ".svn" -exec rm -rf {} \; |
lub krócej:
1 |
find . -name ".svn" | grep rm -Rf |