chiark / gitweb /
dgit.git
4 years agogit_fetch_us: More debugging (nfc)
Ian Jackson [Sun, 30 Oct 2016 21:58:58 +0000 (21:58 +0000)]
git_fetch_us: More debugging (nfc)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoCope when cloning suite which doesn't receive uploads, like testing.
Ian Jackson [Sun, 30 Oct 2016 21:04:22 +0000 (21:04 +0000)]
Cope when cloning suite which doesn't receive uploads, like testing.

If $lastpush_hash is '', it means that the dgit git server does not
have the suite branch.  That can even happen if the current version in
the suite was a .dsc with a Dgit field, if an in-archive copy moved
the .dsc from whereever it was uploaded.

Do not crash in this situation.  Instead, give the user the Dgit hash
(and maybe pseudomerge it with the user's history - sigh).

There is still a possible problem: maybe the referenced commit is on
another branch.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Mention fix for #842386
Ian Jackson [Sun, 30 Oct 2016 20:16:13 +0000 (20:16 +0000)]
changelog: Mention fix for #842386

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoReject `dgit pull' in split view quilt modes
Ian Jackson [Sun, 30 Oct 2016 20:06:28 +0000 (20:06 +0000)]
Reject `dgit pull' in split view quilt modes

To avoid creating unfortunate wreckage on non-dgit-view
branches.  Closes:#842608.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: gbp-orig: New test (for #841094)
Ian Jackson [Sun, 30 Oct 2016 19:49:31 +0000 (19:49 +0000)]
Test suite: gbp-orig: New test (for #841094)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: t-splitbrain-pushed-good--unpack: Handle new .origs
Ian Jackson [Sun, 30 Oct 2016 19:49:12 +0000 (19:49 +0000)]
Test suite: t-splitbrain-pushed-good--unpack: Handle new .origs

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit gbp-build will arrange to let gbp buildpackage generate .orig tarballs
Ian Jackson [Sun, 30 Oct 2016 19:48:43 +0000 (19:48 +0000)]
dgit gbp-build will arrange to let gbp buildpackage generate .orig tarballs

if it seems applicable.  Closes:#841094.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Introduce build_prep_early
Ian Jackson [Sun, 30 Oct 2016 19:44:43 +0000 (19:44 +0000)]
dgit: Introduce build_prep_early

Currently only one call site which is only ever called once.  We make
it idempotent since we're going to want that.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Introduce upstreamversion
Ian Jackson [Sun, 30 Oct 2016 19:44:36 +0000 (19:44 +0000)]
dgit: Introduce upstreamversion

And many call sites.  No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoSupport dgit --delayed= push
Ian Jackson [Sun, 30 Oct 2016 17:55:55 +0000 (17:55 +0000)]
Support dgit --delayed= push

(with a warning in the manpage about possible skew).

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit clone: Set timestamps in cloned tree to a single unified time.
Ian Jackson [Sun, 30 Oct 2016 16:34:11 +0000 (16:34 +0000)]
dgit clone: Set timestamps in cloned tree to a single unified time.

This makes it less likely that the user will trip over any
timestamp-dependent FTBFS bugs (eg #842452).

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: Test --dgit-view-save everywhere
Ian Jackson [Sun, 30 Oct 2016 16:26:00 +0000 (16:26 +0000)]
Test suite: Test --dgit-view-save everywhere

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoNew option --dgit-view-save= for split view quilt modes.
Ian Jackson [Sun, 30 Oct 2016 16:25:31 +0000 (16:25 +0000)]
New option --dgit-view-save= for split view quilt modes.

In particular, means that the output of a split view quilt-fixup is
left somewhere useful.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: Make t-ref-same* errors better by tracking and printing names
Ian Jackson [Sun, 30 Oct 2016 15:03:39 +0000 (15:03 +0000)]
Test suite: Make t-ref-same* errors better by tracking and printing names

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: Make t-refs-same* not wrongly ignore some nonexistent refs
Ian Jackson [Sun, 30 Oct 2016 14:39:14 +0000 (14:39 +0000)]
Test suite: Make t-refs-same* not wrongly ignore some nonexistent refs

Previously, t_ref_val="" was meant to mean "no refs specified yet" but
could also arise from "ref was specified but did not exist".

Distinguish these two cases, by using t_ref_val="" to mean only the
latter.  "No refs specified yet" is represented as t_ref_val unset.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: inarchivecopy: Fix tag-vs-remote checking
Ian Jackson [Sun, 30 Oct 2016 15:04:07 +0000 (15:04 +0000)]
Test suite: inarchivecopy: Fix tag-vs-remote checking

This was entirely broken, and only works because (a) $vtag^1 does not
exist, and (b) this is erroneously not spotted by t-ref-same-*.

Instead check that the suite branch has the tag (of the package which
has been moved into that suite) as a direct ancestor.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: Provide t-has-parent
Ian Jackson [Sun, 30 Oct 2016 15:03:23 +0000 (15:03 +0000)]
Test suite: Provide t-has-parent

No callers yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: Document args to t-has-ancestor
Ian Jackson [Sun, 30 Oct 2016 15:03:07 +0000 (15:03 +0000)]
Test suite: Document args to t-has-ancestor

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: Explicitly configure user.name and user.email
Ian Jackson [Thu, 27 Oct 2016 19:22:10 +0000 (20:22 +0100)]
Test suite: Explicitly configure user.name and user.email

So that tests work when environment doesn't have
defaults.

Closes:#842279 (I hope).

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport-dsc: Actually print signature warning without --require-valid
Ian Jackson [Tue, 25 Oct 2016 15:42:07 +0000 (16:42 +0100)]
import-dsc: Actually print signature warning without --require-valid

If --require-valid-signature was not set, we would not print the
warning if there was one.  That is quite wrong.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport-dsc: Document --require-valid-signature
Ian Jackson [Sun, 23 Oct 2016 20:16:11 +0000 (21:16 +0100)]
import-dsc: Document --require-valid-signature

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: import-dsc: Test --require-valid-signature
Ian Jackson [Sun, 23 Oct 2016 20:12:12 +0000 (21:12 +0100)]
Test suite: import-dsc: Test --require-valid-signature

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport-dsc: Support --require-valid-signature
Ian Jackson [Sun, 23 Oct 2016 20:12:02 +0000 (21:12 +0100)]
import-dsc: Support --require-valid-signature

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport-dsc: Check the signature
Ian Jackson [Sun, 23 Oct 2016 20:11:37 +0000 (21:11 +0100)]
import-dsc: Check the signature

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport-dsc: Document new ff checks
Ian Jackson [Sun, 23 Oct 2016 19:26:40 +0000 (20:26 +0100)]
import-dsc: Document new ff checks

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: import-dsc: New test
Ian Jackson [Sun, 23 Oct 2016 19:20:24 +0000 (20:20 +0100)]
Test suite: import-dsc: New test

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport-dsc: Introduce ff checking
Ian Jackson [Sun, 23 Oct 2016 19:19:50 +0000 (20:19 +0100)]
import-dsc: Introduce ff checking

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport-dsc: Introduce $newhash (nfc)
Ian Jackson [Sun, 23 Oct 2016 19:19:22 +0000 (20:19 +0100)]
import-dsc: Introduce $newhash (nfc)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport-dsc: Introduce $info (nfc)
Ian Jackson [Sun, 23 Oct 2016 19:18:54 +0000 (20:18 +0100)]
import-dsc: Introduce $info (nfc)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport-dsc: Refuse to update a checked-out branch
Ian Jackson [Sun, 23 Oct 2016 19:16:17 +0000 (20:16 +0100)]
import-dsc: Refuse to update a checked-out branch

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport dsc: Documentation
Ian Jackson [Sun, 23 Oct 2016 18:29:46 +0000 (19:29 +0100)]
import dsc: Documentation

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport dsc: Actually permit --force-import-dsc-with-dgit-field
Ian Jackson [Sun, 23 Oct 2016 18:29:22 +0000 (19:29 +0100)]
import dsc: Actually permit --force-import-dsc-with-dgit-field

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoimport-dsc: New feature
Ian Jackson [Sun, 23 Oct 2016 18:18:03 +0000 (19:18 +0100)]
import-dsc: New feature

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoProperly look for .origs etc. in .., fetching them less often.
Ian Jackson [Sun, 23 Oct 2016 18:17:45 +0000 (19:17 +0100)]
Properly look for .origs etc. in .., fetching them less often.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years ago.dsc and file handling: Add some debugging output
Ian Jackson [Sun, 23 Oct 2016 18:15:30 +0000 (19:15 +0100)]
.dsc and file handling: Add some debugging output

No other change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Break out parse_dscdata.
Ian Jackson [Sun, 23 Oct 2016 18:14:04 +0000 (19:14 +0100)]
dgit: Break out parse_dscdata.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoProvide --force-changes-origs-exactly
Ian Jackson [Sun, 23 Oct 2016 15:57:23 +0000 (16:57 +0100)]
Provide --force-changes-origs-exactly

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: orig-include-exclude: Test orig tarball hash mismatch
Ian Jackson [Sun, 23 Oct 2016 15:33:08 +0000 (16:33 +0100)]
Test suite: orig-include-exclude: Test orig tarball hash mismatch

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: orig-include-exclude-chkquery: New test
Ian Jackson [Sun, 23 Oct 2016 00:40:35 +0000 (01:40 +0100)]
Test suite: orig-include-exclude-chkquery: New test

Check that we make the right file_in_archive ftpmaster API queries.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: lib-orig-include-exclude: Prepare for more reuse
Ian Jackson [Sun, 23 Oct 2016 15:32:12 +0000 (16:32 +0100)]
Test suite: lib-orig-include-exclude: Prepare for more reuse

Support a suite argument to test-push-1 and dgit argument arguments to
test-push-2.  cd back to $tmp at the end.

No overall functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: orig-include-exclude: Move bulk into a lib-*
Ian Jackson [Sun, 23 Oct 2016 00:39:34 +0000 (01:39 +0100)]
Test suite: orig-include-exclude: Move bulk into a lib-*

We're going to want to re-use it as-is.  Well, modulo the introduction
of $test_push_2_hook.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: orig-include-exclude: Refactor: introduce test-push-[12]
Ian Jackson [Sun, 23 Oct 2016 00:00:42 +0000 (01:00 +0100)]
Test suite: orig-include-exclude: Refactor: introduce test-push-[12]

No functional change (diffed two test logs to check).

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: orig-include-exclude: Tests orig auto-inclusion/exclusion
Ian Jackson [Sat, 22 Oct 2016 23:17:16 +0000 (00:17 +0100)]
Test suite: orig-include-exclude: Tests orig auto-inclusion/exclusion

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: t-archive-process-incoming: Process everything
Ian Jackson [Sat, 22 Oct 2016 23:16:01 +0000 (00:16 +0100)]
Test suite: t-archive-process-incoming: Process everything

The previous rune wouldn't process any new .origs.  And in fact there
is no good reason to restrict this.

certainly not right now, because right now we are going to want to
process whatever is in incoming so that the orig-include-exclude test
can easily see what dgit push uploaded.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoAutomatically calculate which .origs are required
Ian Jackson [Sat, 22 Oct 2016 23:09:22 +0000 (00:09 +0100)]
Automatically calculate which .origs are required

* Spot if any of our .origs have different hashes to the archive's
* Update the .changes to have the set of .origs that the archive doesn't

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: Switch by default archive access method to dummycatapi
Ian Jackson [Sat, 22 Oct 2016 23:08:16 +0000 (00:08 +0100)]
Test suite: Switch by default archive access method to dummycatapi

Now dgit can, during the test suite, make file_in_archive queries,
without exploding.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodummyapicat: New archive query method
Ian Jackson [Sat, 22 Oct 2016 23:05:07 +0000 (00:05 +0100)]
dummyapicat: New archive query method

Like ftpmasterapi but knows that actually behind the scenes it's just
mostly cat.  Ths is relevant because file_in_archive_dummycatapi has
to be different.

(This is because the test suite can't sensibly predict what queries
dgit might make, because the relevant bits of the test suite don't
actually really know what .origs might be supposed to exist.)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoSome archive queries: Remove prototypes
Ian Jackson [Sat, 22 Oct 2016 23:03:46 +0000 (00:03 +0100)]
Some archive queries: Remove prototypes

That makes these easier to reuse for another method.  No functional
change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodopush: Break out $changes variable
Ian Jackson [Wed, 19 Oct 2016 23:24:16 +0000 (00:24 +0100)]
dopush: Break out $changes variable

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodopush: Move $upstreamversion setting out to give it wider scope
Ian Jackson [Wed, 19 Oct 2016 23:23:17 +0000 (00:23 +0100)]
dopush: Move $upstreamversion setting out to give it wider scope

No functional change yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years ago@files_csum_info_fields: Provide ftpmaster api database field name
Ian Jackson [Wed, 19 Oct 2016 23:22:09 +0000 (00:22 +0100)]
@files_csum_info_fields: Provide ftpmaster api database field name

No functional change as nothing looks here yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoarchive_query: Provide file_in_archive methods
Ian Jackson [Wed, 19 Oct 2016 23:21:35 +0000 (00:21 +0100)]
archive_query: Provide file_in_archive methods

No functional change as no callers yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoarchive_query: Support further arguments to methods
Ian Jackson [Wed, 19 Oct 2016 23:21:14 +0000 (00:21 +0100)]
archive_query: Support further arguments to methods

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoapi query: Provide ability to tolerate 404
Ian Jackson [Wed, 19 Oct 2016 21:57:09 +0000 (22:57 +0100)]
api query: Provide ability to tolerate 404

This is useful for backward-compatibility with earlier ftpmaster api
versions.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: Test --new in split brain mode
Ian Jackson [Sun, 30 Oct 2016 14:34:57 +0000 (14:34 +0000)]
Test suite: Test --new in split brain mode

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoSplit brain mode: Fix --new. Closes:#842354.
Ian Jackson [Sun, 30 Oct 2016 14:36:04 +0000 (14:36 +0000)]
Split brain mode: Fix --new.  Closes:#842354.

Test $archive_hash for undef early enough.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: start 2.9~
Ian Jackson [Tue, 25 Oct 2016 16:37:22 +0000 (17:37 +0100)]
changelog: start 2.9~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Finalise 2.8 archive/debian/2.8
Ian Jackson [Tue, 25 Oct 2016 16:29:35 +0000 (17:29 +0100)]
changelog: Finalise 2.8

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agobuild modes handling: Check for stray .changes on all split brain build entries
Ian Jackson [Tue, 25 Oct 2016 15:58:37 +0000 (16:58 +0100)]
build modes handling: Check for stray .changes on all split brain build entries

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agobuild changes handling: Break out midbuild_checkchanges
Ian Jackson [Tue, 25 Oct 2016 15:58:12 +0000 (16:58 +0100)]
build changes handling: Break out midbuild_checkchanges

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: build-mode-*: Check that right .changes comes out.
Ian Jackson [Tue, 25 Oct 2016 15:04:19 +0000 (16:04 +0100)]
Test suite: build-mode-*: Check that right .changes comes out.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agobuild changes handling: Run mergechanges when needed in non-sbuild build modes
Ian Jackson [Tue, 25 Oct 2016 15:00:50 +0000 (16:00 +0100)]
build changes handling: Run mergechanges when needed in non-sbuild build modes

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agobuild changes handling: Introduce postbuild_mergechanges
Ian Jackson [Tue, 25 Oct 2016 14:05:44 +0000 (15:05 +0100)]
build changes handling: Introduce postbuild_mergechanges

Affects only the `sbuild' subcommand.

Mostly code motion.

Other changes include:
 * Provide in_parent, and use it.
 * "sbuild" changed to "build" in the msg_if_onlyone failure message
 * Unapply patches before merging changelogs
 * Reorganise so that it is possible to use this code when there
   is only one output changes file.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: bm-*: turn bm-report-source into bm-report-test
Ian Jackson [Tue, 25 Oct 2016 12:44:10 +0000 (13:44 +0100)]
Test suite: bm-*: turn bm-report-source into bm-report-test

No overall functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoabsurd git-apply fallback: defend against debian/patches/series being an unusual...
Ian Jackson [Tue, 25 Oct 2016 12:05:57 +0000 (13:05 +0100)]
absurd git-apply fallback: defend against debian/patches/series being an unusual object, in case dpkg-source doesn't.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Start 2.8~
Ian Jackson [Mon, 24 Oct 2016 01:41:47 +0000 (02:41 +0100)]
changelog: Start 2.8~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Finalise 2.7 archive/debian/2.7
Ian Jackson [Mon, 24 Oct 2016 01:37:48 +0000 (02:37 +0100)]
changelog: Finalise 2.7

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: Provide absurd-gitapply test
Ian Jackson [Mon, 24 Oct 2016 01:04:52 +0000 (02:04 +0100)]
Test suite: Provide absurd-gitapply test

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoImport: Allow --force to enable/disable
Ian Jackson [Mon, 24 Oct 2016 01:02:07 +0000 (02:02 +0100)]
Import: Allow --force to enable/disable

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoIgnore unknown force options (with a warning)
Ian Jackson [Sun, 23 Oct 2016 15:56:20 +0000 (16:56 +0100)]
Ignore unknown force options (with a warning)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoProvide --force-dsc-changes-mismatch
Ian Jackson [Sun, 23 Oct 2016 15:55:41 +0000 (16:55 +0100)]
Provide --force-dsc-changes-mismatch

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoProvide --force-unsupported-source-format
Ian Jackson [Sun, 23 Oct 2016 15:47:29 +0000 (16:47 +0100)]
Provide --force-unsupported-source-format

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoImport: Docuemnt absurdity in changelog
Ian Jackson [Mon, 24 Oct 2016 00:25:51 +0000 (01:25 +0100)]
Import: Docuemnt absurdity in changelog

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoImport: Use absurd `git apply' emulation if gbp pq import fails
Ian Jackson [Mon, 24 Oct 2016 00:06:29 +0000 (01:06 +0100)]
Import: Use absurd `git apply' emulation if gbp pq import fails

gbp import can fail due to git apply not understanding patches.
This is #841867 (against dgit).

The underlying problem is #841866 (in gbp pq) which exposes things
like #841865 and #829067 (in git).  I imagine there are other lurking
incompatibilities between git-apply and dpkg-source.

We could in principle reimplement the gbp patch metadata extraction.
But that would be quite tiresome and have its own compatibility
problems.

The real problem is just `git apply'.  (Indeed gbp already tries git
apply without, and then with, a whitespace fix option.)  We work
around the trouble by providing our own implementation of `git apply'.

Specifically:

We try to do things the sane way (just running gbp pq import) first.
If that works, great.  If it doesn't, we put /usr/share/dgit/absurd on
the PATH.  That contains only a sh script called `git'.  This sh
script figures out whether the caller is trying to invoke `git apply'.
If not, it runs the real git.

If the caller wanted git-apply, the absurd git script emulates it
using dpkg-source --before-build.  Conveniently, we know that the
series file will not be touched by patches.  So we can write just the
patch we care about into the series file, and run --before-build,
which applies just that one patch.

The results are committed (minus the .pc), and for the next patch,
dpkg-source sees again a tree with simply a single patch to apply.

We try ordinary gbp pq first because our absurd approach is very slow
on a big tree.  Also we would like to maximise our chances of the
import working.  If git and/or gbp ever work better by themselves, all
of this craziness will simply not happen.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoBuild system substitutions, for absurdities
Ian Jackson [Mon, 24 Oct 2016 00:04:22 +0000 (01:04 +0100)]
Build system substitutions, for absurdities

* Introduce absurddir, which is where the absurdities will go
* Substitute the absurddir into the dgit script during make all
* Install the substituted scripts rather than the originals in make install
* Provide a default in dgit, based on $0
* Clean the substitutions up in make clean

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoDgit.pm: Break out failedcmd_waitstatus
Ian Jackson [Mon, 24 Oct 2016 00:01:58 +0000 (01:01 +0100)]
Dgit.pm: Break out failedcmd_waitstatus

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoProvide --force-unrepresentable.
Ian Jackson [Sun, 16 Oct 2016 20:02:38 +0000 (21:02 +0100)]
Provide --force-unrepresentable.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: --force-*: Provide framework
Ian Jackson [Sun, 16 Oct 2016 20:02:03 +0000 (21:02 +0100)]
dgit: --force-*: Provide framework

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit(1): Some more info about --deliberately.
Ian Jackson [Sun, 23 Oct 2016 14:41:00 +0000 (15:41 +0100)]
dgit(1): Some more info about --deliberately.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit(1): Reorder the options, moving more important ones earlier.
Ian Jackson [Sun, 23 Oct 2016 14:38:30 +0000 (15:38 +0100)]
dgit(1): Reorder the options, moving more important ones earlier.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: start 2.7~
Ian Jackson [Sun, 23 Oct 2016 14:08:23 +0000 (15:08 +0100)]
changelog: start 2.7~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Finalise 2.6 archive/debian/2.6
Ian Jackson [Sun, 23 Oct 2016 13:57:35 +0000 (14:57 +0100)]
changelog: Finalise 2.6

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: ftpmaster api fetch: Check http error code (!)
Ian Jackson [Wed, 19 Oct 2016 21:55:55 +0000 (22:55 +0100)]
dgit: ftpmaster api fetch: Check http error code (!)

We are going to want to handle 404 specially so do not just use -f.

Handle file:/// specially since curl just always invents 000 for the
http error code in that case.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoDgit.pm: failedcmd_report_cmd: Break out of failedcmd
Ian Jackson [Wed, 19 Oct 2016 21:54:47 +0000 (22:54 +0100)]
Dgit.pm: failedcmd_report_cmd: Break out of failedcmd

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agocurl invocation: archive-api-query subcommand: pass -f to curl
Ian Jackson [Wed, 19 Oct 2016 21:44:28 +0000 (22:44 +0100)]
curl invocation: archive-api-query subcommand: pass -f to curl

This makes it fail properly when it should.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agocurl invocation: Always honour @curl
Ian Jackson [Wed, 19 Oct 2016 21:39:48 +0000 (22:39 +0100)]
curl invocation: Always honour @curl

Use --curl= and --curl: in ftpmaster api queries and in http git
checks.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agocurl invocation: Remove -f from @curl, and add it at the call site
Ian Jackson [Wed, 19 Oct 2016 21:37:34 +0000 (22:37 +0100)]
curl invocation: Remove -f from @curl, and add it at the call site

No significant functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Start 2.6~
Ian Jackson [Sun, 23 Oct 2016 12:29:48 +0000 (13:29 +0100)]
changelog: Start 2.6~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: finalise 2.5 archive/debian/2.5
Ian Jackson [Sun, 23 Oct 2016 12:20:37 +0000 (13:20 +0100)]
changelog: finalise 2.5

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoProvide --gbp and --dpm as aliases for --quilt=gbp and --quilt=dpm.
Ian Jackson [Sun, 23 Oct 2016 12:02:59 +0000 (13:02 +0100)]
Provide --gbp and --dpm as aliases for --quilt=gbp and --quilt=dpm.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Tidy up
Ian Jackson [Sun, 23 Oct 2016 11:58:11 +0000 (12:58 +0100)]
changelog: Tidy up

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agosolit brain: Do not crash in when the two brains are actually identical.
Ian Jackson [Sun, 23 Oct 2016 11:52:19 +0000 (12:52 +0100)]
solit brain: Do not crash in when the two brains are actually identical.

The dgit-view ref is created by quiltify_splitbrain_needed, which is
not always called.  But, quiltify_splitbrain_needed's other function
is to switch branches.  If it was called then HEAD will refer to
dgit-view.  If it wasn't then the original HEAD is fine.

Closes:#841770.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodefault config: Switch to new archive/ tag format
Ian Jackson [Sat, 22 Oct 2016 10:16:36 +0000 (11:16 +0100)]
default config: Switch to new archive/ tag format

Even in non-split-brain mode.
Also change the test suite to expect this.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: overwrite junk: Use $tagpfx where applicable
Ian Jackson [Sat, 22 Oct 2016 16:55:34 +0000 (17:55 +0100)]
Test suite: overwrite junk: Use $tagpfx where applicable

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: Introduce setup/gnupg
Ian Jackson [Sat, 22 Oct 2016 15:17:44 +0000 (16:17 +0100)]
Test suite: Introduce setup/gnupg

To work around #841143 and improve performance by amortising gnupg
migration cost.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: Propagate tmpbase into nested (setup) runs
Ian Jackson [Sat, 22 Oct 2016 18:44:02 +0000 (19:44 +0100)]
Test suite: Propagate tmpbase into nested (setup) runs

This stops t-setup-import wrongly deciding we are in ADT non-shared
mode.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoTest suite: setup import: Cope with nested and multiple imports
Ian Jackson [Sat, 22 Oct 2016 18:02:03 +0000 (19:02 +0100)]
Test suite: setup import: Cope with nested and multiple imports

Name the IMPORT file after the setup name.

This is important when running under autopkgtest, where all the setups
share the tmp directory with each other and with the main test.  The
setups need distinct IMPORTS.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit-maint-merge(7): Add paragraph split
Ian Jackson [Fri, 21 Oct 2016 22:07:11 +0000 (23:07 +0100)]
dgit-maint-merge(7): Add paragraph split

Suggested-by: Sean Whitton <spwhitton@spwhitton.name>
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit-maint-merge(7): Move remarks on upstream orig
Sean Whitton [Thu, 20 Oct 2016 02:52:18 +0000 (19:52 -0700)]
dgit-maint-merge(7): Move remarks on upstream orig

See discussion in #840153.

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
4 years agodgit-maint-merge(7): Tweak wording
Sean Whitton [Thu, 20 Oct 2016 02:51:58 +0000 (19:51 -0700)]
dgit-maint-merge(7): Tweak wording

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>