История изменений
Исправление
stevejobs,
(текущая версия)
:
Мне по долгу службы нужно возиться с исходником, который написан для Windows, но запускается на Linux с помощью набора патчей. Понятно, что такие патчи в апстрим никто не примет, там же богомерзкая Linux, фу-фу. Поэтому делается двумя способами. Вначале чисто скачанный репозиторий накатываются изменения из соседнего бранча с «магическими патчами». Потом каждое Linux-специфичное изменение коммитается с комментарием, содержащим строку !LINUX_COMPAT. Перед коммитом, из рабочего бранча удаляются все коммиты «магического бранча», все linux-compat коммиты переносятся в «магический бранч» и удаляются из рабочего, получается зачищенный от линукс-скверны бранч, который можно коммитать в апстрим или высылать по почте. Еще есть специальный блеклист коммитов в файле commit-blacklist-id.txt и commit-blacklist-regexp.txt (одна строка - один коммит, идентификация по айди или по регэкспу в комментарии соответственно), они вычищаются каждый раз перед коммитом без сохранения куда-либо.
Может, сделать что-то подобное. Поиск по комментарию, с маркером !FILE_BLOB=path, и последующим вычищением таких коммитов. Или реестр коммитов с файлоблобами по id. Или отдельный бранч с черрипикнутыми файлоблобами, с которым можно потом устроить пересечение.
Исходная версия
stevejobs,
:
Мне по долгу службы нужно возиться с исходником, который написан для Windows, но запускается на Linux с помощью набора патчей. Понятно, что такие патчи в апстрим никто не примет, там же богомерзкая Linux, фу-фу. Поэтому делается двумя способами. Вначале чисто скачанный репозиторий накатываются изменения из соседнего бранча с «магическими патчами». Потом каждое Linux-специфичное изменение коммитается с комментарием, содержащим строку !LINUX_COMPAT. Перед коммитом, из рабочего бранча удаляются все коммиты «магического бранча», все linux-compat коммиты переносятся в «магический бранч» и удаляются из рабочего, получается зачищенный от линукс-скверны бранч, который можно коммитать в апстрим или высылать по почте. Еще есть специальный блеклист коммитов в файле commit-blacklist-id.txt и commit-regexp-id.txt (одна строка - один коммит, идентификация по айди или по регэкспу в комментарии соответственно), они вычищаются каждый раз перед коммитом без сохранения куда-либо.
Может, сделать что-то подобное. Поиск по комментарию, с маркером !FILE_BLOB=path, и последующим вычищением таких коммитов. Или реестр коммитов с файлоблобами по id. Или отдельный бранч с черрипикнутыми файлоблобами, с которым можно потом устроить пересечение.