summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog9
-rw-r--r--debian/tests/control2
-rwxr-xr-xdgit47
-rw-r--r--dgit-downstream-dsc.7.pod8
-rw-r--r--dgit-maint-debrebase.7.pod6
-rw-r--r--dgit-maint-native.7.pod2
-rw-r--r--dgit-sponsorship.7.pod2
-rw-r--r--dgit-user.7.pod2
-rw-r--r--dgit.123
-rw-r--r--dgit.74
-rw-r--r--git-debrebase.1.pod12
-rw-r--r--git-debrebase.5.pod20
-rw-r--r--po/nl.po21
-rwxr-xr-xtests/tests/import-dsc2
-rwxr-xr-xtests/tests/import-linkorigs60
15 files changed, 146 insertions, 74 deletions
diff --git a/debian/changelog b/debian/changelog
index b18c1ec..4b5c9c0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,13 @@
dgit (8.4~) unstable; urgency=medium
- *
+ * Many manpage typo fixes. Closes:#918384. [Paul Hardy]
+
+ [Ian Jackson]
+ * i18n: nl.po: Remove a spurious space
+ * dgit: cmd_import_dsc: comment on lack of is_orig_file check
+ * dgit: import-dsc: Handle relative symlinks correctly
+ * dgit: import-dsc: New test for abs/rel dsc component links
+
--
diff --git a/debian/tests/control b/debian/tests/control
index 6559071..7f0a908 100644
--- a/debian/tests/control
+++ b/debian/tests/control
@@ -68,7 +68,7 @@ Tests: trustingpolicy-replay
Tests-Directory: tests/tests
Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, dput-ng
-Tests: absurd-gitapply badcommit-rewrite build-modes build-modes-long build-modes-source checkout clone-clogsigpipe clone-gitnosuite clone-nogit debpolicy-dbretry debpolicy-newreject debpolicy-quilt-gbp defdistro-rpush defdistro-setup distropatches-reject dpkgsourceignores-correct drs-clone-nogit drs-push-masterupdate drs-push-rejects dsd-clone-nogit dsd-divert fetch-localgitonly fetch-somegit-notlast gbp-orig gitconfig gitworktree import-dsc import-maintmangle import-native import-nonnative import-tarbomb inarchivecopy mismatches-contents mismatches-dscchanges multisuite newtag-clone-nogit oldnewtagalt oldtag-clone-nogit orig-include-exclude orig-include-exclude-chkquery overwrite-chkclog overwrite-junk overwrite-splitbrains overwrite-version pbuilder protocol-compat push-buildproductsdir push-newpackage push-newrepeat push-nextdgit push-source push-source-with-changes quilt quilt-gbp quilt-gbp-build-modes quilt-singlepatch quilt-splitbrains quilt-useremail rpush sourceonlypolicy tag-updates unrepresentable version-opt
+Tests: absurd-gitapply badcommit-rewrite build-modes build-modes-long build-modes-source checkout clone-clogsigpipe clone-gitnosuite clone-nogit debpolicy-dbretry debpolicy-newreject debpolicy-quilt-gbp defdistro-rpush defdistro-setup distropatches-reject dpkgsourceignores-correct drs-clone-nogit drs-push-masterupdate drs-push-rejects dsd-clone-nogit dsd-divert fetch-localgitonly fetch-somegit-notlast gbp-orig gitconfig gitworktree import-dsc import-linkorigs import-maintmangle import-native import-nonnative import-tarbomb inarchivecopy mismatches-contents mismatches-dscchanges multisuite newtag-clone-nogit oldnewtagalt oldtag-clone-nogit orig-include-exclude orig-include-exclude-chkquery overwrite-chkclog overwrite-junk overwrite-splitbrains overwrite-version pbuilder protocol-compat push-buildproductsdir push-newpackage push-newrepeat push-nextdgit push-source push-source-with-changes quilt quilt-gbp quilt-gbp-build-modes quilt-singlepatch quilt-splitbrains quilt-useremail rpush sourceonlypolicy tag-updates unrepresentable version-opt
Tests-Directory: tests/tests
Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime
diff --git a/dgit b/dgit
index b6bfd56..f33aab8 100755
--- a/dgit
+++ b/dgit
@@ -32,6 +32,7 @@ use Data::Dumper;
use LWP::UserAgent;
use Dpkg::Control::Hash;
use File::Path;
+use File::Spec;
use File::Temp qw(tempdir);
use File::Basename;
use Dpkg::Version;
@@ -2233,7 +2234,7 @@ sub dotdot_bpd_transfer_origs ($$$) {
"check orig file %s in ..: %s", $leaf, $!;
if (-l _) {
stat "$dotdot/$leaf" or fail f_
- "check targe of orig symlink %s in ..: %s", $leaf, $!;
+ "check target of orig symlink %s in ..: %s", $leaf, $!;
my $ltarget = readlink "$dotdot/$leaf" or
die "readlink $dotdot/$leaf: $!";
if ($ltarget !~ m{^/}) {
@@ -7003,29 +7004,49 @@ END
my @dfi = dsc_files_info();
foreach my $fi (@dfi) {
my $f = $fi->{Filename};
+ # We transfer all the pieces of the dsc to the bpd, not just
+ # origs. This is by analogy with dgit fetch, which wants to
+ # keep them somewhere to avoid downloading them again.
+ # We make symlinks, though. If the user wants copies, then
+ # they can copy the parts of the dsc to the bpd using dcmd,
+ # or something.
my $here = "$buildproductsdir/$f";
if (lstat $here) {
- next if stat $here;
+ if (stat $here) {
+ next;
+ }
fail f_ "lstat %s works but stat gives %s !", $here, $!;
}
fail f_ "stat %s: %s", $here, $! unless $! == ENOENT;
+ printdebug "not in bpd, $f ...\n";
+ # $f does not exist in bpd, we need to transfer it
my $there = $dscfn;
- if ($dscfn =~ m#^(?:\./+)?\.\./+#) {
- $there = $';
- } elsif ($dscfn =~ m#^/#) {
- $there = $dscfn;
+ $there =~ s{[^/]+$}{$f} or confess "$there ?";
+ # $there is file we want, relative to user's cwd, or abs
+ printdebug "not in bpd, $f, test $there ...\n";
+ stat $there or fail f_
+ "import %s requires %s, but: %s", $dscfn, $there, $!;
+ if ($there =~ m#^(?:\./+)?\.\./+#) {
+ # $there is relative to user's cwd
+ my $there_from_parent = $';
+ if ($buildproductsdir !~ m{^/}) {
+ # abs2rel, despite its name, can take two relative paths
+ $there = File::Spec->abs2rel($there,$buildproductsdir);
+ # now $there is relative to bpd, great
+ printdebug "not in bpd, $f, abs2rel, $there ...\n";
+ } else {
+ $there = (dirname $maindir)."/$there_from_parent";
+ # now $there is absoute
+ printdebug "not in bpd, $f, rel2rel, $there ...\n";
+ }
+ } elsif ($there =~ m#^/#) {
+ # $there is absolute already
+ printdebug "not in bpd, $f, abs, $there ...\n";
} else {
fail f_
"cannot import %s which seems to be inside working tree!",
$dscfn;
}
- $there =~ s#/+[^/]+$## or fail f_
- "import %s requires .../%s, but it does not exist",
- $dscfn, $f;
- $there .= "/$f";
- my $test = $there =~ m{^/} ? $there : "../$there";
- stat $test or fail f_
- "import %s requires %s, but: %s", $dscfn, $test, $!;
symlink $there, $here or fail f_
"symlink %s to %s: %s", $there, $here, $!;
progress f_ "made symlink %s -> %s", $here, $there;
diff --git a/dgit-downstream-dsc.7.pod b/dgit-downstream-dsc.7.pod
index fcbce05..91d9023 100644
--- a/dgit-downstream-dsc.7.pod
+++ b/dgit-downstream-dsc.7.pod
@@ -121,8 +121,8 @@ but in most installations this is not needed.
If there is no or little distinction between
(i) developers who are entitled to upload (push) and
(ii) repository administrators,
-then a it is sufficient to provide a
-git server with a unix account for each user who will pushing,
+then it is sufficient to provide a
+git server with a unix account for each user who will be pushing,
perhaps using ssh restricted commands.
=item Debian-format archive (repository)
@@ -216,7 +216,7 @@ yet a git repository for a particular package.
If you always have a git repository for every package in your archive,
perhaps because you never use dput/dupload, and always dgit push,
-Set C<git-check> to B<true>.
+set C<git-check> to B<true>.
Otherwise, set C<git-check> to a url prefix - ideally, https.
dgit clone will try to fetch
@@ -312,7 +312,7 @@ Either don't do that, or set up B<dgit-repos-server>.
When a user who can push runs dgit,
dgit uses ssh to access the git server.
-To make ssh restricted command easier,
+To make use of ssh restricted command easier,
and for the benefit of dgit-repos-server,
dgit's ssh commands
each start with a parseable commentish rune.
diff --git a/dgit-maint-debrebase.7.pod b/dgit-maint-debrebase.7.pod
index 4996e6a..b91ed16 100644
--- a/dgit-maint-debrebase.7.pod
+++ b/dgit-maint-debrebase.7.pod
@@ -376,7 +376,7 @@ release:
=back
Pass I<--stat> just to see the list of changed files, which is useful
-to determine whether there are any new or deleted files to may need
+to determine whether there are any new or deleted files that may need
accounting for in your copyright file.
If you obtained a tarball from upstream, you are ready to try a build.
@@ -451,7 +451,7 @@ In some cases where you used B<git debrebase convert-from-gbp> since
the last upload, it is not possible for dgit to make your history
fast-forwarding from the history on B<dgit-repos>. In such cases you
will have to pass I<--overwrite> to dgit. git-debrebase will normally
-tell you if this is will be needed.
+tell you if this will be needed.
Right before uploading, if you did not just already do so, you might
want to have git-debrebase(1) shuffle your branch such that the Debian
@@ -559,7 +559,7 @@ In the simplest case,
=back
-If that fails, because your branch and the NMUers work represent
+If that fails, because your branch and the NMUers' work represent
divergent branches of development, you have a number of options. Here
we describe the two simplest.
diff --git a/dgit-maint-native.7.pod b/dgit-maint-native.7.pod
index ac57728..792be10 100644
--- a/dgit-maint-native.7.pod
+++ b/dgit-maint-native.7.pod
@@ -85,7 +85,7 @@ is fast forward from the dgit archive view.
Alternatively,
if this was the first ever dgit push of the package,
you can avoid this merge commit by
-passing C<--deliberately-not-fast-forward>.
+passing C<--deliberately-not-fast-forward>
instead of C<--overwrite>.
This avoids introducing a new origin commit into
your git history.
diff --git a/dgit-sponsorship.7.pod b/dgit-sponsorship.7.pod
index 199903c..2e6f82d 100644
--- a/dgit-sponsorship.7.pod
+++ b/dgit-sponsorship.7.pod
@@ -9,7 +9,7 @@ and
a sponsoring DD (or DM)
can collaborate and publish using git.
-The sponsor must to be intending to use dgit for the upload.
+The sponsor must be intending to use dgit for the upload.
(If the sponsor does not use dgit,
it is not possible to properly publish
a sponsee's git branch.)
diff --git a/dgit-user.7.pod b/dgit-user.7.pod
index 036d5bb..18f06da 100644
--- a/dgit-user.7.pod
+++ b/dgit-user.7.pod
@@ -379,7 +379,7 @@ If neither of those are an option,
your desperate last resort is to try
using the same version number
as the official package for your own package.
-(The version is controlled by C<debian/changelog> - see above).
+(The version is controlled by C<debian/changelog> - see above.)
This is not ideal because it makes it hard to tell what is installed,
and because it will mislead and confuse apt.
diff --git a/dgit.1 b/dgit.1
index 6f89574..d23dde0 100644
--- a/dgit.1
+++ b/dgit.1
@@ -338,8 +338,8 @@ which uses
Set up the working tree's
.B .git/info/attributes
to disable all transforming attributes for all files.
-This is done by defining a macro attribute
-.B dgit-defuse-attrs
+This is done by defining a macro attribute,
+.B dgit-defuse-attrs,
and applying it to
.BR * .
For why, see
@@ -355,7 +355,7 @@ in .git/info/attributes,
but it is insufficient,
because it was made by an earlier version of dgit
and git has since introduced new transforming attributes,
-modifies the macro to disable the newer transformations.
+this modifies the macro to disable the newer transformations.
(If there is already a macro attribute line
.B [attr]dgit-defuse-attrs
@@ -448,7 +448,7 @@ and dgit actually imports the dsc
dgit will make a pseudomerge
so that the result is necessarily fast forward
from the existing branch.
-Otherwise, if branch already exists,
+Otherwise, if \fIbranch\fR already exists,
dgit will stop with an error message.
If
@@ -775,7 +775,7 @@ The use of --deliberately is declared and published in the signed tags
generated for you by dgit,
so that the archive software can give effect to your intent,
and
-for the benefit humans looking at the history.
+for the benefit of humans looking at the history.
The meanings of
.IR something s
understood in the context of Debian are discussed below:
@@ -852,7 +852,7 @@ because the dgit git tree does not have a
directory.)
.TP
.BR --quilt=nocheck " | " --no-quilt-fixup
-Do not check whether up source format `3.0 (quilt)' metadata needs
+Do not check whether source format `3.0 (quilt)' metadata needs
fixing up. If you use this option and the metadata did in fact need
fixing up, dgit push will fail.
.TP
@@ -933,7 +933,7 @@ How to set this up is not yet documented.
.TP
.BI -C changesfile
Specifies the .changes file which is to be uploaded. By default
-dgit push looks for single .changes file in the parent directory whose
+dgit push looks for a single .changes file in the parent directory whose
filename suggests it is for the right package and version.
If the specified
@@ -1290,7 +1290,7 @@ One of the values for the command line --clean= option; used if
.TP
.BR dgit-distro. \fIdistro\fR .clean-mode-newer
Like .clean-mode,
-but ignored if the value does not make sense to this version of dgit.
+but ignored if the value is unknown to this version of dgit.
Setting both .clean-mode and .clean-mode-newer is useful
to provide a single git config compatible with different dgit versions.
.TP
@@ -1328,10 +1328,10 @@ used, respectively. Only used if .setup-usermail is not disabled.
.TP
.BI dgit-distro. distro .setup-useremail
Whether to set user.name and user.email in new git trees.
-True by default. Ignored for dgit setup-setup-useremail, which does it anyway.
+True by default. Ignored for dgit setup-useremail, which does it anyway.
.TP
.BI dgit-distro. distro .setup-mergechangelogs
-Whether to setup a merge driver which uses dpkg-mergechangelogs for
+Whether to set up a merge driver which uses dpkg-mergechangelogs for
debian/changelog. True by default. Ignored for dgit
setup-mergechangelogs, which does it anyway.
.TP
@@ -1355,8 +1355,9 @@ Works like
To pass several options, configure multiple values in git config
(with git config --add). The options for
.BI dgit.default.opts- cmd
+and
.BI dgit-distro. distro /push.opts- cmd
-and are all used, followed by options from dgit's command line.
+are all used, followed by options from dgit's command line.
.SH ACCESS CONFIGURATION
There are many other settings which specify how a particular distro's
services (archive and git) are provided. These should not normally be
diff --git a/dgit.7 b/dgit.7
index d625e8f..8325c06 100644
--- a/dgit.7
+++ b/dgit.7
@@ -161,7 +161,7 @@ or to try to upload to it.
When using this facility, it is important to always specify the
same suites in the same order:
-dgit will not be make a coherent fast-forwarding history
+dgit will not make a coherent fast-forwarding history
view otherwise.
The history generated by this feature is not normally suitable
@@ -361,7 +361,7 @@ whose tree is identical to o+d/p in all upstream files.
In the error message,
696c9bd5..84ae8f96
is the first commit child-parent edge
-which cannot be sensibly be
+which cannot sensibly be
either ignored, or turned into a patch in debian/patches.
In this example, this is because
it itself changes files in debian/patches,
diff --git a/git-debrebase.1.pod b/git-debrebase.1.pod
index 00b664b..cbdf292 100644
--- a/git-debrebase.1.pod
+++ b/git-debrebase.1.pod
@@ -19,7 +19,7 @@ L<dgit-maint-debrebase(7)>.
For background, theory of operation,
and definitions see L<git-debrebase(5)>.
-You should read this manpage in cojnunction with
+You should read this manpage in conjunction with
L<git-debrebase(5)/TERMINOLOGY>,
which defines many important terms used here.
@@ -59,7 +59,7 @@ It is hazardous to use plain git-rebase on a git-debrebase branch,
because git-rebase has a tendency to start the rebase
too far back in history,
and then drop important commits.
-Soo L<git-debrebase(5)/ILLEGAL OPERATIONS>
+See L<git-debrebase(5)/ILLEGAL OPERATIONS>
=item git-debrebase status
@@ -155,7 +155,7 @@ the whole new upstream operation is aborted,
except for the laundering.
<new-version>
-may be whole new Debian version, including revision,
+may be a whole new Debian version, including revision,
or just the upstream part,
in which case -1 will be appended
to make the new Debian version.
@@ -249,7 +249,7 @@ If the patches implied by the current branch
are not a simple superset of those already in debian/patches,
make-patches will fail with exit status 7,
and an error message.
-(The message can be suppress with --quiet-would-amend.)
+(The message can be suppressed with --quiet-would-amend.)
If the problem is simply that
the existing patches were not made by git-debrebase,
using dgit quilt-fixup instead should succeed.
@@ -258,7 +258,7 @@ using dgit quilt-fixup instead should succeed.
=item git-debrebase convert-from-gbp [<upstream-commit-ish>]
-Cnnverts any of the following into a git-debrebase interchange branch:
+Converts any of the following into a git-debrebase interchange branch:
=over
@@ -370,7 +370,7 @@ and any ffq-prev is deleted.
This is provided mostly for the test suite
and for unusual situations.
-It should only be used with a care and
+It should only be used with care and
with a proper understanding of the underlying theory.
Be sure to not accidentally treat the result as
diff --git a/git-debrebase.5.pod b/git-debrebase.5.pod
index 439fd63..d23c6b2 100644
--- a/git-debrebase.5.pod
+++ b/git-debrebase.5.pod
@@ -146,7 +146,7 @@ See L</STITCHING, PSEUDO-MERGES, FFQ RECORD>.
git-debrebase has one primary branch,
the B<interchange branch>.
-This branch is found on Debian contributor's workstations
+This branch is found on Debian contributors' workstations
(typically, a maintainer would call it B<master>),
in the Debian dgit git server as the suite branch (B<dgit/dgit/sid>)
and on other git servers which support Debian work
@@ -175,7 +175,7 @@ the upstream commits).
The breakwater does not contain any representation of
the delta queue (not even debian/patches).
The part of the breakwater processed by git-debrebase
-is the part since the most reecent B<anchor>,
+is the part since the most recent B<anchor>,
which is usually a special merge generated by git-debrebase.
When working, locally,
@@ -255,7 +255,7 @@ a representation of the delta queue:
=item Delta queue commits
Zero or more single-parent commits
-contaioning only changes to upstream files.
+containing only changes to upstream files.
=back
@@ -266,7 +266,7 @@ branch state is also B<rebasing>.
It has the same contents as the laundered state,
except that it may contain,
additionally,
-in B<in any order but after the breakwater>:
+B<in any order but after the breakwater>:
=over
@@ -379,8 +379,8 @@ When ffq-prev is not present,
C<refs/debrebase-last/B> records some ancestor of refs/B,
(usually, the result of last stitch).
This is used for status printing and some error error checks -
-especially for printing guesses what a problem is.
-To determine whether a branch is
+especially for printing guesses about what a problem is.
+To determine whether a branch
is being maintained in git-debrebase form
it is necessary to walk its history.
@@ -419,7 +419,7 @@ so we can at least detect unsupported merges.
=head1 LEGAL OPERATIONS
-The following basic operations follows from this model
+The following basic operations follow from this model
(refer to the diagram above):
=over
@@ -472,7 +472,7 @@ so that git log shows the packaging history.)
=item Stitch
Make a pseudomerge,
-whose contributing parent to is the unstitched branch
+whose contributing parent is the unstitched branch
and
whose overwritten parent is ffq-prev,
consuming ffq-prev in the process
@@ -483,7 +483,7 @@ or perhaps a laundered branch with a quilt patch addition commit.
=item Commit quilt patches
To generate a tree which can be represented as a
-3.0 (quilt) .dsc source packages,
+3.0 (quilt) .dsc source package,
the delta queue must be reified inside the git tree
in B<debian/patches/>.
These patch files can be stripped out and/or regenerated as needed.
@@ -515,7 +515,7 @@ For these reasons,
it is better to use git-debrebase and
let it choose the base
for your rebase.
-If you do realise you have make this mistake,
+If you do realise you have made this mistake,
it is best to use the reflog to recover to a suitable
good previous state.
diff --git a/po/nl.po b/po/nl.po
index a0dc658..b67f5f7 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -36,7 +36,6 @@ msgstr ""
#: ../dgit:260
#, perl-format
-#| msgid "%s: package %s does not exist in suite %s\n"
msgid "%s: source package %s does not exist in suite %s\n"
msgstr "%s: broncodepakket %s bestaat niet in suite %s\n"
@@ -778,7 +777,7 @@ msgstr ""
#: ../dgit:3099
msgid "rewrite map"
-msgstr "modificatieplan (rewrite map) "
+msgstr "modificatieplan (rewrite map)"
#: ../dgit:3106
msgid "server's git history rewrite map contains a relevant entry!"
@@ -1899,11 +1898,6 @@ msgstr ""
"schonen."
#: ../dgit:6302
-#| msgid ""
-#| "%s\n"
-#| "If this is just missing .gitignore entries, use a different clean\n"
-#| "mode, eg --clean=dpkg-source,no-check (-wdu/-wddu) to ignore them\n"
-#| "or --clean=git (-wg/-wgf) to use `git clean' instead.\n"
msgid ""
"If this is just missing .gitignore entries, use a different clean\n"
"mode, eg --clean=dpkg-source,no-check (-wdn/-wddn) to ignore them\n"
@@ -1911,7 +1905,7 @@ msgid ""
msgstr ""
"Indien het enkel ontbrekende .gitignore-items betreft, gebruik dan een "
"andere\n"
-"clean-modus, bijv. --clean=dpkg-source,no-check (-wdu/-wddu) om deze te\n"
+"clean-modus, bijv. --clean=dpkg-source,no-check (-wdn/-wddn) om deze te\n"
"negeren, of --clean=git (-wg/-wgf) om in de plaats `git clean' te "
"gebruiken.\n"
@@ -2392,17 +2386,6 @@ msgid "unknown operation %s"
msgstr "onbekende bewerking %s"
#: ../git-debrebase:44
-#| msgid ""
-#| "usages:\n"
-#| " git-debrebase [<options>] [--|-i <git rebase options...>]\n"
-#| " git-debrebase [<options>] status\n"
-#| " git-debrebase [<options>] prepush [--prose=...]\n"
-#| " git-debrebase [<options>] quick|conclude\n"
-#| " git-debrebase [<options>] new-upstream <new-version> [<details ...>]\n"
-#| " git-debrebase [<options>] convert-from-gbp [<upstream-commitish>]\n"
-#| " ...\n"
-#| "See git-debrebase(1), git-debrebase(5), dgit-maint-debrebase(7) (in "
-#| "dgit).\n"
msgid ""
"usages:\n"
" git-debrebase [<options>] [--|-i <git rebase options...>]\n"
diff --git a/tests/tests/import-dsc b/tests/tests/import-dsc
index bdd849c..4a8d876 100755
--- a/tests/tests/import-dsc
+++ b/tests/tests/import-dsc
@@ -79,7 +79,7 @@ dsc=$troot/pkg-srcs/${p}_${v}.dsc
cd $p.2
cp $dsc ..
-t-expect-fail 'it does not exist' \
+t-expect-fail 'No such file or directory' \
check-import .. $v
mkdir ../enoents
diff --git a/tests/tests/import-linkorigs b/tests/tests/import-linkorigs
new file mode 100755
index 0000000..815f960
--- /dev/null
+++ b/tests/tests/import-linkorigs
@@ -0,0 +1,60 @@
+#!/bin/bash
+set -e
+. tests/lib
+. $troot/lib-import-chk
+
+t-tstunt-parsechangelog
+
+t-archive-none example
+v=1.0-1
+
+link_src_files () {
+ mkdir $1
+ cp $troot/pkg-srcs/${p}_* $1
+ dscfn=$1/$dscleaf
+}
+
+combo () {
+ case $bpdhow in
+ none) bpd=.. ;;
+ abs) bpd=$tmp/$subdir/bpd ;;
+ rel) bpd=../bpd ;;
+ *) x-unknown-bpdhow $bpdhow ;;
+ esac
+
+ mkdir -p $bpd
+ git config --local dgit.default.build-products-dir $bpd
+
+ dscleaf=${p}_${v}.dsc
+ dscfn=$troot/pkg-srcs/$dscleaf
+
+ case $dschow in
+ abs) ;;
+ rel) link_src_files ../copies ;;
+ bpd) link_src_files $bpd ;;
+ *) x-unknown-dschow $dschow ;;
+ esac
+
+ t-dgit import-dsc $dscfn +import
+ git reset --hard import
+
+ t-dch-commit -v$v.1 -m 'New version'
+ t-dch-commit-r
+ t-dgit build-source
+}
+
+for bpdhow in none rel abs; do
+ for dschow in rel abs; do
+
+ subdir=$bpdhow-$dschow
+ mkdir $subdir
+ cd $subdir
+
+ mkdir $p
+ cd $p
+
+ git init
+ combo
+ cd ../..
+ done
+done