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