2008-11-16 10 views

Odpowiedz

29
svn log --xml 

Posiadanie logów wyprowadzonych w formacie xml sprawia, że ​​bardzo łatwo je analizować i analizować.

7

svn log -r BASE: głowa (ewentualnie z opcją v)

Pokazuje to, co się stało między wersją a wersją głowy. Zwykle mówi ci, kto także złamał kompilację.

4

W nowszych wersjach: interaktywne rozwiązywanie konfliktów. W ten sposób konflikty nie muszą być rozwiązywane ręcznie (w większości przypadków jest to bardzo trywialne, po prostu denerwujące, jeśli trzeba to zrobić dla dużej partii plików). Ale tak na prawdę, obsługa konfliktów w ogóle (tzn. Że blokuje ci to popełnianie konfliktów plików).

17

Pierwsze historię oddziału z punktu rozgałęzienia:

svn log --stop-on-copy 
3

Wykonywanie wycofywania przez scalanie byłego korektę w/HEAD.

5

Interfejs API i biblioteki Subversion. Możesz użyć centralnego repozytorium SVN, nawet jeśli wolisz pracować z rozproszonym VCS - albo używając "SVN natywnego" SVK albo na przykład Mercurial (przez a bridge). Dobre apisy oznaczają również, że lepsze narzędzia są możliwe - mogą pracować z SVN bezpośrednio, zamiast korzystać z klienta linii poleceń i próbować analizować wyniki.

27

Skrypty hookowania (start-commit, pre-commit, post-commit) są świetnymi narzędziami do budowy systemu opartego na SVN.

Kolejny, który prawdopodobnie jest zbyt "oczywisty", wywołuje "eksport svn" ze skryptu kompilacji. To naprawdę dobry sposób na rozmieszczanie plików w niektórych katalogach docelowych (na przykład na stronie internetowej), ponieważ otrzymujesz czystą kopię bez ukrytych plików .svn. Jest o wiele lepszy niż aktualizacja kopii roboczej zdalnej "instalacji".

+2

Zdalna kopia robocza jest jednak szybsza. – rix0rrr

+0

rix0rr: firma, w której pracuję, ma skrypt, który sprawdza pliki, które zmieniły się przy każdym zatwierdzeniu i eksportuje tylko te. Jest to nawet szybsze niż wykonanie aktualizacji svn. – notJim

13

Interfejs API Subversion i powiązania klienta, które są na nim wbudowane.

Większość systemów SCM to kombinacja narzędzi, które umożliwiają wywoływanie ich za pomocą wiersza poleceń, ale subversion jest zaprojektowany jako stabilny interfejs API, który ma być używany przez wielu klientów. Po prostu dostarcza klientowi linii poleceń.

TortoiseSVN, AnkhSVN, SharpSvn, i dozens of other applications and libraries [1] nie byłoby tam bez subwersji będącej api.

(Cieszę niektórych innych/nowych wdrożeń SCM zaczynają zdawać sobie sprawę, że klient poleceń nie wystarczy być udana)

[1] Na stronie link jest obecnie niedostępny, ale można nadal zobaczyć starą wersję na http://svn.apache.org/repos/asf/subversion/branches/1.6.x/www/links.html

+3

Tak, to jest ogromny problem z Git. AFAIK, wiązania Ruby Git po prostu zawijają linię poleceń.To był poważny problem przy próbie napisania backendu Git dla RabbitVCS. – detly

4

a druga odpowiedź:

svn status --depth files <path> 

tego wsparcia głębokość wprowadzoną w Subversion 1.5 sprawia, że ​​tak dużo szybciej niż wcześniej od innych narzędzi.

26

Zewnętrzne.

Wspaniała możliwość pobierania bibliotek innych firm do bazy kodów i aktualizowania ich.

+4

Uwielbiam zewnętrzne. Wciąż rodzaj bólu w Mercurial. :-( –

5

svn diff, nawet jeśli jesteś w trybie offline i możesz pomyśleć, że nie jest możliwe.

+0

Cuda dziewiczej kopii :) Należy pamiętać, że bez dostępu do sieci można tylko odróżnić od wersji roboczej kopię BASE. –

12

Aby wycofać się changeset z kopii roboczej (np 4321).:

svn merge -c -4321 . 
svn checkin 

lub wielokrotne Zestawienia zmian:

svn merge -c -4321,-5432 . 
+1

Główny znak minus przed numerem wersji jest ważny. "-4321" działa, "4321" nie. – kamens

6

"svn: ignore" własność

11

Mój ulubiony nonobvious cechą svn jest sposób, w jaki ściąga wszystkie moje katalogi źródłowe z podkatalogami metadanych .svn. ;)

+0

Bez żartów. git FTW. –

+8

Zostanie naprawiony w svn 1.7 –

+1

Już nie! Hurra! – aldo

24

svn blame oczywiście. Muszę wiedzieć, czyja to wina.

+2

Powiedziałbym, że adnotacja (jako wina, pochwała) * jest * całkiem oczywista. – Jonik

+1

To jest przekonujący argument do zrzucenia VSS. –

+3

Wciąż pracuję dla programistów, którzy o tym nie wiedzą ... – theschmitzer

2

natrafił na coś szukając. . Oto ulubiona, niepoważna z mojej strony. Możesz skopiować wkleić "kopię roboczą svn" na dowolną inną maszynę lub inny system operacyjny - działa tak, jakby była tam sprawdzona. Działa to, nawet jeśli został wyewidencjonowany przez innego użytkownika !!

2

Opcja konfigurowania repozytorium slave w celu odzwierciedlenia głównego. Tak więc grupa zdalna może wykonać wszystkie swoje odczyty z lokalnej kopii. To naprawdę przyspiesza rozwój.

53

Dodano w svn 1.6: Strzeżony ^ skróconą notację, aby skrócić adresy URL subversion, korzystając z wiersza poleceń. Symbol karetki może być użyty zamiast części adresu URL w górę poprzez nazwę repozytorium.

Ex:

svn switch ^/myProject/branches/fooBranch 

zamiast

svn switch http://machine22/repos/SandboxRepo/myProject/branches/fooBranch 
+2

fajne nie wiedział o tej funkcji –

+0

Wygląda na to, że został wprowadzony w svn 1.6. (Działa z moim 1.4 repo, o ile mój klient ma 1.6.) –

+6

Zauważ, że w oknach karetka jest postacią ucieczki i musi zostać podwojona lub zacytowana do pracy. – Eterm

1

svn cleanup

Kiedy to też mówi: "Run Cleanup svn do czyszczenia"

find . |grep \\.svn/lock |xargs rm

5

Wieloplatformowe wsparcie dla Unicode nazewnictwo

pracuję w japońskiej firmy, więc wsparcie Unicode filename Subversion jest wielki. Byłem rozczarowany, aby zobaczyć, w jaki sposób poorly Unicode filenames are handled by git and Mercurial w porównaniu (szczególnie w systemie Windows).

(Doceniam również, jak dobrze Subversion obsługuje Unicode w wiadomościach dziennika itp)

0

z punktu widzenia administratora widzenia svndumpfilter exclude $file może znacząco zmniejszyć rozmiar repozytorium.

Powiązane problemy