chiark / gitweb /
dgit.git
5 years agogit-debrebase: WIP before reorgs?
Ian Jackson [Sat, 28 Jan 2017 08:57:08 +0000 (08:57 +0000)]
git-debrebase: WIP before reorgs?

5 years agogit-debrebase: Stub script to prove config handling works
Ian Jackson [Wed, 25 Jan 2017 21:25:11 +0000 (21:25 +0000)]
git-debrebase: Stub script to prove config handling works

Tested with
  PATH=$PWD:$PATH git -c wombat.foo.bar=23 -c wombat.foo.bar=37 debrebase

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoDgit: provide $ffq_refprefix, for git-debrebase
Ian Jackson [Thu, 15 Feb 2018 13:54:03 +0000 (13:54 +0000)]
Dgit: provide $ffq_refprefix, for git-debrebase

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoDgit: provide $git_null_obj
Ian Jackson [Thu, 15 Feb 2018 13:53:53 +0000 (13:53 +0000)]
Dgit: provide $git_null_obj

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agodgit: In quilt_fixup_multipatch, work around git checkout paths
Ian Jackson [Sat, 10 Feb 2018 14:14:03 +0000 (14:14 +0000)]
dgit: In quilt_fixup_multipatch, work around git checkout paths

git checkout paths does not delete files.
This is a hypothetical bug AFAIAA.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoDgit.pm: When checking that the tree is clean, check the git index too.
Ian Jackson [Thu, 15 Feb 2018 18:49:17 +0000 (18:49 +0000)]
Dgit.pm: When checking that the tree is clean, check the git index too.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoDgit.pm: break out git_check_unmodified from dgit
Ian Jackson [Thu, 15 Feb 2018 18:45:17 +0000 (18:45 +0000)]
Dgit.pm: break out git_check_unmodified from dgit

We (have to) use just "git" rather than @git, but this is OK I think.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoDgit.pm, dgit: Break $extra_orig_namepart_re out into Dgit.pm.
Ian Jackson [Mon, 22 Jan 2018 17:09:50 +0000 (17:09 +0000)]
Dgit.pm, dgit: Break $extra_orig_namepart_re out into Dgit.pm.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoDgit.pm: "confess" when we die due to a warning, rather than symply dieing.
Ian Jackson [Sun, 22 Oct 2017 19:26:55 +0000 (20:26 +0100)]
Dgit.pm: "confess" when we die due to a warning, rather than symply dieing.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoDgit.pm: Break out git_get_symref
Ian Jackson [Fri, 25 Aug 2017 19:57:41 +0000 (20:57 +0100)]
Dgit.pm: Break out git_get_symref

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoDgit.pm: git_cat_file: Introduce $etype parameter
Ian Jackson [Sun, 9 Jul 2017 13:12:47 +0000 (14:12 +0100)]
Dgit.pm: git_cat_file: Introduce $etype parameter

No functional change for existing callers.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoDgit.pm: Move $playground global to dgit.
Ian Jackson [Thu, 24 Aug 2017 14:41:49 +0000 (15:41 +0100)]
Dgit.pm: Move $playground global to dgit.

It makes the interface to the playground functions confusing.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agochangelog: start 4.5~
Ian Jackson [Mon, 23 Apr 2018 12:28:39 +0000 (13:28 +0100)]
changelog: start 4.5~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agofinalise 4.4 archive/debian/4.4 debian/4.4
Ian Jackson [Mon, 23 Apr 2018 12:19:11 +0000 (13:19 +0100)]
finalise 4.4

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agotest suite: bugfix: Use full key hash rather than short keyid.
Ian Jackson [Mon, 23 Apr 2018 12:06:37 +0000 (13:06 +0100)]
test suite: bugfix: Use full key hash rather than short keyid.

