summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* | dgit: Interoperate with git-debrebase, automaticallyIan Jackson2018-06-17
| | | | | | | | | | | | | | | | | | | | | | | | | | * Recognise gdr branches, by the presence of corresponding ffq-prev or debrebase-last refs. * Before trying to do our own multi-patch linear quilt fixup, on a gdr branch, see if gdr can do it. If so that is faster and better. * If our branch is an unstitched gdr branch, which would be ff from the archive if we were to stitch it, then do so. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | dgit: Prepare for calling git-debrebaseIan Jackson2018-06-17
| | | | | | | | | | | | | | Provide the --git-debrebase= option, and pass it in the test suite. Nothing uses this yet. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | Dgit.pm: gdr_ffq_prev_branchinfo: move from git-debrebaseIan Jackson2018-06-17
| | | | | | | | | | | | dgit is going to want this too, for interoperability. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: make-patched: Provide --quiet-would-amendIan Jackson2018-06-17
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: test suite: gdr-subcommands: provide X checkletterIan Jackson2018-06-17
| | | | | | | | | | | | | | No user yet. I wanted this for a test which actually isn't going to work like that, but I thought I would commit it anyway. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: test suite: gdr-subcommands: use xopts for N*Ian Jackson2018-06-17
| | | | | | | | | | | | This stylistic change improves the orthogonality. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: test suite: gdr-subcommands: split off XXIan Jackson2018-06-17
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: test suite: gdr-subcommands: honour new $xoptsIan Jackson2018-06-17
| | | | | | | | | | | | | | This allows the introduction of chaining checkletters which modify subsequent attempts. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: test suite: gdr-subcommands: document XXIan Jackson2018-06-17
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Change exit status for patch amendments, to 7Ian Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: make_patches; Move get_differs into cmd_...Ian Jackson2018-06-16
| | | | | | | | | | | | | | | | | | | | We want to make the error handling dependent on options, etc. Moving the differs analysis into cmd_make_patches avoids having a complex calling convention for make_patches. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | Dgit.pm: Provide failmsg, previously buried in failIan Jackson2018-06-16
| | | | | | | | | | | | | | | | | | Most of `fail' is error message construction. This change allows callers to do something other with the message, than pass it to die. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: test suite: run gdr statusIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Provide status subcommandIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: keycommits: Now $fatal hookIan Jackson2018-06-16
| | | | | | | | | | | | | | | | | | | | This allows a caller to avoid having keycommits crash on unrecognisable stuff. This will be used in a moment. No functional change, because the default implementation calls fail the same way it did before. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: keycommits abolish use of last etc.Ian Jackson2018-06-16
| | | | | | | | | | | | | | | | | | Previously, presumably, this little fragment was within an anonymous sub. Now it isn't any more, and we can simply return. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: keycommits: Pass $cl to callbacksIan Jackson2018-06-16
| | | | | | | | | | | | No overall functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: keycommits: Move up $cl (nfc)Ian Jackson2018-06-16
| | | | | | | | | | | | We are going to want this within the scope of the anon sub $x. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Fix multi-orig handlingIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Fix snaggingIan Jackson2018-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Rename $snags_checked to $snags_summarised and make it a counter of the snags we have summarised in snags_maybe_bail. * Introduce all_snags_summarised, which uses arithmetic to see if we have had new snags since the most recent snags_maybe_bail, * Use this in run_deferred_updates rather than the existing approach; this means we can crash if there were new snags for which we should have bailed. * Make snags_maybe_bail not produce a redundant identical summary. * Initialise counters to 0 so arithmetic does not give undef warnings. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Some notes on anchor parent orderingIan Jackson2018-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the result of some playing around with gitk. Notably, for example, git-branch -f t dgit/stretch-security && ~/things/Dgit/play/swap-pseudomerges -f RELEASE-4.8.0..t where dgit/stretch-security is c9517ee45383271e90f40b7a9773d1e6fefaeca7 and swap-pseudomerges is something like this #!/bin/sh # # runs # git-filter-branch --some-filters "$@" set -e git-filter-branch --parent-filter ' case "$(git cat-file commit $GIT_COMMIT)" in *"git-debrebase new-upstream breakwater"*|*"git-debrebase anchor"*) perl -ne '\'' chomp; print join " ", reverse split / +(?=-p )/; print "\n"; '\'' ;; *) cat esac ' "$@" or .... *"git-debrebase new-upstream breakwater"*|*"git-debrebase anchor"*) .... and then runes like gitk --first-parent dgit/stretch-security & gitk dgit/stretch-security -- ':/' ':!/debian' & etc. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | Commentary: explain why pseudomerges are the way round they areIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | dgit: Bail if single-debian-patch needs committing with --quilt=nofixIan Jackson2018-06-16
| | | | | | | | | | | | Also, if the user invokes dgit push with uncommitted debian/patches/. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | dgit: Break out quiltify_nofix_bail (nfc)Ian Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Change badusage exit status to 8Ian Jackson2018-06-16
| | | | | | | | | | | | This matches dgit. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | exit status: Document in changelog.Ian Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | exit status: Fix dgit-badcommit-fixup to use Debian::Dgit::ExitStatusIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | exit status: Fix git-debrebase to use Debian::Dgit::ExitStatusIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | exit status: Fix dgit to use Debian::Dgit::ExitStatusIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | exit status: Introdude Debian::Dgit::ExitStatusIan Jackson2018-06-16
| | | | | | | | | | | | | | | | | | | | | | No callers yet. Also, no version for dgit-infrastructure. The one perl script in dgit-infrastructure that cares a lot about its exit status (dgit-repos-policy-debian) already has an END { } and uses _exit, which is a bit like our approach here, but simpler. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Implement make-patchesIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: test suite: gdr-subcommands: Add some t-git-next-dateIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Run gbp pq export only from (perhaps private) laundered branchIan Jackson2018-06-16
| | | | | | | | | | | | | | | | | | | | When the branch is stitched, gbp pq will descend into both sides of the pseudomerge. This will duplicate patches and be generally bad. So instead, use walk to generate, privately, a laundered version of HEAD, to use to generate the patches. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Break out make_patches_staged (nfc)Ian Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: conclude, quick: uncleanness after laundry is fatalIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Defend against missing snags_maybe_bail callsIan Jackson2018-06-16
| | | | | | | | | | | | | | | | | | Almost the only thing gdr does as an output is to update HEAD and other refs. That's done with run_deferred_updates. So, there, check that (i) we have called snags_maybe_bail at least once; (ii) we have not had any snags since. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Add a several missing snags_maybe_bail callsIan Jackson2018-06-16
| | | | | | | | | | | | | | That these were missing is a bit alarming. I am about to add some more defences against missing this check. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Fix a message to use "" properlyIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: test suite: gdr-subcommands: Better error handling/debuggingIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Do not mind stitching an unlaundered branchIan Jackson2018-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <Diziet> I discover that stitch treats non-launderedness as a snag. <Diziet> This is not quite compatible with these newfangled push-your-unlaundered-stuff workflows. <Diziet> It would be possible to make one of prepush or stitch (currently synonyms) behave differently in this respect. <spwhitton> do you know why stitch treats non-launderedness as a snag? <spwhitton> given that we expect [most people] to use `git debrebase conclude`, which launders, and never invoke `git debrebase stitch` explicitly, it would be okay to change that such that `git debrebase stitch` does not consider non-launderedness to be a snag. <Diziet> I think it does that just because I am the kind of person who thinks, when writing some routine, "what could I check here?" :-) <Diziet> I think you are perhaps right that it ought not to. <Diziet> "conclude" didn't exist then of course. <spwhitton> okay. git-debrebase(1) could note "you probably want conclude because you probably want to launder" <Diziet> Mmmm. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: do_stitch: Introduce $unclean argumentIan Jackson2018-06-16
| | | | | | | | | | | | Update all call sites. No functional change just yet. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Provide "prepush"Ian Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Provide and test "conclude"Ian Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase(1): Fix to say that noop is always ok for "quick"Ian Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase(1): Very minor clarification to "quick"Ian Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: test suite: New test for subcommandsIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Rename `conclude' to `quick'Ian Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: comment: explain why tagged linear anchors are evilIan Jackson2018-06-16
| | | | | | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Only make finalised changelog entriesIan Jackson2018-06-16
| | | | | | | | | | | | | | | | | | | | Unfortunately, finalised UNRELEASED has become the dominant convention in Debian. So conform to that. Also this breaks a test, which assumed that the operation date did not leak into the output tree. But, sadly, now it does. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* | git-debrebase: Do not run a no-op rebase in default modeIan Jackson2018-06-16
| | | | | | | | | | | | | | No functional change: this is always a no-op, since $breakwater is one of HEAD's ancestors. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>