Если вы хотите быть уверенным, что патч (одиночный коммит) будет применен поверх определенного коммита, вы можете использовать новую опцию git 2.9 (июнь 2016) git format-patch --base
git format-patch --base=COMMIT_VALUE~ -M -C COMMIT_VALUE~..COMMIT_VALUE
# or
git format-patch --base=auto -M -C COMMIT_VALUE~..COMMIT_VALUE
# or
git config format.useAutoBase true
git format-patch -M -C COMMIT_VALUE~..COMMIT_VALUE
См. коммит bb52995 , коммит 3de6651 , коммит fa2ab86 , коммит ded2c09 (26 апреля 2016) Сяолун Е. (``).
(Объединено с Junio C Hamano - gitster
- in commit 72ce3ff , 23 мая 2016 г.)
format-patch
: добавьте опцию '--base
' для записи информации о базовом дереве
Специалисты по обслуживанию или сторонние тестировщики могут захотеть узнать точное базовое дерево, к которому применяется серия исправлений.Научите git format-patch использовать опцию '--base
' для записи информации о базовом дереве и добавления ее в конце первого сообщения (либо сопроводительного письма, либо первого патча в серии).
БазаДревовидная информация состоит из «базового коммита», который является хорошо известным коммитом, который является частью стабильной части истории проекта, на котором все остальные работают, и ноль или более «обязательных патчей», которые являются хорошо известными патчами вПолет, который еще не является частью «базового коммита», который необходимо применить поверх «базового коммита» в топологическом порядке, прежде чем патчи могут быть применены.
«Базовый коммит» отображается как «base-commit:
", за которым следует 40-шестнадцатеричный код имени объекта фиксации.
" Предварительно установленный патч "отображается как" prerequisite-patch-id:
", за которым следует 40-шестнадцатеричный" идентификатор патча ", который можно получить, передав патччерез команду "git patch-id --stable
".
Git 2.23 (Q3 2019) улучшит это, потому что опция "--base
" в "format-patch
" вычислила patch-ids
для обязательных патчей в нестабильномСпособ, который был обновлен для вычислений способом, совместимым с "git patch-id --stable
".
См. commit a8f6855 , commit 6f93d26 (26 апреля 2019 г.) Стивен Бойд (akshayka
) .
(Объединено Junio C Hamano - gitster
- в коммит 8202d12 , 13 июня 2019 г.)
format-patch
: сделать --base patch-id
вывод стабильным
Мы не очищали контекст каждый раз, когда обрабатывали блок в patch-id
генерация кода в diff.c
, но мы делали это, когда генерировали «стабильные» идентификаторы исправлений с помощью инструмента patch-id
.
Давайте перенесем эту похожую логику из patch-id.c
в diff.c
, чтобы мы могли получить тот же хеш, когда мы генерируем идентификаторы исправлений для типов команд format-patch --base=
.