2009-06-05 13 views
6

Nasz zespół używa SVN do zarządzania aplikacją o przyzwoitej wielkości iz czasem zbudowała dość złożoną hierarchię gałęzi i znaczników, która jest zgodna z podstawowym standardowym układem repozytoriów SVN, ale jest bardziej zagnieżdżona:Migracja skomplikowanej hierarchii gałęzi SVN do Mercurial

 
    |-trunk 
    |-branches 
    | |-releases 
    | | |-releaseA 
    | | `-releaseB 
    | `-features 
    |  |-featureX 
    |  `-featureY 
    |-tags 
    |-releaseA 
    | |-beta 
    | `-RTP 
    `-releaseB 
     |-beta 
     `-RTP  

(gałęzie fabularne są oddziały oczywiście tymczasowe, ale musimy brać je pod uwagę, ponieważ nie będzie możliwe, aby zamknąć je wszystkie naraz w najbliższej przyszłości)

Z kilku powodów, ale przede wszystkim dlatego, że połączenia stają się coraz większym bólem, jesteśmy zdania ng, aby przejść na Mercurial.

Głównym problemem, przed którym obecnie stoimy, jest migracja istniejącej bazy kodów bez utraty naszej historii. Wypróbowałem kilka narzędzi do migracji (np. yasvn2hg, hg convert i svn2hg) z najbardziej obiecującym yasvn2hg, ale żaden z nich nie wydaje się być w stanie poradzić sobie z zagnieżdżonymi hierarchiami, ale wszystkie zakładają, że gałęzie i znaczniki są zorganizowane w jednym katalogu płaskim odpowiednio.

Wybór między nazwanych oddziałów lub klony jako cel konwersji starych gałęzi SVN nie jest czynnikiem ograniczającym w tym przypadku, albo jako rozwiązanie byłoby mile widziane. Obecnie eksperymentujemy zarówno z opcjami, jak i dopasowujemy je do naszych obecnych procesów, ale jeszcze nie zdecydowaliśmy się na nie. Oczywiście byłbym zainteresowany rekomendacjami lub doświadczeniami z podobnymi konfiguracjami również w tym zakresie.

Tak, jaki jest najlepszy sposób na przekształcenie hierarchii gałęzi zagnieżdżonych SVN w ten sposób w Mercurial?

Konwersja jednego oddziału do osobnego repozytorium byłaby dość irytująca i nie jestem pewna, czy byłoby to właściwe podejście, w zależności od tego, jak narzędzia radzą sobie z historycznymi połączeniami i muszą być świadome wszystkie inne gałęzie?

+0

hej Już prawie wysłałem dokładnie to samo pytanie. Chciałbym usłyszeć, jeśli zdecydowałeś się na rozwiązanie od czasu zadawania pytania. Jak wspomniano poniżej w komentarzu, w moim przypadku posiadanie "klonu" na gałąź zagnieżdżoną naprawdę nie jest rozwiązaniem i mam nadzieję, że uda mi się znaleźć sposób na zaimportowanie oddziałów _as oddziałów_ do HG bez duplikowania gór danych poprzez podzielenie ich na wiele repo. –

Odpowiedz

2

Doskonały artykuł, który przeczytałem. http://ww2.samhart.com/node/50

+0

Ten link wspomina o mojej racji na podzielenie repozytorium svn na wiele repozytoriów hg –

2

Powinieneś zadawać takie pytania na temat mercurial mailing list. To tutaj spotykają się programiści Mercurial, a z czasem pojawiło się wiele pytań dotyczących migracji Subversion.

Mając na uwadze powyższe, A recent change może pomóc - twierdzi, że pozwalają

[...] rozwiązać nawet najbardziej źle źle zarządzała repozytoriów i przekształcić je w dobrze ustrukturyzowanych Mercurial repozytoria.

Sam tego nie wypróbowałem, więc nie mogę skomentować, jak skuteczne będzie to w twoim przypadku.

+0

Dzięki, zobaczę, czy mogę znaleźć poprawkę, o której wspomniałeś i spróbować. Jeśli chodzi o listę mailingową, jest to opcja, którą zdecydowanie również przejrzę.Większość znalezionych przez Google uderzeń dotyczących migracji Mercurial wskazywało na wpis na blogu lub na SO, więc wydawało się, że jest to dogodne pierwsze pytanie dotyczące pytania: –

+0

Right. Zasugerowałem to, ponieważ uważam, że wstydem jest rozpowszechniać odpowiedzi zarówno na wiki, liście mailingowej, jak i teraz na stackoverflow. Ponadto lista mailingowa zawiera wiele osób, które pracowały nad tą konkretną częścią kodu. Jeśli lubisz IRC, to widziałem wiele osób, które otrzymały pomoc na kanale #mercurial na irc.freenode.net. –

Powiązane problemy