Как добавить subrepo в существующий репозиторий в mercurial

какой лучший/простой способ (или даже возможно), чтобы добавить существующий репозиторий на другой существующий репозиторий как subrepo?

ситуация у меня есть существующий (основной) проект, где я хочу включить проект библиотеки, чтобы я мог редактировать проект библиотеки из основного проекта и фиксировать изменения в проект библиотеки при переходе к основному проекту.

также: мне нужно клонировать/нажимать / тянуть к исходному проекту библиотеки, или это сделано автоматически при фиксации в основном проекте?

в отношении
Йеспер Хауге!--1-->

4 ответов


документация subrepo настолько смутила меня, что я написал сценарий оболочки, чтобы абстрагировать эту часть.

addsubrepo.sh

называй это как

$ cd $TOP_OF_HG_PROJECT
$ addsubrepo.sh $URL_TO_HG_PROJECT relative_path/you/want_to/put_the_subrepo

чтение документов, плагин subrepo поддерживает эту функциональность.

Я еще не использовал его, но, вероятно, начнет использовать его в ближайшем будущем.

Он улучшается каждый выпуск Mercurial, и я считаю, что люди успешно используют его. Кажется, он получил разумное количество внимания и был на повестке дня для последнего блица кодирования.

по словам помогите, pull, push, commit и т. д. Также должны действовать на subrepo. Это звучит как фиксация будет проверять, есть ли какие-либо изменения в subrepo. Если они есть, они будут зафиксированы, и новый набор изменений в subrepo будет записан в .файл hgsubstate. Затем этот файл, а также изменения в основном РЕПО будут зафиксированы.

когда вы клонируете, Mercurial должен увидеть .hgsubstate, а также .hgsub файл, и правильно вытащить вложенный запрос, и обновить до правильной редакции.


вы можете использовать deps


вот как я это сделал:

$ cd /projects/main_project
$ hg clone /projects/plugins/awesome plugins/awesome_plugin
$ echo plugins/awesome_plugin = plugins/awesome_plugin > .hgsub
$ hg add .hgsub
$ hg commit -m "added awesome_plugin plugin as a subp-repo"