chiark / gitweb /
dgit.git
5 years agodgit: unpack_playtree_need_cd_work: Make idempotent
Ian Jackson [Sun, 26 May 2019 11:31:11 +0000 (12:31 +0100)]
dgit: unpack_playtree_need_cd_work: Make idempotent

This won't be able to recover from a truly-messed-up "work" but this
is good enough not to have to explicitly arrange for each place that
uses it to know whether it has been done already.

Checking in the filesystem is OK because mktree_in_ud_here calls
playtree_setup which expects the playground to have been set up
already - ie, all our callers have called prep_ud already.
Add a comment about this requirement.

No overall functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: rename unpack_playtree_mk_cd_work (from _mkwork)
Ian Jackson [Sun, 26 May 2019 10:26:07 +0000 (11:26 +0100)]
dgit: rename unpack_playtree_mk_cd_work (from _mkwork)

This makes the effect on cwd less confusing.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: quilt fixup: Move split brain branch creation out a bit
Ian Jackson [Mon, 20 May 2019 22:52:00 +0000 (23:52 +0100)]
dgit: quilt fixup: Move split brain branch creation out a bit

Move the playtree git branch, and the setting $split_brain from
quiltify_splitbrain (inside quilt_fixup_multipatch, conditional on
quiltmode_splitbrain) to quilt_fixup_multipatch.

This is still not quite right - it needs to be further out, because it
should affect quilt_fixup_singlepatch too.  Right now singlepatch DTWT
in split brain mode.

No functional change for now, anyway.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: dopush pseudomerge, break apart from quilt fixup
Ian Jackson [Tue, 21 May 2019 12:39:44 +0000 (13:39 +0100)]
dgit: dopush pseudomerge, break apart from quilt fixup

In the future, we are going to have split brain in situations without
any quilt fixup.  We will use $do_split_brain for this.

In that situation, do the splitbrain pseudomerge too.

No actual functional change yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Separate out build_check_quilt_splitbrain
Ian Jackson [Mon, 20 May 2019 22:02:25 +0000 (23:02 +0100)]
dgit: Separate out build_check_quilt_splitbrain

The only effect of this is to move the tag format check from before
the main work of build_maybe_quilt_fixup to later, and to not check it
at all for `dgit quilt-fixup'.

We don't really care about this any more; this tag format stuff is
obsolete and we will delete it at some point...

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Move quiltify_splitbrain_needed into its one call site
Ian Jackson [Mon, 20 May 2019 20:55:06 +0000 (21:55 +0100)]
dgit: Move quiltify_splitbrain_needed into its one call site

I think $split_brain is always 0 on entry.  It is this
quiltify_splitbrain which used to calculate whether actually splitting
brain was needed based on the quilt mode and the state of the tree.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: split brain reorg: Always _needed in split brain quilt modss
Ian Jackson [Mon, 20 May 2019 20:43:41 +0000 (21:43 +0100)]
dgit: split brain reorg: Always _needed in split brain quilt modss

The only differences are:

1. Call quiltify_splitbrain_needed earlier.  This is of no
consequence.

2. Call it even dpm mode when .gitignore was not edited.  This is
actually somewhat more correct.  In dpm mode we are very likely later
going to need split brain to keep the pseudomerge of the dgit view
off the maintainer branch.

And in fact that is what will happen because dopush fetches the quilt
view from the cache and that sets $split_brain unconditionally.  With
the current code structure dgit's quilt fixup imagines that it can do
a quilt fixup for dpm mode without split brain, when the .gitignore is
not edited.  But actually what is happening is that this is an empty
tree fixup, and the history inclusion *will* be done split brain, but
later.

So overall this change will have no actual overall effect.  But it is
a move towards helping untangle the quilt mode from split brain.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Drop "dgit view: changes are required..." message
Ian Jackson [Mon, 20 May 2019 20:53:05 +0000 (21:53 +0100)]
dgit: Drop "dgit view: changes are required..." message

We are going to stop caring whether any changes are required, so we
will no longer have this information to report.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: rpush-quilt: New test to check rpush with splitting buster
Ian Jackson [Fri, 28 Jun 2019 11:34:33 +0000 (12:34 +0100)]
test suite: rpush-quilt: New test to check rpush with splitting

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: rpush: Work in splitting quilt modes, again
Ian Jackson [Fri, 28 Jun 2019 11:32:18 +0000 (12:32 +0100)]
dgit: rpush: Work in splitting quilt modes, again

The failure case is missing the obviously-necessary check that the
protocol version is, indeed, insufficient!

This was broken in
  045ec681a42fd823280cdec86a177309ddd741f0
  Split tags: Genrate maintainer-view tag too
which was first uploaded as part of dgit 2.0.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: start 8.6
Ian Jackson [Sun, 26 May 2019 23:24:20 +0000 (00:24 +0100)]
changelog: start 8.6

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: finalise 8.5 archive/debian/8.5 debian/8.5
Ian Jackson [Sun, 26 May 2019 23:21:23 +0000 (00:21 +0100)]
changelog: finalise 8.5

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: Document the 8.5 bugfix.
Ian Jackson [Sun, 26 May 2019 22:38:48 +0000 (23:38 +0100)]
changelog: Document the 8.5 bugfix.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoReplace `confess $!' with `confess "$!"', to actually print errno
Ian Jackson [Sun, 26 May 2019 09:50:23 +0000 (10:50 +0100)]
Replace `confess $!' with `confess "$!"', to actually print errno

  $ perl -e 'use Carp; open X, ">/dev/eacces" or die $!'
  Permission denied at -e line 1.
  $ perl -e 'use Carp; open X, ">/dev/eacces" or confess $!'
   at -e line 1.
  $ perl -e 'use Carp; open X, ">/dev/eacces" or confess "$!"'
  Permission denied at -e line 1.
  $

