2008-12-28 18 views
6

Mamy dość duże repozytorium SVN, które zamierzamy migrować do perforce. Bardzo chcemy zachować wersje ~ 20k, gałęzie itp., Ale w niektórych początkowych testach skrypt svn2p4, który zapewnia, nie był w stanie odtworzyć pełnej struktury.Migracja z SVN do Perforce - porady? Doświadczenie?

Czy ludzie osiągnęli sukces za pomocą tego narzędzia, czy też byli inni, których moje wyszukiwanie google nie pojawiło się? Najlepsze praktyki i wskazówki są mile widziane.

+0

Jakich konkretnych części konstrukcji narzędzie nie mogło się rozmnażać? Czy zawiodła przed końcem, czy jest coś innego? Może niektóre szczegóły mogą ułatwić ci udzielenie odpowiedzi. –

Odpowiedz

3

Vitalii Pokrovskii i Mark Fridrich stworzyli svn2p4, skrypt perla, który "synchronizuje się i odtwarza", aby zaimportować każdy zestaw zmian do zera.

Można go znaleźć na perforce wiki. Przedstawili także prezentację na ten temat pod numerem 2007 Perforce User's Conference.

aktualizacja 2012: Kolejnym rozwiązaniem jest użycie p4convert-svn. Szczegóły tutaj: p4convert-svn at perforce site

+0

Zgodnie z OP, svn2p4 nie działa poprawnie dla niego: "w niektórych początkowych testach skrypt svn2p4, który zapewnia, nie był w stanie odtworzyć pełnej struktury". –

+2

, ale jest to zaznaczone jako odpowiedź - P: narzędzie X nie działa, co mam zrobić? Odp .: użyj narzędzia X. lol. – gbjbaanb

+0

Użyłem tego skryptu do przeprowadzenia dość dużej migracji. Musiałem wprowadzić wiele poprawek i hacków. Jeśli chcesz poznać moją wersję skryptu, daj mi znać. –

-1

Moja największa wskazówka to nie rób tego. Z punktu widzenia użyteczności perforce jest znacznie gorszy niż svn. Jestem zmuszony używać go w pracy i jest znacznie mniej intuicyjny niż interfejs svn oparty na plikach/windows explorer. Konfigurowanie obszarów roboczych jest nieintuicyjne i trudno je usunąć. Czasami jest zdezorientowany i nie popełni czegoś, mimo że został zmieniony. Domyślnie wszystko jest tylko do odczytu. Zatwierdza pliki, które są wyrejestrowane, ale niezmienione. Mógłbym kontynuować ...

+0

Po pierwsze, operacja prawdopodobnie nie może zmienić decyzji. Po drugie, stwierdziłem, że P4 jest wspaniałym narzędziem. Jest inny niż SSafe i SVN, ale z pewnością nie jest złym narzędziem. zwykle firmy unikają tego ze względu na koszty. – Tim

+0

Osobiście nigdy nie pracowałem z Perforce, ale niektórzy byli pracownicy Google i Microsoft przysięgają na to. Nasz powód zmiany jest w dużej mierze spowodowany słabym łączeniem się w SVN. Widzielibyśmy konflikty w łączeniu gałęzi z powrotem do portu, gdy tylko jeden z plików został zmodyfikowany, itp. Zbyt podatny na błędy. –

+0

+1, każdy, kto uważa, że ​​Perforce jest dobry, jest dość niedoinformowany. Muszę z nim pracować każdego dnia i chociaż jest to lepsze niż CVS, to jest bzdura w porównaniu do Gita. –

0

Pozwoliłbym sobie pojąć, że nie powinno się tego robić. MOIM ZDANIEM.

Jeśli cokolwiek, przejdę do GIT, jeśli coś, ale nie dotknę innego systemu kontroli źródła, który robi to samo. Nie rozwiązuje to żadnych problemów, a moje doświadczenie prowadzi mnie do prostego faktu, że na dłuższą metę nie zaoszczędzi ci to czasu ani pieniędzy.

+0

Tak samo jak uwielbiam Gita, nie polecałbym go w tym przypadku. Kevin powiedział, że jego repozytorium jest "dość duże". Jeśli oznacza to, że ma on więcej niż kilka gigabajtów, uniknęłbym Git, szczególnie jeśli duży rozmiar tego repozytorium spowodowany jest przez ludzi dodających duże pliki binarne (np. Wideo). Jeśli, z drugiej strony, "dość duży" odnosi się tylko do liczby popełnionych błędów, Git jest o wiele lepszym wyborem niż Perforce IMHO. – splicer

2

Jak wspomniano w fuzzymonk, jedyną realną opcją jest użycie skryptu perl svn2p4. Używałem tego kilka razy i działało dobrze, chociaż powoli, zwłaszcza w wielu branżach.

Jedna rzecz, która była bardzo przydatna w tym skrypcie, to możliwość zminimalizowania przestojów do praktycznie żadnego, niezależnie od odległości geograficznej między serwerami. Jest to możliwe, ponieważ svn2p4 jest w pełni wznawiany.

  • Po pierwsze, należy wziąć kopię zapasową serwera svn
  • Przy wyjściu z serwera na żywo, rozpocząć import z SVN aby siłą rzeczy przy użyciu kopii zapasowej.
  • Po zakończeniu importu można usunąć serwer Live i zakończyć import, wskazując svn2p4 na serwer na żywo zamiast kopii zapasowej.

Oznacza to, że wystarczy usunąć serwer z kilku wersji, które miały miejsce od ostatniej kopii zapasowej. Jest to szczególnie przydatne, jeśli migracja odbywa się na dużych odległościach geograficznych (serwery svn i perforce są daleko od siebie), ponieważ duża część importu odbywa się lokalnie, prawdopodobnie na tym samym komputerze, a nie przez Internet.

Jesteśmy w trakcie dużego importu (20k wersji, 18GB svn root) i jestem ciekawy, jakie problemy napotkaliście podczas pierwszych testów.

2

Problem ten jest prawdopodobnie całkowicie martwy, ale po prostu FYI, jest tam wiele przydatnych informacji w Scott Bilas na blogu tutaj: http://scottbilas.com/blog/subversion-to-perforce-post-mortem/

Wspomina niektórych szczególnych problemów z svn2p4 i jak obejść nich (kiedy takie obejścia są możliwe.)

Właśnie zacząłem używać Perforce po latach z Subversion, więc jestem na stromej części krzywej uczenia się.