Closes:#896653.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: start 4.4
Ian Jackson [Thu, 25 Jan 2018 00:41:11 +0000 (00:41 +0000)]
changelog: start 4.4

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: finalise 4.3 archive/debian/4.3 debian/4.3
Ian Jackson [Thu, 25 Jan 2018 00:34:08 +0000 (00:34 +0000)]
changelog: finalise 4.3

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: mention #887850 fix
Ian Jackson [Wed, 24 Jan 2018 23:49:44 +0000 (23:49 +0000)]
changelog: mention #887850 fix

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit-maint-merge(7): debian/source/patch-header not in format 1.0
Sean Whitton [Sat, 20 Jan 2018 16:32:56 +0000 (09:32 -0700)]
dgit-maint-merge(7): debian/source/patch-header not in format 1.0

Suggested-by: Matthew Vernon <matthew@debian.org>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
6 years agochangelog: mention #884646
Ian Jackson [Wed, 24 Jan 2018 23:47:12 +0000 (23:47 +0000)]
changelog: mention #884646

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit(7): Discuss git-unrepresentable properties of source trees.
Ian Jackson [Wed, 24 Jan 2018 23:46:33 +0000 (23:46 +0000)]
dgit(7): Discuss git-unrepresentable properties of source trees.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit(7): Discuss file executability.
Ian Jackson [Wed, 24 Jan 2018 23:45:57 +0000 (23:45 +0000)]
dgit(7): Discuss file executability.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: archive-api-query: Avoid crashing due to lack of $isuite
Ian Jackson [Sun, 7 Jan 2018 23:10:04 +0000 (23:10 +0000)]
dgit: archive-api-query: Avoid crashing due to lack of $isuite

Otherwise:

  Use of uninitialized value $isuite in concatenation (.) or string at dgit line 705.

This breaks the infrastructure.  Closes:#886592.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: start 4.3
Ian Jackson [Sun, 7 Jan 2018 21:53:31 +0000 (21:53 +0000)]
changelog: start 4.3

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: finalise 4.2 archive/debian/4.2 debian/4.2
Ian Jackson [Sun, 7 Jan 2018 21:49:55 +0000 (21:49 +0000)]
changelog: finalise 4.2

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: Set distribution to unstable
Sean Whitton [Sun, 31 Dec 2017 21:07:48 +0000 (21:07 +0000)]
changelog: Set distribution to unstable

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
6 years agochangelog: Document using dpkg-source to build source packages
Sean Whitton [Thu, 7 Dec 2017 18:04:04 +0000 (11:04 -0700)]
changelog: Document using dpkg-source to build source packages

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: Entry for push-source subcommand
Sean Whitton [Mon, 13 Feb 2017 14:14:26 +0000 (07:14 -0700)]
changelog: Entry for push-source subcommand

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: push-source: new tests
Sean Whitton [Sat, 4 Feb 2017 22:36:15 +0000 (15:36 -0700)]
test suite: push-source: new tests

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: Add library function t-push-was-source-only
Sean Whitton [Sun, 12 Feb 2017 23:55:21 +0000 (16:55 -0700)]
test suite: Add library function t-push-was-source-only

No functional change.

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agoUpdate some copyright info
Sean Whitton [Fri, 4 Aug 2017 13:47:16 +0000 (09:47 -0400)]
Update some copyright info

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit(1): Entry for build-source recommends using push-source
Sean Whitton [Sat, 30 Dec 2017 11:07:42 +0000 (11:07 +0000)]
dgit(1): Entry for build-source recommends using push-source

If the user invokes build-source because they are going to upload,
they should use push-source rather than push to benefit from the
additional safety check that the upload is actually source-only.

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit(1): Note that push-source doesn't need --rm-old-changes
Sean Whitton [Fri, 4 Aug 2017 14:52:50 +0000 (10:52 -0400)]
dgit(1): Note that push-source doesn't need --rm-old-changes

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: New command: push-source
Sean Whitton [Sat, 4 Feb 2017 23:30:13 +0000 (16:30 -0700)]
dgit: New command: push-source

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: Implement test_source_only_changes
Sean Whitton [Sat, 4 Feb 2017 22:52:48 +0000 (15:52 -0700)]
dgit: Implement test_source_only_changes

No functional change.

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: build_source bypasses dpkg-buildpackage
Sean Whitton [Fri, 4 Aug 2017 14:03:44 +0000 (10:03 -0400)]
dgit: build_source bypasses dpkg-buildpackage

