chiark / gitweb /
dgit.git
5 years agodgit: checkout: New command.
Ian Jackson [Sun, 1 Jul 2018 11:41:40 +0000 (12:41 +0100)]
dgit: checkout: New command.

Closes:#878443.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: fetch: Introduce new dofetch()
Ian Jackson [Wed, 4 Jul 2018 00:21:43 +0000 (01:21 +0100)]
dgit: fetch: Introduce new dofetch()

This actually does all that is needed.  It replaces two now-identical
calling patterns.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: fetch: Reorganise cmd_fetch
Ian Jackson [Wed, 4 Jul 2018 00:18:25 +0000 (01:18 +0100)]
dgit: fetch: Reorganise cmd_fetch

This slightly odd construction is actually how the return value from
fork_for_multisuite should be handled.  It now looks much more like
the calling pattern in pull().

No functional change: if $multi_fetched is falseish, we call
fetch_one, and then, no matter what, we finish 0.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: fetch: Slightly refactor pull()
Ian Jackson [Wed, 4 Jul 2018 00:16:19 +0000 (01:16 +0100)]
dgit: fetch: Slightly refactor pull()

When for_for_multisuite returns '0', meaning we are a child and should
do one suite, use finish 0 rather than returning, after doing the
fetch.

This has no functional change because the one call site is at the end
of cmd_pull, after which we finish 0 anyway.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: fetch: Rename fetch_one from fetch (nfc)
Ian Jackson [Wed, 4 Jul 2018 00:12:52 +0000 (01:12 +0100)]
dgit: fetch: Rename fetch_one from fetch (nfc)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(1): Document as-yet-unwritten `dgit checkout'
Ian Jackson [Sun, 1 Jul 2018 11:00:07 +0000 (12:00 +0100)]
dgit(1): Document as-yet-unwritten `dgit checkout'

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: update-vcs-git: Honour --package properly.
Ian Jackson [Sun, 1 Jul 2018 11:20:50 +0000 (12:20 +0100)]
dgit: update-vcs-git: Honour --package properly.

Specifically, use package_from_d_control rather than open-coding
a substandard implementation.

