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