Package: dgit Version: 8.4 Severity: wishlist In case of the Debian maintainer is the same person as the upstream maintainer, I would like to see automatic support to the operation described in dgit-maint-merge(7). This is nice alternative to native package workflow and nice upstream history.
|FORWARDING PATCHES UPSTREAM | The basic steps are: | | 1. Create a new branch based off upstream's master branch. | | 2. git-cherry-pick(1) commits from your master branch onto your new branch. | | 3. Push the branch somewhere and ask upstream to merge it, or use git-format-patch(1) or git-request-pull(1). | | For example (and it is only an example): | | % # fork foo.git on GitHub | % git remote add -f fork g...@github.com:spwhitton/foo.git | % git checkout -b fix-error upstream/master | % git config branch.fix-error.pushRemote fork | % git cherry-pick master^2 | % git push | % # submit pull request on GitHub | | Note that when you merge an upstream release containing your forwarded patches, git and dgit will transparently handle "dropping" the patches that have been forwarded, "retaining" the ones that | haven't. This is quite a chore which may be helped by automation. I want automated operation which goes like: 1) Full automatic $ dgit update-upstream * for commit changing within debian/* only --> ignore * for commit changing outside of debian/* only --> apply as is with the same commit messages<F12> * for commit changing everything --> apply changes outside of debian/* --> use the same commit message * merge commit from the last upstream commit to master branch Please note changes are taken from the last commit point used for merge 2) List commit candidates $ dgit update-upstream -l drop 5c8c1e update packaging policy pick 192837 Switch from GNU Makefiles to CMake trim 5a6c7e Document the switch to CMake pick 918273 Fix detection of OpenSSL in CMake pick afbecd http: add support for TLS v1.3 pick fdbaec Fix detection of cURL in CMake on Windows 3) Exclude specific commits with commandline $ dgit update-upstream -x 12345678 -x 1a2b3c4d * Do the same as "Full automatic" but exclude commit hash 12345678 and 1a2b3c4d 4) Exclude specific commits with editor selection: $ dgit update-upstream -i * make git-rebase like editor dialog marking each commit with list sent to editor as: drop 5c8c1e update packaging policy pick 192837 Switch from GNU Makefiles to CMake trim 5a6c7e Document the switch to CMake pick 918273 Fix detection of OpenSSL in CMake pick afbecd http: add support for TLS v1.3 pick fdbaec Fix detection of cURL in CMake on Windows Here; - drop drop debian/* changes - pick pick upstream only change - trim trim debian/* changes but pick upstream only change User can specify: - drop (for any) - pick (for pick) - trim (for trim) - reword (for pick or trim) --> allow to change commit message If the last 4) is too much, maybe we can skip since this is easily done with "git rebase -i ?????" after "dgit update-upstream" -- System Information: Debian Release: buster/sid APT prefers testing APT policy: (500, 'testing'), (10, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 4.19.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages dgit depends on: ii apt 1.8.0 ii ca-certificates 20190110 ii coreutils 8.30-3 ii curl 7.64.0-1 ii devscripts 2.19.4 ii dpkg-dev 1.19.5 ii dput 1.0.3 ii git [git-core] 1:2.20.1-2 ii git-buildpackage 0.9.13 pn libdigest-sha-perl <none> ii libdpkg-perl 1.19.5 ii libjson-perl 4.02000-1 ii liblist-moreutils-perl 0.416-1+b4 ii liblocale-gettext-perl 1.07-3+b4 ii libtext-glob-perl 0.10-1 ii libtext-iconv-perl 1.7-5+b7 ii libwww-perl 6.36-1 ii perl 5.28.1-5 Versions of packages dgit recommends: ii openssh-client [ssh-client] 1:7.9p1-9 Versions of packages dgit suggests: ii cowbuilder 0.88 ii pbuilder 0.230.2 -- no debconf information