Jak mogę uzyskać listę wszystkich svn: externals (rekurencyjnie) w katalogu? Czy jest do tego jakieś narzędzie?
(Używam Windows (i żółwia))
Mam kilka svn: externals łączących się z różnymi współdzielonymi częściami mojego projektu, a kiedy rozgałęziam, zwykle jest dość podatne na błędy, aby znaleźć wszystkie zewnętrzne i zmienić je tak, aby łącze do ścieżek w nowej gałęzi.
svn
tortoisesvn
Niels Bosma
źródło
źródło
Odpowiedzi:
Wykonaj następujące czynności w katalogu głównym kopii roboczej:
Jak omówiono w komentarzach poniżej, nie wymienia to zewnętrznych w zewnętrznych.
Uwaga dla użytkowników TortoiseSVN: istnieje opcja w instalatorze TortoiseSVN, aby również zainstalować klienta linii poleceń SVN. Ta opcja nie jest domyślnie włączona.
źródło
Ręczna zmiana wszystkich tych zewnętrznych właściwości brzmi nużąco. Czy spojrzałeś na nową funkcjonalność zewnętrznych elementów dodaną w Subversion 1.5?
Może któryś z nich by pomógł? Myślę, że zależy to od tego, jak dokładnie się rozgałęziasz i jak wygląda struktura repozytorium.
źródło
Moje obejście dla TortoiseSVN:
Otwórz okno dialogowe „Branch / tag…” z menu kontekstowego SVN. Dolne okno dialogowe pokazuje wszystkie zewnętrzne, w tym zagnieżdżone.
źródło
svn propget svn:externals -R
.Być może, aby obejść ten problem, możesz zorganizować projekt w taki sposób, aby wszystkie zewnętrzne były umieszczone w tym samym folderze, na przykład w folderze projektu tuż pod Trunk. (Nie oznacza to, że wszystkie foldery zewnętrzne muszą być na tej samej głębokości.) Następnie możesz kliknąć prawym przyciskiem myszy folder projektu, następnie Właściwości ..., następnie zakładkę Subversion, następnie Właściwości ... kliknij dwukrotnie svn: externals.
źródło
Użyłem odpowiedzi Wima Coenena i napisałem następujący skrypt, aby utworzyć listę wszystkich wersji:
Na szczęście nie mam zagnieżdżonych zewnętrznych elementów, więc nie musiałem tego testować i myślę, że to nie zadziała. Ale jeśli tego potrzebujesz, prawdopodobnie wystarczy wywołać tę funkcję rekurencyjnie. Poza tym nigdy nie testowałem z nazwami plików, które wymagają ucieczki. Wtedy prawdopodobnie nie zadziała.
ZRZECZENIE SIĘ: Wiem, że pierwotne pytanie dotyczyło okien, a skrypt powłoki nie będzie tam działał, chyba że używasz cygwin lub podobnego.
źródło
Wziąłem odpowiedź Daniela Aldera , usunąłem wywołania svnversion i uczyniłem ją rekurencyjną (UWAGA:
read a b c d e
nie działa, jeśli jest spacja w źródle lub miejscu docelowym). To jest skrypt bash, więc będziesz potrzebować czegoś takiego jak Cygwin lub użyć podsystemu Windows dla systemu Linux .źródło