This is to avoid the inclusion of .buildinfo in the .changes.  Quoting
<https://lists.debian.org/debian-dpkg/2017/06/msg00005.html>:

    A .buildinfo file is not useful for a source-only upload which is
    veried to be identical to the intended source as present in the
    uploader's version control (eg, by the use of dgit).

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agoquilt-gbp test: Set DGIT_TEST_TOLERATE_UNPATCHED_CLEAN
Sean Whitton [Sat, 30 Dec 2017 11:02:01 +0000 (11:02 +0000)]
quilt-gbp test: Set DGIT_TEST_TOLERATE_UNPATCHED_CLEAN

In quilt-gbp we want to test whether dgit detects that quilt fixups
cannot be linear because the user has failed to pass an appropriate
quilt option in a patches-unapplied tree.

build_source() cleans before applying patches, and the package's clean
target might error out because patches are not applied.  This prevents
dgit from attempting quilt linearisation and thus determining that the
tree might be patches-unapplied.  So set an environment variable
telling the package's clean target not to do that.

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agoexample_1.0 worktree: Accept DGIT_TEST_TOLERATE_UNPATCHED_CLEAN
Sean Whitton [Sat, 30 Dec 2017 10:52:36 +0000 (10:52 +0000)]
example_1.0 worktree: Accept DGIT_TEST_TOLERATE_UNPATCHED_CLEAN

The clean target in the quilt-tip-2 branch in the example_1.0 worktree
errors out if patches are not applied.  With this change, if
DGIT_TEST_TOLERATE_UNPATCHED_CLEAN is set to "true", it will not error
out in this case.

No users, so no functional change.

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit-maint-merge(7): Fix pod syntax
Ian Jackson [Sun, 7 Jan 2018 12:20:02 +0000 (12:20 +0000)]
dgit-maint-merge(7): Fix pod syntax

This was broken in
  b405f072572fd2e4e2acaa94562b697bc639b86d
  dgit-maint-merge(7): Include instructions to clone existing repo

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: lib: t-git-fsck: put dgit-test-fsck.errs in git dir
Ian Jackson [Fri, 5 Jan 2018 23:15:51 +0000 (23:15 +0000)]
test suite: lib: t-git-fsck: put dgit-test-fsck.errs in git dir

This needs to not be in the working tree; it causes trouble there.

This was broken in 090071ae8e31c8f81283af477c1114835ed8fd02
"test suite: Tolerate worktrees when trying to git-fsck"

Reported-by: Sean Whitton <spwhitton@spwhitton.name>
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: t-git-fsck: Introduce fsckerrs variable
Ian Jackson [Fri, 5 Jan 2018 23:11:38 +0000 (23:11 +0000)]
test suite: t-git-fsck: Introduce fsckerrs variable

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: gnupg: Do not fail if we have no tty when we fail
Ian Jackson [Sun, 7 Jan 2018 16:38:24 +0000 (16:38 +0000)]
test suite: gnupg: Do not fail if we have no tty when we fail

Tolerate failure of the error log reporting arrangement.  That way the
retry loop is effective even if we don't have a tty.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: gnupg: Fix sleep length in apt-get gpg --import case
Ian Jackson [Sun, 7 Jan 2018 16:37:40 +0000 (16:37 +0000)]
test suite: gnupg: Fix sleep length in apt-get gpg --import case

This was supposed to sleep for 5 seconds _instead_.  This is a
kind-of-expected error and it's best to carry on a bit quicker.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: Document gnupg workarounds
Ian Jackson [Sun, 7 Jan 2018 16:06:07 +0000 (16:06 +0000)]
changelog: Document gnupg workarounds

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: In ad-hoc runs, honour DGIT_TEST_RETRY_COUNT
Ian Jackson [Sun, 7 Jan 2018 15:50:36 +0000 (15:50 +0000)]
test suite: In ad-hoc runs, honour DGIT_TEST_RETRY_COUNT

This lets us retry each failed test.

This is beneficial because the gnupg race is sort-of independent.
When we want to test every commit, the success probability before
is
  ( 1 - P(gnupg causes test fail))        ) ^ (number of tests)