confess will get references to its arguments in @_.  Its documentation
says it saves/restores $!.  I conjecture that these interact as we see
here:
  $ perl -e '$!=1; sub x { print ">@_<\n"; }  x $!;'
  >Operation not permitted<
  $ perl -e '$!=1; sub x { local $!; print ">@_<\n"; }  x $!;'
  ><

Quoting "$!" averts the reference (and it will also ensure that we
get the string value of $!, in case confess were to do anything in the
future which would mess that up).

This commit was made like this:

  perl -i -pe 's/confess \$!/confess "\$!"/g' dgit
  perl -i -pe 's/confess \$!/confess "\$!"/g' git-debrebase
  perl -i -pe 's/confess \$!/confess "\$!"/g' Debian/Dgit.pm

I have manually reviewed each hunk and it all looks good to me.

Closes: #929549
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: start 8.5~
Ian Jackson [Fri, 1 Mar 2019 22:53:07 +0000 (22:53 +0000)]
changelog: start 8.5~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: finalise 8.4 archive/debian/8.4 debian/8.4
Ian Jackson [Fri, 1 Mar 2019 21:53:48 +0000 (21:53 +0000)]
changelog: finalise 8.4

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoi18n-commit - autogenerated
Ian Jackson [Fri, 1 Mar 2019 21:54:07 +0000 (21:54 +0000)]
i18n-commit - autogenerated

5 years agochangelog: Reformat and clarify etc.
Ian Jackson [Fri, 1 Mar 2019 21:24:29 +0000 (21:24 +0000)]
changelog: Reformat and clarify etc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: More from gbp-dch
Ian Jackson [Fri, 1 Mar 2019 20:49:02 +0000 (20:49 +0000)]
changelog: More from gbp-dch

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agogit-debrebase: convert-*: Fix two broken error messages
Ian Jackson [Fri, 1 Mar 2019 18:36:50 +0000 (18:36 +0000)]
git-debrebase: convert-*: Fix two broken error messages

If you failed to specify the upstream version, some of the messages
would still attempt to report what you specified, causing a crash.

Closes: #922462
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agogit-debrebase: resolve_upstream_version: Return $used too
Ian Jackson [Fri, 1 Mar 2019 18:19:06 +0000 (18:19 +0000)]
git-debrebase: resolve_upstream_version: Return $used too

