Я ищу лучшие практики для выполнения следующих действий:
Когда мне нужно реализовать функцию или исправить ошибку, я создаю новый репозиторий Mercurial из основного (транк).Затем, в течение нескольких дней или недель, я выполняю задачу во вновь созданном репозитории, делая коммиты и периодически объединяясь с транком .После того, как код в новом репозитории пройдет все проверки кода, я должен предоставить репозиторий со всеми изменениями, свернутыми в одну ревизию.
Мой обычный способ сделать это ( расширение rdiff должно быть включено):
hg clone ~/repos/trunk ~/repos/new-collapsed
cd ~/repos/new-collapsed
hg diff ~/repos/new > new.diff
patch -p1 < new.diff
hg commit
Это работает почти хорошо, за исключением случаев, когда в изменениях из ~ / repos / new присутствуют двоичные файлы.Другим способом может быть:
hg clone ~/repos/trunk ~/repos/new-collapsed
cd ~/repos/new-collapsed
hg pull ~/repos/new
hg update
hg rollback
<i>then resolve possible conflicts and manually commit the changes</i>
Оба способа выглядят для меня несколько уродливо и не родным, поэтому я смотрю, как можно упростить эту операцию.Я играл с rebase extension , но, похоже, его команда hg rebase --collapse
не работает с описанным выше рабочим процессом.
Любые идеи приветствуются.