Как перенести последние удаленные изменения в удаленное хранилище (при использовании mqueues)
Книга hg рекомендует следующий рабочий процесс для обновления патчей mqueue после обновления удаленного репозитория. Ссылка:
hg qpush --all
# QSave is now depricated (according to hg qsave --help). It appears to have been
# depricated since at least 2010. Additionally, QSave is not working in my environment
# due to my organization's commit hooks
hg qsave
hg pull
hg update --clean
hg qpush -m -a
qsave
команда говорит:
> This command is deprecated, use "hg rebase" instead.
Каков новый рекомендуемый рабочий процесс? Что я хочу сделать:
- Проверьте код
- Сделайте некоторые коммиты к нему (возможно, но не обязательно, используя mqueues)
- Вытащить последние изменения из удаленного репо
- Интегрируйте изменения в мой репо. Я открыт для процесса перебазирования или слияния, однако я хочу использовать какой-то трехсторонний инструмент слияния для разрешения конфликтов
Редактировать: рабочий процесс, который я сейчас использую:
hg qpop --all
hg pullup
hg qpush # repeat until no patches left.
Проблема с этим рабочим процессом заключается в том, что он генерирует .reject
файлы.
Я знаю, что я также могу сделать:
hg qpush --all
hg pull --rebase
Проблема в том, что я не знаю, как отменить или отменить его, так как это на самом деле изменяет мои патчи. Я думаю, что это создает какую-то резервную копию, как описано в этом сообщении: saved backup bundle to /someDirectory/.hg/strip-backup/424323abc42a-backup.hg
,
Редактировать:
Я только что сделал hg pull --rebase
и это сработало хорошо... Я думаю, что это то, что я собираюсь использовать в будущем. Мой главный дискомфорт в этом заключается в том, что я действительно предпочел бы объединить, чем перебазировать. Я хочу быть в состоянии увидеть реального родителя моих коммитов и как я разрешал конфликты. К сожалению, я не думаю, что объединение и использование mqueues - совместимый рабочий процесс. Вероятно, не имеет смысла вставлять патч с историей...
Редактировать:
Думая об этом немного больше, я думаю, что это рабочий процесс, который я собираюсь попробовать в следующий раз, когда я знаю, что у меня будут волосатые конфликты:
# Convert patches to real commits:
hg qfinish # some args
# Pull remote changes
# Merge remote changes
Я думаю, что теоретически после этого я мог бы перебазировать свои слияния, как в сенарио 7.