Update both callers but right now they just throw the information
away.  So no overall functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Do not misrecognise some initial packaging as gdr-processable
Ian Jackson [Fri, 1 Mar 2019 18:01:18 +0000 (18:01 +0000)]
dgit: Do not misrecognise some initial packaging as gdr-processable

git-debrebase expects a breakwater start commit to not make any
changes to upstream files.  This means that sometimes dgit would fail
to make this check, and expect gdr to be able to make patches; but
then gdr would reject the branch.

It is still of course possible for dgit to ask gdr to make patches for
branches that the user does not *intend* to be handled by gdr, but
that is OK so long as gdr will DTRT.

Closes: #922446
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoi18n: nl: unfuzz the translations again
Ian Jackson [Fri, 1 Mar 2019 17:02:28 +0000 (17:02 +0000)]
i18n: nl: unfuzz the translations again

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoi18n-commit - autogenerated
Ian Jackson [Fri, 1 Mar 2019 16:59:14 +0000 (16:59 +0000)]
i18n-commit - autogenerated

5 years agodgit.1: Write the leading dash of an option as '\-'
Bjarni Ingi Gislason [Fri, 1 Mar 2019 16:55:34 +0000 (16:55 +0000)]
dgit.1: Write the leading dash of an option as '\-'

Closes: #921965
5 years agochangelog: document translation
Ian Jackson [Fri, 1 Mar 2019 16:30:59 +0000 (16:30 +0000)]
changelog: document translation

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoMerge branch 'wip.i18n-nl' into master
Ian Jackson [Fri, 1 Mar 2019 20:33:37 +0000 (20:33 +0000)]
Merge branch 'wip.i18n-nl' into master

Conflicts:
po/nl.po

5 years agodgit: New relative path handling: debugging output
Ian Jackson [Fri, 1 Mar 2019 17:42:55 +0000 (17:42 +0000)]
dgit: New relative path handling: debugging output

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: changes on master so far
Ian Jackson [Fri, 1 Mar 2019 15:33:27 +0000 (15:33 +0000)]
changelog: changes on master so far

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Fix another tiny typo in an error message
Ian Jackson [Thu, 31 Jan 2019 18:52:42 +0000 (18:52 +0000)]
dgit: Fix another tiny typo in an error message

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoi18n: unfuzz some of the Dutch translations
Ian Jackson [Thu, 31 Jan 2019 18:47:29 +0000 (18:47 +0000)]
i18n: unfuzz some of the Dutch translations

I can't do these all, but I can do these.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: Document typo fixes.
Ian Jackson [Thu, 31 Jan 2019 18:35:56 +0000 (18:35 +0000)]
changelog: Document typo fixes.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodocumentation style: Two hunks of my personal preference
Ian Jackson [Fri, 11 Jan 2019 21:45:11 +0000 (21:45 +0000)]
documentation style: Two hunks of my personal preference

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodocumentation style: Do not put "" around C<..>
Ian Jackson [Fri, 11 Jan 2019 21:46:17 +0000 (21:46 +0000)]
documentation style: Do not put "" around C<..>

In the default text manpage rendering, C produces a pair of quotes and
the result is   ""..""   which is not desirable.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodocumentation style: "branch" may be another kind ref
Ian Jackson [Fri, 11 Jan 2019 21:42:21 +0000 (21:42 +0000)]
documentation style: "branch" may be another kind ref

The thing being referred to here is `branch', not `the branch', since
it may not be a branch.  Put it in italics to make it clear that what
is referred to is the metasyntactic variable.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodocumentation style: No "if ... ; consequence".
Ian Jackson [Fri, 11 Jan 2019 21:41:32 +0000 (21:41 +0000)]
documentation style: No "if ... ; consequence".

I think the parts of an if and its consequence may not be separated by
a semicolon.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodocumentation style: there is no "the restricted command"
Ian Jackson [Fri, 11 Jan 2019 21:37:22 +0000 (21:37 +0000)]
documentation style: there is no "the restricted command"

