Pytanie w sprawie svn, version-control – Skopiuj część repozytorium SVN do nowego repo?

8

Obecnie mam duże repozytorium SVN z wieloma różnymi projektami w jego obrębie:

<code>/
 Project1/
          trunk/
          tags/
          branches/
 Project2/
          trunk/
          tags/
          branches/
 Project3/ 
          (etc...)
</code>

Jednak teraz próbuję rozbić go na oddzielne repozytoria (z różnych powodów) i chciałbym, aby dla każdego projektu były następujące:

<code>/
 trunk/
 tags/
 branches/
</code>

Jeśli to możliwe, cała historia i zewnętrzne powinny pozostać nienaruszone. Nie jestem jednak pewien, czy można to zrobić. Widziałem kilka pytań podobnych do tego na SO, ale żaden z nich nie rozwiązuje problemu, który tutaj mam. Zasadniczo staram się „wyciągnąć” podkatalog i całą jego zawartość z historią ze starego repozytorium i rzucić całe mnóstwo na własne (nowe) repozytorium.

Czy pytam o niemożliwe?

„Nie związane z programowaniem” - J / K, po prostu denerwuję się tego typu komentarzami i muszę się trochę wyluzować :) +1 i cieszę się :) cwap
Świetne pytanie +1. To musi być możliwe. Prawdopodobnie będziesz miał i tętniak przed końcem. Iain Holder

Twoja odpowiedź

2   odpowiedź
4

Od wersji SVN 1.7 można użyć

<code>svnrdump dump path/to/repository > dump
</code>

zdobyć wysypisko. Podczas gdy rozwiązanie Stefans działa, wymaga dostępu do serwera hostig repo. svnrdump działa w sieci z dowolnym repo, z którego możesz czytać.

9

Posługiwać się

<code>svnadmin dump path/to/repository > repo.dmp
</code>

a następnie użyjsvndumpfilter ładować tylko poddrzewo do nowego repozytorium.

Zauważ, że to rozwiązanie opuszczaProjectN jako katalog najwyższego poziomu nowego repozytorium. (To znaczy wszystkie ścieżki zaczynają się odProjectN/) Łącze mówi, jak zaimportować nowe repo bez prefiksu, ale musi edytować zrzut ręcznie, co przy dużych repozycjach lub plikach binarnych nie jest praktyczne. xOneca
Tak ... to mam na myśli :) John Weldon
Dziękuję Stefan (i John), to doprowadziło mnie dosvnbook.red-bean.com/en/1.5/… który rozwiązuje mój dokładny problem. Mark Embling

Powiązane pytania