I don't git it, but now you will
Debian patching workflow for new upstream versions
Update each patch branch
git checkout debian/patches/xxx
git merge upstream
- Resolve possible conflicts
- Repeat for all patch branches
Merge new upstream + updated patches + dropped patches + master (debian)
git checkout -b merge/$upstream_version upstream
- Merge each updated patch branch
git merge --no-ff debian/patches/xxxx
- Discard each obsolete patch branch
git merge --no-commit -s ours debian/patches/xxxx
git commit -m "Discard branch 'debian/patches/xxx' from merge/$upstream_version"
git merge -s recursive -X ours master
git checkout master
git merge merge/$upstream_version
Untested alternative merge workflow
git checkout master
git merge -s recursive -X theirs upstream
git merge -s recursive -X theirs debian/patches/xxxx
- Repeat for all patch branches
diffstat
git diff upstream/2.10.1 upstream/2.10.3 | filterdiff -i '*.c' -i '*.h' -i '*.cs' --clean | diffstat