I see "ssh restricted command" as a feature.  There is no command
provided; alternatively one could argue that the user is to provide a
script, which they will configure as the restricted command, in which
case "to make writing the ssh restricted command
script|implementation" or something, but that seems wordy.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodocumentation style: "appropriate configuration" as a mass noun
Ian Jackson [Fri, 11 Jan 2019 21:37:13 +0000 (21:37 +0000)]
documentation style: "appropriate configuration" as a mass noun

This is correct IMO.  dput has, of course, multiple configuration
files, and one might use a wrapper or something, or perhaps (unisely)
dgit command line options.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodocumentation: typo suggestions from Paul Hardy
Paul Hardy [Thu, 10 Jan 2019 06:35:39 +0000 (22:35 -0800)]
documentation: typo suggestions from Paul Hardy

Signed-off-by: Paul Hardy <unifoundry@gmail.com>
5 years agodgit: import-dsc: New test for abs/rel dsc component links
Ian Jackson [Sun, 13 Jan 2019 18:36:18 +0000 (18:36 +0000)]
dgit: import-dsc: New test for abs/rel dsc component links

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: import-dsc: Handle relative symlinks correctly
Ian Jackson [Sun, 13 Jan 2019 18:35:53 +0000 (18:35 +0000)]
dgit: import-dsc: Handle relative symlinks correctly

The logic here was correct only with bpd = `..'.

Closes: #913259
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
squash!! dgit: import-dsc: Handle relative symlinks correctly

5 years agoi18n: nl: updated Dutch po file
Frans Spiesschaert [Fri, 1 Mar 2019 15:40:55 +0000 (15:40 +0000)]
i18n: nl: updated Dutch po file

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: cmd_import_dsc: comment on lack of is_orig_file check
Ian Jackson [Sun, 13 Jan 2019 18:35:18 +0000 (18:35 +0000)]
dgit: cmd_import_dsc: comment on lack of is_orig_file check

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoi18n: nl.po: Remove a spurious space
Ian Jackson [Sun, 13 Jan 2019 18:36:00 +0000 (18:36 +0000)]
i18n: nl.po: Remove a spurious space

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: start 6.4~
Ian Jackson [Mon, 7 Jan 2019 00:18:15 +0000 (00:18 +0000)]
changelog: start 6.4~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: finalise 8.3 archive/debian/8.3 debian/8.3
Ian Jackson [Mon, 7 Jan 2019 00:14:23 +0000 (00:14 +0000)]
changelog: finalise 8.3

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: preparing 8.3
Ian Jackson [Mon, 7 Jan 2019 00:10:42 +0000 (00:10 +0000)]
changelog: preparing 8.3

gbp dch and significant manual editing.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: Mention manually that we close #917194.
Ian Jackson [Sun, 6 Jan 2019 17:55:42 +0000 (17:55 +0000)]
changelog: Mention manually that we close #917194.

We'll dedupe the entry when we tidy up after running gbp-dch.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoi18n-commit - autogenerated
Ian Jackson [Sun, 6 Jan 2019 17:50:48 +0000 (17:50 +0000)]
i18n-commit - autogenerated

5 years agoi18n: Dutch message translations
Frans Spiesschaert [Sun, 6 Jan 2019 17:48:18 +0000 (17:48 +0000)]
i18n: Dutch message translations

dgit: [INTL:nl] Dutch po file for the dgit package

Signed-off-by: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>
5 years agoi18n: Unfuzz the dgit-user(7).nl manpage
Ian Jackson [Sun, 6 Jan 2019 17:45:52 +0000 (17:45 +0000)]
i18n: Unfuzz the dgit-user(7).nl manpage

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit-user(7): Fix formatting error in comment about multi-arch
Ian Jackson [Sun, 6 Jan 2019 17:44:20 +0000 (17:44 +0000)]
dgit-user(7): Fix formatting error in comment about multi-arch

These lines should not be indented.  That makes them format oddly.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoi18n: dgit-user_7.nl.po
Frans Spiesschaert [Sun, 6 Jan 2019 17:42:03 +0000 (17:42 +0000)]
i18n: dgit-user_7.nl.po

dgit: [INTL:nl] Dutch po file for the dgit-user_7 manpage

[ file copied into right place and po4a.cfg updated -iwj ]

Closes: #918253
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoi18n: Fix pairwise-pocheck
Ian Jackson [Sun, 6 Jan 2019 17:46:38 +0000 (17:46 +0000)]
i18n: Fix pairwise-pocheck

The condition to spot only bare < did not work.  Fix it.
Tcl does not have look-behind assertions, so use . and
a look-ahead assertion.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: When reporting no such package, say `source package'
Ian Jackson [Sun, 6 Jan 2019 16:58:16 +0000 (16:58 +0000)]
dgit: When reporting no such package, say `source package'

This may help a bit pending a fuller fix to #844206/#870496.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: dotdot_bpd_transfer_origs: Change if to early return
Ian Jackson [Sun, 6 Jan 2019 16:41:48 +0000 (16:41 +0000)]
dgit: dotdot_bpd_transfer_origs: Change if to early return

This drops an indentation level.  No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: Test that we can copy an orig from bpd
Ian Jackson [Sun, 6 Jan 2019 16:40:14 +0000 (16:40 +0000)]
test suite: Test that we can copy an orig from bpd

Manually move just the .orig from the bpd to `..'.  Then check that
when we are done they are (links to) the same file.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Transfer origs from .. to bpd when fetching
Ian Jackson [Sun, 6 Jan 2019 16:35:08 +0000 (16:35 +0000)]
dgit: Transfer origs from .. to bpd when fetching

