Какой самый простой способ применить серию патчей git от Thunderbird?
У меня есть письмо с N вложениями в формате 000X-xxxx.patch. Я хотел бы применить все патчи поверх моего мастера, но я бы хотел, чтобы все коммиты были отдельными, так как их сделал первоначальный автор. Включая сообщение о коммите, конечно.
Метод 1: Откройте письмо, нажмите Сохранить как, xxx.eml, а затем:
git am xxx.eml
Результат в порядке, но все сводится в один коммит. Неприемлимо.
Способ 2. Все вложения сохраняются в каталоге, затем:
git am 000*.patch
Patch format detection failed.
git apply 000*.patch
(does nothing)
Это не работает. Советы? Благодарю.
2 ответа
Читая через git am
man-страница выглядит так, как будто сообщение коммита сформировано из строки Subject: и тела сообщения, что означает, что вы не сможете восстановить исходную последовательность коммитов (то есть, нет никаких средств для восстановления сообщение о коммите, которое автор использовал для каждого отдельного коммита)... хотя согласно man-странице, git am
предназначен для работы со встроенными патчами, а не с патчами, включенными в качестве вложений, поэтому я удивлен, что он работает правильно даже в методе 1.
Если вы хотите отказаться от коммитов, вы сможете сохранить патчи в отдельных файлах и просто git apply ...
их в последовательности.
Насколько мне удалось найти, у Thunderbird нет разумного способа сохранить несколько писем в виде отдельных файлов одновременно. Вы можете сохранять их по одному, однако, это работает для небольших наборов патчей.
По иронии судьбы, я случайно обнаружил самый простой способ, отправив исправления Linux коллеге, который не следует спискам рассылки. Переслать их себе (в виде вложений).
- Выберите все электронные письма с патчем
- Направьте их себе в качестве вложений
- Сохраните все вложения в соответствующий каталог
- применить электронные письма. например, "git am my_patch_dir/[PATCH -v5*"