summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* 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>
* git-debrebase: Handle -i option as a git-rebase optionIan Jackson2018-06-16
| | | | | | Ie, as a request to do a rebase. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Provide conclude subcommandIan Jackson2018-06-16
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: break out do_stitch (nfc)Ian Jackson2018-06-16
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: avoid stack trace from badusage()Ian Jackson2018-06-16
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Improve/fix handling of $proseIan Jackson2018-06-16
| | | | | | | | | Allow specification of the whole prose. Set the default in cmd_stitch. Always include the word `stitch' in the reflog. Also fix a comment typo. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Rename `problem'/`fproblem' to `snag'Ian Jackson2018-06-16
| | | | | | | And add a cross-reference the first time it's mentioned in the manpage. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: introduce ffq_prev_info (nfc)Ian Jackson2018-06-16
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Break out do_launder_head (nfc)Ian Jackson2018-06-16
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: break out stitch() (nfc)Ian Jackson2018-06-16
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: rename $drlast to $gdrlast (nfc)Ian Jackson2018-06-16
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase(1): Further manpage improvementIan Jackson2018-06-16
| | | | | | Prompted by email from Sean. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase(5): We are going to generate patches ourselvesIan Jackson2018-06-16
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase(5): Corrections and clarifications to dgit importIan Jackson2018-06-16
| | | | | | Also untabify those diagrams. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>