[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