Совместное использование файлов в управляемом подходе между репозиториями hg - PullRequest
4 голосов
/ 26 октября 2010

Проблема: в одном репозитории hg есть файл, который я хочу обновить и сохранить в другом репозитории hg, и я не хочу копировать и вставлять.Я хочу, чтобы файл был доступен в обоих репозиториях.

Сценарий:

Работа над продуктом 0001

Проект A имеет репозиторий hg.

В будущем Проект B вращается.В основном нет связи между Проектом A и B, но есть некоторые файлы, которые могут быть общими.

Управление версиями файлов в управляемом подходе имеет решающее значение: копирование и вставка не является жизнеспособнымрешение.

Есть несколько решений, которые могут работать -

  • Объединение обоих репо в репо продукта .Но это означает, что номера версий для набора файлов будут меняться из-за оттока в другом месте.Кроме того, различные проекты не очень связаны друг с другом.
  • Конвертируйте оба в подпункт. Я не уверен, что это правильный подход, кажется, что в подпунктах есть какое-то странное поведение, связанное с родителемСделки рЕПО.(Или раньше?)

Расширение этой проблемы представляет собой концепцию обмена определенными файлами между Продуктами.Каким-то образом файл должен быть передан и правильно отслежен как отдельный файл, но в двух разных продуктах.

Общая проблема может быть сформулирована так:

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

Какое здесь хорошее решение?

1 Ответ

3 голосов
/ 26 октября 2010

Ваш второй звонок правильный. Вы должны извлечь файлы, которые будут находиться в обоих репозиториях, и сделать это третьим репо, которое вы, в свою очередь, сделаете суб репо для каждого из проекта A и проекта B.

Не знаю, когда вы впервые посмотрели подпункты, но они существуют уже год и поддерживаются довольно хорошо.

Прочтите несколько ответов, связанных с субрепо, здесь о переполнении стека, убедитесь, что в них указаны относительные пути (а не абсолютные w / http: // и т. Д.), И они очень хорошо к вам относятся.

Обновление:

Сегодняшняя версия 1.7 Mercurial включает в себя следующие улучшения для подпунктов:

  • поддерживает переназначение путей к исходным хранилищам (см. [Subpaths] в hgrc (5))
  • сделать команды add, diff, входящие, исходящие и статусные повторяющимися в подпункты с --subrepos/-S
  • subrepo: добавить поддержку 'hg archive'
  • subrepo: исправить проверку состояния в SVN subpopos (проблема 2445)
...