chiark / gitweb /
Ian Jackson [Fri, 3 Feb 2017 21:48:13 +0000 (21:48 +0000)]
WIP
Ian Jackson [Fri, 3 Feb 2017 16:36:27 +0000 (16:36 +0000)]
WIP
Ian Jackson [Sun, 29 Jan 2017 21:59:35 +0000 (21:59 +0000)]
WIP
Ian Jackson [Sun, 29 Jan 2017 18:46:13 +0000 (18:46 +0000)]
WIP classification core done?
Ian Jackson [Sat, 28 Jan 2017 08:57:08 +0000 (08:57 +0000)]
WIP before reorgs?
Ian Jackson [Sun, 22 Oct 2017 19:26:55 +0000 (20:26 +0100)]
Dgit: "confess" when we die due to a warning, rather than symply dieing.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Sean Whitton [Sun, 13 Aug 2017 13:56:26 +0000 (06:56 -0700)]
changelog: Fix typo
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Ian Jackson [Wed, 2 Aug 2017 18:25:34 +0000 (19:25 +0100)]
directory refactoring: dgit clone: call record_maintree
We are making up our own tree, here. We will need to call
record_maintree in case we need to use information which it obtains.
Currently, we don't.
But git worktrees are complicated: we are going to have to depend on
the new $maindir_git* variables, in setup_new_tree.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 2 Aug 2017 18:59:53 +0000 (19:59 +0100)]
directory refactoring: most invocations: call record_maintree
We need to call record_maintree so that $maindir and its friends are
set, since we're going to rely on them heavily. Most operations will
need them.
Any operation that is invoked in a git tree should definitely have
this called.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 2 Aug 2017 18:56:40 +0000 (19:56 +0100)]
directory refactoring: Rename no_local_git_cfg
This is actually called when we don't know that we are starting in a
git tree. We want to use this knowledge to control an automatic call
to record_maindir, too.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 2 Aug 2017 18:14:40 +0000 (19:14 +0100)]
worktree support: Dgit.pm: Introduce $maindir_gitdir and _commondir
A "git worktree" separates out some of the things which used to be
found in .git, into "common" things and "gitdir" things.
In this patch we simply collect the relevant informaation. No-one
uses it yet so there is no significant functional change.
However, while we are here, we do improve an error message slightly.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 2 Aug 2017 17:34:02 +0000 (18:34 +0100)]
playground refactoring: Dgit.pm: Provide ensure_a_playground
dgit wants to make a lot of temporary things in .git/dgit.
That's like a playground, but dgit doesn't want it wiped.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>