chiark / gitweb /
dgit.git
17 months agodgit-maint-debrebase(7): make the wood visible despite the trees
Sean Whitton [Tue, 3 Apr 2018 18:31:45 +0000 (11:31 -0700)]
dgit-maint-debrebase(7): make the wood visible despite the trees

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
17 months agodgit-maint-debrebase(7): it's an example
Sean Whitton [Tue, 3 Apr 2018 18:07:19 +0000 (11:07 -0700)]
dgit-maint-debrebase(7): it's an example

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
17 months agodgit-maint-debrebase(7): avoiding merges
Sean Whitton [Tue, 3 Apr 2018 18:05:30 +0000 (11:05 -0700)]
dgit-maint-debrebase(7): avoiding merges

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
17 months agodgit-maint-debrebase(7): fix NMUs section
Sean Whitton [Tue, 3 Apr 2018 18:05:24 +0000 (11:05 -0700)]
dgit-maint-debrebase(7): fix NMUs section

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
17 months agodgit-maint-debrebase(7): patch queue -> delta queue
Sean Whitton [Tue, 3 Apr 2018 17:28:21 +0000 (10:28 -0700)]
dgit-maint-debrebase(7): patch queue -> delta queue

For consistency with git-debrebase(5).

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
17 months agodgit-maint-debrebase(7): add another advantage
Sean Whitton [Tue, 3 Apr 2018 17:24:33 +0000 (10:24 -0700)]
dgit-maint-debrebase(7): add another advantage

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
17 months agodgit-maint-debrebase(7): begin incorporating feedback
Sean Whitton [Tue, 3 Apr 2018 17:16:38 +0000 (10:16 -0700)]
dgit-maint-debrebase(7): begin incorporating feedback

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
17 months agodgit-maint-debrebase(7): first draft
Sean Whitton [Sat, 17 Feb 2018 22:47:33 +0000 (15:47 -0700)]
dgit-maint-debrebase(7): first draft

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
20 months 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>
20 months 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>
20 months 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>
20 months 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>
20 months 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>
20 months 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>
20 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
23 months 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>
23 months 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>
23 months 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>
23 months 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 years agoworktree support: dgit: Fix for .git/info/attributes
Ian Jackson [Wed, 2 Aug 2017 18:22:28 +0000 (19:22 +0100)]
worktree support: dgit: Fix for .git/info/attributes

Experimentally, this file is in the common dir, not the per-worktree
dir.  Honour $maindir_gitcommon everywhere.

Rename `open_main_gitattrs'.  Previously it could in theory be used in
the playtree (but, it isn't).  Now it always operates on the main
tree.

Indeed, as we require, the `setup' stuff is only done in the main
tree.  The gitattributes fixes for playtrees are done,
unconditionally, with the much simpler hammer in playtree_setup.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoworktree support: Fix playtree_setup
Ian Jackson [Wed, 2 Aug 2017 18:19:38 +0000 (19:19 +0100)]
worktree support: Fix playtree_setup

In a worktree, .git is not a directory.  We need to use
$maindir_common.  Add a comment, too.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodirectory handling: dgit: Introduce dgit_privdir and use it
Ian Jackson [Wed, 2 Aug 2017 17:38:32 +0000 (18:38 +0100)]
directory handling: dgit: Introduce dgit_privdir and use it

This removes another pile of open-coded references to .git/

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: sbuild-gitish: Insist on using "build" chroot
Ian Jackson [Thu, 3 Aug 2017 19:34:11 +0000 (20:34 +0100)]
test suite: sbuild-gitish: Insist on using "build" chroot

In "test suite: sbuild-gitish: Find sbuild rune in the manpage" aka
f5c0d33ede8a we accidentally switched from "build" to "jessie".
Randomly messing about with the user's "jessie" chroot is not very
nice.  (And it would break in a hypothetical formal test providing the
x-dgit-schroot-build capability.)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoworktree support: Fix ensure_a_playground (gives absolute path now)
Ian Jackson [Wed, 2 Aug 2017 18:17:14 +0000 (19:17 +0100)]
worktree support: Fix ensure_a_playground (gives absolute path now)

Make it honour $maindir_gitdir so it will DTRT in a `git worktree'.
The .git/dgit play area ends up in the .git/worktrees/<worktreename>
for this worktree.

It now returns an absolute path.  The only call site that needs
adjusting is the one in fresh_playground.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodirectory handling: dgit: Use $maindir rather than ../../..
Ian Jackson [Wed, 2 Aug 2017 15:46:37 +0000 (16:46 +0100)]
directory handling: dgit: Use $maindir rather than ../../..

Replace all the open-coded ../.. constructs with references to
$maindir.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodirectory refactoring: dgit clone: call record_maintree in multisuite too
Ian Jackson [Thu, 3 Aug 2017 07:31:57 +0000 (08:31 +0100)]
directory refactoring: dgit clone: call record_maintree in multisuite too

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