Какой самый простой способ применить серию патчей 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 коллеге, который не следует спискам рассылки. Переслать их себе (в виде вложений).

  1. Выберите все электронные письма с патчем
  2. Направьте их себе в качестве вложений
  3. Сохраните все вложения в соответствующий каталог
  4. применить электронные письма. например, "git am my_patch_dir/[PATCH -v5*"
Другие вопросы по тегам