Re: git-cherry-pick(1) -- path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Sat, May 11, 2024 at 10:08:47PM GMT, Alejandro Colomar wrote:
> Hi Phillip,
> 
> On Sat, May 11, 2024 at 04:01:18PM GMT, Phillip Wood wrote:
> > sequencer.c. If we go for the "write new trees and use those in the merge"
> > approach then we'd need to change do_pick_commit() to create the trees and
> > we'd probably want to change do_recursive_merge() to take trees rather than
> > commits. We'd also need to add a new pathspec member to struct replay_opts
> > to pass the pathspec around.
> 
> I've been thinking this evening that since
> `git format-patch ... | git am -3` works so well, and since the behavior
> of cherry-pick -- path isn't so obvious (we're discussing different
> strategies), maybe we should just not do it.  I fell in love with am -3.

In the end, I'm using the following:

$ git log --oneline 2024a..tz/main -- tzfile.5 tzselect.8 zic.8 zdump.8 \
| awk '{print $1}' \
| tac \
| while read c; do
	git format-patch --stdout -1 $c -- tzfile.5 tzselect.8 z*.8 \
	| sed '/^---$/s/^/\n/' \
	| sed "/^---$/i Cherry-picked-from: tz.git $( \
			git log -1 --oneline --abbrev=12 $c \
			| awk '{print $1}' \
		) (\"$( \
			git log -1 --oneline $c \
			| sed 's/[^ ]* //' \
		)\")";
done \
| git am -3 -s;


And it works like a charm.  If I had to spell that as a
git-cherry-pick(1) command, I'd say
`git cherry-pick -x -s 2024a..tz/main -- tzfile.5 tzselect.8 zic.8 zdump.8`

BTW, there's something I noticed when I had an accident (forgot to
tac(1) the commit list): the git-am(1) conflicts session isn't as good
as a cherry-pick one: it doesn't show which commits are being applied.
If you're in the middle of a 50-commit cherry-pick, it's hard to see
where it's going wrong.  So maybe adding this functionallity to
git-cherry-pick(1) could be a good thing.

Have a lovely day!
Alex

-- 
<https://www.alejandro-colomar.es/>

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux