Иногда, когда я работаю над изменением кода, мне нужно внести соответствующее изменение в код совместно используемой библиотеки в моем репозитории, который сам по себе является вложенным.Когда я хочу зафиксировать изменения, я делаю это в родительском репозитории, и Mercurial позаботится о том, чтобы выполнить обязательную фиксацию в подпрепозиции.
Однако недавно я начал использовать MQ, чтобы лучше отслеживать свою собственную историю изменений и даватьУ меня больше свободы для экспериментов и более безопасной работы по масштабному рефакторингу.Я включил MQ как на родительском объекте, так и на вложенном репо.
В описанном выше сценарии правильно ли я полагаю, что если я 'передам' новый или существующий патч MQ, то подпункт игнорируется?Это то, что происходит в моем тестировании.Означает ли это, что мне нужно вручную управлять очередью исправлений в подпункте?Это становится громоздким очень быстро.
Если это не сработает, это нормально - я могу настроить свой рабочий процесс и избежать MQ, когда у меня есть кросс-репо, но мне интересно, что я что-то упустил илиесли у других есть решение для этого сценария, они могли бы поделиться.
Обновление: Похоже, что это может быть "не поддерживается" в этой точке согласно этой теме: https://www.mercurial -scm.org / bts / issue2499
Я попытался сделать следующее:
- Подтвердил изменение подотчета вручную.
- Обновлен файл .hgsubstate вродительский репозиторий вручную с помощью хэша от коммита subrepo.
- Попытка qrefresh родительского репозитория.
Идея состояла в том, что я мог получить коммит из родительского репозитория для постоянной синхронизациис правильной версией subrepo, даже если бы мне пришлось сделать это вручную.К сожалению, Mercurial, похоже, хочет защитить меня здесь (как и должно быть!) И выдает следующее, когда я пытаюсь qrefresh:
warning: not refreshing .hgsubstate
Чтобы «исправить» вещи, я делаю пустой коммит после hgfinishв родительском репозитории, чтобы восстановить синхронизацию.Но ... это кажется глупым и усложняет историю кода.
Ну ладно, думаю, я вернусь к каменному веку и перестану использовать MQ в своем рабочем процессе, когда будут задействованы суб-репозитории.