for each commit.  With this change it's
  ( 1 - P(gnupg causes test fail)^retries ) ^ (number of tests)
which is much much better.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: gnupg: Do not count as "trouble" a 0-byte input file failure
Ian Jackson [Sun, 7 Jan 2018 14:34:20 +0000 (14:34 +0000)]
test suite: gnupg: Do not count as "trouble" a 0-byte input file failure

apt-key seems to feed gpg --import an empty pipe.  This makes gpg exit
with status 2.  We think this is trouble, but it isn't.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: gnupg: Save stdin on apt-key's import invocations
Ian Jackson [Sun, 7 Jan 2018 14:34:08 +0000 (14:34 +0000)]
test suite: gnupg: Save stdin on apt-key's import invocations

Recognise these with an ad-hoc pattern on the command line arguments.
When they occur, save stdin to a temporary file.

We can't do this generally, because stdin might be some thing that
gpg's caller doesn't expect gpg to eat.

When we do this saving, print the size in bytes of the input file.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: gnupg: Run with a lock held
Ian Jackson [Sun, 7 Jan 2018 11:35:34 +0000 (11:35 +0000)]
test suite: gnupg: Run with a lock held

This is also an attempt to reduce the impact of the gnupg races.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: Export troot as an environment variable
Ian Jackson [Sun, 7 Jan 2018 11:35:45 +0000 (11:35 +0000)]
test suite: Export troot as an environment variable

This will be useful in a moment.  No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: gnupg: Have three goes, rather than two
Ian Jackson [Sun, 7 Jan 2018 13:44:38 +0000 (13:44 +0000)]
test suite: gnupg: Have three goes, rather than two

The retry strategy is, empirically, fairly successful.  But the
failure probability is still high enough to be a real nuisance.  Let's
try running it a 3rd time if the second fails.  Maybe this will reduce
the overall impact.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: gnupg setup: give each individual test its own AGENT.log
Ian Jackson [Sat, 6 Jan 2018 13:56:42 +0000 (13:56 +0000)]
test suite: gnupg setup: give each individual test its own AGENT.log

This was always the intent.  However, the structure here arranged to
put the actual value of GNUPGHOME into the import script.

Instead, move the GNUGPHOME setting into the setup fragment, which is
evaluated by the importer.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agoMerge branch stable into master
Ian Jackson [Sun, 7 Jan 2018 12:39:49 +0000 (12:39 +0000)]
Merge branch stable into master

Also regenerate debian/tests/control

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: When source discrepancy involves mode changes, report them specially.
Ian Jackson [Sat, 6 Jan 2018 02:22:05 +0000 (02:22 +0000)]
dgit: When source discrepancy involves mode changes, report them specially.

Closes:#886442.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: Fix suggested diff rune in split brain mode
Ian Jackson [Sat, 6 Jan 2018 01:50:00 +0000 (01:50 +0000)]
dgit: Fix suggested diff rune in split brain mode

In split brain mode, with unexpected diffs, print dgit view commitid
in suggested diff rune.

HEAD is wrong in this case.

Closes:#886443.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: Fix message about missing quilt cache entry
Ian Jackson [Sat, 6 Jan 2018 01:42:36 +0000 (01:42 +0000)]
dgit: Fix message about missing quilt cache entry

Should refer to HEAD rather than tree, since dgit needs a commit.

Closes:#884646.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodebian/control: Remove dependency alternative on realpath
Ian Jackson [Sat, 6 Jan 2018 01:38:57 +0000 (01:38 +0000)]
debian/control: Remove dependency alternative on realpath

That package last existed in Debian wheezy.  Closes:#877552.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit(1): Add a bit more rationale (polemic, even). Closes:#874221.
Ian Jackson [Sat, 6 Jan 2018 01:37:07 +0000 (01:37 +0000)]
dgit(1): Add a bit more rationale (polemic, even).  Closes:#874221.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit-user(7): Recommend mk-build-deps rather than apt-get build-dep.
Ian Jackson [Sat, 6 Jan 2018 01:33:00 +0000 (01:33 +0000)]
dgit-user(7): Recommend mk-build-deps rather than apt-get build-dep.

Closes:#863361.

