mercurial: Клонировать только один файл из одного репозитория в другой?

У меня есть репозиторий проекта perl mercurial/hg с множеством модулей. Теперь я понял, что некоторые модули, ветвь модулей, больше не вписываются в этот проект, но лучше подходят для другого проекта.

Итак, возможно ли «клонировать» эти модули из репозитория 1 в мой другой репозиторий 2, сохраняя при этом историю изменений этих модулей и в то же время помечая модули в репозитории 1 как «удаленные»?

Я думаю, что это возможно с несколькими шагами. Но я думаю, что клонирование всего репозитория 1 и последующее удаление всех ненужных файлов загромождали бы мой новый репо 2 большим количеством несвязанной истории изменений. Тем не менее, насколько я понимаю, ни одна из команд «clone» и «pull» не подходит для клонирования только фрагмента другого репозитория, верно? Или можно "переместить" файл из одного репозитория в другой? Как я вижу, это аналогия того, что я хочу сделать.


person isync    schedule 04.08.2010    source источник


Ответы (1)


Абсолютно! Взгляните на расширение Convert, особенно на Mercurial-to-Mercurial, который должен делать именно то, что вы хотите.

После того, как вы отделите эти модули, вы можете использовать hg forget, hg remove, чтобы удалить их из исходного репозитория, или даже снова использовать hg convert, чтобы создать новый репозиторий без них.

person Niall C.    schedule 04.08.2010
comment
Раздел Mercurial-to-Mercurial — это именно то, что мне нужно. Спасибо! - person isync; 05.08.2010