summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* git-debrebase: Split into its own packageIan Jackson2018-06-17
| | | | | | | | | | | | | | | | | | | | | | | | | | * Provide and use Debian::Dgit::GDR which does the same for @INC as Debian::Dgit:Infra, only for GDR. It's not *entirely* similar as its doc comment talks about ExitStatus too. * In Makefile, split off lots of GDR_* variables and the two targets install-gdr and installdirs-gdr We take no care that only the required manpages are built for each install target; instead, they all go in MANPAGES and `all'. * Add a control file stanza. git-debrebase takes over the dependenc on libfile-fnmatch-perl. We Recommend dgit and gbp. (Even though if you're working with neither the Debian archive nor `3.0 (quilt)', you need neither.) * In rules, add specpkg_install_gdr, to run the Makefile machinery. * In the test dependencies, GDR now means to ask for git-debrebase and also git-buildpackage (for make-patches). libfile-fnmatch-perl is handled via the dependencies of git-debrebase.deb. * Add a .gitignore for the staging area in debian/ Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: git-debrebase: Use gdr-convert-gbp-noarchiveIan Jackson2018-06-17
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-convert-gbp-noarchive: new setup kindIan Jackson2018-06-17
| | | | | | | | | | | Introduce $ifnoarchive in gdr-convert-gbp, which allows us to run it without any of the operations which touch the simulated archive. This is faster. Also in the future after we split the packages this will make it possible to run this new setup without having dgit or the archive management tools installed. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Get perl -I for source tree rightIan Jackson2018-06-17
| | | | | | | | We wanted the Dgit.pm in the source tree (ie, the test suite's). Previously this would work by accident, because Dgit.pm would be installed in /usr. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: t-setup-done: get $import right setup using t-chain-testIan Jackson2018-06-17
| | | | | | | We need to honour DGIT_TEST_NAME, rather than just using $0, in that case. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: divergence checking: Do not mind if a ref we are checking ↵Ian Jackson2018-06-17
| | | | | | does not exist Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: git-debrebase: provide GDR "macro" for dependenciesIan Jackson2018-06-17
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: enumerate-tests: Refactor dependencies, support NO-DEFAULTIan Jackson2018-06-17
| | | | | | | | This will allow more flexibility in a moment. No users of NO-DEFAULT yet, and no functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* debian/rules: Refactor dgit-infrastructure perl arrangementsIan Jackson2018-06-17
| | | | | | We are going to want to do this for another package too. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Document gdr, and bump to 5.0~Ian Jackson2018-06-17
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* documentation: Discuss gdr make-patches vs dgit quilt-fixup, etc.Ian Jackson2018-06-17
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Use git-deborig style upstream commitish findingIan Jackson2018-06-17
| | | | | | | | | As discussed in email with Sean. We could use git-deborig --just-print --version= but its error handling is rather troublesome. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Add some plans for future, in a commentIan Jackson2018-06-17
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-edits: Rely on dgit interop, and test that it DTRTIan Jackson2018-06-17
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: test suite: t-gdr-good: Introduce etypes, a sequenceIan Jackson2018-06-17
| | | | | | | | | | Rather than having the next type recorded in netype, record it in etypes. This is more orthogonal, and will allow more subtle specifications of what is expected. No functional change for now. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* 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>