how to most effectively cherry pick by selective patch hunk?
From: Robert P. J. Day <hidden>
Date: 2021-02-09 14:36:29
(i'm looking for a solution not just for current git but, sadly,
going back to git-2.9.2, which is installed on my current contract
build system, and i have little authority to bump it up.)
summary: made a couple dozen commits on branch, call it "oldb",
where i was relatively undisciplined about enforcing clean, modular
commits so i want to go back and clean things up -- refactor by
changing order, combining some trivial commits into one, breaking
large, unwieldy commits into smaller pieces, better commit messages
and so on, so i start a new branch "newb" at the same origin, and
here's the problem.
every old commit consisted of adding a new patch to an existing
openembedded recipe, so every commit had two components:
* a brand new patch file to be placed under "files/", and
* adding a new line to SRC_URI variable, as in:
SRC_URI += " \
first.patch \
second.patch \
third.patch \
... etc etc ...
"
i think you see the problem. a commit adding a brand new file will
never create a merge conflict, as it's a new file. but if i start
reordering commits, then the addition of that line to the .bbappend
file will *certainly* conflict as the patches will almost certainly be
renamed and in a different order.
what would be great is some sort of "-p" (patch selection) option
with cherry-pick, but i don't see that.
what would work for me is to auto-get the addition of the patch file
from the old branch, at which point i am more than happy to manually
fix the .bbappend file and manually do another commit. i'm thinking i
can just "git checkout" the new patch file from the old branch, and
take it from there.
thoughts? am i overthinking this?
rday