The consequent abolition of $sourcep does mean that if the user
specifies the suite `.', and does not specify -p, we needlessly parse
debian/control twice.  This doesn't really matter.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Break out package_from_d_control (nfc)
Ian Jackson [Sun, 1 Jul 2018 11:18:22 +0000 (12:18 +0100)]
dgit: Break out package_from_d_control (nfc)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: start 5.7
Ian Jackson [Sat, 30 Jun 2018 23:43:27 +0000 (00:43 +0100)]
changelog: start 5.7

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: finalise 5.6 archive/debian/5.6 debian/5.6
Ian Jackson [Sat, 30 Jun 2018 23:41:46 +0000 (00:41 +0100)]
changelog: finalise 5.6

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: Document empirical effectiveness of new gnupg workaround
Ian Jackson [Sat, 30 Jun 2018 22:58:56 +0000 (23:58 +0100)]
changelog: Document empirical effectiveness of new gnupg workaround

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: manpages-format: Test -Tps too
Ian Jackson [Thu, 28 Jun 2018 14:53:42 +0000 (15:53 +0100)]
test suite: manpages-format: Test -Tps too

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: manpages-format: work properly when no expected warnings
Ian Jackson [Thu, 28 Jun 2018 14:53:28 +0000 (15:53 +0100)]
test suite: manpages-format: work properly when no expected warnings

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: manpages-format: Remove some pointless redirects
Ian Jackson [Thu, 28 Jun 2018 14:52:42 +0000 (15:52 +0100)]
test suite: manpages-format: Remove some pointless redirects

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: manpages-format: Prep for other formats (nfc)
Ian Jackson [Thu, 28 Jun 2018 14:46:06 +0000 (15:46 +0100)]
test suite: manpages-format: Prep for other formats (nfc)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: manpages-format: New test
Ian Jackson [Thu, 28 Jun 2018 14:31:56 +0000 (15:31 +0100)]
test suite: manpages-format: New test

Test that manpages format with only expected roff warnings.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoMerge remote-tracking branch 'dgit/dgit/experimental'
Ian Jackson [Sat, 30 Jun 2018 21:40:02 +0000 (22:40 +0100)]
Merge remote-tracking branch 'dgit/dgit/experimental'

Conflicts:
debian/changelog

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gpg agent workaround: Fix bugs in log neatening. archive/debian/5.5+exp9 debian/5.5+exp9
Ian Jackson [Sat, 30 Jun 2018 18:03:10 +0000 (19:03 +0100)]
test suite: gpg agent workaround: Fix bugs in log neatening.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gpg agent workaround: Neaten the logging. archive/debian/5.5+exp8 debian/5.5+exp8
Ian Jackson [Sat, 30 Jun 2018 09:21:32 +0000 (10:21 +0100)]
test suite: gpg agent workaround: Neaten the logging.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: Provide DGIT_TEST_BYHAND if appropriate
Ian Jackson [Sat, 30 Jun 2018 09:20:57 +0000 (10:20 +0100)]
test suite: Provide DGIT_TEST_BYHAND if appropriate

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gnupg workaround: Remove a sprurious $tmp
Ian Jackson [Sat, 30 Jun 2018 08:55:26 +0000 (09:55 +0100)]
test suite: gnupg workaround: Remove a sprurious $tmp

This is not set here, which is just as well because it would have been
quite wrong.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gpg-agent workaround: Send ps output to stderr (oops) archive/debian/5.5+exp7 debian/5.5+exp7
Ian Jackson [Fri, 29 Jun 2018 16:05:06 +0000 (17:05 +0100)]
test suite: gpg-agent workaround: Send ps output to stderr (oops)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gpg-agent workaround: Cope if ps not found. archive/debian/5.5+exp6 debian/5.5+exp6
Ian Jackson [Fri, 29 Jun 2018 12:02:36 +0000 (13:02 +0100)]
test suite: gpg-agent workaround: Cope if ps not found.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: finalise 5.5+exp5 archive/debian/5.5+exp5 debian/5.5+exp5
Ian Jackson [Fri, 29 Jun 2018 11:22:36 +0000 (12:22 +0100)]
changelog: finalise 5.5+exp5

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gpg-agent workaround: Kill unexpected leftover agents.
Ian Jackson [Fri, 29 Jun 2018 11:13:59 +0000 (12:13 +0100)]
test suite: gpg-agent workaround: Kill unexpected leftover agents.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gpg-agent workaround: Add more debugging output.
Ian Jackson [Fri, 29 Jun 2018 11:11:56 +0000 (12:11 +0100)]
test suite: gpg-agent workaround: Add more debugging output.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: Add bc to appropriate test Depends. archive/debian/5.5+exp4 debian/5.5+exp4
Ian Jackson [Thu, 28 Jun 2018 23:49:47 +0000 (00:49 +0100)]
test suite: Add bc to appropriate test Depends.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: 5.5+exp3 to placate version checking archive/debian/5.5+exp3 debian/5.5+exp3
Ian Jackson [Thu, 28 Jun 2018 15:31:55 +0000 (16:31 +0100)]
changelog: 5.5+exp3 to placate version checking

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoMerge remote-tracking branch 'dgit/dgit/sid' into experimental archive/debian/5.5+exp2 debian/5.5+exp2
Ian Jackson [Thu, 28 Jun 2018 15:02:23 +0000 (16:02 +0100)]
Merge remote-tracking branch 'dgit/dgit/sid' into experimental

5 years agochangelog: start 5.6
Ian Jackson [Thu, 28 Jun 2018 12:27:06 +0000 (13:27 +0100)]
changelog: start 5.6

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: finalise 5.5 archive/debian/5.5 debian/5.5
Ian Jackson [Thu, 28 Jun 2018 12:25:35 +0000 (13:25 +0100)]
changelog: finalise 5.5

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(1): Fix a wrong reference to \fp, which should be \fP.
Ian Jackson [Thu, 28 Jun 2018 12:20:11 +0000 (13:20 +0100)]
dgit(1): Fix a wrong reference to \fp, which should be \fP.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodebian/control: Add missing comma
Ian Jackson [Thu, 28 Jun 2018 12:19:27 +0000 (13:19 +0100)]
debian/control: Add missing comma

Closes:#902578.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoNew gnupg agent thing
Ian Jackson [Wed, 27 Jun 2018 22:44:15 +0000 (23:44 +0100)]
New gnupg agent thing

before (5.3)

1044.27user 126.77system 6:26.89elapsed 302%CPU (0avgtext+0avgdata 402420maxresident)k
1778718inputs+5123720outputs (2370major+57693524minor)pagefaults 0swaps

after (5.3 + these changes)

1072.81user 131.38system 6:25.02elapsed 312%CPU (0avgtext+0avgdata 402448maxresident)k
1777558inputs+5124952outputs (2370major+59176578minor)pagefaults 0swaps

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoNo-change upload, for testing. archive/debian/5.4+exp1 debian/5.4+exp1
Ian Jackson [Wed, 27 Jun 2018 23:45:01 +0000 (00:45 +0100)]
No-change upload, for testing.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoMerge remote-tracking branch 'dgit/dgit/experimental' into HEAD
Ian Jackson [Wed, 27 Jun 2018 23:44:12 +0000 (00:44 +0100)]
Merge remote-tracking branch 'dgit/dgit/experimental' into HEAD

-s ours

5 years agochangelog: start 5.5
Ian Jackson [Wed, 27 Jun 2018 23:08:03 +0000 (00:08 +0100)]
changelog: start 5.5

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: finalise 5.4 archive/debian/5.4 debian/5.4
Ian Jackson [Wed, 27 Jun 2018 22:13:58 +0000 (23:13 +0100)]
changelog: finalise 5.4

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoNo-change upload, for testing. archive/debian/5.3+exp1 debian/5.3+exp1
Ian Jackson [Wed, 27 Jun 2018 22:11:36 +0000 (23:11 +0100)]
No-change upload, for testing.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gdr-viagit, gdr-newupstream: do not auto-import t-setup-gnupg.
Ian Jackson [Wed, 27 Jun 2018 20:41:38 +0000 (21:41 +0100)]
test suite: gdr-viagit, gdr-newupstream: do not auto-import t-setup-gnupg.

We provide a new mechanism for individual tests to disable the
automatic t-setup-import of gnupg.

We need to add this to all the other setup/ that these import, too.
gdr-convert-gbp is particularly awkward because it wants gnupg if
$ifarchive isn't `:'.  There we arrange to suppress its automatic
inclusion, but add it again by hand if appropriate.