Suggested-by: Nikolaus Rath <Nikolaus@rath.org>
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: mention dgit-*(7) change
Ian Jackson [Sat, 6 Jan 2018 01:29:18 +0000 (01:29 +0000)]
changelog: mention dgit-*(7) change

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit-*(7): --deliberately-not-fast-forward for first dgit push
Sean Whitton [Tue, 28 Feb 2017 16:45:02 +0000 (09:45 -0700)]
dgit-*(7): --deliberately-not-fast-forward for first dgit push

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
6 years agochangelog: mention dgit-maint-merge changes (more)
Ian Jackson [Sat, 6 Jan 2018 01:27:22 +0000 (01:27 +0000)]
changelog: mention dgit-maint-merge changes (more)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit-maint-merge(7): Include instructions to clone existing repo
Sean Whitton [Fri, 13 Oct 2017 21:08:51 +0000 (14:08 -0700)]
dgit-maint-merge(7): Include instructions to clone existing repo

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
6 years agochangelog: mention dgit-maint-merge changes
Ian Jackson [Sat, 6 Jan 2018 01:25:59 +0000 (01:25 +0000)]
changelog: mention dgit-maint-merge changes

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit-maint-merge(7): Mandate pushing upstream branch to alioth
Sean Whitton [Sun, 26 Nov 2017 00:23:07 +0000 (17:23 -0700)]
dgit-maint-merge(7): Mandate pushing upstream branch to alioth

In the case where we are using gbp-import-orig(1) to maintain a
virtual upstream branch, we must push that branch somewhere.  It is
needed whenever we import a new upstream release.

Thanks to Johannes Schauer for pointing out that the manpage
previously said that pushing to alioth is always optional.

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
6 years agodgit-maint-merge(7): Restructure "NEW UPSTREAM RELEASES"
Sean Whitton [Sun, 26 Nov 2017 00:13:32 +0000 (17:13 -0700)]
dgit-maint-merge(7): Restructure "NEW UPSTREAM RELEASES"

Previously, some instructions applicable and needed whether or not
upstream tags releases in git were given only for the case where
upstream tags releases in git.

Thanks Johannes Schauer for noticing this problem.

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
6 years agodgit-maint-merge(7): Configure --merge-mode for gbp-import-orig(1)
Sean Whitton [Sat, 25 Nov 2017 23:56:14 +0000 (16:56 -0700)]
dgit-maint-merge(7): Configure --merge-mode for gbp-import-orig(1)

For 3.0 (quilt) source packages, gbp-import-orig(1) defaults to
--merge-mode=replace, which does the wrong thing for patches-applied
repositories (see gbp-import-orig(1)).

Note that we do override this when importing the first upstream
version.  This is needed because git-merge(1) will refuse to merge
unrelated histories.

Thanks to Johannes Schauer for reporting the problem.

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
6 years agodgit-maint-merge(7): Create an empty branch for upstream source
Sean Whitton [Fri, 16 Jun 2017 12:04:58 +0000 (13:04 +0100)]
dgit-maint-merge(7): Create an empty branch for upstream source

Thanks to Johannes Schauer for finding the problem.

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
6 years agotest suite: dpkgsourceignores-docs: Correct restriction
Ian Jackson [Sat, 6 Jan 2018 00:41:45 +0000 (00:41 +0000)]
test suite: dpkgsourceignores-docs: Correct restriction

Restrictions need to be invoked in test suites with
  t-restrict NAME-OF-RESTRICTION
not by calling t-restrction-something.  Only the former gets
translated to the format used in debian/tests/control.

Reported-by: Sean Whitton <spwhitton@spwhitton.name>
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: finalise 3.13 archive/debian/3.13 debian/3.13
Ian Jackson [Sun, 22 Oct 2017 16:57:01 +0000 (17:57 +0100)]
changelog: finalise 3.13

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: Add missing `chiark-utils-bin' to Test-Depends.
Ian Jackson [Sun, 22 Oct 2017 16:54:13 +0000 (17:54 +0100)]
test suite: Add missing `chiark-utils-bin' to Test-Depends.

