[devel] Git: как правильно избавиться от патча в виде бранча ?
Sergey Afonin
asy на altlinux.ru
Вт Окт 13 16:47:25 MSK 2015
On Tuesday 22 September 2015, Aleksey Avdeev wrote:
> а) Отобразить фактические изменения происходящие при мерже бранча
> с патчем:
>
> $ git diff <merge_commit>{^,}
>
> б) Отображаем коммиты, в которых происходят похожие изменения:
>
> $ git log -S '<подстрока>' <бранч> -- <файл>
Так оказалось проще. На всякий случай, напишу запишу тут
последовательность после нахождения коммита, вдруг пригодится.
1. Нашёлся коммит 627ccbb6e09bbcbabace38ec6d3a0b8dbd613186
2. Задействованная последовательность мерджей (избавляемся от autocreate):
patches/alt/004-configs -> patches/other/005-autocreate
patches/other/005-autocreate -> patches/debian/007-fix_docs
$ git checkout patches/debian/007-fix_docs
$ git revert 627ccbb6e09bbcbabace38ec6d3a0b8dbd613186
error: could not revert 627ccbb... Apply autocreate and autosieve patches for Cyrus IMAP Server 2.4.4
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Тут случилась засада с конфликтом. На всякий случай, сверился с
аналогичным файлом (найден по наличию <<<<) из patches/alt/004-configs.
Фактически, можно было файл скопировать. Но это при условии,
что в patches/alt/004-configs ещё не смерджено ничего нового
после предыдущего раза, или известно, что этот файл не затронут.
$ git commit -a
В общем-то, всё, при очередном обновлении можно мерджить
patches/alt/004-configs -> patches/debian/007-fix_docs
Ну и, чтобы не мешался:
$ git branch -d patches/other/005-autocreate
--
С уважением, Сергей Афонин.
Подробная информация о списке рассылки Devel