This is the second half of #904878.

When fetching we want to avoid downloading once again origs that are
already in `..', but not in bpd.  So call the facility we now have for
making clones of things from `..' to bpd.

`..' might contain various junk.  We try to treat it with a bit of
suspicion.  In particular, when we have a dsc we know exactly which
orig files we are looking for.

So only try to link those.  We don't do this transfer for debian
tarballs or diffs, or for origs that would be related according to
their filenames, but aren't in the dsc.

This maximises the probability that fetch will succeed even if there
is garbage in the `..'.  (Garbage in the `..' will sometimes
unavoidably cause source builds to fail, because when doing a source
build we don't know what origs to expect.)

Closes: #904878
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Transfer origs from .. to bpd when building
Ian Jackson [Sun, 6 Jan 2019 16:30:13 +0000 (16:30 +0000)]
dgit: Transfer origs from .. to bpd when building

This is apropos of #904878.

When building we need to consider anything in .. that would
be (accordingg to its filename) a possible orig for the package we are
building, since we do not know what origs there are supposed to be,
and missing ones generate unhelpful error messages.

We `copy' things from .. to bpd, rather than just trying to use them
directly from .., because otherwise lots of other things won't work
right.  For example, we might generate .dsc's in the bpd which expect
the files alongside, but without the files.

But we don't actually copy any files.  We prefer to:
 * If the thing in .. is a symlink, copy the link text, adjusting
   it into an absolute link.
 * If the thing in .. is a file, try to hardlink it, or failing
   that make a symlink to it.

The result is that we never duplicate the file contents, but still,
where possible, we prefer to make the thing in bpd stand alone so that
if the `copy' in .. is deleted everything is still fine.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Provide dotdot_bpd_transfer_origs for using origs from ..
Ian Jackson [Sun, 6 Jan 2019 16:27:35 +0000 (16:27 +0000)]
dgit: Provide dotdot_bpd_transfer_origs for using origs from ..

No callers yet so no functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Remove foolish use of $b in quilt_fixup_multipatch
Ian Jackson [Sun, 6 Jan 2019 16:25:06 +0000 (16:25 +0000)]
dgit: Remove foolish use of $b in quilt_fixup_multipatch

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Remove foolish uses of $b in unpack_playtree_linkorigs etc.
Ian Jackson [Sun, 6 Jan 2019 16:24:09 +0000 (16:24 +0000)]
dgit: Remove foolish uses of $b in unpack_playtree_linkorigs etc.

