2011-07-27 10 views
12

Próbuję wyodrębnić folder (nazywają to project1) z istniejącego Mercurial Repo (wywołanie w MainRepo) poprzez rozszerzenie Convert Na Mercurial do Mercurial konwersji . Śledzę metod opisanych przez Mercurial programistów (i gdzie indziej w internecie) w systemie Windows XP:Utwórz nowy repo z podkatalogu w Mercurial Repo użyciu konwertować

C:\MainRepo>echo include Project1 > ~myfilemap 
C:\MainRepo>echo rename Project1 . >> ~myfilemap 
C:\MainRepo>hg convert --filemap ~myfilemap . C:\Project1Repo 
C:\MainRepo>cd \Project1Repo 
C:\Project1Repo>hg update 

Stwarza to nowe repo (Project1Repo) z Mercurial folderów/plików w miejscu. Ale nie:

1) Przeanalizuj historię związaną ze zmianami wprowadzonymi do projektu w folderze Project1. (Obecny jest tylko pierwszy wpis historii dla MainRepo i elementu Convert).

2) Skopiuj wszystkie pliki kodu źródłowego z MainRepo \ Project1 do Project1Repo.

Widziałem inne podobne pytania i odpowiedzi w stackoverflow, ale te nie wydają się pomóc (Śledzę metod omawianych w nich): Can I clone part of a Mercurial repository?

Więc pytanie brzmi: w jaki sposób mogę wyodrębnić sub- Folder z MainRepo z tylko nienaruszoną historią folderów podrzędnych i uzupełnić do nowego Repo i przenieść pliki źródłowe w tym samym czasie? (chociaż domyślam się, że prosta kopia będzie ostatnia). Utrzymanie historii jest ważne - w tym przypadku mogę zrobić to po dacie lub numerze zestawu zmian.

Każda pomoc mile widziane jak jestem stosunkowo nowy na tym

Dzięki

Odpowiedz

7

Workflow ty wymienione są prawidłowe. W ten sposób ma działać rozszerzenie convert.

Twoje pytanie mówi, że wyjście repo o numerze hg convert jest w rzeczywistości puste (z wyjątkiem "pierwszego wpisu historii dla MainRepo i elementu Konwertuj"). Oznaczałoby to, że convert nie był w stanie znaleźć ścieżki określonej w Twojej mapie plików.

Czy jesteś pewien, że ścieżka podana w Twoim oświadczeniu include jest poprawna?

Nazwa katalogu podana w instrukcji include musi być pełną ścieżką z katalogu głównego repozytorium. Na przykład, zawierać oświadczenie:

include Project1 

wymaga, że ​​droga do project1 faktycznie być:

C:\MainRepo\Project1 

Jeśli Project1 faktycznie znajduje się gdzieś indziej w MainRepo, będzie w końcu z pustym repo od wyprodukowania konwersja.

+0

Cześć Tim - Dziękuję za odpowiedź w tej sprawie. Tak, to był problem ze ścieżką. Po przeczytaniu kilku kolejnych postów na ten temat i wyraźnego stwierdzenia, co muszę zrobić, wszystko działało dobrze. Chociaż po aktualizacji ** hg ** nie skopiowano żadnych plików źródłowych (zrobiłem to ręcznie). Potężne polecenie, ale nie dobrze udokumentowane, czuję. –