Not normally a visible bug because dgit-infrastructure depends on it.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: Add missing `use' for Dpkg::Compresson et al.
Ian Jackson [Sun, 22 Oct 2017 16:53:18 +0000 (17:53 +0100)]
dgit: Add missing `use' for Dpkg::Compresson et al.

Closes:#879526.

Reported-by: Didier 'OdyX' Raboud
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: Start 3.13~
Ian Jackson [Sun, 22 Oct 2017 16:32:06 +0000 (17:32 +0100)]
changelog: Start 3.13~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: document Sean's changes
Ian Jackson [Tue, 15 Aug 2017 16:00:25 +0000 (17:00 +0100)]
changelog: document Sean's changes

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: Fix trailing whitespace
Sean Whitton [Sun, 13 Aug 2017 14:01:10 +0000 (07:01 -0700)]
dgit: Fix trailing whitespace

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
6 years agochangelog: Fix typo
Sean Whitton [Sun, 13 Aug 2017 13:56:26 +0000 (06:56 -0700)]
changelog: Fix typo

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
6 years agochangelog: start 4.2
Ian Jackson [Tue, 15 Aug 2017 15:58:29 +0000 (16:58 +0100)]
changelog: start 4.2

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: finalise 4.1 archive/debian/4.1 debian/4.1
Ian Jackson [Mon, 14 Aug 2017 08:31:25 +0000 (09:31 +0100)]
changelog: finalise 4.1

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: Document test suite changes
Ian Jackson [Thu, 3 Aug 2017 11:27:42 +0000 (12:27 +0100)]
changelog: Document test suite changes

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: gitworktree: Test quiltification
Ian Jackson [Thu, 3 Aug 2017 11:25:48 +0000 (12:25 +0100)]
test suite: gitworktree: Test quiltification

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: gitworktree: Add some more operations
Ian Jackson [Thu, 3 Aug 2017 11:23:42 +0000 (12:23 +0100)]
test suite: gitworktree: Add some more operations

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: dpkgsourceignores-correct: Test that the rune DTRT
Ian Jackson [Thu, 3 Aug 2017 11:22:33 +0000 (12:22 +0100)]
test suite: dpkgsourceignores-correct: Test that the rune DTRT

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: dpkg_source_ignores: Exclude the right set of things
Ian Jackson [Thu, 3 Aug 2017 11:20:36 +0000 (12:20 +0100)]
dgit: dpkg_source_ignores: Exclude the right set of things

Change the dpkg-source -i argument to exclude exactly the right set of
things.  (Sadly this is not a simple rune.)