Evidently I had forgotten that $b is weird in Perl and should not by
used for things other than sorting.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: generate_commits_from_dsc: Move up $upstreamv
Ian Jackson [Sun, 6 Jan 2019 16:13:42 +0000 (16:13 +0000)]
dgit: generate_commits_from_dsc: Move up $upstreamv

We will want this in a moment.  No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: generate_commits_from_dsc: Factor out $bpd_abs
Ian Jackson [Sun, 6 Jan 2019 16:04:42 +0000 (16:04 +0000)]
dgit: generate_commits_from_dsc: Factor out $bpd_abs

And add a newline.

We will want this in a moment.  No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: Test --clean-git[-ff],always
Ian Jackson [Sun, 6 Jan 2019 13:35:56 +0000 (13:35 +0000)]
test suite: Test --clean-git[-ff],always

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Document new --clean=git behaviours
Ian Jackson [Sun, 6 Jan 2019 12:15:53 +0000 (12:15 +0000)]
dgit: Document new --clean=git behaviours

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: clean: Provide -wg[f]a short aliases
Ian Jackson [Sun, 6 Jan 2019 12:01:18 +0000 (12:01 +0000)]
dgit: clean: Provide -wg[f]a short aliases

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: clean: Provide new --git[-ff],always clean mode
Ian Jackson [Sun, 6 Jan 2019 12:54:16 +0000 (12:54 +0000)]
dgit: clean: Provide new --git[-ff],always clean mode

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: cleaning: Improve handling of note about ignores
Ian Jackson [Sun, 6 Jan 2019 11:36:52 +0000 (11:36 +0000)]
dgit: cleaning: Improve handling of note about ignores

* Provide a new $ignmessage parameter to clean_tree_check_git and use
  that.  This makes it a bit easier to:

* Only print the additional message if the clean mode actually
  honoured ignores.  If it didn't then the problem is not `due
  to missing .gitignore entries' because they would not have helped.

* Change all callers other than clean_tree_check_git_wd to
  pass the empty string, so no other overall functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: clean: Do check the tree even when building in playtree
Ian Jackson [Sun, 6 Jan 2019 02:15:31 +0000 (02:15 +0000)]
dgit: clean: Do check the tree even when building in playtree

If we might be doing quilt fixup, then the quilt fixup's attempt to
merge back into master might fail if there are uncommitted
debian/patches.  So it is sometimes wrong to just not clean at all.

We don't want the behaviour to depend on the source package format,
and ideally not on the clean mode.

Also, the user may have forgotten to `git add', in which case they
will thank us for spotting their mistake.

In the original design table in
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=910705#56
says this for this case
/: disregarded
   would be fine to delete but
   ** better to trip ? **
** want opt to disregard **
but this was not implemented at the time.

So implement that now.

I think I have concluded that with -wg and -wgf the right way to turn
these new failures into successes is to have a way to have the clean
actually done.  If that is not wanted, one can say -wn instead.

This is particularly true given that ignoring the problem can produce
confusing failure, as seen in #914317.

So there will be a new --clean=git[-ff],always shortly.

Closes: #914317
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: exmaplegit: Do not leave the tree dirty
Ian Jackson [Sun, 6 Jan 2019 13:26:10 +0000 (13:26 +0000)]
test suite: exmaplegit: Do not leave the tree dirty

This test setup facility passed a dirty working tree to all of its
consumers.  That was not really intended or useful, and is about to
start causing trouble.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: clean mode: Refactor -wg parsing to prep for suffixes
Ian Jackson [Sun, 6 Jan 2019 12:00:08 +0000 (12:00 +0000)]
dgit: clean mode: Refactor -wg parsing to prep for suffixes

This will make it convenient to add new suffix letter(s) to -wg.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: clean: Prepare cleanmode_re for suffixes on git and git-ff
Ian Jackson [Sun, 6 Jan 2019 11:58:10 +0000 (11:58 +0000)]
dgit: clean: Prepare cleanmode_re for suffixes on git and git-ff

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: clean: Change matcbing of git to regexps
Ian Jackson [Sun, 6 Jan 2019 11:15:13 +0000 (11:15 +0000)]
dgit: clean: Change matcbing of git to regexps

We are going to have some ,... suffixes on this, so we need more
general matching.

No functional change with the current set of clean modes.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(1): Fix a formatting typo
Ian Jackson [Sun, 6 Jan 2019 01:44:43 +0000 (01:44 +0000)]
dgit(1): Fix a formatting typo

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoDgit.pm: Allow uppercase (ascii) letters in multi-orig components
Ian Jackson [Sun, 6 Jan 2019 00:39:29 +0000 (00:39 +0000)]
Dgit.pm: Allow uppercase (ascii) letters in multi-orig components

We didn't recognise files like
   firefox-esr_60.4.0esr.orig-l10n-sv-SE.tar.bz2
as orig files.  As a result, dgit would see all the things in the
corresponding subdirectory as having been added in Debian changes,
leading it making inaccurate complaints and bombing out.

See also #918438 against policy, where I (effectively) argue that this
is a design error in the `3.0 (quilt)' format.

