summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* test suite: run-all: Honour DGIT_TESTS_TMPDIRIan Jackson2018-08-26
| | | | | | | | | | | If this variable is set, tests/tmp will be made a symlink to a real subdirectory under $DGIT_TESTS_TMPDIR. The real subdirectory will be removed and recreated as tests/tmp would otherwise be. I set it to /run/user/`id -u`/dgit-tests-tmp Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: run-all: Without --progressive, rm and recreate tests/tmpIan Jackson2018-08-26
| | | | | | | | | This arranges to rerun tests/setup/ scripts, which wouldn't otherwise happen; that is IMO a bug. While we are here, introduce $tmpdir. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Work if $tmp is on a different filesystem.Ian Jackson2018-08-26
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-makepatches7: use t-make-origIan Jackson2018-08-26
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-fresh: use t-make-origIan Jackson2018-08-26
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: t-make-orig: Pass -1 to gzipIan Jackson2018-08-26
| | | | | | This makes everything faster. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: lib-gdr: Factor out t-make-origIan Jackson2018-08-26
| | | | | | NFC, overall. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-debrebase(7): Add runes for inspecting historyIan Jackson2018-08-26
| | | | | | | | | I'm not sure if this is the right place but I wanted to publish this information sooner rather than later. Closes: #907190. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-new-upstream: Test updating existing clog entryIan Jackson2018-08-26
| | | | | | This is the test case for #905888. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Use debchange for new-upstream changelog entryIan Jackson2018-08-26
| | | | | | Closes: #905888. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Update date to one with nontrivial DST in Europe/LondonIan Jackson2018-08-26
| | | | | | This may make more things fail for me if they have timezone bugs. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: debchange: Work around faketime TZ bugIan Jackson2018-08-26
| | | | | | | | | faketime's CLI does not permit correct unparsing of times in arbitrary timezones. So we must save and restore TZ. See #907264. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: debchange: Freeze timeIan Jackson2018-08-26
| | | | | | | Use faketime's advanced format. Otherwise if debchange takes too long, the timestamp generated by debchange is not what we expected. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: dch: Always use tstunt/debchangeIan Jackson2018-08-26
| | | | | | | | | | | | | | We are going to make this more sophisticated, so use it everywhere to avoid duplication. We need to soup up tstunt/debchange so that it does not depend on DGIT_TEST_REAL_DEBCHANGE. If it hasn't been put on the PATH by t-tstunt, that isn't set, and we can just run debchange from PATH. This makes faketime a test dependency for all the tests which don't have NO-DEFAULT. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-new-upstream: Break out clog-check-[12]Ian Jackson2018-08-26
| | | | | | NFC Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-new-upstream: Use new branch rather than resetIan Jackson2018-08-26
| | | | | | | | | This makes it slightly easier to see what's going on, and to extend the test. No overall functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-newupstream: Add more dividersIan Jackson2018-08-26
| | | | | | NFC Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Prepare for calling debchangeIan Jackson2018-08-26
| | | | | | | * Add it to the .deb dependencies * Add tstunt/debchange to the gdr tests Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Provide tstunt/debchangeIan Jackson2018-08-26
| | | | | | | | This uses faketime to get the date right, like t-dch does. It has to be requested with t-tstunt debchange, which nothing does yet, so NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-new-upstream: Check changelog is exactly rightIan Jackson2018-08-26
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: gdr-merge-conflicts: Call git merge --no-editIan Jackson2018-08-26
| | | | | | The default seems different in my sid chroot. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: test-list-uptodate: Drop imports and dependenciesIan Jackson2018-08-26
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-fresh: Drop use of git-deborig and fix dependenciesIan Jackson2018-08-26
| | | | | | | | | | | | | | | | | | | | b765388a4cea "test suite: Test dgit calling git-debrebase on new debianisation" failed to update the test dependencies, and does not work in a formal autopkgtest run because dgit is not installed. Additionally, Because scripts in devscripts have their own individual dependencies, and the dependencies for git-deborig differ between stretch and sid, It is not reasonably possible to write a dependency which allows git-deborig to work. This is another reason why this test does not work in a formal run (this time, failing only on sid/buster). So, drop use of git-deborig, and the resulting dependency on devscripts. (dgit and git-debrebase pull in devscripts anyway, so that is academic.) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase(5): Document new understanding of debrebase-lastIan Jackson2018-08-25
| | | | | | | | | | | Bug #907208 shows that the previous statement wasn't true. debrebase-last is still marginally useful: we use it for deciding what hints to print in some error messages; detecting and rejecting attempts to convert already-converted branches; and in `git-debrebase status'. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: branch_is_gdr: Add a cautionary commentIan Jackson2018-08-25
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Test dgit calling git-debrebase on new debianisationIan Jackson2018-08-25
| | | | | | | | | | | | | | | Now all the cases in dgit's branch_is_gdr history walker are tested: DGIT_TEST_DEBUG=-DD tests/using-intree tests/run-all cat tests/tmp/*.log |perl -ne 'next unless s/^branch_is_gdr \w+ //; print' |sort -u |less Produces the same list as: git-grep 'branch_is_gdr ' | perl -pe 's/^^dgit:\s+//' |sort |less (With the list of gdr commit annotations the same as in the source.) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebse: merge handling: Handle absence of patches via $anyIan Jackson2018-08-25
| | | | | | | This saves testing for $seriesfile existence and makes the code slightly less tangled. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: make-patches: Handle case when there are no patchesIan Jackson2018-08-25
| | | | | | Previously, we would bomb out. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: keycommits: Fix doc commentIan Jackson2018-08-25
| | | | | | There's no $dgitimport; that's $trouble. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: convert-to-gbp: Handle no-patches case betterIan Jackson2018-08-25
| | | | | | In this case it's very like git-debrebase forget-was-debrebase. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: convert-to-gbp: Actually start from breakwaterIan Jackson2018-08-25
| | | | | | | Contrary to the documentation, this operation would start from HEAD. It should rewind to the breakwater. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: make_patches_staged: Return flag, are there any patches?Ian Jackson2018-08-25
| | | | | | All callers currently ignore the return value, so NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: gbp_pq_export: Return flag, are there any patches?Ian Jackson2018-08-25
| | | | | | All callers currently ignore the return value, so NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: branch_is_gdr: Put gdr commit annotations in alphabetical orderIan Jackson2018-08-25
| | | | | | This makes it slightly easier to see our test coverage. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Separate t-gdr-gbp-import-core from -with-queueIan Jackson2018-08-25
| | | | | | NFC Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Test dgit branch_is_gdr walker on a merge resolutionIan Jackson2018-08-25
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Test dgit detection of fresh branch for gdr make-patchesIan Jackson2018-08-25
| | | | | | This tests that #907208 is fixed. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-diverge-nmu-dgit: Insist on gdr-generated patchesIan Jackson2018-08-25
| | | | | | | | | Now dgit runs git-debrebase make-patches, with the result that the patch commit in this conflict will be made by gdr. This is what we want, so now that we have it, insist on it. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Honour DGIT_TEST_RUN_PFX env varIan Jackson2018-08-25
| | | | | | | | | One might set this to `eatmydata', for example. (It's not a good idea to wrap run-all or the Makefile in eatmydata, because you actually want the stamp files etc. at least.) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Replace branch_is_gdr with a history walkerIan Jackson2018-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The debrebase-last approach is fundamentally wrong, because, for example, cloning a stitched laundered gdr branch from a git server does not establish debrebase-last, so dgit would make patches itself (slowly). So, instead, use git-debrebase make-patches in situations where it will succeed. We could just run it but that's slower, and it is a bit awkward because we have to consider whether gdr is installed. So provide our own implementation. It can be simpler because it only has to handle the easy cases; On testing of the new algorithm: we want to be confident that this doesn't misfire; otherwise dgit users could be inconvenienced. And we want it to work for gdr users of course. We can analyse the test coverage of the logic in branch_is_gdr by running the whole test suite and then comparing this: cat tests/tmp/*.log |perl -ne 'next unless s/^branch_is_gdr \w+ //; print' |sort -u |less with this: git-grep 'branch_is_gdr ' | perl -pe 's/^^dgit:\s+//' |sort |less Noting that we should ideally have one each of all the gdr kinds we try to recognise. Currently that shows that we are missing only: gdr merged-breakwater unmarked BreakwaterStart YES Closes: #907208. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-diverge-nmu-dgit: Tolerate gdr-generated patchesIan Jackson2018-08-25
| | | | | | | | | | We are about to extend the set of situations where dgit runs git-debrebase make-patches, with the result that the patch commit in this conflict will be made by gdr. This is good, so allow it. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Introduce get_tree_of_commitIan Jackson2018-08-25
| | | | | | NFC Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Do not abandon quilt fixup at gdr split commitsIan Jackson2018-08-25
| | | | | | One of these might well be in the delta queue somehow. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Make all commit annotations have a COMMIT-TYPEIan Jackson2018-08-25
| | | | | | | | Omitting this sometimes turns out to have a mistake. We are going to want to distinguish at least split from other commits. Add a COMMIT-TYPE to the others as future-proofing. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: lib-gdr: Check that we made patches with gdrIan Jackson2018-08-24
| | | | | | | | | | | Conveniently, the places where we don't want this, and are deliberately looking for dgit-self-made patches, are gdr-makepatches7 and mix-it in gdr-subcommands; there, we don't push, so don't end up checking t-gdr-made-patches. We also add this check to the appropriate place in gdr-subcommands. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test-suite: lib-gdr: Be more defensive about unexpected states/argsIan Jackson2018-08-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase(5): Warn against renaming branch while unstitchedIan Jackson2018-08-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Do not try split brain gdr make-patchesIan Jackson2018-08-24
| | | | | | | | Print a helpful error message instead. Closes: #906908. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: test suite: gdr-subcommands: test forgetIan Jackson2018-08-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: forget-was-ever-debrebase: New subcommandIan Jackson2018-08-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>