This fixes these two tests in chroots without gnupg.

Closes:#902559.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(1): Better description of --overwrite.
Ian Jackson [Wed, 27 Jun 2018 17:22:35 +0000 (18:22 +0100)]
dgit(1): Better description of --overwrite.

In particular, be clear that --overwrite (without previous-version) is
quite a weak promise: that the version you are uploading contains
everything in your changelog.  It won't overwrite willy-nilly.

Somewhat apropos of discussion in #902534.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: Fix bug ref to #865444 in previous changelog entry.
Ian Jackson [Wed, 27 Jun 2018 13:09:28 +0000 (14:09 +0100)]
changelog: Fix bug ref to #865444 in previous changelog entry.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: start 5.4
Ian Jackson [Wed, 27 Jun 2018 13:03:26 +0000 (14:03 +0100)]
changelog: start 5.4

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: finalise 5.3 archive/debian/5.3 debian/5.3
Ian Jackson [Wed, 27 Jun 2018 13:00:46 +0000 (14:00 +0100)]
changelog: finalise 5.3

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(7): Add discussion of quilt fixup error messages
Ian Jackson [Wed, 27 Jun 2018 12:29:04 +0000 (13:29 +0100)]
dgit(7): Add discussion of quilt fixup error messages

And add cross-references to dgit(1) and the actual error.
Somewhat apropos of #842614.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Better message formatting when --overwrite may be needed
Ian Jackson [Wed, 27 Jun 2018 00:26:49 +0000 (01:26 +0100)]
dgit: Better message formatting when --overwrite may be needed

Closes:891031.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: --overwrite test: Be more tolerant of exact message
Ian Jackson [Wed, 27 Jun 2018 00:25:31 +0000 (01:25 +0100)]
test suite: --overwrite test: Be more tolerant of exact message

We're about to change this, apropos of #891031.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(1): Mention in --overwrite that it is usually needed for first dgit push
Ian Jackson [Wed, 27 Jun 2018 00:06:00 +0000 (01:06 +0100)]
dgit(1): Mention in --overwrite that it is usually needed for first dgit push

