Можно ли привязать Mercurial subrepo к определенной ревизии (например, svn: externals)? - PullRequest
4 голосов
/ 07 июля 2010

Я переношу набор проектов из Subversion в Mercurial. В настоящее время в проектах используется svn: externals для переноса кода из одного в другие. Я выполняю рекомендацию указывать внешние номера на определенный номер ревизии и вручную обновлять его по мере необходимости (чтобы при обновлении до предыдущей ревизии основного проекта я также получал старую версию внешних версий).

Кажется, что способ сделать внешнее в Mercurial с помощью подпунктов, но я не вижу способа привязать их к определенной ревизии - похоже, Hg всегда обновляет подпункты до последней ревизии всякий раз, когда я обновляю основной Сделки рЕПО. Это верно? И есть ли способ обойти это?

Ответы [ 3 ]

3 голосов
/ 07 июля 2010

В вашем файле .hgsub вы можете использовать синтаксис http://[user[:pass]@]host[:port]/[path][#revision] (или local/filesystem/path[#revision]) (см. hg help urls для большего количества примеров), чтобы привязать подрепортаж к определенной ревизии.Для этой строки ревизии вы можете даже использовать #branchname или #tagname, чтобы отслеживать кончик определенной ветви (например, stable) или подвижный тег (например: release), чтобы получить только новую версию.при обновлении ветки или тега в удаленном подпункте.

1 голос
/ 21 июля 2013

(скопировано из моего комментария выше)

Оказывается, я был не прав. Он не обновляется до последней версии, он обновляется до версии, указанной в файле .hgsubstate, который контролируется версией и автоматически обновляется при каждой фиксации. Так что это на самом деле проще, чем внешние SVN, так как ревизия не требует ручной повторной привязки; каждая ревизия основного репо автоматически связывается с соответствующими ревизиями подпунктов.

0 голосов
/ 07 июля 2010

Похоже, что вложенные репозитории Mercurial всегда обновляются до последней подсказки удаленного репозитория.

Я предлагаю, если вы используете конкретную версию удаленного репозитория и обновлениеэта версия редко, лучше добавить эту версию в ваш основной репозиторий.Это означает, что вы больше не зависите от внешнего источника для проверки.

...