Mam duże repozytorium Mercurial, które, jak zdecydowałem, będzie lepsze od kilku mniejszych repozytoriów. Czy istnieje sposób, w jaki mogę podzielić repozytorium i czy każdy element zachowuje swoją historię zmian?Czy mogę podzielić repozytorium Mercurial?
Odpowiedz
Najlepszym sposobem na to jest użycie 'convert' extension. Będziesz korzystać z rtęcią i oba źródła i typ docelowy, a następnie użyć --filemap
z wpisami jak:
exclude path/you/do/not/want
rename path/you/do/want .
zmiany nazwy jest konieczne tylko, jeśli chcesz wziąć części jesteś przechowywania i przenieść je „wyższą” w hierarchia katalogów.
Po prostu sklonuj i usuń niechciane elementy z każdej kopii.
to nie pomoże. Każde zamknięcie ma wciąż pełną historię, więc "zbyt dużo rzeczy" zawsze znajdzie się w katalogu ".hg" zajmującym przestrzeń. –
ah, chcesz stalinowskiej rewizjonistycznej formy kontroli wersji. ;) http://en.wikipedia.org/wiki/Historical_revisionism_(negationism) –
@ Ry4an Ale czy klony nie są skutecznymi kopiami siebie nawzajem? Czyli tak, historia zmian usuniętych elementów będzie w obu repozytoriach, ale tylko raz przechowywana na dysku? Więc jeśli sklonowałbym repozytorium z kilkoma obrotami do plików A - D, a następnie usunięto by dać mi repozytorium A/B i C/D, przechowywałbym tylko jedną kopię wszystkich obrotów AD wraz z dodatkowym zestawem zmian w każdy z nich oznaczający C/D usunięto w jednym i A/B w drugim. Dobrze? –
znalazłem szczegółowy przewodnik here:
utworzyć mapę plików new-repo.filemap
takich jak
include vendor/FooBackend
rename vendor/FooBackend .
Utwórz inny plik mapy rewrite-old-repo.filemap
:
exclude vendor/FooBackend
utworzyć nowe repozytorium:
hg convert /path/to/current/repo /path/to/new/repo --filemap new-repo.filemap
Nowe repozytorium zostało zakończone. Katalog jest pusty, ale hg update
przyspieszy jego zawartość.
Tworzenie zmodyfikowanego repozytorium
hg convert /path/to/current/repo /path/to/rewritten/repo --filemap rewrite-old-repo.filemap
To przyniesie pracę: zmień nazwę ścieżki/ty/zrób/chcesz/ To spowoduje: zmień nazwę ścieżki/ty/do/chcesz. Dotyczy to tylko przeniesienia ścieżki do katalogu głównego. –
Rzeczywiście, dzięki, Nathan. –
http://mercurial.selenic.com/wiki/ConvertExtension – Julian