Подталкивание ртутного РЕПО без подталкивания подпунктов - PullRequest
11 голосов
/ 09 июля 2010

Я использую Mercurial 1.6. У меня есть репо с несколькими подпунктами (11). Я хотел бы выдвинуть родительское репо к удаленному репо по умолчанию, не выдвигая дочерние репо. Причины для этого:

  • Я использую репозитории SSH, и требуется много времени, чтобы установить соединение и ничего не выдвигать к каждому из подпунктов.
  • У меня есть коммиты в подпунктах, которые я не хочу распространять в удаленные репозитории (пока).
  • В подпунктах есть именованные ветви, которые не следует распространять в репозитории репозитория (и, по-видимому, нет способа передать имена ветвей в операцию push из подпунктов).

Однако я не смог найти способ сделать это. Я пытался удалить содержимое .hgsub и .hgsubstate (без фиксации), но все равно mercurial настаивает на отправке подпунктов.

Как я могу перенести изменения из локального репо в удаленный репо и временно игнорировать подпункты?

1 Ответ

4 голосов
/ 21 декабря 2010

Я думаю, вам нужно будет сделать локальные клоны вложенных репозиториев.

Проблема с подталкиванием основного репо без подталкивания вложенных репозиториев заключается в том, что содержимое вложенных репозиториев не является частью основного репо.их состояния.На содержание ссылаются из исходного местоположения, указанного в .hgsub.Таким образом, ваш главный репозиторий .hgsubstate говорит, что «субрепо А находится в ревизии abcd1234», но abcd1234 - это внесенное вами изменение, которое вы не хотите выдвигать ... и что теперь произойдет, если вы клонировали основной репо?Он попытался бы клонировать вложенный репозиторий из его исходного местоположения и обновить его до abcd1234, но эта ревизия не существует в исходном местоположении, поэтому клон потерпит неудачу.

Вместо этого вы можете создавать локальные клоныкаждый внешний репозиторий и ссылки те как внешние местоположения подпунктов.Затем, когда вы нажимаете основной репо, изменения субрепо будут распространяться только на ваши локальные клоны.Когда вы будете готовы поделиться этими изменениями, просто перейдите к локальным клонам и нажмите там, и вы сможете передавать имена ветвей и т. Д.

...