git/list[1] front-page[2] threads[3] people[4] search[5] about
 

how to most effectively cherry pick by selective patch hunk?

From
Robert P. J. Day <rpjday@crashcourse.ca>
Date
Feb 9, 2021, 13:58 UTC
Message-ID
<566b38df-307c-f342-b583-3a50a81b5057@crashcourse.ca>
  (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
Next: Jeff King
Message 1 of 5 in “how to most effectively cherry pick by selective patch hunk?”
  1. Robert P. J. DayFeb 9, 2021
  2. Jeff KingFeb 9, 2021
  3. Robert P. J. DayFeb 9, 2021
  4. Andreas SchwabFeb 9, 2021
  5. Elijah NewrenFeb 11, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.