2009-02-19 12 views
7

Mamy repozytorium Subversion z jednego katalogu, który jest:Jak mogę wyodrębnić poddrzewo z mojego repozytorium SVN do nowego?

  • Nie bardzo w potrzebie kontroli rewizyjnej poza możliwości RCS
  • Nie wersjonowanym w połączeniu z niczym innym w repozytorium
  • Modified o sześć razy tak często, jak reszta repozytorium

Chociaż wiem, że wysokie numery wersji nie stanowią problemu, mimo to chciałbym wyciągnąć ten pojedynczy katalog z mojego głównego repozytorium i cond, najlepiej nowy.

Jaki jest najlepszy proces? Jeśli robi różnicę, repozytorium SVN jest hostowane na (... sprawdza ...) maszynę FreeBSD.

Warto zauważyć, że chociaż muszę zachować historię wersji w nowym repozytorium, nie ma potrzeby zatarcia zawartości w starym repozytorium; może po prostu tam siedzieć, na wszystko mi na tym zależy.

Odpowiedz

6

można użyć svnadmin zrzucić i svnadmin obciążenie aby utworzyć nowe repozytorium od pierwotnego; następnie skopiuj katalog, który nie pasuje do twojego schematu, do lepszej lokalizacji, a następnie usuń wszystko inne. W oryginalnym repozytorium wystarczy usunąć niepasujący katalog. Dzięki temu cała historia pozostaje nienaruszona, a skończysz z dwoma repozytoriami.

Istnieje prawdopodobnie sposób na późniejsze oczyszczenie obu repozytoriów z ówczesnych bezużytecznych części historii (svndumpfilter), ale ponieważ twarda przestrzeń dyskowa jest dość tania, nie uważam tego za konieczne. W każdym razie, SVN documentation ma wszystkie informacje na ten temat.

+0

Istnieje również nowsza (SVN v. 1.7) 'svnrdump' która [podobno może to zrobić zdalnie] (http://stackoverflow.com/questions/939963/how-do-i-migrate-an-svn-repository- to-another-svn-repository/38288494 # 38288494). –

-1

Chciałbym wyeksportować (nie sprawdzić) katalog, zaimportować go do nowego repozytorium, a następnie usunąć z oryginału (z komunikatem, który wskazuje, dokąd się udał, oczywiście ;-).

które mogą lub nie mogą być „najlepszy” sposób to zrobić ...

+0

Brak historii, na przykład. Przepraszam, to byłby nonstarter. –

+0

Nie zdawałem sobie wtedy sprawy, że chcesz zachować historię: -/ –

+0

Bez obaw, to nie było oczywiste. Poprawiłem pytanie. –

-1

Nie wiem, czy rozumiem to poprawnie, ale jest na to dobre rozwiązanie. Jeśli twoje oryginalne repozytorium znajdowało się w domenie svn: //, a folder, którego używasz, nazywa się "folder", to po prostu możesz wykonać następujące polecenie: svn co svn://domain/folder, aby zapłacić tylko za ten folder.

Powiązane problemy