2009-12-14 14 views
23

Z powodu braku mercurialnego wsparcia w kilku narzędziach oraz ucisku menedżerskiego konieczne stało się przekształcenie kilku testowych repozytoriów Mercurial w Subversion, aby zachować zgodność ze standardem firmy.Konwersja z Mercurial na Subversion

Czy są jakieś narzędzia lub sugestie, jak to osiągnąć bez utraty historii wersji i tym podobne?

+0

W następnym Wędrowiec, który znajduje Mercurial dziwne i tęskni za Subversion, można znaleźć link przydatne: [Subversion reedukacji] (http://hginit.com/00.html) – noelicus

+0

na następny Wędrowiec, który odkrywa Mercurial Odrażający, proszę nie "ponownie edukować" siebie za pomocą powyższego linku, chyba że uważasz, że sprzedawca, który sprzedaje narzędzia oparte na Mercurial, ma obiektywną opinię. Być może spróbuj szanować preferencje i opinie na temat narzędzi VCS vs DVCS. Wiele osób próbowało obu - lub były zmuszone - i mają całkowicie aktualne opinie na temat tego, * jakie * preferują i dlaczego. – JoGusto

Odpowiedz

28

Konwersja rozszerzenia, która jest dostarczana z merkurialnym, może używać mercurial jako src i subversion jako dest.

hg convert --dest-type svn hgreponame svnreponame 

Należy go włączyć w pliku .hgrc.

Jeśli chcesz nadal używać mercurial na chytry, to hgsubversion pozwoli Ci na dwukierunkową synchronizację.

+1

nie powiedzie się po 2 wersjach z 'abort : svn został zakończony ze statusem 256' –

+1

Nie użyłem rzeczy svn dest, ale ostatnio widziałem, jak bardzo się zmieniają na liście mailingowej. Upewnij się, że używasz najnowszego mercurialu (1.4.1) i najnowsze powiązania z wycięciem dla najnowszej wersji svn. Następnie zacznij używać kombinacji --debug --traceback, a może nawet strace. Konieczne może być rozpoczęcie od całkowicie liniowej historii rtęci, co można łatwo osiągnąć za pomocą "hg clone http: // src -r tip". Wydaje mi się, że słyszałem, że format repo svn nie jest w stanie przechowywać czystych wersji mergeurial merge. –

+4

Jeszcze jedna uwaga na ten temat, aborcje miały miejsce z powodu niedociągnięć systemu plików (ntfs3g). Po prostu próbować. –

3

Tailor powinien być w stanie zrobić, co chcesz.

+0

Błąd łącza: http://progetti.arstecnica.it/ serwer nie został znaleziony. – ChrisFreeman

+0

@ChrisFreeman: Niestety wygląda na to, że arstecnica.it nie działa. Debian wciąż ma pliki w swojej bazie danych pakietów: http://http.debian.net/debian/pool/main/t/tailor/tailor_0.9.35+darcs20090615.orig.tar.gz –

8

Powyższa odpowiedź Ry4ana dokładnie identyfikuje sprawę; niektóre bardziej szczegółowe instrukcje dla nikogo (jak ja), który mającym problemy:

  1. Zrób sobie przysługę i nie spróbować tego w systemie Windows. Będziesz musiał zainstalować bardzo specyficzną wersję SVN, a nawet wtedy pewne rzeczy zawiedzie z różnymi komunikatami o błędach. Moim rozwiązaniem było uruchomienie czystej instancji AWS, mniam-pobierz na nią najnowsze wersje mercurial i svn, sklonuj repozytorium HG i uruchom tam konwersję.

  2. Dodaj do tego pliku .hgrc aby umożliwić rozszerzenie convert:

    [extensions] 
    hgext.convert= 
    
  3. Run to polecenie:

    hg convert --dest-type svn <hg_directory> <directory_for_svn_output> 
    
  4. Można uzyskać następujący błąd:

    abort: svn exited with status 256 
    

    Nie poddawaj się! Po prostu uruchom ponownie to samo polecenie i będzie kontynuowane tam, gdzie zostało przerwane.

    Jeśli nadal będziesz mieć problemy, dodaj --debug --traceback do linii poleceń, aby uzyskać więcej informacji o tym, co poszło nie tak.

+0

Erm, co Windows ma z tym wszystkim wspólnego? –

+0

@BillyONeal To było za długie, więc nie pamiętam dokładnie, ale pod Windowsiem moja konwersja się nie powiodła z powodu pewnych problemów z składnią (myślę, że to było z powodu jakiegoś problemu z formatowaniem parametrów wiersza poleceń do svn.exe). Przeszukując te błędy w Google, musisz mieć bardzo specyficzną wersję SVN, aby mógł działać. Po pewnym czasie majsterkowania, zdecydowałem się po prostu zrobić to na AWS i zadziałało za pierwszym razem. – nitwit

+0

Nie udało mi się tego zarządzać w obu systemach Windows i Linux. W systemie Linux komunikaty o błędach to: mike @ mike-virtual-machine ~/repos $ hg convert - type-type svn ~/Horizon ~/HorizonToSvn inicjowanie kopii roboczej svn 'HorizonToSvn-wc' skanowanie źródła ... sortowanie ... konwertowanie ... 6655 linia bazowa 30357 przerwij: svn zakończył ze statusem 32512 mike @ mike-virtual-machine ~/repos $ – mikelong

Powiązane problemy