backporting f2fs linux драйвер с помощью git format-patch или bundle

Я пытаюсь перенести драйвер файловой системы f2fs из linux-3.13-rc4 на мою рабочую станцию ​​под управлением 3.7.10-1, где f2fs еще не существует. Сначала я попытался просто скопировать каталог fs/f2fs на мою рабочую станцию, но это не компилируется, потому что некоторые внутренние помощники vfs изменились между 3.7 и 3.13. Поэтому я попытался взять полную историю мерзавцев fs/f2fs, используя

git format-patch 39a53e0ce0df01b3cf4bb898c7ae2fd2189647d5^ fs/f2fs/

где упомянутый коммит ("f2fs: добавить суперблок и основную структуру в памяти") - это коммит, создающий каталог fs/f2fs /, а затем

мерзавец *.patch

Здесь git am не удается: некоторые коммиты не применяются, либо потому, что они уже применены (в патчах, созданных git format-patch, есть две копии одного и того же патча), либо потому, что патч отсутствует (результат слияния). Я хотел бы, чтобы история в моей копии была в состоянии разделить пополам, а затем удалить изменения, вызванные vfs_helper, сохранив при этом последующее исправление ошибок.

Любой намек?

1 ответ

Расширяющийся sunответ на связанный вопрос Git: Как создавать патчи для слияния? Я наконец нашел решение:

   git log -p --pretty=email --stat -m --first-parent --reverse \
   39a53e0ce0df01b3cf4bb898c7ae2fd2189647d5^..master fs/f2fs/ | \
   csplit -b %04d.patch - '/^From .*$/' '{*}'
   rm xx0000.patch

Это создает патчи с именем xx0001.patch к xxnnnn.patch, которые можно применять с

   git am *.patch
Другие вопросы по тегам