Итак, есть проект, который я развил, а затем я работал над ним в своей собственной ветке и отправил на свой собственный форк. Итак, скажем, последний / совет оригинального проекта была ревизия 5000; когда я начал работать в своей ветке, я сделал ревизию 5001, а теперь, в конце, мой отзыв о ветке находится на ревизии 5050.
Теперь, если я использую
hg export 5001:5050
... Я получаю все наборов изменений в одном патче, который, однако, подписан. Это здорово, но затрудняет чтение для просмотра.
Если я использую:
hg diff -r 5000:5050
... или просто hg diff -r 5000
, я получаю все изменения из всех наборов изменений "свернутыми" или "сжатыми" в один набор изменений - это отлично подходит для чтения для просмотра, но не включает никаких подписей, так как в:
# HG changeset patch
# User username <user@e.mail>
# Date 1545633736 -3600
# Mon Dec 24 07:42:16 2018 +0100
...
... и не включает двоичные файлы, как hg export --git
.
Итак, возможно ли получить вывод, подобный hg export --git R1+1:R2
(который включает подписи и двоичные файлы) - однако, где все изменения свернуты, как в hg diff -r R1:R2
?
Обратите внимание, что я просто хочу сгенерировать файл патча, я не хочу связываться с историей ни в моей локальной копии форка, ни с вилкой на сервере - я упоминаю об этом, потому что видел С Mercurial, как я могу "сжать" серию наборов изменений в один, прежде чем нажать? , и много ответов там говорят о переписывании истории и тому подобном ...
РЕДАКТИРОВАТЬ: вроде получилось, запустив эти две команды в bash
:
hg export | head -9 > ../mybranch.5050.patch
hg diff --git -r 5000 >> ../mybranch.5050.patch
... однако, ясно, что заголовок hg export
будет неправильным, поэтому я готов поспорить, что hg import
откажется от него ... Так что было бы неплохо узнать, есть ли способ получить что-то вроде то, что hg import
примет ...