This is part of #891031.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: Test ill-advised repeat dgit push after git push fails
Ian Jackson [Tue, 26 Jun 2018 20:55:37 +0000 (21:55 +0100)]
test suite: Test ill-advised repeat dgit push after git push fails

This demonstrates #869146, which is about dgit repeatedly adding the
same .orig to the .changes.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Do not introduce duplicate origs in .changes files
Ian Jackson [Tue, 26 Jun 2018 23:16:29 +0000 (00:16 +0100)]
dgit: Do not introduce duplicate origs in .changes files

The .dsc and .changes matching code contained roughly
   $fieldbody =~ / \Q$item\E\n/m
but this is wrong when the $fieldbody matches $item in its last line,
and there is no trailing newline (as would be usual).  This code
is obviouslu confused because m affects only ^ $ which don't appear
in the regexp.  Change these to / \Q$item\E$/m which is what ought
to have been, and probably was, intended.

In one case we are trying to delete a line.  In that case we need to
remove the leading newline.  The field body always starts with a
newline so the use of \n rather than ^ is fine.

Closes:#869146.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: Test GIT_REFLOG_ACTION setting by git-debrebase
Ian Jackson [Tue, 26 Jun 2018 17:44:55 +0000 (18:44 +0100)]
test suite: Test GIT_REFLOG_ACTION setting by git-debrebase

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agogit-debrebase new-upstream: Provide better reflog entries
Ian Jackson [Tue, 26 Jun 2018 17:43:49 +0000 (18:43 +0100)]
git-debrebase new-upstream: Provide better reflog entries

By setting GIT_REFLOG_ACTION.

Closes:#901925.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoref updates: Break out git_reflog_action_msg
Ian Jackson [Tue, 26 Jun 2018 17:33:45 +0000 (18:33 +0100)]
ref updates: Break out git_reflog_action_msg

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoref updates: Honour GIT_REFLOG_ACTION everywhere.
Ian Jackson [Tue, 26 Jun 2018 17:30:24 +0000 (18:30 +0100)]
ref updates: Honour GIT_REFLOG_ACTION everywhere.

Specifically, every time we call git_update_ref_cmd.

Closes:#901935.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoref updates: Introduce update_ref_cmd
Ian Jackson [Tue, 26 Jun 2018 17:25:13 +0000 (18:25 +0100)]
ref updates: Introduce update_ref_cmd

Currently the comment about `message may be modified' is rather
misleading, since there is no code to do that - but it explains the
semantics of the new function.

We change the appropriate subset of the git update-ref call sites.
These are precisely the ones where we previously specified a message
with -m, except for the quilt cache (where we use the reflog message
as the cache lookup key).

The calls are updates of internal refs etc.

We end up using qw(git) rather than @git.
Otherwise no functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: start 5.3~
Ian Jackson [Sun, 24 Jun 2018 22:37:26 +0000 (23:37 +0100)]
changelog: start 5.3~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: finalise 5.2 archive/debian/5.2 debian/5.2
Ian Jackson [Sun, 24 Jun 2018 22:33:52 +0000 (23:33 +0100)]
changelog: finalise 5.2

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: dgit/gdr interop: test make-patches exiting 7
Ian Jackson [Fri, 22 Jun 2018 16:36:08 +0000 (17:36 +0100)]
test suite: dgit/gdr interop: test make-patches exiting 7

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: lib-gdr: t-some-changes: Honour $2 `dum'
Ian Jackson [Fri, 22 Jun 2018 16:34:50 +0000 (17:34 +0100)]
test suite: lib-gdr: t-some-changes: Honour $2 `dum'

This allows for less thorough but faster test cases.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: git-debrebase interop: Actually tolerate git-debrebase status 7
Ian Jackson [Fri, 22 Jun 2018 15:48:21 +0000 (16:48 +0100)]
dgit: git-debrebase interop: Actually tolerate git-debrebase status 7

make-patches exiting with status 7 causes $?==7*256, not 7.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: git-debrebase interop: Add a missing debugcmd debugging print.
Ian Jackson [Fri, 22 Jun 2018 15:48:05 +0000 (16:48 +0100)]
dgit: git-debrebase interop: Add a missing debugcmd debugging print.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: warn if vcs-git seems out of date
Ian Jackson [Thu, 21 Jun 2018 13:11:10 +0000 (14:11 +0100)]
dgit: warn if vcs-git seems out of date

Print a warning to stderr on `dgit fetch sid', if your vcs-git remote
url disagrees with what's in sid's .dsc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Provide `update-vcs-git' subcommand
Ian Jackson [Thu, 21 Jun 2018 13:05:26 +0000 (14:05 +0100)]
dgit: Provide `update-vcs-git' subcommand

This is for creating and adjusting the vcs-git remote url.  Useful for
transition from alioth to salsa.  Closes:#902006.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit-user(7): Suggest sbuild-debian-developer-setup(1)
Sean Whitton [Thu, 21 Jun 2018 12:27:41 +0000 (13:27 +0100)]
dgit-user(7): Suggest sbuild-debian-developer-setup(1)

This will only create the chroot for building packages for the
machine's architecture, because sbuild-debian-developer-setup(1) does
not have an --architecture option, so sbuild-createchroot(1) will be
needed too, hence the 'and'.

The nice thing about sbuild-debian-developer-setup(1) is that does
fiddly things that a non-expert might forget about, like adding the
current user to the sbuild group.  So it is still worth recommending
even though it does not have an --architecture option.

Closes:#895779.

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
5 years agotest suite: Test that --new --overwrite works properly.
Ian Jackson [Thu, 21 Jun 2018 00:25:42 +0000 (01:25 +0100)]
test suite: Test that --new --overwrite works properly.

Here --overwrite is not needed, so is a no-op.  I chose this test for
no particular reason, out of the results of git-grep -e --new.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(1): Clarify that --overwrite does nothing if not needed.
Ian Jackson [Thu, 21 Jun 2018 00:22:24 +0000 (01:22 +0100)]
dgit(1): Clarify that --overwrite does nothing if not needed.

Closes:#863578.  Related to #863576 too.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: --overwrite now no longer crashes if there is no $archive_hash
Ian Jackson [Thu, 21 Jun 2018 00:20:01 +0000 (01:20 +0100)]
dgit: --overwrite now no longer crashes if there is no $archive_hash

Ie there is nothing to overwrite (eg, when used with --new).  Instead,
it is simply ignored, as it is ignored in situations where the push is
fast forward.

Closes:#863576.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: Use nproc(1) rather than Sys::CPU.
Ian Jackson [Thu, 21 Jun 2018 00:10:38 +0000 (01:10 +0100)]
test suite: Use nproc(1) rather than Sys::CPU.

This is more portable and does not depend on libsys-cpu-perl being
installed.

Closes:888496.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Non-noop git fetch is not available with --dry-run, so fail
Ian Jackson [Thu, 21 Jun 2018 00:00:41 +0000 (01:00 +0100)]
dgit: Non-noop git fetch is not available with --dry-run, so fail

When fetch or push wants git fetch (other than in a situation where it
happes to be a noop) but --dry-run was specified, we would loop with a
false coplaint about git fetch.  False, because we didn't actually run
git fetch so of course it didn't do anything.

Instead, fail with an explanation.  Closes:#871317.

This does not occur, and we do not fail, if git-fetch would be a
no-op.  We can tell when this is the case, because we use
git-ls-remote too.  This leads to one suggestion for a workaround for
the user, which is to do a not --dry-run fetch first.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit, Dgit.pm: Clarify error framing a bit
Ian Jackson [Wed, 20 Jun 2018 23:34:47 +0000 (00:34 +0100)]
dgit, Dgit.pm: Clarify error framing a bit

Add a newline and "error:" before most error messages.  Thius makes
the output clearer, by distinguishing informational output (which
might or might not relate to any error which is occurring) from things
which are definitely wrong.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Improve message for discrepant quilt fixup
Ian Jackson [Wed, 20 Jun 2018 23:34:03 +0000 (00:34 +0100)]
dgit: Improve message for discrepant quilt fixup