Previously we might exclude `foo.git', for example !

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: Properly shellquote --git-builder argument to gbp
Ian Jackson [Thu, 3 Aug 2017 11:48:05 +0000 (12:48 +0100)]
dgit: Properly shellquote --git-builder argument to gbp

This is about to contain more exciting shell metacharacters.
(Even now, it is wrong without quoting as we end up telling gbp to
pass -i.git/ rather than -i\.git/ to dpkg-source.)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: dpkgsourceignores-docs: Use print-dpkg-source-ignores
Ian Jackson [Thu, 3 Aug 2017 11:09:11 +0000 (12:09 +0100)]
test suite: dpkgsourceignores-docs: Use print-dpkg-source-ignores

Rather than fishing the value out of the in-tree dgit source code.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: print-dpkg-source-ignores action
Ian Jackson [Thu, 3 Aug 2017 11:08:31 +0000 (12:08 +0100)]
dgit: print-dpkg-source-ignores action

New print-dpkg-source-ignores option to print the big rune you need to
pass to dpkg-source to make it work exactly the right.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: dpkgsourceignores-docs: Check dgit-maint-merge(7) -i -I rune
Ian Jackson [Thu, 3 Aug 2017 08:53:58 +0000 (09:53 +0100)]
test suite: dpkgsourceignores-docs: Check dgit-maint-merge(7) -i -I rune

Check that the rune we document is the same as dgit actually uses.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit-maint-merge(7): Add ' ' around -i\.git/
Ian Jackson [Thu, 3 Aug 2017 08:52:05 +0000 (09:52 +0100)]
dgit-maint-merge(7): Add ' ' around -i\.git/

This manpage should present a shell rune, not a half-quoted thing
whose interpretation is left as a tricky exercise to othe reader.

The ' ' protect the \ so that it would actually get passed to
dpkg-buildpackage.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit-maint-merge(7): Reformat slightly
Ian Jackson [Thu, 3 Aug 2017 08:24:27 +0000 (09:24 +0100)]
dgit-maint-merge(7): Reformat slightly

Introduce semantic newlines around the dpg-buildpackage -i -I
rune.  This will make it easier to test.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: Break out -i -I rune into a variable
Ian Jackson [Thu, 3 Aug 2017 08:07:44 +0000 (09:07 +0100)]
dgit: Break out -i -I rune into a variable

There is also an instance in dgit-maint-merge.7.pod but that's
trickier to unify.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: Break out t-dgit-manpage
Ian Jackson [Thu, 3 Aug 2017 11:14:41 +0000 (12:14 +0100)]
test suite: Break out t-dgit-manpage

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: stunt gnupg: Much better logging of race errors
Ian Jackson [Fri, 4 Aug 2017 21:27:54 +0000 (22:27 +0100)]
test suite: stunt gnupg: Much better logging of race errors

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: stunt gnupg runs gpg again if it exits status 2
Ian Jackson [Thu, 3 Aug 2017 21:27:28 +0000 (22:27 +0100)]
test suite: stunt gnupg runs gpg again if it exits status 2

Work around gnupg agent connection races by having our stunt gpg
wrapper simply try running gpg again, once, if it exits 2.
This does not fully suppress the bug but it does significantly reduce
the probability.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: Make t-dgit print pwd to stderr, not stdout
Ian Jackson [Thu, 3 Aug 2017 11:13:58 +0000 (12:13 +0100)]
test suite: Make t-dgit print pwd to stderr, not stdout

This means that tests can capture the output from t-dgit without going
wrong.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agochangelog: Document worktree support
Ian Jackson [Wed, 2 Aug 2017 18:37:00 +0000 (19:37 +0100)]
changelog: Document worktree support

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodgit: Make commit_getclogp not leave a lot of detritus in .git/dgit
Ian Jackson [Thu, 3 Aug 2017 17:09:24 +0000 (18:09 +0100)]
dgit: Make commit_getclogp not leave a lot of detritus in .git/dgit

Have it use a fixed filename instead.  It's only needed right away so
that's fine.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agoplayground refactor: Dgit.pm: fresh_playground: Improve error message
Ian Jackson [Thu, 3 Aug 2017 07:30:09 +0000 (08:30 +0100)]
playground refactor: Dgit.pm: fresh_playground: Improve error message

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: gitworktree: New test
Ian Jackson [Wed, 2 Aug 2017 18:35:28 +0000 (19:35 +0100)]
test suite: gitworktree: New test

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agotest suite: Tolerate worktrees when trying to git-fsck
Ian Jackson [Wed, 2 Aug 2017 18:32:51 +0000 (19:32 +0100)]
test suite: Tolerate worktrees when trying to git-fsck

A `git worktree' has a file for .git.  We still want to fsck them.  We
can simply run the fsck in the directory containing .git, instead.
That works for ordinary trees with a .git directory, and for
worktrees.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agodirectory refactor: open_main_gitattrs confesses if $maindir not set
Ian Jackson [Thu, 3 Aug 2017 07:31:12 +0000 (08:31 +0100)]
directory refactor: open_main_gitattrs confesses if $maindir not set

This improves the error message considerably for "didn't call
record_maindir" bugs.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
6 years agoworktree support: dgit: Fix for .git/logs/refs/
Ian Jackson [Wed, 2 Aug 2017 18:29:53 +0000 (19:29 +0100)]
worktree support: dgit: Fix for .git/logs/refs/

Experimentally, both the common dir and the worktree's git dir have a
.git/logs.  But, as might be expected, the worktree's one has the
reflog for its HEAD and not any of the refs/ reflogs.

Implicitly, we are deciding here that the dgit quilt cache is shared
between all worktrees.  That seems fine.  I think we don't ever rely
on its actual current value, so even concurrent dgit runs ought to be
fine.

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