Closes: #916926
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit-repos-policy-debian: Remove duplicated text from force message
Ian Jackson [Sat, 5 Jan 2019 23:27:01 +0000 (23:27 +0000)]
dgit-repos-policy-debian: Remove duplicated text from force message

$ovwhy is from SELECT deliberately ... WHERE ... OR deliberately = ?
where ? is a key in %deliberately which came from the command line
where it already contains --deliberately=.

Closes: #913676
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Check that the build-products-dir is accessible
Ian Jackson [Sat, 5 Jan 2019 21:17:30 +0000 (21:17 +0000)]
dgit: Check that the build-products-dir is accessible

In fetch/clone, and build.  Others are less likely to be an irritating
problem.

Closes: #913648.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: clone: Create destination directory before using network
Ian Jackson [Sat, 5 Jan 2019 21:15:49 +0000 (21:15 +0000)]
dgit: clone: Create destination directory before using network

We are going to want to check the bpd (apropos of #913648), which
might be a relative path.  We should fail quickly in this case.

No significant functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit-maint-debrebase(7): handle DFSG-filtering for a new package
Sean Whitton [Tue, 1 Jan 2019 18:51:51 +0000 (18:51 +0000)]
dgit-maint-debrebase(7): handle DFSG-filtering for a new package

Closes: #915973
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
5 years agodgit: Pass --no-source-only-changes to pbuilder and cowbuilder
Ian Jackson [Sat, 5 Jan 2019 20:28:27 +0000 (20:28 +0000)]
dgit: Pass --no-source-only-changes to pbuilder and cowbuilder

This will break with older versions of pbuilder and cowbuilder,
unfortunately.  That breakage can be worked around by passing dgit one
or both of the new options:
  --pbuilder!:--no-source-only-changes
  --cowbuilder!:--no-source-only-changes

Closes: #904862.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: Provide --program!:option
Ian Jackson [Sat, 5 Jan 2019 20:27:06 +0000 (20:27 +0000)]
dgit: Provide --program!:option

Apropos of #904862.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: pretend-pbuilder: Reject unknown options
Ian Jackson [Sat, 5 Jan 2019 20:03:08 +0000 (20:03 +0000)]
test suite: pretend-pbuilder: Reject unknown options

The failure to do this was simply a bug.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(1): Fix reference to -wdn/-wddn in a message.
Ian Jackson [Wed, 28 Nov 2018 18:16:47 +0000 (18:16 +0000)]
dgit(1): Fix reference to -wdn/-wddn in a message.

It's not -wdu/-wddu.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit(1): Fix documentation of .quilt-mode config
Ian Jackson [Tue, 20 Nov 2018 22:03:48 +0000 (22:03 +0000)]
dgit(1): Fix documentation of .quilt-mode config

In
  0457c2d771ef6fe6c0883344add9dd4da0c60917
  dgit: Honour new .clean-mode-newer access config option
this was accidentally deleted.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agopo/README: Fix reference to dgit-user_7.pot
Ian Jackson [Mon, 12 Nov 2018 18:13:00 +0000 (18:13 +0000)]
po/README: Fix reference to dgit-user_7.pot

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: start 8.2~
Ian Jackson [Thu, 8 Nov 2018 02:11:50 +0000 (02:11 +0000)]
changelog: start 8.2~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: fianlise 8.1 archive/debian/8.1 debian/8.1
Ian Jackson [Thu, 8 Nov 2018 02:08:56 +0000 (02:08 +0000)]
changelog: fianlise 8.1

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit-maint-debrebase(7): Minor corrections to #903377 wording
Ian Jackson [Thu, 8 Nov 2018 00:47:09 +0000 (00:47 +0000)]
dgit-maint-debrebase(7): Minor corrections to #903377 wording

Do not suggest trying without --overwrite first, since if you were
going to pass it anyway you may as well do so right away.

And mention that git-debrebase will normally prompt you to say
dgit --overwrite.

Closes: #903377
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit-maint-debrebase(7): account for case discussed in #903377
Sean Whitton [Sat, 27 Oct 2018 20:40:26 +0000 (13:40 -0700)]
dgit-maint-debrebase(7): account for case discussed in #903377

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
5 years agogit-debrebase: Provide convert-from-unapplied aa alias for -gbp
Ian Jackson [Thu, 8 Nov 2018 00:39:37 +0000 (00:39 +0000)]
git-debrebase: Provide convert-from-unapplied aa alias for -gbp

Closes: #905433.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agogit-debrebase: Document scope of convert-from-gbp
Ian Jackson [Thu, 8 Nov 2018 00:38:22 +0000 (00:38 +0000)]
git-debrebase: Document scope of convert-from-gbp

In fact this works with any kind of patches-unapplied (or patchless)
package.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agogit-debrebase: usage message: Mention only convert-from-*
Ian Jackson [Thu, 8 Nov 2018 00:35:03 +0000 (00:35 +0000)]
git-debrebase: usage message: Mention only convert-from-*

There is convert-from-dgit-view which was not mentioned, and we're
going to make another one in a moment.  We don't want to list the
whole lot here.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agopo4a: pairwise-pocheck: Better handling for missing tcl
Ian Jackson [Thu, 8 Nov 2018 00:19:39 +0000 (00:19 +0000)]
po4a: pairwise-pocheck: Better handling for missing tcl

Mention in the README, and add a specific error check.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoNOTES.podchecker: Document why I'm not using podchecker
Ian Jackson [Wed, 7 Nov 2018 23:07:30 +0000 (23:07 +0000)]
NOTES.podchecker: Document why I'm not using podchecker

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: manpages-format: pass --warnings
Ian Jackson [Wed, 7 Nov 2018 22:56:44 +0000 (22:56 +0000)]
test suite: manpages-format: pass --warnings

Suggested-by: Colin Watson <cjwatson@chiark.greenend.org.uk>
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: Run everything with LC_CTYPE=C.UTF-8
Ian Jackson [Wed, 7 Nov 2018 22:55:32 +0000 (22:55 +0000)]
test suite: Run everything with LC_CTYPE=C.UTF-8

Things are not likely to work otherwise.

(If someone wants to try to run dgit in another ctype then I think
things will mostly work...)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agopo4a: Add -LUTF-8 to the config
Ian Jackson [Wed, 7 Nov 2018 22:34:12 +0000 (22:34 +0000)]
po4a: Add -LUTF-8 to the config

Apparently this is not the default.

Suggested-by: Colin Watson <cjwatson@chiark.greenend.org.uk>
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agopo4a: pairwise-pocheck: Force it to be run sometimes
Ian Jackson [Wed, 7 Nov 2018 22:33:22 +0000 (22:33 +0000)]
po4a: pairwise-pocheck: Force it to be run sometimes

 * when building a binary package
 * when preparing a translation preview

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agopo4a: pairwise-pocheck: Provide make targets to invoke it explicitly
Ian Jackson [Wed, 7 Nov 2018 22:33:06 +0000 (22:33 +0000)]
po4a: pairwise-pocheck: Provide make targets to invoke it explicitly

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>