When quilt fixup fails because of discrepancies, print a git diff rune
which will show them.  Closes:#865446.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: quiltify_splitbrain: Pass $oldtiptree (o+d/p) too
Ian Jackson [Wed, 20 Jun 2018 23:32:34 +0000 (00:32 +0100)]
dgit: quiltify_splitbrain: Pass $oldtiptree (o+d/p) too

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: test suite: quilt-singlepatch: Test that we can remove everything
Ian Jackson [Wed, 20 Jun 2018 20:45:37 +0000 (21:45 +0100)]
dgit: test suite: quilt-singlepatch: Test that we can remove everything

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: commit_quilty_patch: Handle other file statuses too
Ian Jackson [Wed, 20 Jun 2018 22:47:54 +0000 (23:47 +0100)]
dgit: commit_quilty_patch: Handle other file statuses too

In particular, R can occur if all Debian changes have been removed in
a package with single-debian-patch, in which case we would fail to
commit the patch queue removal.  I don't think dpkg-source will remove
files in other cases, so this is probably the only actually buggy
case.

I don't think the other letters are particularly likely but if they
occur they should be committed too.  I have deliberately excluded U
which should definitely not occur.

Closes:#893263.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit build: Better message when network is offline.
Ian Jackson [Wed, 20 Jun 2018 17:30:50 +0000 (18:30 +0100)]
dgit build: Better message when network is offline.

When build fails because the archive access fails, mention that this
was tried because --since-version was not specified.

