Subversion 1.7

subversion - logoW codziennej pracy przy projektach, w których udział bierze kilka osób nie ma problemów z SVN. Jedyny minus pojawia się, gdy szybko chcemy naszą roboczą wersję przenieść na serwer developerski i jedyną opcję jest kopiowanie. Niestety do wersji 1.6 każdy katalog w ramach repozytorium lokalnego posiadał podkatalog .svn, gdzie są zapisane informacje dot. danej gałęzi. Jeśli było sporo commitowanych zmian, kopiowanie setek .svn może zająć sporo czasu.

To i wiele innych usprawnień przyniósł Subversion w wersji 1.7, który ukazał się w stabilnej wersji… W październiku 2011 roku. Niestety do dzisiaj, w wielu systemach domyślna wersja to 1.6, a naprawdę warto „przeskoczyć”.

Najważniejsza sprawa, po aktualizacji do wersji 1.7 starsze repozytoria nadal są wspierane i nie musimy ich aktualizować. Zmiany warte odnotowania w 1.7:

  • svn up repo1 repo2 repo3…
    Od teraz poleceniem svn update możemy zaktualizować wiele repozytoriów, a nie jedno. Dodatkowo svn up potrafi rozpoznać status odpowiedzi (301 / 302) i podążyć za przekierowaniem, gdy repozytorium zostało przeniesione.
  • svn diff
    Bardziej zrozumiały rezultat komendy svn diff dzięki zastosowaniu formatu unidiff
  • svn remove
    Gdy chcemy usunąć katalog za pomocą svn remove, od razu zostaje on usunięty fizycznie z naszego dysku. Wcześniej podczas wydania polecenia usunięcie katalogu było tylko „kolejkowana”, a fizyczne wykonanie usunięcia odbywało się dopiero podczas commitu. Powodowało to sporo problemów, gdy przypadkiem po svn rm, dokonaliśmy jakiś zmian.
  • svn log potrafi robić diff
    Komenda svn log została wzbogacona o parametr –diff, w szybki sposób poza listą plików zobaczymy konkretne zmiany.
  • svn relocate
    Polecenie svn switch –relocate zostało zastąpione przez nową komendę svn relocate.
  • svn switch
    Od wersji 1.7 komenda svn switch sprawdza pochodzenie gałęzi, na którą chcemy przełączyć. Dzięki temu mamy dodatkowe zabezpieczenie przed zbyt pochopną decyzją.

Dodatkowo poprawiono komunikację po HTTP(S), pod Windowsem w końcu możemy wykonać polecenie svn mv plik.js Plik.js, a po stronie serwera wprowadzono wiele optymalizacji.

OS X

I teraz najważniejsze. O zaletach SVN 1.7 dowiedziałem się przez przypadek. W pewnej firmie mają za nic standardy, i klepią nazwy plików jak popadnie – spacje, znaki specjalne i pl-znaczki. Niestety Subversion 1.6 pod OS X sobie z tym nie radzi (jeśli jest wynikiem svn co).
Problem rozwiązuje aktualizacja SVN do wersji 1.7 z parametrem unicode_path, a następnie aktualizacja naszego repozytorium:

Źródło: Apache Subversion 1.7 Release Notes

Tagged: