i haven't read the entire thread [sorry], but with that in mind here's how i'm 
solving this:

i have various branches where i keep my not-yet-merged work. i also have a 
script that creates/overwrites a branch (called 'attila', starting at the tag 
'attila-baseline') and cherry picks everything into it. i sometimes `git tag 
-f` the 'attila-baseline' tag to pick a new baseline.

then i update my intro commit hash wherever i want to pull my 
rebased/cherry-picked changes (this is a several machines setup, and yes, it's 
burdensome).

when a cherry pick fails, then i cancel the script, rebase the problematic 
branch on 'attila-baseline', and restart the script pasted below.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Is there an idea more radical in the history of the human race than turning 
your children over to total strangers whom you know nothing about, and having 
those strangers work on your child's mind, out of your sight, for a period of 
twelve years? […] Back in Colonial days in America, if you proposed that kind 
of idea, they'd burn you at the stake, you mad person! It's a mad idea!”
        — John Taylor Gatto (1935–2018), Teacher of the Year, both in New York 
City and State, multiple times


#!/usr/bin/env bash

BRANCHES="kludges ui-warnings print-branch-name"
BRANCHES+=" shepherd-guix-side"

set -e

initial_branch=$(git branch --show-current)

git rebase attila-baseline attila-initial-commit

git checkout attila
git reset --hard attila-baseline
git pull . attila-initial-commit

for branch in ${BRANCHES}; do
    echo "*** Processing branch ${branch}"
    #git rebase attila-baseline $branch
    git cherry-pick attila-baseline..$branch
done

#git checkout $initial_branch

git -c pager.log=false log --pretty=oneline 
attila-initial-commit~1..attila-initial-commit


Reply via email to