Closes:#883340.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(1): Mention under `dgit build' that it uses the network.
Ian Jackson [Wed, 20 Jun 2018 17:29:36 +0000 (18:29 +0100)]
dgit(1): Mention under `dgit build' that it uses the network.

Part of the fix for #883340.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: start 5.2~
Ian Jackson [Wed, 20 Jun 2018 22:51:04 +0000 (23:51 +0100)]
changelog: start 5.2~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: finalise 5.1 archive/debian/5.1 debian/5.1
Ian Jackson [Wed, 20 Jun 2018 22:21:40 +0000 (23:21 +0100)]
changelog: finalise 5.1

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: document changes so far
Ian Jackson [Wed, 20 Jun 2018 15:47:41 +0000 (16:47 +0100)]
changelog: document changes so far

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agogit-debrebase: suppress gbp pq export output
Ian Jackson [Wed, 20 Jun 2018 15:35:20 +0000 (16:35 +0100)]
git-debrebase: suppress gbp pq export output

Except in case of error.  Closes:#901809.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoDgit.pm: Move shell_cmd from dgit
Ian Jackson [Wed, 20 Jun 2018 15:28:00 +0000 (16:28 +0100)]
Dgit.pm: Move shell_cmd from dgit

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: Trigger on indirect dependencies
Ian Jackson [Mon, 18 Jun 2018 11:00:57 +0000 (12:00 +0100)]
test suite: Trigger on indirect dependencies

As discussed on debian-ci.  Bug report to request documentation for
this in the autopkgtest spec is TBD.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agocontrol file: Fix a typo in the git-debrebase description
Ian Jackson [Wed, 20 Jun 2018 13:29:09 +0000 (14:29 +0100)]
control file: Fix a typo in the git-debrebase description

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gitattributes: check that dotfiles work properly too
Ian Jackson [Wed, 20 Jun 2018 13:28:00 +0000 (14:28 +0100)]
test suite: gitattributes: check that dotfiles work properly too

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gitattributes: Test that old macros are updated
Ian Jackson [Wed, 20 Jun 2018 13:13:24 +0000 (14:13 +0100)]
test suite: gitattributes: Test that old macros are updated

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gitattributes: Rename a sums file to the right name
Ian Jackson [Wed, 20 Jun 2018 13:13:13 +0000 (14:13 +0100)]
test suite: gitattributes: Rename a sums file to the right name

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: gitattributes: Defuse working-tree-encoding
Ian Jackson [Wed, 20 Jun 2018 13:10:02 +0000 (14:10 +0100)]
dgit: gitattributes: Defuse working-tree-encoding

* Add -working-tree-encoding to $negate_harmful_gitattrs.

* Add new arrangements for updating an existing dgit-defuse-attrs
  macro definition:
    - is_gitattrs: say whether the macro is up to date
    - setup_gitattrs: update an existing out-of-date macro
    - minor message changes
    - document the new behaviour

One consequence is that we have had to breach the promise about how to
stop future dgit setup-new-tree runs messing with this: it is now
necessary to disapply the macro, rather than redefine it.

Closes:#901900.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: gitattributes: Minor refactoring to prep for adding new squash
Ian Jackson [Wed, 20 Jun 2018 13:08:03 +0000 (14:08 +0100)]
dgit: gitattributes: Minor refactoring to prep for adding new squash

* is_gitattrs_setup: Break out $gitattrs_ourmacro_re
* is_gitattrs_setup: Reorganise very slightly
* is_gitattrs_setup: Add a debug print
* setup_gitattrs: Introduce $new
* setup_gitattrs: Add a blank line

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gitattributes: Do not try to set working-tree-encoding to true
Ian Jackson [Wed, 20 Jun 2018 12:18:19 +0000 (13:18 +0100)]
test suite: gitattributes: Do not try to set working-tree-encoding to true

Part of the fix to #901900.  This suppresses the sort-of-spurious test
failure which occurs because the working-tree-encoding attribute is
discovered and then set to an inappropriate value.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: gitattributes: Test working-tree-encoding suppression
Ian Jackson [Wed, 20 Jun 2018 12:31:36 +0000 (13:31 +0100)]
test suite: gitattributes: Test working-tree-encoding suppression

Put a UTF-8 BOM in the middle of the test files, and some gitattribute
settings for working-tree-encoding.  `ISO-8859-1' produces file
corruption.  `UTF-16' produces an error since it doesn't specify BE or
LE, and the file lacks a BOM at the start.

Part of the fix to #901900.  This introduces the desired test failure.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agogit-debrebase: new-upstream: fix ff check handling of multi-piece upstreams
Ian Jackson [Tue, 19 Jun 2018 16:02:27 +0000 (17:02 +0100)]
git-debrebase: new-upstream: fix ff check handling of multi-piece upstreams

Multi-piece combine commits may have n or n+1 parents, depending on
whether the previous new-upstream invocation was snag-free.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agogit-debrebase manpages: Fix typos and etc.
Ian Jackson [Mon, 18 Jun 2018 00:41:53 +0000 (01:41 +0100)]
git-debrebase manpages: Fix typos and etc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: start 5.1~
Ian Jackson [Sun, 17 Jun 2018 23:34:29 +0000 (00:34 +0100)]
changelog: start 5.1~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: finalise 5.0 archive/debian/5.0 debian/5.0
Ian Jackson [Sun, 17 Jun 2018 22:31:34 +0000 (23:31 +0100)]
changelog: finalise 5.0

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agogit-debrebase: Delete some obsolete NOTES
Ian Jackson [Sun, 17 Jun 2018 22:30:50 +0000 (23:30 +0100)]
git-debrebase: Delete some obsolete NOTES

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: git-debrebase: Rename gdr-newupstream-v0 test
Ian Jackson [Sun, 17 Jun 2018 22:24:22 +0000 (23:24 +0100)]
test suite: git-debrebase: Rename gdr-newupstream-v0 test

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agogit-debrebase: Rename new-upstream-v0 command to new-upstream
Ian Jackson [Sun, 17 Jun 2018 22:22:23 +0000 (23:22 +0100)]
git-debrebase: Rename new-upstream-v0 command to new-upstream

This UI is pretty good now, I think, for single-piece upstreams.

For multi-piece ones, which are quite tricky anyway, it is tolerable,
and we it doesn't steal much of the available syntax space.  So we
don't need the -v0 any more.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(1): Refer to dgit-maint-debrebase
Ian Jackson [Sun, 17 Jun 2018 22:07:29 +0000 (23:07 +0100)]
dgit(1): Refer to dgit-maint-debrebase

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(1): Abbreviate some of the tutorial descriptions
Ian Jackson [Sun, 17 Jun 2018 22:06:30 +0000 (23:06 +0100)]
dgit(1): Abbreviate some of the tutorial descriptions

This will avoid linewrap from `man dgit' in an 80-column terminal,
when we introduce a reference to dgit-maint-debrebase.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoMerge branch 'gdr-manpages' into wip.rebase
Ian Jackson [Sun, 17 Jun 2018 22:02:06 +0000 (23:02 +0100)]
Merge branch 'gdr-manpages' into wip.rebase