tests/tmp
debian/tmp
debian/dgit
+debian/git-debpush
debian/git-debrebase
debian/dgit-infrastructure
debian/files
dgit-maint-merge.7
dgit-maint-gbp.7
dgit-maint-debrebase.7
+dgit-maint-bpo.7
dgit-sponsorship.7
dgit-downstream-dsc.7
git-debrebase.1
git-debrebase.5
+git-debpush.1
substituted
.po4a.translated-only
# dgit
# Debian::Dgit: functions common to dgit and its helpers and servers
#
-# Copyright (C) 2015-2016 Ian Jackson
+# Copyright (C) 2015-2019 Ian Jackson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
use Digest::SHA;
use Data::Dumper;
use IPC::Open2;
-use File::Path;
+use File::Path qw(:DEFAULT make_path);
use File::Basename;
use Dpkg::Control::Hash;
use Debian::Dgit::ExitStatus;
@ISA = qw(Exporter);
@EXPORT = qw(setup_sigwarn forkcheck_setup forkcheck_mainprocess
dep14_version_mangle
- debiantags debiantag_old debiantag_new
+ debiantags debiantag_new
debiantag_maintview
upstreamversion
+ upstream_commitish_search resolve_upstream_version
stripepoch source_file_leafname is_orig_file_of_p_v
server_branch server_ref
stat_exists link_ltarget rename_link_xf
hashfile
- fail failmsg ensuredir must_getcwd executable_on_path
+ fail failmsg ensuredir ensurepath
+ must_getcwd executable_on_path
waitstatusmsg failedcmd_waitstatus
failedcmd_report_cmd failedcmd
runcmd shell_cmd cmdoutput cmdoutput_errok
+ @git
git_rev_parse changedir_git_toplevel git_cat_file
git_get_ref git_get_symref git_for_each_ref
git_for_each_tag_referring is_fast_fwd
git_check_unmodified
git_reflog_action_msg git_update_ref_cmd
- make_commit_text
+ rm_subdir_cached read_tree_subdir
+ read_tree_debian read_tree_upstream
+ make_commit hash_commit hash_commit_text
reflog_cache_insert reflog_cache_lookup
- $package_re $component_re $deliberately_re
+ $package_re $component_re $suite_re $deliberately_re
$distro_re $versiontag_re $series_filename_re
- $orig_f_comp_re $orig_f_sig_re $orig_f_tail_re
+ $orig_f_comp_re $orig_f_sig_re
+ $tarball_f_ext_re $orig_f_tail_re
$extra_orig_namepart_re
$git_null_obj
$branchprefix
our $package_re = '[0-9a-z][-+.0-9a-z]*';
our $component_re = '[0-9a-zA-Z][-+.0-9a-zA-Z]*';
+our $suite_re = '[-+.0-9a-z]+';
our $deliberately_re = "(?:TEST-)?$package_re";
our $distro_re = $component_re;
our $versiontag_re = qr{[-+.\%_0-9a-zA-Z/]+};
our $extra_orig_namepart_re = qr{[-0-9a-zA-Z]+};
our $orig_f_comp_re = qr{orig(?:-$extra_orig_namepart_re)?};
our $orig_f_sig_re = '\\.(?:asc|gpg|pgp)';
-our $orig_f_tail_re = "$orig_f_comp_re\\.tar(?:\\.\\w+)?(?:$orig_f_sig_re)?";
+our $tarball_f_ext_re = "\\.tar(?:\\.\\w+)?(?:$orig_f_sig_re)?";
+our $orig_f_tail_re = "$orig_f_comp_re$tarball_f_ext_re";
our $git_null_obj = '0' x 40;
our $ffq_refprefix = 'ffq-prev';
our $gdrlast_refprefix = 'debrebase-last';
our $printdebug_when_debuglevel = 1;
our $debugcmd_when_debuglevel = 1;
+our (@git) = qw(git);
+
# these three all go together, only valid after record_maindir
our $maindir;
our $maindir_gitdir;
sub initdebug ($) {
($debugprefix) = @_;
- open DEBUG, ">/dev/null" or confess $!;
+ open DEBUG, ">/dev/null" or confess "$!";
}
sub enabledebug () {
- open DEBUG, ">&STDERR" or confess $!;
+ open DEBUG, ">&STDERR" or confess "$!";
DEBUG->autoflush(1);
$debuglevel ||= 1;
}
print DEBUG $debugprefix unless $printdebug_noprefix;
pop @_ while @_ and !length $_[-1];
return unless @_;
- print DEBUG @_ or confess $!;
+ print DEBUG @_ or confess "$!";
$printdebug_noprefix = $_[-1] !~ m{\n$};
}
sub printcmd {
my $fh = shift @_;
my $intro = shift @_;
- print $fh $intro," " or confess $!;
- print $fh shellquote @_ or confess $!;
- print $fh "\n" or confess $!;
+ print $fh $intro." ".(join '', shellquote @_)."\n" or confess "$!";
}
sub debugcmd {
return $v;
}
-sub debiantag_old ($$) {
- my ($v,$distro) = @_;
- return "$distro/". dep14_version_mangle $v;
-}
-
sub debiantag_new ($$) {
my ($v,$distro) = @_;
return "archive/$distro/".dep14_version_mangle $v;
sub debiantags ($$) {
my ($version,$distro) = @_;
- map { $_->($version, $distro) } (\&debiantag_new, \&debiantag_old);
+ map { $_->($version, $distro) } (\&debiantag_new, \&debiantag_maintview);
}
sub stripepoch ($) {
confess "mkdir $dir: $!";
}
+sub ensurepath ($$) {
+ my ($firsttocreate, $subdir) = @_; # creates necessary bits of $subidr
+ ensuredir $firsttocreate;
+ make_path "$firsttocreate/$subdir";
+}
+
sub must_getcwd () {
my $d = getcwd();
defined $d or fail f_ "getcwd failed: %s\n", $!;
sub failedcmd_report_cmd {
my $intro = shift @_;
$intro //= __ "failed command";
- { local ($!); printcmd \*STDERR, _us().": $intro:", @_ or confess $!; };
+ { local ($!); printcmd \*STDERR, _us().": $intro:", @_ or confess "$!"; };
}
sub failedcmd_waitstatus {
my $d;
$!=0; $?=0;
{ local $/ = undef; $d = <P>; }
- confess $! if P->error;
+ confess "$!" if P->error;
if (!close P) { printdebug "=>!$?\n"; return undef; }
chomp $d;
if ($debuglevel > 0) {
if (!$gcf_pid) {
my @cmd = qw(git cat-file --batch);
debugcmd "GCF|", @cmd;
- $gcf_pid = open2 $gcf_o, $gcf_i, @cmd or confess $!;
+ $gcf_pid = open2 $gcf_o, $gcf_i, @cmd or confess "$!";
}
printdebug "GCF>| $objname\n";
- print $gcf_i $objname, "\n" or confess $!;
+ print $gcf_i $objname, "\n" or confess "$!";
my $x = <$gcf_o>;
printdebug "GCF<| ", $x;
if ($x =~ m/ (missing)$/) { return $chk->($1, undef); }
if (defined $gitdir) {
@cmd = ('sh','-ec','cd "$1"; shift; exec "$@"','x', $gitdir, @cmd);
}
- open GFER, "-|", @cmd or confess $!;
+ open GFER, "-|", @cmd or confess "$!";
debugcmd "|", @cmd;
while (<GFER>) {
chomp or confess "$_ ?";
}
}
+sub upstream_commitish_search ($$) {
+ my ($upstream_version, $tried) = @_;
+ # todo: at some point maybe use git-deborig to do this
+ my @found;
+ foreach my $tagpfx ('', 'v', 'upstream/') {
+ my $tag = $tagpfx.(dep14_version_mangle $upstream_version);
+ my $new_upstream = git_get_ref "refs/tags/$tag";
+ push @$tried, $tag;
+ push @found, [ $tag, $new_upstream ] if $new_upstream;
+ }
+ return @{ $found[0] } if @found == 1;
+ return ();
+}
+
+sub resolve_upstream_version ($$) {
+ my ($new_upstream, $upstream_version) = @_;
+
+ my $used = $new_upstream;
+ my $message = __ 'using specified upstream commitish';
+ if (!defined $new_upstream) {
+ my @tried;
+ ($used, $new_upstream) =
+ upstream_commitish_search $upstream_version, \@tried;
+ if (!length $new_upstream) {
+ fail f_
+ "Could not determine appropriate upstream commitish.\n".
+ " (Tried these tags: %s)\n".
+ " Check version, and specify upstream commitish explicitly.",
+ "@tried";
+ }
+ $message = f_ 'using upstream from git tag %s', $used;
+ } elsif ($new_upstream =~ m{^refs/tags/($versiontag_re)$}s) {
+ $message = f_ 'using upstream from git tag %s', $1;
+ $used = $1;
+ }
+ $new_upstream = git_rev_parse $new_upstream;
+
+ return ($new_upstream, $used, $message);
+ # used is a human-readable idea of what we found
+}
+
sub is_fast_fwd ($$) {
my ($ancestor,$child) = @_;
my @cmd = (qw(git merge-base), $ancestor, $child);
return qw(git update-ref -m), $msg, @_;
}
+sub rm_subdir_cached ($) {
+ my ($subdir) = @_;
+ runcmd qw(git rm --quiet -rf --cached --ignore-unmatch), $subdir;
+}
+
+sub read_tree_subdir ($$) {
+ my ($subdir, $new_tree_object) = @_;
+ # If $new_tree_object is '', the subtree is deleted.
+ confess unless defined $new_tree_object;
+ rm_subdir_cached $subdir;
+ runcmd qw(git read-tree), "--prefix=$subdir/", $new_tree_object
+ if length $new_tree_object;
+}
+
+sub read_tree_debian ($) {
+ my ($treeish) = @_;
+ read_tree_subdir 'debian', "$treeish:debian";
+ rm_subdir_cached 'debian/patches';
+}
+
+sub read_tree_upstream ($;$$) {
+ my ($treeish, $keep_patches, $tree_with_debian) = @_;
+ # if $tree_with_debian is supplied, will use that for debian/
+ # otherwise will save and restore it. If $tree_with_debian
+ # is '' then debian/ is deleted.
+ my $debian =
+ defined $tree_with_debian ? "$tree_with_debian:debian"
+ : cmdoutput qw(git write-tree --prefix=debian/);
+ runcmd qw(git read-tree), $treeish;
+ read_tree_subdir 'debian', $debian;
+ rm_subdir_cached 'debian/patches' unless $keep_patches;
+}
+
sub changedir ($) {
my ($newdir) = @_;
printdebug "CD $newdir\n";
local $/="\0";
my $r = { };
- open GITS, "-|", @cmd or confess $!;
+ open GITS, "-|", @cmd or confess "$!";
while (<GITS>) {
chomp or confess;
printdebug "=> ", (messagequote $_), "\n";
my $fh = new IO::Handle;
open $fh, '<', $file or fail f_ "open %s (%s): %s", $file, $desc, $!;
my $c = parsecontrolfh($fh,$desc,$allowsigned);
- $fh->error and confess $!;
+ $fh->error and confess "$!";
close $fh;
return $c;
}
my $c = Dpkg::Control::Hash->new(name => 'parsed changelog');
my $p = new IO::Handle;
my @cmd = (qw(dpkg-parsechangelog), @_);
- open $p, '-|', @cmd or confess $!;
+ open $p, '-|', @cmd or confess "$!";
$c->parse($p);
$?=0; $!=0; close $p or failedcmd @cmd;
return $c;
# @$clogcmd is qw(dpkg-parsechangelog ...some...options...)
# calls $fn->($thisstanza, $desc);
debugcmd "|",@$clogcmd;
- open CLOGS, "-|", @$clogcmd or confess $!;
+ open CLOGS, "-|", @$clogcmd or confess "$!";
for (;;) {
my $stanzatext = do { local $/=""; <CLOGS>; };
printdebug "clogp stanza ".Dumper($stanzatext) if $debuglevel>1;
$fn->($thisstanza, $desc);
}
- confess $! if CLOGS->error;
+ confess "$!" if CLOGS->error;
close CLOGS or $?==SIGPIPE or failedcmd @$clogcmd;
}
-sub make_commit_text ($) {
+sub make_commit ($$) {
+ my ($parents, $message_paras) = @_;
+ my $tree = cmdoutput qw(git write-tree);
+ my @cmd = (qw(git commit-tree), $tree);
+ push @cmd, qw(-p), $_ foreach @$parents;
+ push @cmd, qw(-m), $_ foreach @$message_paras;
+ return cmdoutput @cmd;
+}
+
+sub hash_commit ($) {
+ my ($file) = @_;
+ return cmdoutput qw(git hash-object -w -t commit), $file;
+}
+
+sub hash_commit_text ($) {
my ($text) = @_;
my ($out, $in);
my @cmd = (qw(git hash-object -w -t commit --stdin));
debugcmd "|",@cmd;
print Dumper($text) if $debuglevel > 1;
- my $child = open2($out, $in, @cmd) or confess $!;
+ my $child = open2($out, $in, @cmd) or confess "$!";
my $h;
eval {
- print $in $text or confess $!;
- close $in or confess $!;
+ print $in $text or confess "$!";
+ close $in or confess "$!";
$h = <$out>;
$h =~ m/^\w+$/ or confess;
$h = $&;
# When we no longer need to support squeeze, use --create-reflog
# instead of this:
my $parent = $ref; $parent =~ s{/[^/]+$}{};
- ensuredir "$maindir_gitcommon/logs/$parent";
+ ensurepath "$maindir_gitcommon/logs", "$parent";
my $makelogfh = new IO::File "$maindir_gitcommon/logs/$ref", '>>'
- or confess $!;
+ or confess "$!";
my $oldcache = git_get_ref $ref;
# git update-ref doesn't always update, in this case. *sigh*
my $authline = (ucfirst _us()).
' <'._us().'@example.com> 1000000000 +0000';
- my $dummy = make_commit_text <<ENDU.(__ <<END);
+ my $dummy = hash_commit_text <<ENDU.(__ <<END);
tree $tree
parent $value
author $authline
# you must have called record_maindir
my @cmd = (qw(git log -g), '--pretty=format:%H %gs', $ref);
debugcmd "|(probably)",@cmd;
- my $child = open GC, "-|"; defined $child or confess $!;
+ my $child = open GC, "-|"; defined $child or confess "$!";
if (!$child) {
- chdir $maindir or confess $!;
+ chdir $maindir or confess "$!";
if (!stat "$maindir_gitcommon/logs/$ref") {
- $! == ENOENT or confess $!;
+ $! == ENOENT or confess "$!";
printdebug ">(no reflog)\n";
finish 0;
}
close GC;
return $1;
}
- confess $! if GC->error;
+ confess "$!" if GC->error;
failedcmd unless close GC;
return undef;
}
# changedir playground
# changedir $maindir
#
-# playtree_setup $local_git_cfg
+# playtree_setup
# # ^ call in some (perhaps trivial) subdir of playground
#
# rmtree playground
# ----- playtrees -----
-sub playtree_setup (;$) {
- my ($t_local_git_cfg) = @_;
- $t_local_git_cfg //= $local_git_cfg;
+sub playtree_setup () {
# for use in the playtree
# $maindir must be set, eg by calling record_maindir or fresh_playground
- runcmd qw(git init -q);
- runcmd qw(git config gc.auto 0);
- foreach my $copy (qw(user.email user.name user.useConfigOnly
- core.sharedRepository
- core.compression core.looseCompression
- core.bigFileThreshold core.fsyncObjectFiles)) {
- my $v = $t_local_git_cfg->{$copy};
- next unless $v;
- runcmd qw(git config), $copy, $_ foreach @$v;
- }
# this is confusing: we have
# . playtree, not a worktree, has .git/, our cwd
# $maindir might be a worktree so
# $maindir_gitdir contains our main working "dgit", HEAD, etc.
# $maindir_gitcommon the shared stuff, including .objects
- rmtree('.git/objects');
- symlink "$maindir_gitcommon/objects",'.git/objects' or confess $!;
+
+ # we need to invoke git-playtree-setup via git because
+ # there may be config options it needs which are only available
+ # to us, sensibly, in @git
+
+ # And, we look for it in @INC too. This is a bit perverse.
+ # We do this because in the Debian packages we want to have
+ # a copy of this script in each binary package, rather than
+ # making yet another .deb or tangling the dependencies.
+ # @INC is conveniently available.
+ my $newpath = join ':', +(grep { !m/:/ } @INC),
+ '/usr/share/dgit', $ENV{PATH};
+ runcmd qw(env), "PATH=$newpath", @git, qw(playtree-setup .);
+
ensuredir '.git/info';
- open GA, "> .git/info/attributes" or confess $!;
- print GA "* $negate_harmful_gitattrs\n" or confess $!;
- close GA or confess $!;
+ open GA, "> .git/info/attributes" or confess "$!";
+ print GA "* $negate_harmful_gitattrs\n" or confess "$!";
+ close GA or confess "$!";
}
1;
--- /dev/null
+Here are some hints and tips or working on src:dgit
+===================================================
+
+Program and source code layout
+------------------------------
+
+Most stuff is in the toplevel.
+Debian/ contains Perl modules, notably Debian/Dgit.pm.
+That module contains much shared code and is used by every package.
+
+The test suite is very useful for ad-hoc work, so see "Tests" below.
+
+Coding style
+------------
+
+I like to use perl "poetry mode" where ( ) are often elided.
+This is often nice and terse but there is a gotcha. This
+ some_function ($a + 2), $b, $c
+is wrong, because the ( ) are treated as function call ( )
+for some_function. When this is a risk, you have to write:
+ some_function +($a + 2), $b, $c
+
+Keep the line length to 75 at most please.
+
+i18n
+----
+
+In the Perl code we use these functions:
+
+ here: meaning: like, in C:
+ __ translate this message _ aka gettext
+ f_ this is a sprintf string to be translated sprintf(_ ...
+ i_ mark for translation but do not translate here gettext_noop
+
+See the info node `(gettext) Sources' for the complete semantics.
+
+The shell scripts are not translated right now.
+
+Running ad-hoc
+--------------
+
+You can run everything right out of the git tree, for ad hoc testing,,
+like this (supposing your dgit tree is in things/Dgit/dgit):
+
+ ~/things/Dgit/dgit/using-these dgit --some-option blah blah
+
+using-these will set PATH and PERLLIB so that programs and modules
+come from its own directory (obtained from $0).
+
+Tests, running and use for hacking
+----------------------------------
+
+The test cases are in bash and are in tests/tests/*. They all use
+shell libraries tests/lib*.
+
+You can run it formally with autopkgtest, but you normally want to run
+tests in one of these two ways [1]:
+
+ tests/using-intree tests/tests/<some-test> 2>&1 |tee ../log
+ tests/run-all [tests/tests/<some shell glob>]
+
+These will leave their working stuff in ./tests/tmp/<name-of-test>.
+
+The test suite is often a nice way to set up situations for ad-hoc
+testing. You can add "xxx" in the middle of one of the test cases to
+get it to crash at the right point. Have an absolute cd like
+ cd ~/things/Dgit/dgit/tests/tmp/<some-test>
+in your shell history, because each time you run the test it will
+blow that directory away again.
+
+There are many env vars settings like
+ DGIT_TEST_DEBUG= DGIT_TEST_DEBUG=-DDD
+ DGIT_TEST_DEBPUSH_DEBUG= DGIT_TEST_DEBPUSH_DEBUG=x
+which can be used to control the level of debug output from
+individual programs run by the test suite.
+
+Editing/adding tests
+--------------------
+
+Things in tests/setup/ generate canned starting points. You can run
+them by hand, but when they are imported by other tests they are not
+automatically regenerated by default. So if you are editing one of
+those, git-clean is your friend.
+
+debian/tests/control is autogenerated by a rule in debia/rules. If
+making actual releases, you must rerun that.
+
+[1] The test suite and libraries, when run without any special
+environment variables, expect to be run via DEP-8 (autopkgtest) - so
+they want an to everything out of PATH and /usr. But there are also
+arrangements to honour environment variables set by using-intree.
# dgit
# Integration between git and Debian-style archives
#
-# Copyright (C)2013-2016 Ian Jackson
+# Copyright (C)2013-2018 Ian Jackson
+# Copyright (C)2019 Sean Whitton
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
txtdocdir=$(prefix)/share/doc/dgit
absurddir=$(prefix)/share/dgit/absurd
-PROGRAMS=dgit dgit-badcommit-fixup
+PROGRAMS=dgit dgit-badcommit-fixup git-playtree-setup
MAN1PAGES=dgit.1
MAN7PAGES=dgit.7 \
dgit-maint-merge.7 dgit-maint-gbp.7 \
dgit-maint-debrebase.7 \
dgit-downstream-dsc.7 \
- dgit-sponsorship.7
+ dgit-sponsorship.7 \
+ dgit-maint-bpo.7
TXTDOCS=README.dsc-import
PERLMODULES= \
GDR_MAN1PAGES=git-debrebase.1
GDR_MAN5PAGES=git-debrebase.5
-INFRA_PROGRAMS=dgit-repos-server dgit-ssh-dispatch \
+GDP_PROGRAMS=git-debpush
+GDP_MAN1PAGES=git-debpush.1
+
+INFRA_PROGRAMS=dgit-repos-server dgit-ssh-dispatch dgit-mirror-ssh-wrap \
dgit-repos-policy-debian dgit-repos-admin-debian \
dgit-repos-policy-trusting dgit-mirror-rsync
INFRA_EXAMPLES=get-dm-txt ssh-wrap drs-cron-wrap get-suites
Debian/Dgit/Policy/Debian.pm
MANPAGES=$(MAN1PAGES) $(MAN5PAGES) $(MAN7PAGES) \
- $(GDR_MAN1PAGES) $(GDR_MAN5PAGES)
+ $(GDR_MAN1PAGES) $(GDR_MAN5PAGES) \
+ $(GDP_MAN1PAGES)
all: $(MANPAGES) $(addprefix substituted/,$(PROGRAMS))
$(DESTDIR)$(txtdocdir) $(DESTDIR)$(absurddir) \
$(addprefix $(DESTDIR)$(perldir)/, $(dir $(PERLMODULES)))
+install-gdp: installdirs-gdp
+ $(INSTALL_PROGRAM) $(GDP_PROGRAMS) $(DESTDIR)$(bindir)
+ $(INSTALL_DATA) $(GDP_MAN1PAGES) $(DESTDIR)$(man1dir)
+
install-gdr: installdirs-gdr
$(INSTALL_PROGRAM) $(GDR_PROGRAMS) $(DESTDIR)$(bindir)
$(INSTALL_DATA) $(GDR_MAN1PAGES) $(DESTDIR)$(man1dir)
$(INSTALL_DATA) $$m $(DESTDIR)$(perldir)/$${m%/*}; \
done
+installdirs-gdp:
+ $(INSTALL_DIR) $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
+
installdirs-gdr:
$(INSTALL_DIR) $(DESTDIR)$(bindir) \
$(DESTDIR)$(man1dir) $(DESTDIR)$(man5dir) \
--name=$(subst .$*,,$@) \
$^ $@
+git-debpush.1: git-debpush.1.pod
+ pod2man --section=1 --date="Debian Project" --center="git-debpush" \
+ --name git-debpush \
+ $^ $@
+
%.view: %
man -l $*
*) exec 3>>../../gbp-pq-output 2>&3 ;;
esac
+exec 4>>../../absurd-apply-warnings
+
log () {
echo >&3 "DGIT ABSURD GIT APPLY (DEBUG) $*"
echo >&2 "DGIT ABSURD GIT APPLY (STDERR) $*"
fail "PATH FILTER FAIL ($0 $self $PATH)"
fi
+filter_path () {
+ PATH=$npath
+}
+
+squash_author () {
+ author_vars='NAME EMAIL DATE'
+ for var in in $author_vars; do
+ eval "GIT_AUTHOR_$var=\$GIT_COMMITTER_$var"
+ done
+}
+
+try_commit () { git commit-tree "$try_commit_obj" </dev/null >/dev/null; }
+
+maybe_squash_author () {
+ if (set -e; filter_path; try_commit); then return; fi
+ if ! (set -e; filter_path; squash_author; try_commit); then return; fi
+ read last <../../absurd-apply-applied
+ echo >&4 \
+ "dgit: warning: suppressed corrupted metadata! ($last)"
+ squash_author
+}
+
bypass=true
for arg in "$@"; do
case "$arg" in
apply) bypass=false; break ;;
+ commit-tree)
+ # Work around #950446 in gbp
+ echo >&3 "DGIT ABSURD GIT APPLY - COMMIT-TREE: $*"
+ try_commit_obj="$2"
+ maybe_squash_author
+ bypass=true; break
+ ;;
-*) ;;
*) bypass=true; break ;;
esac
done
if $bypass; then
- PATH=$npath
+ filter_path
echo >&3 "DGIT ABSURD GIT APPLY - BYPASS: $*"
exec git "$@"
fi
git add -Af .
log "APPLIED $patch"
+printf >../../absurd-apply-applied '%s\n' "$patch"
#printf 'APPLIED '; date --iso-8601=ns
+dgit (9.14~) unstable; urgency=medium
+
+ *
+
+ --
+
+dgit (9.13) unstable; urgency=medium
+
+ * gitattributes defuse: work even if .git/info/attributes missing
+ (Closes: #981344)
+ * dgit-maint-*(7): Advice for git-debpush users.
+ Closes:#932520. [Sean Whitton]
+ * dgit.1: drop remark about sbuild not building arch-independent.
+ Closes:#952442. [Helmut Grohne]
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Fri, 12 Feb 2021 12:48:15 +0000
+
+dgit (9.12) unstable; urgency=medium
+
+ Bugfixes:
+ * dgit-mirror-ssh-wrap: Cope with yet another new rsync rune.
+ Closes:#968635. [Sergio Durigan Junior]
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Wed, 19 Aug 2020 17:25:45 +0100
+
+dgit (9.11) unstable; urgency=medium
+
+ Bugfixes:
+ * git-debrebase, git-debpush: fail when looking for upstream tag if
+ there is more than one candidate. Closes:#961682. [Sean Whitton]
+ * git-debrebase: Fix error message for wrong use of -i
+ * git-debrebase: new-upstream: Do not treat late options as version
+
+ Documentation:
+ * dgit-maint-debrebase(7): Drop some bad advice about the upstream/ tag
+ case. Closes:#961683. [Sean Whitton]
+ * git-debrebase(1): Fix new-upstream -i docs
+
+ dgit-infrastructure:
+ * dgit-mirror-ssh-wrap: Cope with new rsync rune. Closes:#963489.
+ * dgit-mirror-ssh-wrap: Clarify the error message
+
+ Test suite:
+ * Cope with buster & eatmydata (ie, work around #963508)
+ * Provide navigation banner in log when exiting nonzero
+ * Print pwd in failure trap to help with diagnosis
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Mon, 22 Jun 2020 19:09:17 +0100
+
+dgit (9.10) unstable; urgency=medium
+
+ dgit bugfix:
+ * Work around gbp metadata handling bug which can prevent import
+ of some anomalous source packages. Closes:#950326.
+ Report from Peter Green.
+
+ git-debpush bugfix:
+ * avoid a pipefail problem. Closes:#940588. [Sean Whitton]
+
+ Documentation:
+ * Terminology: Change "rewind" to "rewrite" where appropriate
+ * dgit(1): Cover more cases of --overwrite and --deliberately
+ Closes:#928473.
+ * dgit(1): Do not talk about `intermediate' uploads.
+ * d-m-{merge,debrebase}(7): Use an 'upstream/' tag prefix in
+ gbp.conf; set `merge' in gbp.conf; import tarball before
+ committing gbp.conf. Closes:#932954. [Sean Whitton]
+
+ i18n:
+ * Updated nl.po file. Closes:#945356. [Frans Spiesschaert]
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Mon, 03 Feb 2020 08:41:10 +0000
+
+dgit (9.9) unstable; urgency=medium
+
+ Documentation:
+ * dgit-maint-{merge,debrebase}(7): Suggest a better rune.
+ (`git fetch --tags upstream') Closes:#939679. [Sean Whitton]
+ * git-debpush(1) minor improvements. Closes:#935084. [Sean Whitton]
+ * dgit(1): Fix a typo (found by lintian)
+ * dgit-maint-bpo(7): Mention occasional need for --new. Closes:#935443.
+ * git-debrebase: Extend extended description for this .deb.
+
+ Infrastructure:
+ * New script dgit-mirror-ssh-wrap suitable for use as restricted
+ command on repos mirror target hosts, and corresponding test.
+
+ Packaging niggles:
+ * control: Add missing dependency on liburl-perl (dgit and tests)
+ * control: Drop redundant Priority field for dgit-infrastruture
+ * control: update Vcs-Git to end in .git
+ * lintian: Override some checks
+ * control: Bump Standards-Version to 4.4.0.0.
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Sat, 14 Sep 2019 21:34:13 +0100
+
+dgit (9.8) unstable; urgency=medium
+
+ dgit, important bugfixes for bugs introduced in 9.6:
+ * Once again cope with archive skew. Closes:#935874.
+ [Initial report from Colin Watson]
+ * Follow http[s] redirects again. Closes:#939564.
+
+ dgit, useful new behaviours and fixes:
+ * Use distro-info-data to resolve unknown suites. Closes:#931212.
+ [Suggestion from Simon McVittie]
+ * Try to warn about misplacement of dgit options. Closes:#934807.
+ [Useability report from Félix Sipma]
+ * Fail early when the archive/ tag already exists, ie when version
+ needs to be not reused. Closes:#935802.
+ [Useability report from IOhannes m zmölnig]
+ * Do not mistakely reject .asc and .sig files with push-source -C.
+ Closes:#939280. [Report from Simon McVittie]
+
+ docs:
+ * dgit-maint-{merge,debrebase}(7): Suggest git fetch --all --tags
+ as it handles tags better. [Sean Whitton] Closes:#939504.
+ * git-debrebase(5): Tiny typo fix.
+ * dgit(1): Some semantic linefeeds (no change to rendered output)
+
+ Supporting changes:
+ * test suite: New test for http mirror and archive skew
+ * test suite: Test already-tagged check
+ * test suite: Add --force-reusing-version to many tests as now needed
+ * Dgit: Minor refactoring of a regexp.
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Fri, 06 Sep 2019 23:42:15 +0100
+
+dgit (9.7) unstable; urgency=medium
+
+ dgit general bugfixes:
+ * Correctly test for presence of git repo on dgit git server.
+ Fixes behaviour following mixed dgit/non-dgit uploads. Closes:#934126.
+ (Was badly broken by http fetching rework in dgit 9.6.)
+ * Fix use on NFS, by closing a file which is going to be deleted.
+ [Report and fix from Stéphane Glondu] Closes:#933827.
+
+ dgit vcs-git bugfixes:
+ * Strip [<path>] (used eg by Debian Haskell Team). Closes:#932699.
+ * update-vcs-git: Cope if url is unchanged.
+ * update-vcs-git: Strip -b (as it always should have done).
+
+ Test suite:
+ * New facilities for http testing, including mock webservers.
+ * New test cases for http, and for bugs fixed in this version.
+ * Switch to using http git check in three existing tests.
+ * Improve debian/tests/control generator.
+ * Limited refactoring to support other changes.
+
+ Other minor changes:
+ * dgit: Slightly more debugging for check_for_git with http[s]
+ * changelog: Fix a typo in the entry for 9.6.
+ * i18n (messages) updated, following message changes.
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Sun, 11 Aug 2019 01:11:01 +0100
+
+dgit (9.6) unstable; urgency=medium
+
+ * git-playtree-setup had a spurious set -x so many programs spewed
+ debugging output. This is now fixed. Closes:#932959.
+
+ dgit:
+ * Drop support for configuring old, not currently enabled, methods
+ of TLS key/cert pinning. We are going to revisit this soon.
+ * Provide a --for-push option (useful in for certain special users).
+ * Reduce variety in HTTP clients we use. Specifically, use WWW::Curl
+ for accessing (i) the ftpmaster API, (ii) the http dgit git server
+ mirror (iii) downloading the .dsc.
+
+ Administrivia:
+ * Add missing Closes of #932476 to changelog entry for 9.5
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Thu, 25 Jul 2019 13:12:08 +0100
+
+dgit (9.5) unstable; urgency=medium
+
+ git-debpush [Sean Whitton]:
+ * Support ignoring individual checks with --force=check. Closes:#932459.
+ * Check upstream source is identical in the upstream tag. Closes:#932476.
+ * Check that patches are (un)applicable. Closes:#932477.
+ * Check for an unstitched git-debrebase branch. Closes:#932612.
+ * Check for explicitly pushing detached HEAD.
+
+ dgit clone [Ian Jackson]:
+ * No longer create an "origin" remote. Closes:#932694.
+
+ Documentation:
+ * dgit-maint-bpo(7): new manpage for maintainers of official Debian
+ backports. Closes:#857490. [Sean Whitton]
+ * git-debrebase(1): make this manpage a less intimidating entry point.
+ Closes:#926656.
+ [Sean Whitton & Ian Jackson; prompted by feedback from Sam Hartman]
+
+ Miscellaneous:
+ * Correct the description of --force in git-debpush(1) [Sean Whitton].
+ * git-debrebase(*): fix some crossreferences [Sean Whitton].
+ Closes:#932536.
+ * Break out git-playtree-setup and rewrite in shell. [Ian Jackson]
+ * Fix organisation copyright attribution for Matthew Vernon's
+ contributions. Closes:#932630.
+ * HACKING: new document for helping people work on the code. [Ian Jackson]
+ * Update Vcs-Git etc. to point to salsa.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Mon, 22 Jul 2019 21:38:19 +0100
+
+dgit (9.4) unstable; urgency=medium
+
+ dgit:
+ * Support the Ubuntu Cloud Archive [Matthew Vernon]. Closes:#932322.
+
+ test suite:
+ * tag-to-upload tests: Tolerate a changed git message. Closes:#932475.
+
+ administrivia:
+ * debian/copyright: Add some missing credtis
+ * Update copyright notices in many files
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Sat, 20 Jul 2019 16:26:32 +0100
+
+dgit (9.3) unstable; urgency=medium
+
+ dgit and git-debrebase bugfixes:
+ * No longer crash if .git/logs does not exist when we need it.
+ * Report the upstream tag, rather than commit id, in tags/commits,
+ if the user explicitly specifies refs/tags/...
+
+ tag-to-upload, git-debpush [Sean Whitton]:
+ * Several new checks designed to prevent broken uploads.
+ - Including: Check that upstream tag is ancestor of branch to be tagged.
+ Closes:#932096
+ * Cope with spaces in user-supplied upstream tag.
+
+ tag-to-upload, server side:
+ * Fix non-default quilt modes. These were all previously broken.
+ * Arrange to report the upstream tag in dgit-generated commits/tags.
+
+ dgit archive query improvements [Matthew Vernon]:
+ * dgit(1): document the presence of the aptget method. Closes:#932321.
+
+ minor supporting changes:
+ * New tests tagupl-baredebian and tagupl-gbp.
+ * Tiny addition to debugging output and test suite output.
+ * Test suite rearrangements.
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Thu, 18 Jul 2019 03:10:25 +0100
+
+dgit (9.2) unstable; urgency=medium
+
+ * No change upload to force rebuild on buildd.
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Tue, 09 Jul 2019 22:01:25 +0100
+
+dgit (9.1) unstable; urgency=medium
+
+ New tools for a "git-push-to-upload" workflow [Ian Jackson & Sean Whitton]:
+ * New script in a new binary package: git-debpush.
+ The new binary package is small, but
+ + git-debpush needs to be in src:dgit, because its test suite is the
+ dgit test suite; however,
+ + git-debpush is functionally and conceptually independent of dgit,
+ so should not go into bin:dgit; in particular
+ + git-debpush's dependencies are quite different to the other
+ binary packages.
+ * New dgit-infrastructure subcommand, tag2upload, to process tags made
+ by git-debpush.
+ Please see git-debpush(1) for a sketch of the workflow.
+
+ dgit:
+ * Allow the -p option to be used with various push modes.
+ * Include dgit tag metadata in maintainer view tags.
+ For consistency with, and use by, git-debpush.
+ * Include quilt metadata in the archive/ (dgit view) tag.
+ * rpush protocol: Version 6, which includes split brain information
+ for maintainer view tags. And, actually use newer version
+ (was broken in 9.0, which would prefer to select 4 not 5).
+ * Add some missing blank lines to tag messages.
+ * Some other refactoring.
+
+ Other documentation:
+ * dgit(1): fix a reference in the description of --quilt=auto [Sean
+ Whitton].
+
+ Translations:
+ * Do not translate tag subject lines, because these are parsed by
+ dgit-repos-server.
+
+ Test suite:
+ * Test cases for new tools for "git-push-to-upload" workflow.
+ * drs-git-ext: honour DGIT_DRS_MODE.
+ * Provide a stunt sendmail and a stunt dgit.
+ * Unset CDPATH in case caller has it set.
+ * Some other refactoring.
+
+ Administrivia:
+ * Update d/copyright years to include 2019 [Sean Whitton].
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Sun, 07 Jul 2019 14:28:27 +0100
+
+dgit (9.0) unstable; urgency=medium
+
+ dgit - low-impact incompatible change:
+ * Drop support for, and testing of, dgit versions which use old tag name
+ (debian/V; now that is maintainer view and dgit is archive/debian/V).
+ The new tags came in in dgit 2.0 in October 2016. No version of dgit
+ without them was in any Debian release. We don't expect there are any
+ sites using old servers which do not support the new format, or anyone
+ using a dgit client older than 2.x who cannot upgrade.
+
+ git-debrebase fixes [Niko Tyni]:
+ * Fix `git-debrebase convert-from-dgit-view <upstream>', which
+ would crash due to an argument parser bug. Closes:#930214.
+ * git-debrebase(1): typo fix. Closes:#930215.
+
+ dgit - new capabilities:
+ * Support split view with native packages, and with all quilt modes.
+ Now we distinguish "split view" (meaning separate dgit branch) from
+ "splitting quilt modes" (eg --quilt-unapplied).
+ [Prompted in part by enquiries from Sam Hartman] Closes:#926640.
+ * Support for bare debian/ directory (aka packaging-only) git branches
+ Ie, --quilt=baredebian[+tarball]. [Thanks for info from Shengjing
+ Zhu, and docs and UI contributions/review from Sean Whitton.]
+ Closes:#903392. Closes:#931253.
+
+ dgit - bugfixes:
+ * Fix --dgit-view-save option alias, which never worked.
+ (--save-dgit-view worked, and still does, though.)
+ * i18n: Do not translate import commit messages.
+
+ dgit - other documentation improvements [Sean Whitton]:
+ * Expand on description of --include-dirty. New text may help
+ user avoid unexpected file deletion. Closes:#930922.
+ * dgit-maint-*(7): Suggest --name-status --diff-filter. Closes:#930956.
+ * dgit-maint-*(7): Using untagged upstream commits. Closes:#930964.
+
+ dgit - minor consequences of these other changes:
+ * Actually properly reject invalid quilt modes found in git config.
+ (Previously they might be accepted and then cause malfunctions.)
+ * Reject split brain quilt modes with single-debian-patch.
+ (Previously this would malfunction; now we reject it.)
+ * i18n: Add translator notes about ASCII art changes display.
+ * Drop "dgit view: changes are required..." message.
+ * Some other minor changes to quilt fixup error handling.
+ * Changes to debugging output related to quilt modes and split view.
+ * Introduce rpush protocol version 5. Minimum version is now 4.
+ * Considerable internal rearrangement of quilt fixup code.
+ * Considerable test suite work including new tests.
+
+ dgit test suite:
+ * dgit-repos-policy-debian: Test taint removal. Closes:#929249.
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Tue, 02 Jul 2019 16:55:15 +0100
+
+dgit (8.6~) UNRELEASED; urgency=medium
+
+ * dgit: rpush: Work in splitting quilt modes, again. Closes:#931213.
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Tue, 02 Jul 2019 14:36:47 +0100
+
+dgit (8.5) unstable; urgency=medium
+
+ * Replace `confess $!' with `confess "$!"', to actually print errno
+ when crashing. Closes:#929549.
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Mon, 27 May 2019 00:20:58 +0100
+
dgit (8.4) unstable; urgency=medium
Bugfixes:
Section: devel
Priority: optional
Maintainer: Ian Jackson <ijackson@chiark.greenend.org.uk>
-Standards-Version: 3.9.4.0
+Standards-Version: 4.4.0.0
Build-Depends: debhelper (>= 9), gettext, po4a, tcl
Testsuite: autopkgtest
-Vcs-Git: git://git.chiark.greenend.org.uk/~ianmdlvl/dgit.git
-Vcs-Browser: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git/dgit.git/
+Vcs-Git: https://salsa.debian.org/dgit-team/dgit.git
+Vcs-Browser: https://salsa.debian.org/dgit-team/dgit
Package: dgit
-Depends: perl, libwww-perl, libdpkg-perl, git-core, devscripts, dpkg-dev,
+Depends: perl, libdpkg-perl, git-core, devscripts, dpkg-dev,
${misc:Depends}, git-buildpackage, liblist-moreutils-perl,
liblocale-gettext-perl,
coreutils (>= 8.23-1~),
libdigest-sha-perl, dput, curl, apt,
libjson-perl, ca-certificates,
- libtext-iconv-perl, libtext-glob-perl
-Recommends: ssh-client
+ libtext-iconv-perl, libtext-glob-perl, libwww-curl-perl,
+ libtext-csv-perl
+Recommends: ssh-client, distro-info-data, liburi-perl
Suggests: sbuild | pbuilder | cowbuilder
Architecture: all
Description: git interoperability with the Debian archive
Description: rebasing git workflow tool for Debian packaging
git-debrebase is a tool for representing in git, and manipulating,
Debian packages based on upstream source code.
+ .
+ git-debrebase is an alternative to workflows including git-dpm,
+ gbp pq, and direct use of quilt patches.
+
+Package: git-debpush
+Depends: devscripts, git, gnupg, ${misc:Depends}
+Architecture: all
+Description: client script for git pushing to Debian-style archives
+ git-debpush is a script to create and push a specially formatted
+ signed git tag. The metadata in the tag indicates that the tagged
+ commit should be pushed (or "uploaded") to a Debian-style archive.
+ .
+ Tags generated by this script can be read by an intermediary service,
+ which performs any conversion that's needed (such as producing and
+ signing a .dsc and .changes), and then uploads the result to the
+ Debian-style archive on your behalf.
Package: dgit-infrastructure
Depends: ${misc:Depends}, perl, git-core, gpgv, chiark-utils-bin,
libjson-perl, libdigest-sha-perl, libdbd-sqlite3-perl, sqlite3,
- libwww-perl, libdpkg-perl,
+ libdpkg-perl,
liblocale-gettext-perl
Recommends: dgit
Architecture: all
-Priority: extra
Description: dgit server backend infrastructure
This package contains tools which are useful for setting up a dgit
git repository server. You probably want dgit, the client package,
dgit
Integration between git and Debian-style archives
-Copyright (C)2013-2018 Ian Jackson
-Copyright (C)2016-2018 Sean Whitton
+Copyright (C)2013-2019 Ian Jackson
+Copyright (C)2016-2019 Sean Whitton
+Copyright (C)2018-2019 Frans Spiesschaert
+Copyright (C)2019 Matthew Vernon / Genome Research Limited
+Copyright (C)2019 Paul Hardy
Copyright (C)1999-2010 Joey Hess
Copyright (C)2004-2010 Colin Watson
+Copyright (C)2004-2015 Best Practical Solutions, LLC
This program is free software: you can redistribute it and/or modify
--- /dev/null
+manpage-has-errors-from-man usr/share/man/man1/dgit.1.gz file '<standard input>', around line 51:
+binary-without-manpage usr/bin/dgit-badcommit-fixup
--- /dev/null
+git-playtree-setup /usr/share/git-debpush
# dgit
# Integration between git and Debian-style archives
#
-# Copyright (C)2013-2016 Ian Jackson
+# Copyright (C)2013-2019 Ian Jackson
+# Copyright (C)2019 Sean Whitton
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
globalperl=/usr/share/perl5
-override_dh_auto_install: specpkg_install_gdr specpkg_install_infra
+override_dh_auto_install: specpkg_install_gdp \
+ specpkg_install_gdr \
+ specpkg_install_infra
make install prefix=/usr DESTDIR=debian/dgit
make -C po install prefix=/usr DESTDIR=../debian/tmp \
SUPPRESS_PO_UPDATE=1 S=''
+ mv debian/dgit/usr/bin/git-playtree-setup debian/dgit/usr/share/dgit
make -C po4a install DESTDIR=../debian/tmp S=''
override_dh_missing:
dh_missing --fail-missing
+specpkg_install_gdp: p=git-debpush
+
specpkg_install_gdr: p=git-debrebase
specpkg_install_gdr: pm=GDR
specpkg_install_infra: p=dgit-infrastructure
specpkg_install_infra: pm=Infra
+define specpkg_install_common
+ make install-$(tok) prefix=/usr DESTDIR=debian/$(p) perldir=$(specperl)
+endef
+
+specpkg_install_gdp: tok=gdp
+specpkg_install_gdp: specperl=/usr/share/dgit/gdp/perl5
+specpkg_install_gdp:
+ $(specpkg_install_common)
+ set -x; perl -i -pe 'next unless m/###substituted###/;' \
+ -e 's{^(git_playtree_setup)=.*}{$$1=/usr/share/$p/git-playtree-setup};' \
+ debian/$(p)/usr/bin/*
+
specpkg_install_%: tok=$*
specpkg_install_%: specperl=/usr/share/dgit/$(tok)/perl5
specpkg_install_%:
- make install-$(tok) prefix=/usr DESTDIR=debian/$(p) perldir=$(specperl)
+ $(specpkg_install_common)
# # Most of the Perl modules in this package live in
# # $(specperl). The exception is Debian::Dgit::Infra, which
# # lives in $(globalperl) and adds $(specperl) to @INC.
+# # We also abuse this for git-playtree-setup. In .debs, this
+# # goes in the per-.deb @INC dir. See Dgit.pm::playtree_setup.
set -ex; \
base=debian/$(p); \
mod=Debian/Dgit/$(pm).pm; \
dst=$${base}$(globalperl)/$${mod}; \
mkdir -p $${dst%/*}; \
mv -f $$src $$dst; \
+ install -m 755 git-playtree-setup $${base}$(specperl); \
perl -i -p -e 'next unless m/###substituted###/;' \
-e 'next unless s/^# (?=unshift \@INC,)//;' \
-e 'die unless s{q\{\S+\}}{q{$(specperl)}};' \
--- /dev/null
+file-contains-trailing-whitespace debian/changelog *
+unknown-runtime-tests-restriction x-dgit-*
+missing-debian-source-format
+older-source-format 1.0
+Tests: baredebian-multitar baredebian-plusgit baredebian-push baredebian-tarball
+Tests-Directory: tests/tests
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, quilt, git-debrebase, git-buildpackage, libdpkg-perl, libgit-wrapper-perl, liblist-compare-perl, libstring-shellquote-perl, libtry-tiny-perl
+
Tests: build-modes-gbp
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, git-buildpackage
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, git-buildpackage
Tests: clone-reprepro downstream-gitless
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, reprepro
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, reprepro
Tests: dpkgsourceignores-docs
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl
Restrictions: x-dgit-intree-only
Tests: defdistro-dsd-clone-drs dsd-clone-drs
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl
Restrictions: x-dgit-intree-only x-dgit-git-only
+Tests: alternating-dgit clone-gitnosuite clone-nogit clone-skew drs-clone-nogit dsd-clone-nogit ftpmasterapi-http
+Tests-Directory: tests/tests
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, libhttp-server-simple-static-perl
+
+Tests: gdr-import-dgit
+Tests-Directory: tests/tests
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, git-debrebase, git-buildpackage, libhttp-server-simple-static-perl
+
Tests: gdr-merge-conflicts
Tests-Directory: tests/tests
Depends: chiark-utils-bin, faketime, git-debrebase, git-buildpackage, quilt
-Tests: gdr-diverge-nmu gdr-diverge-nmu-dgit gdr-edits gdr-fresh gdr-import-dgit gdr-import-dgitview gdr-import-nostitch gdr-makepatches7 gdr-merge gdr-subcommands gdr-unprocessable gdr-unprocessable-hints
+Tests: gdr-diverge-nmu gdr-diverge-nmu-dgit gdr-edits gdr-fresh gdr-import-dgitview gdr-import-nostitch gdr-makepatches7 gdr-merge gdr-subcommands gdr-unprocessable gdr-unprocessable-hints
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, git-debrebase, git-buildpackage
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, git-debrebase, git-buildpackage
Tests: gitattributes
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, bsdgames, man-db, git-man
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, bsdgames, man-db, git-man
Tests: hint-testsuite-triggers
Tests-Directory: tests/tests
Tests: manpages-format
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, man-db, make, groff, git-debrebase
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, man-db, make, groff, git-debrebase, git-debpush
Tests: defdistro-mirror mirror mirror-debnewgit mirror-private
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, rsync
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, rsync
Tests: build-modes-sbuild quilt-gbp-build-modes-sbuild
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, sbuild
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, sbuild
Restrictions: x-dgit-schroot-build
Tests: sbuild-gitish
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, sbuild, man-db
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, sbuild, man-db
Restrictions: x-dgit-schroot-build
Tests: i18n-po4a-uptodate package-build spelling
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl
Restrictions: x-dgit-git-only
+Tests: tagupl
+Tests-Directory: tests/tests
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, libdpkg-perl, libgit-wrapper-perl, liblist-compare-perl, libstring-shellquote-perl, libtry-tiny-perl, git-debpush
+
+Tests: tagupl-baredebian
+Tests-Directory: tests/tests
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, quilt, git-debpush, git-debrebase, git-buildpackage, libdpkg-perl, libgit-wrapper-perl, liblist-compare-perl, libstring-shellquote-perl, libtry-tiny-perl
+
+Tests: tagupl-gbp
+Tests-Directory: tests/tests
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, git-debpush, libdpkg-perl, libgit-wrapper-perl, liblist-compare-perl, libstring-shellquote-perl, libtry-tiny-perl
+
+Tests: tagupl-native
+Tests-Directory: tests/tests
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, git-debpush
+
Tests: test-list-uptodate
Tests-Directory: tests/tests
Depends: git
Tests: trustingpolicy-replay
Tests-Directory: tests/tests
-Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, dput-ng
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl, 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-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: absurd-gitapply badcommit-rewrite build-modes build-modes-long build-modes-source checkout clone-clogsigpipe debpolicy-dbretry debpolicy-newreject debpolicy-quilt-gbp debpolicy-taintrm defdistro-rpush defdistro-setup distropatches-reject dpkgsourceignores-correct drs-push-masterupdate drs-push-rejects dsd-divert fetch-localgitonly fetch-somegit-notlast forcesplit-linear forcesplit-overwrite gbp-orig gitconfig gitworktree import-dsc import-linkorigs import-maintmangle import-native import-nonnative import-tarbomb inarchivecopy mismatches-contents mismatches-dscchanges multisuite 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 rpush-quilt 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
+Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl
# dgit
# Integration between git and Debian-style archives
#
-# Copyright (C)2013-2018 Ian Jackson
-# Copyright (C)2017-2018 Sean Whitton
+# Copyright (C)2013-2019 Ian Jackson
+# Copyright (C)2017-2019 Sean Whitton
+# Copyright (C)2019 Matthew Vernon / Genome Research Limited
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
use IO::Handle;
use Data::Dumper;
-use LWP::UserAgent;
+use WWW::Curl::Easy;
use Dpkg::Control::Hash;
use File::Path;
use File::Spec;
use File::Temp qw(tempdir);
use File::Basename;
+use File::Copy ();
use Dpkg::Version;
use Dpkg::Compression;
use Dpkg::Compression::Process;
use Digest::MD5;
use List::MoreUtils qw(pairwise);
use Text::Glob qw(match_glob);
+use Text::CSV;
use Fcntl qw(:DEFAULT :flock);
use Carp;
our $our_version = 'UNRELEASED'; ###substituted###
our $absurdity = undef; ###substituted###
-our @rpushprotovsn_support = qw(4 3 2); # 4 is new tag format
+$SIG{INT} = 'DEFAULT'; # work around #932841
+
+our @rpushprotovsn_support = qw(6 5 4); # Reverse order!
our $protovsn;
our $cmd;
our $rmchanges;
our $overwrite_version; # undef: not specified; '': check changelog
our $quilt_mode;
-our $quilt_modes_re = 'linear|smash|auto|nofix|nocheck|gbp|dpm|unapplied';
+our $quilt_upstream_commitish;
+our $quilt_upstream_commitish_used;
+our $quilt_upstream_commitish_message;
+our $quilt_options_re = 'gbp|dpm|baredebian(?:\+tarball|\+git)?';
+our $quilt_modes_re = "linear|smash|auto|nofix|nocheck|unapplied|$quilt_options_re";
+our $splitview_mode;
+our $splitview_modes_re = qr{auto|always|never};
our $dodep14tag;
our %internal_object_save;
our $we_are_responder;
our $we_are_initiator;
our $initiator_tempdir;
our $patches_applied_dirtily = 00;
-our $tagformat_want;
-our $tagformat;
-our $tagformatfn;
our $chase_dsc_distro=1;
our %forceopts = map { $_=>0 }
qw(unrepresentable unsupported-source-format
dsc-changes-mismatch changes-origs-exactly
uploading-binaries uploading-source-only
+ reusing-version
import-gitapply-absurd
import-gitapply-no-absurd
import-dsc-with-dgit-field);
our %format_ok = map { $_=>1 } ("1.0","3.0 (native)","3.0 (quilt)");
-our $suite_re = '[-+.0-9a-z]+';
our $cleanmode_re = qr{(?: dpkg-source (?: -d )? (?: ,no-check | ,all-check )?
| (?: git | git-ff ) (?: ,always )?
| check (?: ,ignores )?
our @dpkg_source_ignores = qw(-i(?:^|/)\.git(?:/|$) -I.git);
-our (@git) = qw(git);
our (@dget) = qw(dget);
our (@curl) = (qw(curl --proto-redir), '-all,http,https', qw(-L));
our (@dput) = qw(dput);
autoflush STDOUT 1;
our $supplementary_message = '';
-our $split_brain = 0;
+our $made_split_brain = 0;
+our $do_split_brain;
+
+# Interactions between quilt mode and split brain
+# (currently, split brain only implemented iff
+# madformat_wantfixup && quiltmode_splitting)
+#
+# source format sane `3.0 (quilt)'
+# madformat_wantfixup()
+#
+# quilt mode normal quiltmode
+# (eg linear) _splitbrain
+#
+# ------------ ------------------------------------------------
+#
+# no split no q cache no q cache forbidden,
+# brain PM on master q fixup on master prevented
+# !do_split_brain() PM on master
+#
+# split brain no q cache q fixup cached, to dgit view
+# PM in dgit view PM in dgit view
+#
+# PM = pseudomerge to make ff, due to overwrite (or split view)
+# "no q cache" = do not record in cache on build, do not check cache
+# `3.0 (quilt)' with --quilt=nocheck is treated as sane format
END {
local ($@, $?);
$absurdity =~ s{/[^/]+$}{/absurd} or die;
}
-sub debiantag ($$) {
- my ($v,$distro) = @_;
- return $tagformatfn->($v, $distro);
-}
-
sub madformat ($) { $_[0] eq '3.0 (quilt)' }
sub lbranch () { return "$branchprefix/$csuite"; }
}
}
-sub quiltmode_splitbrain () {
- $quilt_mode =~ m/gbp|dpm|unapplied/;
+sub quiltmode_splitting () {
+ $quilt_mode =~ m/gbp|dpm|unapplied|baredebian/;
+}
+sub format_quiltmode_splitting ($) {
+ my ($format) = @_;
+ return madformat_wantfixup($format) && quiltmode_splitting();
}
+sub do_split_brain () { !!($do_split_brain // confess) }
+
sub opts_opt_multi_cmd {
my $extra = shift;
my @cmd;
# > progress NBYTES
# [NBYTES message]
#
-# > supplementary-message NBYTES # $protovsn >= 3
+# > supplementary-message NBYTES
# [NBYTES message]
#
# main sequence:
#
# > param head DGIT-VIEW-HEAD
# > param csuite SUITE
-# > param tagformat old|new
+# > param tagformat new # $protovsn == 4
+# > param splitbrain 0|1 # $protovsn >= 6
# > param maint-view MAINT-VIEW-HEAD
#
# > param buildinfo-filename P_V_X.buildinfo # zero or more times
my $got = read PF, $d, 65536;
die "$ourfn: $!" unless defined $got;
last if !$got;
- print $fh "data-block ".length($d)."\n" or confess $!;
- print $fh $d or confess $!;
+ print $fh "data-block ".length($d)."\n" or confess "$!";
+ print $fh $d or confess "$!";
}
PF->error and die "$ourfn $!";
- print $fh "data-end\n" or confess $!;
+ print $fh "data-end\n" or confess "$!";
close PF;
}
} $fh;
last unless $y;
my $d = protocol_read_bytes $fh, $l;
- print PF $d or confess $!;
+ print PF $d or confess "$!";
}
- close PF or confess $!;
+ close PF or confess "$!";
}
#---------- remote protocol support, responder ----------
return unless $we_are_responder;
# called even without $we_are_responder
printdebug ">> $command\n";
- print PO $command, "\n" or confess $!;
+ print PO $command, "\n" or confess "$!";
}
sub responder_send_file ($$) {
sub progress {
if ($we_are_responder) {
my $m = join '', @_;
- responder_send_command "progress ".length($m) or confess $!;
- print PO $m or confess $!;
+ responder_send_command "progress ".length($m) or confess "$!";
+ print PO $m or confess "$!";
} else {
print @_, "\n";
}
our $ua;
-sub url_get {
- if (!$ua) {
- $ua = LWP::UserAgent->new();
- $ua->env_proxy;
- }
- my $what = $_[$#_];
- progress "downloading $what...";
- my $r = $ua->get(@_) or confess $!;
- return undef if $r->code == 404;
- $r->is_success or fail f_ "failed to fetch %s: %s",
- $what, $r->status_line;
- return $r->decoded_content(charset => 'none');
-}
-
our ($dscdata,$dscurl,$dsc,$dsc_checked,$skew_warning_vsn);
sub act_local () { return $dryrun_level <= 1; }
END
sub badusage {
- print STDERR f_ "%s: %s\n%s", $us, "@_", __ $helpmsg or confess $!;
+ print STDERR f_ "%s: %s\n%s", $us, "@_", __ $helpmsg or confess "$!";
finish 8;
}
not_necessarily_a_tree();
}
sub cmd_help () {
- print __ $helpmsg or confess $!;
+ print __ $helpmsg or confess "$!";
finish 0;
}
'dgit.default.archive-query' => 'madison:',
'dgit.default.sshpsql-dbname' => 'service=projectb',
'dgit.default.aptget-components' => 'main',
- 'dgit.default.dgit-tag-format' => 'new,old,maint',
'dgit.default.source-only-uploads' => 'ok',
'dgit.dsc-url-proto-ok.http' => 'true',
'dgit.dsc-url-proto-ok.https' => 'true',
'dgit-distro.debian-backports.mirror' => 'http://backports.debian.org/debian-backports/',
'dgit-distro.ubuntu.git-check' => 'false',
'dgit-distro.ubuntu.mirror' => 'http://archive.ubuntu.com/ubuntu',
+ 'dgit-distro.ubuntucloud.git-check' => 'false',
+ 'dgit-distro.ubuntucloud.nominal-distro' => 'ubuntu',
+ 'dgit-distro.ubuntucloud.archive-query' => 'aptget:',
+ 'dgit-distro.ubuntucloud.mirror' => 'http://ubuntu-cloud.archive.canonical.com/ubuntu',
+ 'dgit-distro.ubuntucloud.aptget-suite-map' => 's#^([^-]+):([^:]+)$#${1}-updates/$2#; s#^(.+)-(.+):(.+)#$1-$2/$3#;',
+ 'dgit-distro.ubuntucloud.aptget-suite-rmap' => 's#/(.+)$#-$1#',
'dgit-distro.test-dummy.ssh' => "$td/ssh",
'dgit-distro.test-dummy.username' => "alice",
'dgit-distro.test-dummy.git-check' => "ssh-cmd",
return $kl->{$k};
}
}
+ foreach my $csvf (</usr/share/distro-info/*.csv>) {
+ my $csv_distro =
+ $csvf =~ m{/(\w+)\.csv$} ? $1 : do {
+ printdebug "skipping $csvf\n";
+ next;
+ };
+ my $csv = Text::CSV->new({ binary => 1, auto_diag => 2 }) or die;
+ my $fh = new IO::File $csvf, "<:encoding(utf8)"
+ or die "open $csvf: $!";
+ while (my $cols = $csv->getline($fh)) {
+ next unless $cols->[2] eq $isuite;
+ return $csv_distro;
+ }
+ die "$csvf $!" if $fh->error;
+ close $fh;
+ }
return cfg("dgit.default.distro");
}
}
return $access_forpush;
}
+sub default_from_access_cfg ($$$;$) {
+ my ($var, $keybase, $defval, $permit_re) = @_;
+ return if defined $$var;
+
+ $$var = access_cfg("$keybase-newer", 'RETURN-UNDEF');
+ $$var = undef if $$var && $$var !~ m/^$permit_re$/;
+
+ $$var //= access_cfg($keybase, 'RETURN-UNDEF');
+ $$var //= $defval;
+
+ badcfg f_ "unknown %s \`%s'", $keybase, $$var
+ if defined $permit_re and $$var !~ m/$permit_re/;
+}
+
sub pushing () {
confess +(__ 'internal error').' '.Dumper($access_forpush)," ?" if
defined $access_forpush and !$access_forpush;
parseopts_late_defaults();
}
+sub determine_whether_split_brain ($) {
+ my ($format) = @_;
+ {
+ local $access_forpush;
+ default_from_access_cfg(\$splitview_mode, 'split-view', 'auto',
+ $splitview_modes_re);
+ $do_split_brain = 1 if $splitview_mode eq 'always';
+ }
+
+ printdebug "format $format, quilt mode $quilt_mode\n";
+
+ if (format_quiltmode_splitting $format) {
+ $splitview_mode ne 'never' or
+ fail f_ "dgit: quilt mode \`%s' (for format \`%s')".
+ " implies split view, but split-view set to \`%s'",
+ $quilt_mode, $format, $splitview_mode;
+ $do_split_brain = 1;
+ }
+ $do_split_brain //= 0;
+}
+
sub supplementary_message ($) {
my ($msg) = @_;
if (!$we_are_responder) {
$supplementary_message = $msg;
return;
- } elsif ($protovsn >= 3) {
+ } else {
responder_send_command "supplementary-message ".length($msg)
- or confess $!;
- print PO $msg or confess $!;
+ or confess "$!";
+ print PO $msg or confess "$!";
}
}
}
sub parse_dscdata () {
- my $dscfh = new IO::File \$dscdata, '<' or confess $!;
+ my $dscfh = new IO::File \$dscdata, '<' or confess "$!";
printdebug Dumper($dscdata) if $debuglevel>1;
$dsc = parsecontrolfh($dscfh,$dscurl,1);
printdebug Dumper($dsc) if $debuglevel>1;
$$varref = $_;
}
-#---------- `ftpmasterapi' archive query method (nascent) ----------
+sub url_fetch ($;@) {
+ my ($url, %xopts) = @_;
+ # Ok404 => 1 means give undef for 404
+ # AccessBase => 'archive-query' (eg)
+ # CurlOpts => { key => value }
-sub archive_api_query_cmd ($) {
- my ($subpath) = @_;
- my @cmd = (@curl, qw(-sS));
- my $url = access_cfg('archive-query-url');
- if ($url =~ m#^https://([-.0-9a-z]+)/#) {
- my $host = $1;
- my $keys = access_cfg('archive-query-tls-key','RETURN-UNDEF') //'';
- foreach my $key (split /\:/, $keys) {
- $key =~ s/\%HOST\%/$host/g;
- if (!stat $key) {
- fail "for $url: stat $key: $!" unless $!==ENOENT;
- next;
- }
- fail f_ "config requested specific TLS key but do not know".
- " how to get curl to use exactly that EE key (%s)",
- $key;
-# push @cmd, "--cacert", $key, "--capath", "/dev/enoent";
-# # Sadly the above line does not work because of changes
-# # to gnutls. The real fix for #790093 may involve
-# # new curl options.
- last;
+ my $curl = WWW::Curl::Easy->new;
+ my $setopt = sub {
+ my ($k,$v) = @_;
+ my $x = $curl->setopt($k, $v);
+ confess "$k $v ".$curl->strerror($x)." ?" if $x;
+ };
+
+ my $response_body = '';
+ $setopt->(CURLOPT_FOLLOWLOCATION, 1);
+ $setopt->(CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTPS|CURLPROTO_HTTP);
+ $setopt->(CURLOPT_URL, $url);
+ $setopt->(CURLOPT_NOSIGNAL, 1);
+ $setopt->(CURLOPT_WRITEDATA, \$response_body);
+
+ my $xcurlopts = $xopts{CurlOpts} // { };
+ keys %$xcurlopts;
+ while (my ($k,$v) = each %$xcurlopts) { $setopt->($k,$v); }
+
+ if ($xopts{AccessBase} && $url =~ m#^https://([-.0-9a-z]+)/#) {
+ foreach my $k ("$xopts{AccessBase}-tls-key",
+ "$xopts{AccessBase}-tls-curl-ca-args") {
+ fail "config option $k is obsolete and no longer supported"
+ if defined access_cfg($k, 'RETURN-UNDEF');
}
- # Fixing #790093 properly will involve providing a value
- # for this on clients.
- my $kargs = access_cfg('archive-query-tls-curl-ca-args','RETURN-UNDEF');
- push @cmd, split / /, $kargs if defined $kargs;
}
- push @cmd, $url.$subpath;
- return @cmd;
+
+ printdebug "query: fetching $url...\n";
+
+ local $SIG{PIPE} = 'IGNORE';
+
+ my $x = $curl->perform();
+ fail f_ "fetch of %s failed (%s): %s",
+ $url, $curl->strerror($x), $curl->errbuf
+ if $x;
+
+ my $code = $curl->getinfo(CURLINFO_HTTP_CODE);
+ if ($code eq '404' && $xopts{Ok404}) { return undef; }
+
+ fail f_ "fetch of %s gave HTTP code %s", $url, $code
+ unless $url =~ m#^file://# or $code =~ m/^2/;
+
+ confess unless defined $response_body;
+ return $response_body;
+}
+
+#---------- `ftpmasterapi' archive query method (nascent) ----------
+
+sub api_query_raw ($;$) {
+ my ($subpath, $ok404) = @_;
+ my $url = access_cfg('archive-query-url');
+ $url .= $subpath;
+ return url_fetch $url,
+ Ok404 => $ok404,
+ AccessBase => 'archive-query';
}
sub api_query ($$;$) {
- use JSON;
my ($data, $subpath, $ok404) = @_;
+ use JSON;
badcfg __ "ftpmasterapi archive query method takes no data part"
if length $data;
- my @cmd = archive_api_query_cmd($subpath);
- my $url = $cmd[$#cmd];
- push @cmd, qw(-w %{http_code});
- my $json = cmdoutput @cmd;
- unless ($json =~ s/\d+\d+\d$//) {
- failedcmd_report_cmd undef, @cmd;
- fail __ "curl failed to print 3-digit HTTP code";
- }
- my $code = $&;
- return undef if $code eq '404' && $ok404;
- fail f_ "fetch of %s gave HTTP code %s", $url, $code
- unless $url =~ m#^file://# or $code =~ m/^2/;
+ my $json = api_query_raw $subpath, $ok404;
+ return undef unless defined $json;
return decode_json($json);
}
cfg_apply_map(\$aptsuites, 'suite map',
access_cfg('aptget-suite-map', 'RETURN-UNDEF'));
- open SRCS, ">", "$aptget_base/$sourceslist" or confess $!;
+ open SRCS, ">", "$aptget_base/$sourceslist" or confess "$!";
printf SRCS "deb-src %s %s %s\n",
access_cfg('mirror'),
$aptsuites,
access_cfg('aptget-components')
- or confess $!;
+ or confess "$!";
ensuredir "$aptget_base/cache";
ensuredir "$aptget_base/lists";
- open CONF, ">", $aptget_configpath or confess $!;
+ open CONF, ">", $aptget_configpath or confess "$!";
print CONF <<END;
Debug::NoLocking "true";
APT::Get::List-Cleanup "false";
Dir::Etc::preferencesparts
)) {
ensuredir "$aptget_base/$key";
- print CONF "$key \"$quoted_base/$key\";\n" or confess $!;
+ print CONF "$key \"$quoted_base/$key\";\n" or confess "$!";
};
- my $oldatime = (time // confess $!) - 1;
+ my $oldatime = (time // confess "$!") - 1;
foreach my $oldlist (<$aptget_base/lists/*Release>) {
next unless stat_exists $oldlist;
my ($mtime) = (stat _)[9];
my $val = $release->{$name};
if (defined $val) {
printdebug "release file $name: $val\n";
+ cfg_apply_map(\$val, 'suite rmap',
+ access_cfg('aptget-suite-rmap', 'RETURN-UNDEF'));
$val =~ m/^$suite_re$/o or fail f_
"Release file (%s) specifies intolerable %s",
$aptget_releasefile, $name;
- cfg_apply_map(\$val, 'suite rmap',
- access_cfg('aptget-suite-rmap', 'RETURN-UNDEF'));
return $val
}
}
my @cmd = (qw(sh -ec), 'cd "$1"; shift'."\n".$rune,
qw(x), $mirror, @$argl);
debugcmd "-|", @cmd;
- open FIA, "-|", @cmd or confess $!;
+ open FIA, "-|", @cmd or confess "$!";
my $r = $fn->();
close FIA or ($!==0 && $?==141) or die failedcmd @cmd;
return $r;
" export LC_MESSAGES=C; export LC_CTYPE=C;".
" ".shellquote qw(psql -A), $dbname, qw(-c), $sql);
debugcmd "|",@cmd;
- open P, "-|", @cmd or confess $!;
+ open P, "-|", @cmd or confess "$!";
while (<P>) {
chomp or die;
printdebug(">|$_|\n");
sub file_in_archive_dummycat () { return undef; }
sub package_not_wholly_new_dummycat () { return undef; }
-#---------- tag format handling ----------
-# (untranslated, because everything should be new tag format by now)
-
-sub access_cfg_tagformats () {
- split /\,/, access_cfg('dgit-tag-format');
-}
-
-sub access_cfg_tagformats_can_splitbrain () {
- my %y = map { $_ => 1 } access_cfg_tagformats;
- foreach my $needtf (qw(new maint)) {
- next if $y{$needtf};
- return 0;
- }
- return 1;
-}
-
-sub need_tagformat ($$) {
- my ($fmt, $why) = @_;
- fail "need to use tag format $fmt ($why) but also need".
- " to use tag format $tagformat_want->[0] ($tagformat_want->[1])".
- " - no way to proceed"
- if $tagformat_want && $tagformat_want->[0] ne $fmt;
- $tagformat_want = [$fmt, $why, $tagformat_want->[2] // 0];
-}
-
-sub select_tagformat () {
- # sets $tagformatfn
- return if $tagformatfn && !$tagformat_want;
- die 'bug' if $tagformatfn && $tagformat_want;
- # ... $tagformat_want assigned after previous select_tagformat
-
- my (@supported) = grep { $_ =~ m/^(?:old|new)$/ } access_cfg_tagformats();
- printdebug "select_tagformat supported @supported\n";
-
- $tagformat_want //= [ $supported[0], "distro access configuration", 0 ];
- printdebug "select_tagformat specified @$tagformat_want\n";
-
- my ($fmt,$why,$override) = @$tagformat_want;
-
- fail "target distro supports tag formats @supported".
- " but have to use $fmt ($why)"
- unless $override
- or grep { $_ eq $fmt } @supported;
-
- $tagformat_want = undef;
- $tagformat = $fmt;
- $tagformatfn = ${*::}{"debiantag_$fmt"};
-
- fail "trying to use unknown tag format \`$fmt' ($why) !"
- unless $tagformatfn;
-}
-
#---------- archive query entrypoints and rest of program ----------
sub canonicalise_suite () {
foreach my $vinfo (@vsns) {
my ($vsn,$vsn_dscurl,$digester,$digest) = @$vinfo;
$dscurl = $vsn_dscurl;
- $dscdata = url_get($dscurl);
+ $dscdata = url_fetch($dscurl, Ok404 => 1 );
if (!$dscdata) {
$skew_warning_vsn = $vsn if !defined $skew_warning_vsn;
next;
my $suffix = access_cfg('git-check-suffix','git-suffix',
'RETURN-UNDEF') // '.git';
my $url = "$prefix/$package$suffix";
- my @cmd = (@curl, qw(-sS -I), $url);
- my $result = cmdoutput @cmd;
- $result =~ s/^\S+ 200 .*\n\r?\n//;
- # curl -sS -I with https_proxy prints
- # HTTP/1.0 200 Connection established
- $result =~ m/^\S+ (404|200) /s or
- fail +(__ "unexpected results from git check query - ").
- Dumper($prefix, $result);
- my $code = $1;
- if ($code eq '404') {
- return 0;
- } elsif ($code eq '200') {
- return 1;
- } else {
- die;
- }
+ my $result = url_fetch $url,
+ CurlOpts => { CURLOPT_NOBODY() => 1 },
+ Ok404 => 1,
+ AccessBase => 'git-check';
+ $result = defined $result;
+ printdebug "dgit-repos check_for_git => $result.\n";
+ return $result;
} elsif ($how eq 'true') {
return 1;
} elsif ($how eq 'false') {
}
sub mktree_in_ud_here () {
- playtree_setup $gitcfgs{local};
+ playtree_setup();
}
sub git_write_tree () {
my ($what) = @_;
my @gitscmd = qw(find -name .git -prune -print0);
debugcmd "|",@gitscmd;
- open GITS, "-|", @gitscmd or confess $!;
+ open GITS, "-|", @gitscmd or confess "$!";
{
local $/="\0";
while (<GITS>) {
foreach my $l (split /\n/, getfield $changes, 'Files') {
$l =~ m/\S+$/ or next;
# \.tar\.[a-z0-9]+ covers orig.tar and the tarballs in native packages
- unless ($& =~ m/(?:\.dsc|\.diff\.gz|\.tar\.[a-z0-9]+|_source\.buildinfo)$/) {
+ unless ($& =~ m/(?:\.dsc|\.diff\.gz|$tarball_f_ext_re|_source\.buildinfo)$/) {
print f_ "purportedly source-only changes polluted by %s\n", $&;
return 0;
}
}
}
-sub make_commit ($) {
- my ($file) = @_;
- return cmdoutput @git, qw(hash-object -w -t commit), $file;
-}
-
sub clogp_authline ($) {
my ($clogp) = @_;
my $author = getfield $clogp, 'Maintainer';
closedir DD;
}
-sub generate_commits_from_dsc () {
- # See big comment in fetch_from_archive, below.
- # See also README.dsc-import.
- prep_ud();
- changedir $playground;
-
- my $bpd_abs = bpd_abs();
- my $upstreamv = upstreamversion $dsc->{version};
- my @dfi = dsc_files_info();
-
- dotdot_bpd_transfer_origs $bpd_abs, $upstreamv,
- sub { grep { $_->{Filename} eq $_[0] } @dfi };
-
- foreach my $fi (@dfi) {
- my $f = $fi->{Filename};
- die "$f ?" if $f =~ m#/|^\.|\.dsc$|\.tmp$#;
- my $upper_f = "$bpd_abs/$f";
-
- printdebug "considering reusing $f: ";
-
- if (link_ltarget "$upper_f,fetch", $f) {
- printdebug "linked (using ...,fetch).\n";
- } elsif ((printdebug "($!) "),
- $! != ENOENT) {
- fail f_ "accessing %s: %s", "$buildproductsdir/$f,fetch", $!;
- } elsif (link_ltarget $upper_f, $f) {
- printdebug "linked.\n";
- } elsif ((printdebug "($!) "),
- $! != ENOENT) {
- fail f_ "accessing %s: %s", "$buildproductsdir/$f", $!;
- } else {
- printdebug "absent.\n";
- }
-
- my $refetched;
- complete_file_from_dsc('.', $fi, \$refetched)
- or next;
-
- printdebug "considering saving $f: ";
-
- if (rename_link_xf 1, $f, $upper_f) {
- printdebug "linked.\n";
- } elsif ((printdebug "($@) "),
- $! != EEXIST) {
- fail f_ "saving %s: %s", "$buildproductsdir/$f", $@;
- } elsif (!$refetched) {
- printdebug "no need.\n";
- } elsif (rename_link_xf 1, $f, "$upper_f,fetch") {
- printdebug "linked (using ...,fetch).\n";
- } elsif ((printdebug "($@) "),
- $! != EEXIST) {
- fail f_ "saving %s: %s", "$buildproductsdir/$f,fetch", $@;
- } else {
- printdebug "cannot.\n";
- }
- }
+sub import_tarball_tartrees ($$) {
+ my ($upstreamv, $dfi) = @_;
+ # cwd should be the playground
# We unpack and record the orig tarballs first, so that we only
# need disk space for one private copy of the unpacked source.
my @tartrees;
my $orig_f_base = srcfn $upstreamv, '';
- foreach my $fi (@dfi) {
+ foreach my $fi (@$dfi) {
# We actually import, and record as a commit, every tarball
# (unless there is only one file, in which case there seems
# little point.
my $f = $fi->{Filename};
printdebug "import considering $f ";
- (printdebug "only one dfi\n"), next if @dfi == 1;
(printdebug "not tar\n"), next unless $f =~ m/\.tar(\.\w+)?$/;
(printdebug "signature\n"), next if $f =~ m/$orig_f_sig_re$/o;
my $compr_ext = $1;
$compr_ext, $orig_f_part
), "\n";
+ my $path = $fi->{Path} // $f;
my $input = new IO::File $f, '<' or die "$f $!";
my $compr_pid;
my @compr_cmd;
new Dpkg::Compression::Process compression => $cname;
@compr_cmd = $compr_proc->get_uncompress_cmdline();
my $compr_fh = new IO::Handle;
- my $compr_pid = open $compr_fh, "-|" // confess $!;
+ my $compr_pid = open $compr_fh, "-|" // confess "$!";
if (!$compr_pid) {
- open STDIN, "<&", $input or confess $!;
+ open STDIN, "<&", $input or confess "$!";
exec @compr_cmd;
die "dgit (child): exec $compr_cmd[0]: $!\n";
}
}
rmtree "_unpack-tar";
- mkdir "_unpack-tar" or confess $!;
+ mkdir "_unpack-tar" or confess "$!";
my @tarcmd = qw(tar -x -f -
--no-same-owner --no-same-permissions
--no-acls --no-xattrs --no-selinux);
- my $tar_pid = fork // confess $!;
+ my $tar_pid = fork // confess "$!";
if (!$tar_pid) {
- chdir "_unpack-tar" or confess $!;
- open STDIN, "<&", $input or confess $!;
+ chdir "_unpack-tar" or confess "$!";
+ open STDIN, "<&", $input or confess "$!";
exec @tarcmd;
die f_ "dgit (child): exec %s: %s", $tarcmd[0], $!;
}
- $!=0; (waitpid $tar_pid, 0) == $tar_pid or confess $!;
+ $!=0; (waitpid $tar_pid, 0) == $tar_pid or confess "$!";
!$? or failedcmd @tarcmd;
close $input or
(@compr_cmd ? ($?==SIGPIPE || failedcmd @compr_cmd)
- : confess $!);
+ : confess "$!");
# finally, we have the results in "tarball", but maybe
# with the wrong permissions
Sort => (!$orig_f_part ? 2 :
$orig_f_part =~ m/-/g ? 1 :
0),
+ OrigPart => $orig_f_part, # 'orig', 'orig-XXX', or undef
F => $f,
Tree => $tree,
};
$a->{F} cmp $b->{F}
} @tartrees;
- my $any_orig = grep { $_->{Orig} } @tartrees;
-
- my $dscfn = "$package.dsc";
-
- my $treeimporthow = 'package';
-
- open D, ">", $dscfn or die "$dscfn: $!";
- print D $dscdata or die "$dscfn: $!";
- close D or die "$dscfn: $!";
- my @cmd = qw(dpkg-source);
- push @cmd, '--no-check' if $dsc_checked;
- if (madformat $dsc->{format}) {
- push @cmd, '--skip-patches';
- $treeimporthow = 'unpatched';
- }
- push @cmd, qw(-x --), $dscfn;
- runcmd @cmd;
+ @tartrees;
+}
- my ($tree,$dir) = mktree_in_ud_from_only_subdir(__ "source package");
- if (madformat $dsc->{format}) {
- check_for_vendor_patches();
- }
+sub import_tarball_commits ($$) {
+ my ($tartrees, $upstreamv) = @_;
+ # cwd should be a playtree which has a relevant debian/changelog
+ # fills in $tt->{Commit} for each one
- my $dappliedtree;
- if (madformat $dsc->{format}) {
- my @pcmd = qw(dpkg-source --before-build .);
- runcmd shell_cmd 'exec >/dev/null', @pcmd;
- rmtree '.pc';
- $dappliedtree = git_add_write_tree();
- }
+ my $any_orig = grep { $_->{Orig} } @$tartrees;
my @clogcmd = qw(dpkg-parsechangelog --format rfc822 --all);
my $clogp;
$changes =~ s/^\n//; # Changes: \n
my $cversion = getfield $clogp, 'Version';
- if (@tartrees) {
+ my $r1authline;
+ if (@$tartrees) {
$r1clogp //= $clogp; # maybe there's only one entry;
- my $r1authline = clogp_authline $r1clogp;
+ $r1authline = clogp_authline $r1clogp;
# Strictly, r1authline might now be wrong if it's going to be
# unused because !$any_orig. Whatever.
printdebug "import tartrees authline $authline\n";
printdebug "import tartrees r1authline $r1authline\n";
- foreach my $tt (@tartrees) {
+ foreach my $tt (@$tartrees) {
printdebug "import tartree $tt->{F} $tt->{Tree}\n";
- my $mbody = f_ "Import %s", $tt->{F};
- $tt->{Commit} = make_commit_text($tt->{Orig} ? <<END_O : <<END_T);
+ # untranslated so that different people's imports are identical
+ my $mbody = sprintf "Import %s", $tt->{F};
+ $tt->{Commit} = hash_commit_text($tt->{Orig} ? <<END_O : <<END_T);
tree $tt->{Tree}
author $r1authline
committer $r1authline
}
}
+ return ($authline, $r1authline, $clogp, $changes);
+}
+
+sub generate_commits_from_dsc () {
+ # See big comment in fetch_from_archive, below.
+ # See also README.dsc-import.
+ prep_ud();
+ changedir $playground;
+
+ my $bpd_abs = bpd_abs();
+ my $upstreamv = upstreamversion $dsc->{version};
+ my @dfi = dsc_files_info();
+
+ dotdot_bpd_transfer_origs $bpd_abs, $upstreamv,
+ sub { grep { $_->{Filename} eq $_[0] } @dfi };
+
+ foreach my $fi (@dfi) {
+ my $f = $fi->{Filename};
+ die "$f ?" if $f =~ m#/|^\.|\.dsc$|\.tmp$#;
+ my $upper_f = "$bpd_abs/$f";
+
+ printdebug "considering reusing $f: ";
+
+ if (link_ltarget "$upper_f,fetch", $f) {
+ printdebug "linked (using ...,fetch).\n";
+ } elsif ((printdebug "($!) "),
+ $! != ENOENT) {
+ fail f_ "accessing %s: %s", "$buildproductsdir/$f,fetch", $!;
+ } elsif (link_ltarget $upper_f, $f) {
+ printdebug "linked.\n";
+ } elsif ((printdebug "($!) "),
+ $! != ENOENT) {
+ fail f_ "accessing %s: %s", "$buildproductsdir/$f", $!;
+ } else {
+ printdebug "absent.\n";
+ }
+
+ my $refetched;
+ complete_file_from_dsc('.', $fi, \$refetched)
+ or next;
+
+ printdebug "considering saving $f: ";
+
+ if (rename_link_xf 1, $f, $upper_f) {
+ printdebug "linked.\n";
+ } elsif ((printdebug "($@) "),
+ $! != EEXIST) {
+ fail f_ "saving %s: %s", "$buildproductsdir/$f", $@;
+ } elsif (!$refetched) {
+ printdebug "no need.\n";
+ } elsif (rename_link_xf 1, $f, "$upper_f,fetch") {
+ printdebug "linked (using ...,fetch).\n";
+ } elsif ((printdebug "($@) "),
+ $! != EEXIST) {
+ fail f_ "saving %s: %s", "$buildproductsdir/$f,fetch", $@;
+ } else {
+ printdebug "cannot.\n";
+ }
+ }
+
+ my @tartrees;
+ @tartrees = import_tarball_tartrees($upstreamv, \@dfi)
+ unless @dfi == 1; # only one file in .dsc
+
+ my $dscfn = "$package.dsc";
+
+ my $treeimporthow = 'package';
+
+ open D, ">", $dscfn or die "$dscfn: $!";
+ print D $dscdata or die "$dscfn: $!";
+ close D or die "$dscfn: $!";
+ my @cmd = qw(dpkg-source);
+ push @cmd, '--no-check' if $dsc_checked;
+ if (madformat $dsc->{format}) {
+ push @cmd, '--skip-patches';
+ $treeimporthow = 'unpatched';
+ }
+ push @cmd, qw(-x --), $dscfn;
+ runcmd @cmd;
+
+ my ($tree,$dir) = mktree_in_ud_from_only_subdir(__ "source package");
+ if (madformat $dsc->{format}) {
+ check_for_vendor_patches();
+ }
+
+ my $dappliedtree;
+ if (madformat $dsc->{format}) {
+ my @pcmd = qw(dpkg-source --before-build .);
+ runcmd shell_cmd 'exec >/dev/null', @pcmd;
+ rmtree '.pc';
+ $dappliedtree = git_add_write_tree();
+ }
+
+ my ($authline, $r1authline, $clogp, $changes) =
+ import_tarball_commits(\@tartrees, $upstreamv);
+
+ my $cversion = getfield $clogp, 'Version';
+
printdebug "import main commit\n";
- open C, ">../commit.tmp" or confess $!;
- print C <<END or confess $!;
+ open C, ">../commit.tmp" or confess "$!";
+ print C <<END or confess "$!";
tree $tree
END
- print C <<END or confess $! foreach @tartrees;
+ print C <<END or confess "$!" foreach @tartrees;
parent $_->{Commit}
END
- print C <<END or confess $!;
+ print C <<END or confess "$!";
author $authline
committer $authline
[dgit import $treeimporthow $package $cversion]
END
- close C or confess $!;
- my $rawimport_hash = make_commit qw(../commit.tmp);
+ close C or confess "$!";
+ my $rawimport_hash = hash_commit qw(../commit.tmp);
if (madformat $dsc->{format}) {
printdebug "import apply patches...\n";
# regularise the state of the working tree so that
# the checkout of $rawimport_hash works nicely.
- my $dappliedcommit = make_commit_text(<<END);
+ my $dappliedcommit = hash_commit_text(<<END);
tree $dappliedtree
author $authline
committer $authline
chomp $@;
progress "warning: $@";
$path = "$absurdity:$path";
+ open T, ">../../absurd-apply-warnings" or die $!;
+ close T or die $!;
progress f_ "%s: trying slow absurd-git-apply...", $us;
rename "../../gbp-pq-output","../../gbp-pq-output.0"
or $!==ENOENT
- or confess $!;
+ or confess "$!";
}
eval {
die "forbid absurd git-apply\n" if $use_absurd
dpkg-source --before-build gave tree %s
END
$rawimport_hash = $gapplied;
+
+ if ($use_absurd) {
+ File::Copy::copy("../../absurd-apply-warnings", \*STDERR)
+ or die $!;
+ }
};
last unless $@;
}
if ($vcmp < 0) {
@output = ($rawimport_mergeinput, $lastpush_mergeinput,
{ ReverseParents => 1,
- Message => (f_ <<END, $package, $cversion, $csuite) });
+ # untranslated so that different people's pseudomerges
+ # are not needlessly different (although they will
+ # still differ if the series of pulls is different)
+ Message => (sprintf <<END, $package, $cversion, $csuite) });
Record %s (%s) in archive suite %s
END
} elsif ($vcmp > 0) {
Last version pushed with dgit: %s (newer or same)
%s
END
- __ $later_warning_msg or confess $!;
+ __ $later_warning_msg or confess "$!";
@output = $lastpush_mergeinput;
} else {
# Same version. Use what's in the server git branch,
open F, "<", "$tf" or die "$tf: $!";
$fi->{Digester}->reset();
$fi->{Digester}->addfile(*F);
- F->error and confess $!;
+ F->error and confess "$!";
$got = $fi->{Digester}->hexdigest();
return $got eq $fi->{Hash};
};
debugcmd "|",@lcmd;
my %wantr;
- open GITLS, "-|", @lcmd or confess $!;
+ open GITLS, "-|", @lcmd or confess "$!";
while (<GITLS>) {
printdebug "=> ", $_;
m/^(\w+)\s+(\S+)\n/ or die "ls-remote $_ ?";
# deliberately-not-ff, in which case we must fetch everything.
my @specs = deliberately_not_fast_forward ? qw(tags/*) :
- map { "tags/$_" }
- (quiltmode_splitbrain
- ? (map { $_->('*',access_nomdistro) }
- \&debiantag_new, \&debiantag_maintview)
- : debiantags('*',access_nomdistro));
+ map { "tags/$_" } debiantags('*',access_nomdistro);
push @specs, server_branch($csuite);
push @specs, $rewritemap;
push @specs, qw(heads/*) if deliberately_not_fast_forward;
printdebug "del_lrfetchrefs: $objid $fullrefname\n";
if (!$gur) {
$gur ||= new IO::Handle;
- open $gur, "|-", qw(git update-ref --stdin) or confess $!;
+ open $gur, "|-", qw(git update-ref --stdin) or confess "$!";
}
printf $gur "delete %s %s\n", $fullrefname, $objid;
}
Last version pushed with dgit: %s
%s
END
- __ $later_warning_msg or confess $!;
+ __ $later_warning_msg or confess "$!";
@mergeinputs = ($lastpush_mergeinput);
} else {
# Archive has .dsc which is not a descendant of the last dgit
Package not found in the archive, but has allegedly been pushed using dgit.
%s
END
- __ $later_warning_msg or confess $!;
+ __ $later_warning_msg or confess "$!";
} else {
printdebug "nothing found!\n";
if (defined $skew_warning_vsn) {
- print STDERR f_ <<END, $skew_warning_vsn or confess $!;
+ print STDERR f_ <<END, $skew_warning_vsn or confess "$!";
Warning: relevant archive skew detected.
Archive allegedly contains %s
my $mcf = dgit_privdir()."/mergecommit";
open MC, ">", $mcf or die "$mcf $!";
- print MC <<END or confess $!;
+ print MC <<END or confess "$!";
tree $tree
END
my @parents = grep { $_->{Commit} } @mergeinputs;
@parents = reverse @parents if $compat_info->{ReverseParents};
- print MC <<END or confess $! foreach @parents;
+ print MC <<END or confess "$!" foreach @parents;
parent $_->{Commit}
END
- print MC <<END or confess $!;
+ print MC <<END or confess "$!";
author $author
committer $author
END
if (defined $compat_info->{Message}) {
- print MC $compat_info->{Message} or confess $!;
+ print MC $compat_info->{Message} or confess "$!";
} else {
- print MC f_ <<END, $package, $cversion, $csuite or confess $!;
+ print MC f_ <<END, $package, $cversion, $csuite or confess "$!";
Record %s (%s) in archive suite %s
Record that
my ($mi) = (@_);
my $mversion = mergeinfo_version $mi;
printf MC " %-20s %s\n", $mversion, $mi->{Info}
- or confess $!;
+ or confess "$!";
};
$message_add_info->($mergeinputs[0]);
- print MC __ <<END or confess $!;
+ print MC __ <<END or confess "$!";
should be treated as descended from
END
$message_add_info->($_) foreach @mergeinputs[1..$#mergeinputs];
}
- close MC or confess $!;
- $hash = make_commit $mcf;
+ close MC or confess "$!";
+ $hash = hash_commit $mcf;
} else {
$hash = $mergeinputs[0]{Commit};
}
my $got_vsn = getfield $gotclogp, 'Version';
printdebug "SKEW CHECK GOT $got_vsn\n";
if (version_compare($got_vsn, $skew_warning_vsn) < 0) {
- print STDERR f_ <<END, $skew_warning_vsn, $got_vsn or confess $!;
+ print STDERR f_ <<END, $skew_warning_vsn, $got_vsn or confess "$!";
Warning: archive skew detected. Using the available version:
Archive allegedly contains %s
while (<ATTRS>) {
chomp;
next if m{^debian/changelog\s};
- print NATTRS $_, "\n" or confess $!;
+ print NATTRS $_, "\n" or confess "$!";
}
- ATTRS->error and confess $!;
+ ATTRS->error and confess "$!";
close ATTRS;
}
- print NATTRS "debian/changelog merge=$driver\n" or confess $!;
+ print NATTRS "debian/changelog merge=$driver\n" or confess "$!";
close NATTRS;
set_local_git_config "$cb.name", __ 'debian/changelog merge driver';
# 0: there is a dgit-defuse-attrs but it needs fixing
# undef: there is none
my $gai = open_main_gitattrs();
- return 0 unless $gai;
+ return undef unless $gai;
while (<$gai>) {
next unless m{$gitattrs_ourmacro_re};
return 1 if m{\s-working-tree-encoding\s};
printdebug "is_gitattrs_setup: found old macro\n";
return 0;
}
- $gai->error and confess $!;
+ $gai->error and confess "$!";
printdebug "is_gitattrs_setup: found nothing\n";
return undef;
}
my $af = "$maindir_gitcommon/info/attributes";
ensuredir "$maindir_gitcommon/info";
- open GAO, "> $af.new" or confess $!;
- print GAO <<END, __ <<ENDT or confess $! unless defined $already;
+ open GAO, "> $af.new" or confess "$!";
+ print GAO <<END, __ <<ENDT or confess "$!" unless defined $already;
* dgit-defuse-attrs
$new
END
$_ = $new;
}
chomp;
- print GAO $_, "\n" or confess $!;
+ print GAO $_, "\n" or confess "$!";
}
- $gai->error and confess $!;
+ $gai->error and confess "$!";
}
- close GAO or confess $!;
+ close GAO or confess "$!";
rename "$af.new", "$af" or fail f_ "install %s: %s", $af, $!;
}
my @cmd = (@git, qw(ls-tree -lrz --), "${treeish}:");
debugcmd "|",@cmd;
my $gafl = new IO::File;
- open $gafl, "-|", @cmd or confess $!;
+ open $gafl, "-|", @cmd or confess "$!";
while (<$gafl>) {
chomp or die;
s/^\d+\s+\w+\s+\w+\s+(\d+)\t// or die;
# in child, sets things up, calls $fn->(), and returns undef
# in parent, returns canonical suite name for $tsuite
my $canonsuitefh = IO::File::new_tmpfile;
- my $pid = fork // confess $!;
+ my $pid = fork // confess "$!";
if (!$pid) {
forkcheck_setup();
$isuite = $tsuite;
$debugprefix .= " ";
progress f_ "fetching %s...", $tsuite;
canonicalise_suite();
- print $canonsuitefh $csuite, "\n" or confess $!;
- close $canonsuitefh or confess $!;
+ print $canonsuitefh $csuite, "\n" or confess "$!";
+ close $canonsuitefh or confess "$!";
$fn->();
return undef;
}
- waitpid $pid,0 == $pid or confess $!;
+ waitpid $pid,0 == $pid or confess "$!";
fail f_ "failed to obtain %s: %s", $tsuite, waitstatusmsg()
if $? && $?!=256*4;
- seek $canonsuitefh,0,0 or confess $!;
+ seek $canonsuitefh,0,0 or confess "$!";
local $csuite = <$canonsuitefh>;
- confess $! unless defined $csuite && chomp $csuite;
+ confess "$!" unless defined $csuite && chomp $csuite;
if ($? == 256*4) {
printdebug "multisuite $tsuite missing\n";
return $csuite;
$commit .=
"author $authline\n".
"committer $authline\n\n";
- $output = make_commit_text $commit.$msg;
+ $output = hash_commit_text $commit.$msg;
printdebug "multisuite merge generated $output\n";
}
}
sub clone_set_head () {
- open H, "> .git/HEAD" or confess $!;
- print H "ref: ".lref()."\n" or confess $!;
- close H or confess $!;
+ open H, "> .git/HEAD" or confess "$!";
+ print H "ref: ".lref()."\n" or confess "$!";
+ close H or confess "$!";
}
sub clone_finish ($) {
my ($dstdir) = @_;
printdone f_ "ready for work in %s", $dstdir;
}
+sub vcs_git_url_of_ctrl ($) {
+ my ($ctrl) = @_;
+ my $vcsgiturl = $ctrl->{'Vcs-Git'};
+ if (length $vcsgiturl) {
+ $vcsgiturl =~ s/\s+-b\s+\S+//g;
+ $vcsgiturl =~ s/\s+\[[^][]*\]//g;
+ }
+ return $vcsgiturl;
+}
+
sub clone ($) {
# in multisuite, returns twice!
# once in parent after first suite fetched,
record_maindir();
setup_new_tree();
clone_set_head();
- my $giturl = access_giturl(1);
- if (defined $giturl) {
- runcmd @git, qw(remote add), 'origin', $giturl;
- }
if ($hasgit) {
progress __ "fetching existing git history";
git_fetch_us();
- runcmd_ordryrun_local @git, qw(fetch origin);
} else {
progress __ "starting new git history";
}
fetch_from_archive() or no_such_package;
- my $vcsgiturl = $dsc->{'Vcs-Git'};
+ my $vcsgiturl = vcs_git_url_of_ctrl $dsc;
if (length $vcsgiturl) {
- $vcsgiturl =~ s/\s+-b\s+\S+//g;
runcmd @git, qw(remote add vcs-git), $vcsgiturl;
}
clone_finish($dstdir);
$options{$_} = 1;
}
}
- F->error and confess $!;
+ F->error and confess "$!";
close F;
} else {
- confess $! unless $!==&ENOENT;
+ confess "$!" unless $!==&ENOENT;
}
if (!open F, "debian/source/format") {
- confess $! unless $!==&ENOENT;
+ confess "$!" unless $!==&ENOENT;
return '';
}
$_ = <F>;
- F->error and confess $!;
+ F->error and confess "$!";
+ close F;
chomp;
return ($_, \%options);
}
$cd = $gf->('Distribution');
};
if ($@) {
+ $@ =~ s/^\n//s;
$@ =~ s/^dgit: //gm;
fail "$@".
f_ "Perhaps debian/changelog does not mention %s ?", $v;
return $i_arch_v;
}
-sub pseudomerge_make_commit ($$$$ $$) {
+sub pseudomerge_hash_commit ($$$$ $$) {
my ($clogp, $dgitview, $archive_hash, $i_arch_v,
$msg_cmd, $msg_msg) = @_;
progress f_ "Declaring that HEAD includes all changes in %s...",
# git rev-list --first-parent DTRT.
my $pmf = dgit_privdir()."/pseudomerge";
open MC, ">", $pmf or die "$pmf $!";
- print MC <<END or confess $!;
+ print MC <<END or confess "$!";
tree $tree
parent $dgitview
parent $archive_hash
[$msg_cmd]
END
- close MC or confess $!;
+ close MC or confess "$!";
- return make_commit($pmf);
+ return hash_commit($pmf);
}
sub splitbrain_pseudomerge ($$$$) {
}
my $arch_v = $i_arch_v->[0];
- my $r = pseudomerge_make_commit
+ my $r = pseudomerge_hash_commit
$clogp, $dgitview, $archive_hash, $i_arch_v,
"dgit --quilt=$quilt_mode",
(defined $overwrite_version
my $m = f_ "Declare fast forward from %s", $i_arch_v->[0];
- my $r = pseudomerge_make_commit
+ my $r = pseudomerge_hash_commit
$clogp, $head, $archive_hash, $i_arch_v,
"dgit", $m;
if (!$we_are_initiator) {
# rpush initiator can't do this because it doesn't have $isuite yet
- my $tag = debiantag($cversion, access_nomdistro);
+ my $tag = debiantag_new($cversion, access_nomdistro);
runcmd @git, qw(check-ref-format), $tag;
}
my ($cversion, $dgithead, $maintviewhead, $tfbase) = @_;
my @tagwants;
push @tagwants, {
- TagFn => \&debiantag,
+ TagFn => \&debiantag_new,
Objid => $dgithead,
TfSuffix => '',
View => 'dgit',
TfSuffix => '-maintview',
View => 'maint',
};
- } elsif ($dodep14tag eq 'no' ? 0
- : $dodep14tag eq 'want' ? access_cfg_tagformats_can_splitbrain
- : $dodep14tag eq 'always'
- ? (access_cfg_tagformats_can_splitbrain or fail <<END)
---dep14tag-always (or equivalent in config) means server must support
- both "new" and "maint" tag formats, but config says it doesn't.
-END
- : die "$dodep14tag ?") {
+ } elsif ($dodep14tag ne 'no') {
push @tagwants, {
TagFn => \&debiantag_maintview,
Objid => $dgithead,
$dsc->{$ourdscfield[0]} = join " ",
$tagwants->[0]{Objid}, $declaredistro, $tagwants->[0]{Tag},
$reader_giturl;
- $dsc->save("$dscfn.tmp") or confess $!;
+ $dsc->save("$dscfn.tmp") or confess "$!";
my $changes = parsecontrol($changesfile,$changesfilewhat);
foreach my $field (qw(Source Distribution Version)) {
my $cversion = getfield $clogp, 'Version';
my $clogsuite = getfield $clogp, 'Distribution';
+ my $format = getfield $dsc, 'Format';
# We make the git tag by hand because (a) that makes it easier
# to control the "tagger" (b) we can do remote signing
my $authline = clogp_authline $clogp;
- my $delibs = join(" ", "",@deliberatelies);
my $mktag = sub {
my ($tw) = @_;
my $head = $tw->{Objid};
my $tag = $tw->{Tag};
- open TO, '>', $tfn->('.tmp') or confess $!;
- print TO <<END or confess $!;
+ open TO, '>', $tfn->('.tmp') or confess "$!";
+ print TO <<END or confess "$!";
object $head
type commit
tag $tag
tagger $authline
END
- if ($tw->{View} eq 'dgit') {
- print TO f_ <<ENDT, $package, $cversion, $clogsuite, $csuite
-%s release %s for %s (%s) [dgit]
-ENDT
- or confess $!;
- print TO <<END or confess $!;
-[dgit distro=$declaredistro$delibs]
+
+ my @dtxinfo = @deliberatelies;
+ unshift @dtxinfo, "--quilt=$quilt_mode" if madformat($format);
+ unshift @dtxinfo, do_split_brain() ? "split" : "no-split"
+ # rpush protocol 5 and earlier don't tell us
+ unless $we_are_initiator && $protovsn < 6;
+ my $dtxinfo = join(" ", "",@dtxinfo);
+ my $tag_metadata = <<END;
+[dgit distro=$declaredistro$dtxinfo]
END
- foreach my $ref (sort keys %previously) {
- print TO <<END or confess $!;
+ foreach my $ref (sort keys %previously) {
+ $tag_metadata .= <<END or confess "$!";
[dgit previously:$ref=$previously{$ref}]
END
- }
+ }
+
+ if ($tw->{View} eq 'dgit') {
+ print TO sprintf <<ENDT, $package, $cversion, $clogsuite, $csuite
+%s release %s for %s (%s) [dgit]
+ENDT
+ or confess "$!";
} elsif ($tw->{View} eq 'maint') {
- print TO f_ <<END, $package, $cversion, $clogsuite, $csuite,
+ print TO sprintf <<END, $package, $cversion, $clogsuite, $csuite;
%s release %s for %s (%s)
+
+END
+ print TO f_ <<END,
(maintainer view tag generated by dgit --quilt=%s)
END
$quilt_mode
- or confess $!;
+ or confess "$!";
} else {
confess Dumper($tw)."?";
}
+ print TO "\n", $tag_metadata;
- close TO or confess $!;
+ close TO or confess "$!";
my $tagobjfn = $tfn->('.tmp');
if ($sign) {
if (!defined $keyid) {
$keyid = getfield $clogp, 'Maintainer';
}
- unlink $tfn->('.tmp.asc') or $!==&ENOENT or confess $!;
+ unlink $tfn->('.tmp.asc') or $!==&ENOENT or confess "$!";
my @sign_cmd = (@gpg, qw(--detach-sign --armor));
push @sign_cmd, qw(-u),$keyid if defined $keyid;
push @sign_cmd, $tfn->('.tmp');
You can retry the push, after fixing the problem, if you like.
END
- need_tagformat 'new', "quilt mode $quilt_mode"
- if quiltmode_splitbrain;
-
prep_ud();
access_giturl(); # check that success is vaguely likely
rpush_handle_protovsn_bothends() if $we_are_initiator;
- select_tagformat();
my $clogpfn = dgit_privdir()."/changelog.822.tmp";
runcmd shell_cmd "exec >$clogpfn", qw(dpkg-parsechangelog);
push_parse_dsc($dscpath, $dscfn, $cversion);
my $format = getfield $dsc, 'Format';
- printdebug "format $format\n";
my $symref = git_get_symref();
my $actualhead = git_rev_parse('HEAD');
if (branch_is_gdr_unstitched_ff($symref, $actualhead, $archive_hash)) {
- if (quiltmode_splitbrain()) {
+ if (quiltmode_splitting()) {
my ($ffq_prev, $gdrlast) = branch_gdr_info($symref, $actualhead);
fail f_ <<END, $ffq_prev, $quilt_mode;
Branch is managed by git-debrebase (%s
if (madformat_wantfixup($format)) {
# user might have not used dgit build, so maybe do this now:
- if (quiltmode_splitbrain()) {
+ if (do_split_brain()) {
changedir $playground;
- quilt_make_fake_dsc($upstreamversion);
my $cachekey;
($dgithead, $cachekey) =
quilt_check_splitbrain_cache($actualhead, $upstreamversion);
"--quilt=%s but no cached dgit view:
perhaps HEAD changed since dgit build[-source] ?",
$quilt_mode;
- $split_brain = 1;
- $dgithead = splitbrain_pseudomerge($clogp,
- $actualhead, $dgithead,
- $archive_hash);
- $maintviewhead = $actualhead;
- changedir $maindir;
- prep_ud(); # so _only_subdir() works, below
- } else {
+ }
+ if (!do_split_brain()) {
+ # In split brain mode, do not attempt to incorporate dirty
+ # stuff from the user's working tree. That would be mad.
commit_quilty_patch();
}
}
+ if (do_split_brain()) {
+ $made_split_brain = 1;
+ $dgithead = splitbrain_pseudomerge($clogp,
+ $actualhead, $dgithead,
+ $archive_hash);
+ $maintviewhead = $actualhead;
+ changedir $maindir;
+ prep_ud(); # so _only_subdir() works, below
+ }
if (defined $overwrite_version && !defined $maintviewhead
&& $archive_hash) {
" of the archive's version.\n".
"To overwrite the archive's contents,".
" pass --overwrite[=VERSION].\n".
- "To rewind history, if permitted by the archive,".
+ "To rewrite history, if permitted by the archive,".
" use --deliberately-not-fast-forward.";
}
}
+ confess unless !!$made_split_brain == do_split_brain();
+
+ my $tagname = debiantag_new $cversion, access_nomdistro();
+ if (!(forceing[qw(reusing-version)]) && git_get_ref "refs/tags/$tagname") {
+ supplementary_message '';
+ print STDERR f_ <<END, $cversion;
+
+Version %s has already been tagged (pushed?)
+If this was a failed (or incomplete or rejected) upload by you, just
+add a new changelog stanza for a new version number and try again.
+END
+ fail f_ <<END, $tagname;
+Tag %s already exists.
+END
+ }
+
changedir $playground;
progress f_ "checking that %s corresponds to HEAD", $dscfn;
runcmd qw(dpkg-source -x --),
my $r = system @diffcmd;
if ($r) {
if ($r==256) {
- my $referent = $split_brain ? $dgithead : 'HEAD';
+ my $referent = $made_split_brain ? $dgithead : 'HEAD';
my $diffs = cmdoutput @git, qw(diff --stat), $tree, $dgithead;
my @mode_changes;
responder_send_command("param head $dgithead");
responder_send_command("param csuite $csuite");
responder_send_command("param isuite $isuite");
- responder_send_command("param tagformat $tagformat");
+ responder_send_command("param tagformat new"); # needed in $protovsn==4
+ responder_send_command("param splitbrain $do_split_brain");
if (defined $maintviewhead) {
- confess "internal error (protovsn=$protovsn)"
- if defined $protovsn and $protovsn < 4;
responder_send_command("param maint-view $maintviewhead");
}
sub cmd_pull {
parseopts();
fetchpullargs();
- if (quiltmode_splitbrain()) {
+ determine_whether_split_brain get_source_format();
+ if (do_split_brain()) {
my ($format, $fopts) = get_source_format();
madformat($format) and fail f_ <<END, $quilt_mode
-dgit pull not yet supported in split view mode (--quilt=%s)
+dgit pull not yet supported in split view mode (including with view-splitting quilt modes)
END
}
pull();
get_archive_dsc();
$ctrl = $dsc;
}
- my $url = getfield $ctrl, 'Vcs-Git';
+ my $url = vcs_git_url_of_ctrl $ctrl;
+ fail 'no Vcs-Git header in control file' unless length $url;
my @cmd;
my $orgurl = cfg 'remote.vcs-git.url', 'RETURN-UNDEF';
print STDERR f_ "setting up vcs-git: %s\n", $url;
@cmd = (@git, qw(remote add vcs-git), $url);
} elsif ($orgurl eq $url) {
- print STDERR f_ "vcs git already configured: %s\n", $url;
+ print STDERR f_ "vcs git unchanged: %s\n", $url;
} else {
print STDERR f_ "changing vcs-git url to: %s\n", $url;
@cmd = (@git, qw(remote set-url vcs-git), $url);
}
- runcmd_ordryrun_local @cmd;
+ runcmd_ordryrun_local @cmd if @cmd;
if ($dofetch) {
print f_ "fetching (%s)\n", "@ARGV";
runcmd_ordryrun_local @git, qw(fetch vcs-git), @ARGV;
parseopts();
build_or_push_prep_early();
pushing();
+ build_or_push_prep_modes();
check_not_dirty();
my $specsuite;
if (@ARGV==0) {
$we_are_responder = 1;
$us .= " (build host)";
- open PI, "<&STDIN" or confess $!;
- open STDIN, "/dev/null" or confess $!;
- open PO, ">&STDOUT" or confess $!;
+ open PI, "<&STDIN" or confess "$!";
+ open STDIN, "/dev/null" or confess "$!";
+ open PO, ">&STDOUT" or confess "$!";
autoflush PO 1;
- open STDOUT, ">&STDERR" or confess $!;
+ open STDOUT, ">&STDERR" or confess "$!";
autoflush STDOUT 1;
$vsnwant //= 1;
# a good error message)
sub rpush_handle_protovsn_bothends () {
- if ($protovsn < 4) {
- need_tagformat 'old', "rpush negotiated protocol $protovsn";
- }
- select_tagformat();
}
our $i_tmp;
changedir $i_tmp;
($protovsn) = initiator_expect { m/^dgit-remote-push-ready (\S+)/ };
die "$protovsn ?" unless grep { $_ eq $protovsn } @rpushprotovsn_support;
- $supplementary_message = '' unless $protovsn >= 3;
for (;;) {
my ($icmd,$iargs) = initiator_expect {
$i_child_pid = undef; # prevents killing some other process with same pid
printdebug "waiting for build host child $pid...\n";
my $got = waitpid $pid, 0;
- confess $! unless $got == $pid;
+ confess "$!" unless $got == $pid;
fail f_ "build host child failed: %s", waitstatusmsg() if $?;
i_cleanup();
}
our %i_wanted;
+our ($i_clogp, $i_version, $i_dscfn, $i_changesfn, @i_buildinfos);
sub i_resp_want ($) {
my ($keyword) = @_;
$isuite = $i_param{'isuite'} // $i_param{'csuite'};
die unless $isuite =~ m/^$suite_re$/;
- pushing();
- rpush_handle_protovsn_bothends();
-
- fail f_ "rpush negotiated protocol version %s".
- " which does not support quilt mode %s",
- $protovsn, $quilt_mode
- if quiltmode_splitbrain;
+ if (!defined $dsc) {
+ pushing();
+ rpush_handle_protovsn_bothends();
+ push_parse_dsc $i_dscfn, 'remote dsc', $i_version;
+ if ($protovsn >= 6) {
+ determine_whether_split_brain getfield $dsc, 'Format';
+ $do_split_brain eq ($i_param{'splitbrain'} // '<unsent>')
+ or badproto \*RO,
+ "split brain mismatch, $do_split_brain != $i_param{'split_brain'}";
+ printdebug "rpush split brain $do_split_brain\n";
+ }
+ }
my @localpaths = i_method "i_want", $keyword;
printdebug "[[ $keyword @localpaths\n";
foreach my $localpath (@localpaths) {
protocol_send_file \*RI, $localpath;
}
- print RI "files-end\n" or confess $!;
+ print RI "files-end\n" or confess "$!";
}
-our ($i_clogp, $i_version, $i_dscfn, $i_changesfn, @i_buildinfos);
-
sub i_localname_parsed_changelog {
return "remote-changelog.822";
}
my $maintview = $i_param{'maint-view'};
die if defined $maintview && $maintview =~ m/[^0-9a-f]/;
- select_tagformat();
- if ($protovsn >= 4) {
+ if ($protovsn == 4) {
my $p = $i_param{'tagformat'} // '<undef>';
- $p eq $tagformat
- or badproto \*RO, "tag format mismatch: $p vs. $tagformat";
+ $p eq 'new'
+ or badproto \*RO, "tag format mismatch: $p vs. new";
}
die unless $i_param{'csuite'} =~ m/^$suite_re$/;
$csuite = $&;
- push_parse_dsc $i_dscfn, 'remote dsc', $i_version;
+ defined $dsc or badproto \*RO, "dsc (before parsed-changelog)";
my @tagwants = push_tagwants $i_version, $head, $maintview, "tag";
my $descfn = ".git/dgit/quilt-description.tmp";
open O, '>', $descfn or confess "$descfn: $!";
$msg =~ s/\n+/\n\n/;
- print O <<END or confess $!;
+ print O <<END or confess "$!";
From: $author
${xinfo}Subject: $msg
---
END
- close O or confess $!;
+ close O or confess "$!";
{
local $ENV{'EDITOR'} = cmdoutput qw(realpath --), $0;
return $r;
}
-sub quiltify_splitbrain_needed () {
- if (!$split_brain) {
- progress __ "dgit view: changes are required...";
- runcmd @git, qw(checkout -q -b dgit-view);
- $split_brain = 1;
- }
-}
-
-sub quiltify_splitbrain ($$$$$$$) {
+sub quiltify_splitting ($$$$$$$) {
my ($clogp, $unapplied, $headref, $oldtiptree, $diffbits,
$editedignores, $cachekey) = @_;
my $gitignore_special = 1;
- if ($quilt_mode !~ m/gbp|dpm/) {
+ if ($quilt_mode !~ m/gbp|dpm|baredebian/) {
# treat .gitignore just like any other upstream file
$diffbits = { %$diffbits };
$_ = !!$_ foreach values %$diffbits;
local $ENV{GIT_AUTHOR_EMAIL} = $authline[1];
local $ENV{GIT_AUTHOR_DATE} = $authline[2];
+ confess unless do_split_brain();
+
my $fulldiffhint = sub {
my ($x,$y) = @_;
my $cmd = "git diff $x $y -- :/ ':!debian'";
$cmd;
};
- if ($quilt_mode =~ m/gbp|unapplied/ &&
+ if ($quilt_mode =~ m/gbp|unapplied|baredebian/ &&
($diffbits->{O2H} & 01)) {
my $msg = f_
"--quilt=%s specified, implying patches-unapplied git tree\n".
" but git tree differs from orig in upstream files.",
$quilt_mode;
$msg .= $fulldiffhint->($unapplied, 'HEAD');
- if (!stat_exists "debian/patches") {
+ if (!stat_exists "debian/patches" and $quilt_mode !~ m/baredebian/) {
$msg .= __
"\n ... debian/patches is missing; perhaps this is a patch queue branch?";
}
but git tree differs from result of applying debian/patches to upstream
END
}
- if ($quilt_mode =~ m/gbp|unapplied/ &&
+ if ($quilt_mode =~ m/baredebian/) {
+ # We need to construct a merge which has upstream files from
+ # upstream and debian/ files from HEAD.
+
+ read_tree_upstream $quilt_upstream_commitish, 1, $headref;
+ my $version = getfield $clogp, 'Version';
+ my $upsversion = upstreamversion $version;
+ my $merge = make_commit
+ [ $headref, $quilt_upstream_commitish ],
+ [ +(f_ <<ENDT, $upsversion), $quilt_upstream_commitish_message, <<ENDU ];
+Combine debian/ with upstream source for %s
+ENDT
+[dgit ($our_version) baredebian-merge $version $quilt_upstream_commitish_used]
+ENDU
+ runcmd @git, qw(reset -q --hard), $merge;
+ }
+ if ($quilt_mode =~ m/gbp|unapplied|baredebian/ &&
($diffbits->{O2A} & 01)) { # some patches
- quiltify_splitbrain_needed();
progress __ "dgit view: creating patches-applied version using gbp pq";
runcmd shell_cmd 'exec >/dev/null', gbp_pq, qw(import);
# gbp pq import creates a fresh branch; push back to dgit-view
}
if (($diffbits->{O2H} & 02) && # user has modified .gitignore
!($diffbits->{O2A} & 02)) { # patches do not change .gitignore
- quiltify_splitbrain_needed();
progress __
"dgit view: creating patch to represent .gitignore changes";
ensuredir "debian/patches";
close GIPATCH or die "$gipatch: $!";
runcmd shell_cmd "exec >>$gipatch", @git, qw(diff),
$unapplied, $headref, "--", sort keys %$editedignores;
- open SERIES, "+>>", "debian/patches/series" or confess $!;
- defined seek SERIES, -1, 2 or $!==EINVAL or confess $!;
+ open SERIES, "+>>", "debian/patches/series" or confess "$!";
+ defined seek SERIES, -1, 2 or $!==EINVAL or confess "$!";
my $newline;
- defined read SERIES, $newline, 1 or confess $!;
- print SERIES "\n" or confess $! unless $newline eq "\n";
- print SERIES "auto-gitignore\n" or confess $!;
+ defined read SERIES, $newline, 1 or confess "$!";
+ print SERIES "\n" or confess "$!" unless $newline eq "\n";
+ print SERIES "auto-gitignore\n" or confess "$!";
close SERIES or die $!;
runcmd @git, qw(add -f -- debian/patches/series), $gipatch;
commit_admin +(__ <<END).<<ENDU
[dgit ($our_version) update-gitignore-quilt-fixup]
ENDU
}
-
- my $dgitview = git_rev_parse 'HEAD';
-
- changedir $maindir;
- reflog_cache_insert "refs/$splitbraincache", $cachekey, $dgitview;
-
- changedir "$playground/work";
-
- my $saved = maybe_split_brain_save $headref, $dgitview, __ "converted";
- progress f_ "dgit view: created (%s)", $saved;
}
sub quiltify ($$$$) {
runcmd @git, qw(checkout -q), $cc, qw(debian/changelog);
}
-
- runcmd @git, qw(checkout -q master);
}
sub build_maybe_quilt_fixup () {
check_for_vendor_patches();
- if (quiltmode_splitbrain) {
- fail <<END unless access_cfg_tagformats_can_splitbrain;
-quilt mode $quilt_mode requires split view so server needs to support
- both "new" and "maint" tag formats, but config says it doesn't.
-END
- }
-
my $clogp = parsechangelog();
my $headref = git_rev_parse('HEAD');
my $symref = git_get_symref();
-
- if ($quilt_mode eq 'linear'
- && !$fopts->{'single-debian-patch'}
- && branch_is_gdr($headref)) {
- # This is much faster. It also makes patches that gdr
- # likes better for future updates without laundering.
- #
- # However, it can fail in some casses where we would
- # succeed: if there are existing patches, which correspond
- # to a prefix of the branch, but are not in gbp/gdr
- # format, gdr will fail (exiting status 7), but we might
- # be able to figure out where to start linearising. That
- # will be slower so hopefully there's not much to do.
- my @cmd = (@git_debrebase,
- qw(--noop-ok -funclean-mixed -funclean-ordering
- make-patches --quiet-would-amend));
- # We tolerate soe snags that gdr wouldn't, by default.
- if (act_local()) {
- debugcmd "+",@cmd;
- $!=0; $?=-1;
- failedcmd @cmd
- if system @cmd
- and not ($? == 7*256 or
- $? == -1 && $!==ENOENT);
- } else {
- dryrun_report @cmd;
- }
- $headref = git_rev_parse('HEAD');
- }
+ my $upstreamversion = upstreamversion $version;
prep_ud();
changedir $playground;
- my $upstreamversion = upstreamversion $version;
+ my $splitbrain_cachekey;
+
+ if (do_split_brain()) {
+ my $cachehit;
+ ($cachehit, $splitbrain_cachekey) =
+ quilt_check_splitbrain_cache($headref, $upstreamversion);
+ if ($cachehit) {
+ changedir $maindir;
+ return;
+ }
+ }
+
+ unpack_playtree_need_cd_work($headref);
+ if (do_split_brain()) {
+ runcmd @git, qw(checkout -q -b dgit-view);
+ # so long as work is not deleted, its current branch will
+ # remain dgit-view, rather than master, so subsequent calls to
+ # unpack_playtree_need_cd_work
+ # will DTRT, resetting dgit-view.
+ confess if $made_split_brain;
+ $made_split_brain = 1;
+ }
+ chdir '..';
if ($fopts->{'single-debian-patch'}) {
+ fail f_
+ "quilt mode %s does not make sense (or is not supported) with single-debian-patch",
+ $quilt_mode
+ if quiltmode_splitting();
quilt_fixup_singlepatch($clogp, $headref, $upstreamversion);
} else {
- quilt_fixup_multipatch($clogp, $headref, $upstreamversion);
+ quilt_fixup_multipatch($clogp, $headref, $upstreamversion,
+ $splitbrain_cachekey);
+ }
+
+ if (do_split_brain()) {
+ my $dgitview = git_rev_parse 'HEAD';
+
+ changedir $maindir;
+ reflog_cache_insert "refs/$splitbraincache",
+ $splitbrain_cachekey, $dgitview;
+
+ changedir "$playground/work";
+
+ my $saved = maybe_split_brain_save $headref, $dgitview, __ "converted";
+ progress f_ "dgit view: created (%s)", $saved;
}
changedir $maindir;
@git, qw(pull --ff-only -q), "$playground/work", qw(master);
}
-sub unpack_playtree_mkwork ($) {
+sub build_check_quilt_splitbrain () {
+ build_maybe_quilt_fixup();
+}
+
+sub unpack_playtree_need_cd_work ($) {
my ($headref) = @_;
- mkdir "work" or confess $!;
- changedir "work";
- mktree_in_ud_here();
+ # prep_ud() must have been called already.
+ if (!chdir "work") {
+ # Check in the filesystem because sometimes we run prep_ud
+ # in between multiple calls to unpack_playtree_need_cd_work.
+ confess "$!" unless $!==ENOENT;
+ mkdir "work" or confess "$!";
+ changedir "work";
+ mktree_in_ud_here();
+ }
runcmd @git, qw(reset -q --hard), $headref;
}
# necessary to build the source package.
unpack_playtree_linkorigs($upstreamversion, sub { });
- unpack_playtree_mkwork($headref);
+ unpack_playtree_need_cd_work($headref);
rmtree("debian/patches");
commit_quilty_patch();
}
-sub quilt_make_fake_dsc ($) {
+sub quilt_need_fake_dsc ($) {
+ # cwd should be playground
my ($upstreamversion) = @_;
+ return if stat_exists "fake.dsc";
+ # ^ OK to test this as a sentinel because if we created it
+ # we must either have done the rest too, or crashed.
+
my $fakeversion="$upstreamversion-~~DGITFAKE";
- my $fakedsc=new IO::File 'fake.dsc', '>' or confess $!;
- print $fakedsc <<END or confess $!;
+ my $fakedsc=new IO::File 'fake.dsc', '>' or confess "$!";
+ print $fakedsc <<END or confess "$!";
Format: 3.0 (quilt)
Source: $package
Version: $fakeversion
my $md = new Digest::MD5;
my $fh = new IO::File $leaf, '<' or die "$leaf $!";
- stat $fh or confess $!;
+ stat $fh or confess "$!";
my $size = -s _;
$md->addfile($fh);
- print $fakedsc " ".$md->hexdigest." $size $leaf\n" or confess $!;
+ print $fakedsc " ".$md->hexdigest." $size $leaf\n" or confess "$!";
};
unpack_playtree_linkorigs($upstreamversion, $dscaddfile);
runcmd qw(env GZIP=-1n tar -zcf), "./$debtar", qw(-C), $maindir, @files;
$dscaddfile->($debtar);
- close $fakedsc or confess $!;
+ close $fakedsc or confess "$!";
}
sub quilt_fakedsc2unapplied ($$) {
my ($headref, $upstreamversion) = @_;
# must be run in the playground
- # quilt_make_fake_dsc must have been called
+ # quilt_need_fake_dsc must have been called
+ quilt_need_fake_dsc($upstreamversion);
runcmd qw(sh -ec),
'exec dpkg-source --no-check --skip-patches -x fake.dsc >/dev/null';
# Computes the cache key and looks in the cache.
# Returns ($dgit_view_commitid, $cachekey) or (undef, $cachekey)
+ quilt_need_fake_dsc($upstreamversion);
+
my $splitbrain_cachekey;
progress f_
push @cachekey, $upstreamversion;
push @cachekey, $quilt_mode;
push @cachekey, $headref;
+ push @cachekey, $quilt_upstream_commitish // '-';
push @cachekey, hashfile('fake.dsc');
"refs/$splitbraincache", $splitbrain_cachekey;
if ($cachehit) {
- unpack_playtree_mkwork($headref);
+ unpack_playtree_need_cd_work($headref);
my $saved = maybe_split_brain_save $headref, $cachehit, "cache-hit";
if ($cachehit ne $headref) {
progress f_ "dgit view: found cached (%s)", $saved;
runcmd @git, qw(checkout -q -b dgit-view), $cachehit;
- $split_brain = 1;
+ $made_split_brain = 1;
return ($cachehit, $splitbrain_cachekey);
}
progress __ "dgit view: found cached, no changes required";
return (undef, $splitbrain_cachekey);
}
+sub baredebian_origtarballs_scan ($$$) {
+ my ($fakedfi, $upstreamversion, $dir) = @_;
+ if (!opendir OD, $dir) {
+ return if $! == ENOENT;
+ fail "opendir $dir (origs): $!";
+ }
+
+ while ($!=0, defined(my $leaf = readdir OD)) {
+ {
+ local ($debuglevel) = $debuglevel-1;
+ printdebug "BDOS $dir $leaf ?\n";
+ }
+ next unless is_orig_file_of_vsn $leaf, $upstreamversion;
+ next if grep { $_->{Filename} eq $leaf } @$fakedfi;
+ push @$fakedfi, {
+ Filename => $leaf,
+ Path => "$dir/$leaf",
+ };
+ }
+
+ die "$dir; $!" if $!;
+ closedir OD;
+}
+
sub quilt_fixup_multipatch ($$$) {
- my ($clogp, $headref, $upstreamversion) = @_;
+ my ($clogp, $headref, $upstreamversion, $splitbrain_cachekey) = @_;
progress f_ "examining quilt state (multiple patches, %s mode)",
$quilt_mode;
# afterwards with dpkg-source --before-build. That lets us save a
# tree object corresponding to .origs.
- my $splitbrain_cachekey;
+ if ($quilt_mode eq 'linear'
+ && branch_is_gdr($headref)) {
+ # This is much faster. It also makes patches that gdr
+ # likes better for future updates without laundering.
+ #
+ # However, it can fail in some casses where we would
+ # succeed: if there are existing patches, which correspond
+ # to a prefix of the branch, but are not in gbp/gdr
+ # format, gdr will fail (exiting status 7), but we might
+ # be able to figure out where to start linearising. That
+ # will be slower so hopefully there's not much to do.
- quilt_make_fake_dsc($upstreamversion);
+ unpack_playtree_need_cd_work $headref;
- if (quiltmode_splitbrain()) {
- my $cachehit;
- ($cachehit, $splitbrain_cachekey) =
- quilt_check_splitbrain_cache($headref, $upstreamversion);
- return if $cachehit;
+ my @cmd = (@git_debrebase,
+ qw(--noop-ok -funclean-mixed -funclean-ordering
+ make-patches --quiet-would-amend));
+ # We tolerate soe snags that gdr wouldn't, by default.
+ if (act_local()) {
+ debugcmd "+",@cmd;
+ $!=0; $?=-1;
+ failedcmd @cmd
+ if system @cmd
+ and not ($? == 7*256 or
+ $? == -1 && $!==ENOENT);
+ } else {
+ dryrun_report @cmd;
+ }
+ $headref = git_rev_parse('HEAD');
+
+ chdir '..';
}
+
my $unapplied=quilt_fakedsc2unapplied($headref, $upstreamversion);
ensuredir '.pc';
changedir '..';
- unpack_playtree_mkwork($headref);
+ unpack_playtree_need_cd_work($headref);
my $mustdeletepc=0;
if (stat_exists ".pc") {
progress __ "Tree already contains .pc - will use it then delete it.";
$mustdeletepc=1;
} else {
- rename '../fake/.pc','.pc' or confess $!;
+ rename '../fake/.pc','.pc' or confess "$!";
}
changedir '../fake';
# We calculate some guesswork now about what kind of tree this might
# be. This is mostly for error reporting.
+ my $tentries = cmdoutput @git, qw(ls-tree --name-only -z), $headref;
+ my $onlydebian = $tentries eq "debian\0";
+
+ my $uheadref = $headref;
+ my $uhead_whatshort = 'HEAD';
+
+ if ($quilt_mode =~ m/baredebian\+tarball/) {
+ # We need to make a tarball import. Yuk.
+ # We want to do this here so that we have a $uheadref value
+
+ my @fakedfi;
+ baredebian_origtarballs_scan \@fakedfi, $upstreamversion, bpd_abs();
+ baredebian_origtarballs_scan \@fakedfi, $upstreamversion,
+ "$maindir/.." unless $buildproductsdir eq '..';
+ changedir '..';
+
+ my @tartrees = import_tarball_tartrees $upstreamversion, \@fakedfi;
+
+ fail __ "baredebian quilt fixup: could not find any origs"
+ unless @tartrees;
+
+ changedir 'work';
+ my ($authline, $r1authline, $clogp,) =
+ import_tarball_commits \@tartrees, $upstreamversion;
+
+ if (@tartrees == 1) {
+ $uheadref = $tartrees[0]{Commit};
+ # TRANSLATORS: this translation must fit in the ASCII art
+ # quilt differences display. The untranslated display
+ # says %9.9s, so with that display it must be at most 9
+ # characters.
+ $uhead_whatshort = __ 'tarball';
+ } else {
+ # on .dsc import we do not make a separate commit, but
+ # here we need to do so
+ rm_subdir_cached '.';
+ my $parents;
+ foreach my $ti (@tartrees) {
+ my $c = $ti->{Commit};
+ if ($ti->{OrigPart} eq 'orig') {
+ runcmd qw(git read-tree), $c;
+ } elsif ($ti->{OrigPart} =~ m/orig-/) {
+ read_tree_subdir $', $c;
+ } else {
+ confess "$ti->OrigPart} ?"
+ }
+ $parents .= "parent $c\n";
+ }
+ my $tree = git_write_tree();
+ my $mbody = f_ 'Combine orig tarballs for %s %s',
+ $package, $upstreamversion;
+ $uheadref = hash_commit_text <<END;
+tree $tree
+${parents}author $r1authline
+committer $r1authline
+
+$mbody
+
+[dgit import tarballs combine $package $upstreamversion]
+END
+ # TRANSLATORS: this translation must fit in the ASCII art
+ # quilt differences display. The untranslated display
+ # says %9.9s, so with that display it must be at most 9
+ # characters. This fragmentt is referring to multiple
+ # orig tarballs in a source package.
+ $uhead_whatshort = __ 'tarballs';
+
+ runcmd @git, qw(reset -q);
+ }
+ $quilt_upstream_commitish = $uheadref;
+ $quilt_upstream_commitish_used = '*orig*';
+ $quilt_upstream_commitish_message = '';
+ }
+ if ($quilt_mode =~ m/baredebian$/) {
+ $uheadref = $quilt_upstream_commitish;
+ # TRANSLATORS: this translation must fit in the ASCII art
+ # quilt differences display. The untranslated display
+ # says %9.9s, so with that display it must be at most 9
+ # characters.
+ $uhead_whatshort = __ 'upstream';
+ }
+
my %editedignores;
my @unrepres;
my $diffbits = {
# H = user's HEAD
# O = orig, without patches applied
# A = "applied", ie orig with H's debian/patches applied
- O2H => quiltify_trees_differ($unapplied,$headref, 1,
+ O2H => quiltify_trees_differ($unapplied,$uheadref, 1,
\%editedignores, \@unrepres),
- H2A => quiltify_trees_differ($headref, $oldtiptree,1),
+ H2A => quiltify_trees_differ($uheadref, $oldtiptree,1),
O2A => quiltify_trees_differ($unapplied,$oldtiptree,1),
};
progress f_
"%s: base trees orig=%.20s o+d/p=%.20s",
$us, $unapplied, $oldtiptree;
+ # TRANSLATORS: Try to keep this ascii-art layout right. The 0s in
+ # %9.00009s will be ignored and are there to make the format the
+ # same length (9 characters) as the output it generates. If you
+ # change the value 9, your translations of "upstream" and
+ # 'tarball' must fit into the new length, and you should change
+ # the number of 0s. Do not reduce it below 4 as HEAD has to fit
+ # too.
progress f_
"%s: quilt differences: src: %s orig %s gitignores: %s orig %s\n".
-"%s: quilt differences: HEAD %s o+d/p HEAD %s o+d/p",
+"%s: quilt differences: %9.00009s %s o+d/p %9.00009s %s o+d/p",
$us, $dl[0], $dl[1], $dl[3], $dl[4],
- $us, $dl[2], $dl[5];
+ $us, $uhead_whatshort, $dl[2], $uhead_whatshort, $dl[5];
- if (@unrepres) {
+ if (@unrepres && $quilt_mode !~ m/baredebian/) {
+ # With baredebian, even if the upstream commitish has this
+ # problem, we don't want to print this message, as nothing
+ # is going to try to make a patch out of it anyway.
print STDERR f_ "dgit: cannot represent change: %s: %s\n",
$_->[1], $_->[0]
foreach @unrepres;
}
my @failsuggestion;
- if (!($diffbits->{O2H} & $diffbits->{O2A})) {
+ if ($onlydebian) {
+ push @failsuggestion, [ 'onlydebian', __
+ "This has only a debian/ directory; you probably want --quilt=bare debian." ]
+ unless $quilt_mode =~ m/baredebian/;
+ } elsif (!($diffbits->{O2H} & $diffbits->{O2A})) {
push @failsuggestion, [ 'unapplied', __
"This might be a patches-unapplied branch." ];
} elsif (!($diffbits->{H2A} & $diffbits->{O2A})) {
if stat_exists '.gitattributes';
push @failsuggestion, [ 'origs', __
- "Maybe orig tarball(s) are not identical to git representation?" ];
-
- if (quiltmode_splitbrain()) {
- quiltify_splitbrain($clogp, $unapplied, $headref, $oldtiptree,
- $diffbits, \%editedignores,
- $splitbrain_cachekey);
+ "Maybe orig tarball(s) are not identical to git representation?" ]
+ unless $onlydebian && $quilt_mode !~ m/baredebian/;
+ # ^ in that case, we didn't really look properly
+
+ if (quiltmode_splitting()) {
+ quiltify_splitting($clogp, $unapplied, $headref, $oldtiptree,
+ $diffbits, \%editedignores,
+ $splitbrain_cachekey);
return;
}
progress f_ "starting quiltify (multiple patches, %s mode)", $quilt_mode;
quiltify($clogp,$headref,$oldtiptree,\@failsuggestion);
+ runcmd @git, qw(checkout -q), (qw(master dgit-view)[do_split_brain()]);
if (!open P, '>>', ".pc/applied-patches") {
- $!==&ENOENT or confess $!;
+ $!==&ENOENT or confess "$!";
} else {
close P;
}
open I2, '<', $editing or confess "$editing: $!";
unlink $editing or confess "$editing: $!";
open O, '>', $editing or confess "$editing: $!";
- while (<I1>) { print O or confess $!; } I1->error and confess $!;
+ while (<I1>) { print O or confess "$!"; } I1->error and confess "$!";
my $copying = 0;
while (<I2>) {
$copying ||= m/^\-\-\- /;
next unless $copying;
- print O or confess $!;
+ print O or confess "$!";
}
- I2->error and confess $!;
+ I2->error and confess "$!";
close O or die $1;
finish 0;
}
sub maybe_apply_patches_dirtily () {
- return unless $quilt_mode =~ m/gbp|unapplied/;
- print STDERR __ <<END or confess $!;
+ return unless $quilt_mode =~ m/gbp|unapplied|baredebian/;
+ print STDERR __ <<END or confess "$!";
dgit: Building, or cleaning with rules target, in patches-unapplied tree.
dgit: Have to apply the patches - making the tree dirty.
push @cmd, qw(-x) unless $honour_ignores;
my $leftovers = cmdoutput @cmd;
if (length $leftovers) {
- print STDERR $leftovers, "\n" or confess $!;
+ print STDERR $leftovers, "\n" or confess "$!";
$message .= $ignmessage if $honour_ignores;
fail $message;
}
sub clean_tree () {
# We always clean the tree ourselves, rather than leave it to the
# builder (dpkg-source, or soemthing which calls dpkg-source).
+ if ($quilt_mode =~ m/baredebian/ and $cleanmode =~ m/git/) {
+ fail f_ <<END, $quilt_mode, $cleanmode;
+quilt mode %s (generally needs untracked upstream files)
+contradicts clean mode %s (which would delete them)
+END
+ # This is not 100% true: dgit build-source and push-source
+ # (for example) could operate just fine with no upstream
+ # source in the working tree. But it doesn't seem likely that
+ # the user wants dgit to proactively delete such things.
+ # -wn, for example, would produce identical output without
+ # deleting anything from the working tree.
+ }
if ($cleanmode =~ m{^dpkg-source}) {
my @cmd = @dpkgbuildpackage;
push @cmd, qw(-d) if $cleanmode =~ m{^dpkg-source-d};
sub build_or_push_prep_early () {
our $build_or_push_prep_early_done //= 0;
return if $build_or_push_prep_early_done++;
- badusage f_ "-p is not allowed with dgit %s", $subcommand
- if defined $package;
my $clogp = parsechangelog();
$isuite = getfield $clogp, 'Distribution';
- $package = getfield $clogp, 'Source';
+ my $gotpackage = getfield $clogp, 'Source';
$version = getfield $clogp, 'Version';
+ $package //= $gotpackage;
+ if ($package ne $gotpackage) {
+ fail f_ "-p specified package %s, but changelog says %s",
+ $package, $gotpackage;
+ }
$dscfn = dscfn($version);
}
+sub build_or_push_prep_modes () {
+ my ($format) = get_source_format();
+ determine_whether_split_brain($format);
+
+ fail __ "dgit: --include-dirty is not supported with split view".
+ " (including with view-splitting quilt modes)"
+ if do_split_brain() && $includedirty;
+
+ if (madformat_wantfixup $format and $quilt_mode =~ m/baredebian$/) {
+ ($quilt_upstream_commitish, $quilt_upstream_commitish_used,
+ $quilt_upstream_commitish_message)
+ = resolve_upstream_version
+ $quilt_upstream_commitish, upstreamversion $version;
+ progress f_ "dgit: --quilt=%s, %s", $quilt_mode,
+ $quilt_upstream_commitish_message;
+ } elsif (defined $quilt_upstream_commitish) {
+ fail __
+ "dgit: --upstream-commitish only makes sense with --quilt=baredebian"
+ }
+}
+
sub build_prep_early () {
build_or_push_prep_early();
notpushing();
+ build_or_push_prep_modes();
check_not_dirty();
}
# said -wc we should still do the check.
clean_tree_check();
}
- build_maybe_quilt_fixup();
+ build_check_quilt_splitbrain();
if ($rmchanges) {
my $pat = changespat $version;
foreach my $f (glob "$buildproductsdir/$pat") {
}
}
+sub maybe_warn_opt_confusion ($$$) {
+ my ($subcommand, $willrun, $optsref) = @_;
+ foreach (@$optsref) {
+ if (m/^(?: --dry-run $
+ | --damp-run $
+ | --clean= | -w[gcnd]
+ | --(?:include|ignore)-dirty$
+ | --quilt= | --gbp$ | --dpm$ | --baredebian
+ | --split-view=
+ | --build-products-dir=
+ )/x) {
+ print STDERR f_ <<END, $&, $subcommand or die $!;
+warning: dgit option %s must be passed before %s on dgit command line
+END
+ } elsif (m/^(?: -C
+ | --no-sign $
+ | -k
+ )/x) {
+ print STDERR f_ <<END, $&, $subcommand, $willrun or die $!;
+warning: option %s should probably be passed to dgit before %s sub-command on the dgit command line, so that it is seen by dgit and not simply passed to %s
+END
+ }
+ }
+}
+
sub changesopts_initial () {
my @opts =@changesopts[1..$#changesopts];
}
"@changesfiles";
}
printdone f_ "build successful, results in %s\n", $result
- or confess $!;
+ or confess "$!";
}
sub midbuild_checkchanges () {
sub cmd_build {
build_prep_early();
+ maybe_warn_opt_confusion 'build', 'dpkg-buildpackage', \@ARGV;
$buildproductsdir eq '..' or print STDERR +(f_ <<END, $us, $us);
%s: warning: build-products-dir set, but not supported by dpkg-buildpackage
%s: warning: build-products-dir will be ignored; files will go to ..
sub cmd_gbp_build {
build_prep_early();
+ maybe_warn_opt_confusion 'gbp-build', 'gbp buildpackage', \@ARGV;
# gbp can make .origs out of thin air. In my tests it does this
# even for a 1.0 format package, with no origs present. So I
if ($gbp_make_orig) {
my $priv = dgit_privdir();
my $ok = "$priv/origs-gen-ok";
- unlink $ok or $!==&ENOENT or confess $!;
+ unlink $ok or $!==&ENOENT or confess "$!";
my @origs_cmd = @cmd;
push @origs_cmd, qw(--git-cleaner=true);
push @origs_cmd, "--git-prebuild=".
#
# Note that if we are building a source package in split brain
# mode we do not support including uncommitted changes, because
- # that makes quilt fixup too hard. I.e. ($split_brain && (dgit is
+ # that makes quilt fixup too hard. I.e. ($made_split_brain && (dgit is
# building a source package)) => !$includedirty
return !$includedirty;
}
unlink "$buildproductsdir/$sourcechanges" or $!==ENOENT
or fail f_ "remove %s: %s", $sourcechanges, $!;
}
+# confess unless !!$made_split_brain == do_split_brain();
+
my @cmd = (@dpkgsource, qw(-b --));
my $leafdir;
if (building_source_in_playtree()) {
# If we are in split brain, there is already a playtree with
# the thing we should package into a .dsc (thanks to quilt
# fixup). If not, make a playtree
- prep_ud() unless $split_brain;
+ prep_ud() unless $made_split_brain;
changedir $playground;
- unless ($split_brain) {
+ unless ($made_split_brain) {
my $upstreamversion = upstreamversion $version;
unpack_playtree_linkorigs($upstreamversion, sub { });
- unpack_playtree_mkwork($headref);
+ unpack_playtree_need_cd_work($headref);
changedir '..';
}
} else {
"dgit push-source: --include-dirty/--ignore-dirty does not make".
"sense with push-source!"
if $includedirty;
- build_maybe_quilt_fixup();
+ build_check_quilt_splitbrain();
if ($changesfile) {
my $changes = parsecontrol("$buildproductsdir/$changesfile",
__ "source changes file");
sub cmd_sbuild {
build_prep_early();
+ maybe_warn_opt_confusion 'sbuild', 'sbuild', \@ARGV;
binary_builder(\@sbuild, (__ <<END), qw(-d), $isuite, @ARGV, $dscfn);
perhaps you need to pass -A ? (sbuild's default is to build only
arch-specific binaries; dgit 1.4 used to override that.)
sub pbuilder ($) {
my ($pbuilder) = @_;
build_prep_early();
+ maybe_warn_opt_confusion 'pbuilder', 'pbuilder', \@ARGV;
# @ARGV is allowed to contain only things that should be passed to
# pbuilder under debbuildopts; just massage those
my $wantsrc = massage_dbp_args \@ARGV;
prep_ud();
changedir $playground;
my $uv = upstreamversion $version;
- quilt_make_fake_dsc($uv);
my $u = quilt_fakedsc2unapplied($headref, $uv);
- print $u, "\n" or confess $!;
+ print $u, "\n" or confess "$!";
}
sub import_dsc_result {
my $version = getfield $dsc, 'Version';
my $clogp = commit_getclogp $newhash;
my $authline = clogp_authline $clogp;
- $newhash = make_commit_text <<ENDU
+ $newhash = hash_commit_text <<ENDU
tree $tree
parent $newhash
parent $oldhash
badusage __ "need only 1 subpath argument" unless @ARGV==1;
my ($subpath) = @ARGV;
local $isuite = 'DGIT-API-QUERY-CMD';
- my @cmd = archive_api_query_cmd($subpath);
- push @cmd, qw(-f);
- debugcmd ">",@cmd;
- exec @cmd or fail f_ "exec curl: %s\n", $!;
+ my $json = api_query_raw $subpath;
+ print $json or die "$!";
}
sub repos_server_url () {
"no arguments allowed to dgit print-dgit-repos-server-source-url"
if @ARGV;
my $url = repos_server_url();
- print $url, "\n" or confess $!;
+ print $url, "\n" or confess "$!";
}
sub pre_print_dpkg_source_ignores {
badusage __
"no arguments allowed to dgit print-dpkg-source-ignores"
if @ARGV;
- print "@dpkg_source_ignores\n" or confess $!;
+ print "@dpkg_source_ignores\n" or confess "$!";
}
sub cmd_setup_mergechangelogs {
#---------- argument parsing and main program ----------
sub cmd_version {
- print "dgit version $our_version\n" or confess $!;
+ print "dgit version $our_version\n" or confess "$!";
finish 0;
}
push @ropts, $_;
my $cmd = shift @$om;
@$om = ($cmd, grep { $_ ne $2 } @$om);
- } elsif (m/^--(gbp|dpm)$/s) {
+ } elsif (m/^--($quilt_options_re)$/s) {
push @ropts, "--quilt=$1";
$quilt_mode = $1;
} elsif (m/^--(?:ignore|include)-dirty$/s) {
} elsif (m/^--overwrite$/s) {
push @ropts, $_;
$overwrite_version = '';
+ } elsif (m/^--split-(?:view|brain)$/s) {
+ push @ropts, $_;
+ $splitview_mode = 'always';
+ } elsif (m/^--split-(?:view|brain)=($splitview_modes_re)$/s) {
+ push @ropts, $_;
+ $splitview_mode = $1;
} elsif (m/^--overwrite=(.+)$/s) {
push @ropts, $_;
$overwrite_version = $1;
} elsif (m/^--delayed=(\d+)$/s) {
push @ropts, $_;
push @dput, $_;
- } elsif (my ($k,$v) =
- m/^--save-(dgit-view)=(.+)$/s ||
+ } elsif (m/^--upstream-commitish=(.+)$/s) {
+ push @ropts, $_;
+ $quilt_upstream_commitish = $1;
+ } elsif (m/^--save-(dgit-view)=(.+)$/s ||
m/^--(dgit-view)-save=(.+)$/s
) {
+ my ($k,$v) = ($1,$2);
push @ropts, $_;
$v =~ s#^(?!refs/)#refs/heads/#;
$internal_object_save{$k} = $v;
f_ "%s: warning: ignoring unknown force option %s\n",
$us, $_;
$_='';
- } elsif (m/^--dgit-tag-format=(old|new)$/s) {
- # undocumented, for testing
+ } elsif (m/^--for-push$/s) {
push @ropts, $_;
- $tagformat_want = [ $1, 'command line', 1 ];
- # 1 menas overrides distro configuration
+ $access_forpush = 1;
} elsif (m/^--config-lookup-explode=(.+)$/s) {
# undocumented, for testing
push @ropts, $_;
sub check_env_sanity () {
my $blocked = new POSIX::SigSet;
- sigprocmask SIG_UNBLOCK, $blocked, $blocked or confess $!;
+ sigprocmask SIG_UNBLOCK, $blocked, $blocked or confess "$!";
eval {
foreach my $name (qw(PIPE CHLD)) {
or badcfg f_ "unknown quilt-mode \`%s'", $quilt_mode;
$quilt_mode = $1;
}
+ $quilt_mode =~ s/^(baredebian)\+git$/$1/;
foreach my $moc (@modeopt_cfgs) {
local $access_forpush;
$$vr = $v;
}
- fail __ "dgit: --include-dirty is not supported in split view quilt mode"
- if $split_brain && $includedirty;
-
- if (!defined $cleanmode) {
+ {
local $access_forpush;
- $cleanmode = access_cfg('clean-mode-newer', 'RETURN-UNDEF');
- $cleanmode = undef if $cleanmode && $cleanmode !~ m/^$cleanmode_re$/;
-
- $cleanmode //= access_cfg('clean-mode', 'RETURN-UNDEF');
- $cleanmode //= 'dpkg-source';
-
- badcfg f_ "unknown clean-mode \`%s'", $cleanmode unless
- $cleanmode =~ m/$cleanmode_re/;
+ default_from_access_cfg(\$cleanmode, 'clean-mode', 'dpkg-source',
+ $cleanmode_re);
}
$buildproductsdir //= access_cfg('build-products-dir', 'RETURN-UNDEF');
print STDERR __ "DAMP RUN - WILL MAKE LOCAL (UNSIGNED) CHANGES\n"
if $dryrun_level == 1;
if (!@ARGV) {
- print STDERR __ $helpmsg or confess $!;
+ print STDERR __ $helpmsg or confess "$!";
finish 8;
}
$cmd = $subcommand = shift @ARGV;
--- /dev/null
+=head1 NAME
+
+dgit - tips for maintaining official Debian backports
+
+=head1 INTRODUCTION
+
+This document describes elements of a workflow for using B<dgit> to
+maintain an official Debian backport. We do not assume that whoever
+uploads the package to Debian unstable is using B<dgit>.
+
+=head1 GENERAL TIPS
+
+The first time a package is backported
+for any particular Debian release,
+you will have to pass the --new option to dgit.
+
+=head1 TERMINOLOGY
+
+Let the I<master> branch contain the packaging history uploaded to
+Debian unstable, and the I<buster-bpo> branch be where you prepare
+your uploads to the B<buster-backports> suite.
+
+A B<merging> backports workflow means that each time an upload
+migrates to Debian testing and you want to prepare an upload to
+B<buster-backports>, you do something like this:
+
+=over 4
+
+ % git checkout buster-bpo
+ % git merge master
+ % dch --bpo
+ % # any other changes needed for backporting
+ % git commit -a
+ % # try a build
+
+=back
+
+A B<rebasing> backports workflow means that you throw away the history
+of the I<buster-bpo> branch each time a new version migrates to Debian
+testing, something equivalent to this:
+
+=over 4
+
+ % git checkout -B buster-bpo master
+ % dch --bpo
+ % # any other changes needed for backporting
+ % git commit -a
+ % # try a build
+
+=back
+
+If you use a merging backports workflow, your changelog contains
+entries for each previous upload to B<buster-backports>; in a rebasing
+workflow, it contains only the latest.
+
+=head1 CHOOSING BETWEEN THE TWO WORKFLOWS
+
+If backporting involves making no (additional) changes to the upstream
+source, whether you use a merging or rebasing backports workflow is a
+matter of personal preference. There are good arguments in favour of
+both workflows fitting the semantics of the B<*-backports> suites.
+
+If you have to make changes to the upstream source to make the package
+work on machines running Debian stable, it is advisable to choose a
+rebasing workflow. This ensures that dgit can automatically update
+the debian/patches directory without any manual intervention.
+
+=head1 TIPS FOR A MERGING WORKFLOW
+
+=head2 Use dgit's branches
+
+If you do not yourself upload the package to Debian unstable, it is
+usually easiest to use dgit's branches, and ignore the configured
+Vcs-Git repository.
+
+You would use
+
+=over 4
+
+ % dgit clone foo bullseye
+
+=back
+
+for a new backport of package 'foo' to B<buster-backports>, and then
+
+=over 4
+
+ % dgit fetch bullseye
+ % git merge dgit/dgit/bullseye
+
+=back
+
+when new versions migrate to Debian testing.
+
+=head1 TIPS FOR A REBASING WORKFLOW
+
+=head2 Use dgit's branches
+
+If you do not yourself upload the package to Debian unstable, it is
+usually easiest to use dgit's branches, and ignore the configured
+Vcs-Git repository. For each new version from Debian testing, you
+would
+
+=over 4
+
+ % dgit fetch bullseye
+ % git checkout -B buster-bpo dgit/dgit/bullseye
+ % # use git-cherry-pick(1) to (re)apply any needed backporting fixes
+
+=back
+
+=head2 Overwriting
+
+B<dgit push> tries hard to prevent you from accidentally overwriting
+uploads that it thinks aren't represented in the git history you are
+trying to upload. This is mainly to prevent accidentally overwriting
+NMUs.
+
+With a rebasing backports workflow, dgit will think that every upload
+of a new version from Debian testing might be accidentally overwriting
+uploads. You will need to explicitly indicate the upload to
+B<buster-backports> you wish to overwrite.
+
+Suppose that the last upload to B<buster-backports> was versioned
+I<1.2.2-1~bpo10+1> and you have now prepared I<1.2.3-1~bpo10+1> for
+upload. When you B<dgit push>, you will need to pass
+I<--overwrite=1.2.2-1~bpo10+1>.
+
+Alternatively, you can perform the pseudomerge that I<--overwrite>
+would have done yourself:
+
+=over 4
+
+ % dgit fetch buster-backports
+ % git merge -s ours dgit/dgit/buster-backports
+ % dgit push-source
+
+=back
+
+=head1 SEE ALSO
+
+dgit(1), dgit(7), https://backports.debian.org/
+
+=head1 AUTHOR
+
+This manpage was written and is maintained by Sean Whitton
+<spwhitton@spwhitton.name>.
=back
+=head3 Using untagged upstream commits
+
+=over 4
+
+Sometimes upstream does not tag their releases, or you want to package
+an unreleased git snapshot. In such a case you can create your own
+upstream release tag, of the form B<upstream/>I<ver>, where I<ver> is
+the upstream version you plan to put in I<debian/changelog>. The
+B<upstream/> prefix ensures that your tag will not clash with any tags
+upstream later creates.
+
+For example, suppose that the latest upstream release is 1.2.2 and you
+want to package git commit ab34c21 which was made on 2013-12-11. A
+common convention is to use the upstream version number
+1.2.2+git20131211.ab34c21 and so you could use
+
+=over 4
+
+ % git tag -s upstream/1.2.2+git20131211.ab34c21 ab34c21
+
+=back
+
+to obtain a release tag, and then proceed as above.
+
+=back
+
=head2 When upstream releases only tarballs
Because we want to work in git, we need a virtual upstream branch with
% mkdir foo
% cd foo
% git init
+ % git checkout -b upstream
+ % gbp import-orig \
+ --upstream-branch=upstream --debian-branch=master \
+ --upstream-tag='upstream/%(version)s' \
+ --sign-tags --no-pristine-tar \
+ ../foo_1.2.2.orig.tar.xz
+ % git branch -f upstream
=back
-Now create I<debian/gbp.conf>:
+This should leave you on the master branch. Next, our upstream branch
+cannot be pushed to B<dgit-repos>, but since we will need it whenever
+we import a new upstream version, we must push it somewhere. The
+usual choice is B<salsa.debian.org>:
+
+=over 4
+
+ % git remote add -f origin salsa.debian.org:Debian/foo.git
+ % git push --follow-tags -u origin master upstream
+
+=back
+
+You are now ready to proceed as above, making commits to the
+I<debian/> directory and to the upstream source. As above, for
+technical reasons, B<it is essential that your first commit introduces
+the debian/ directory containing at least one file, and does nothing
+else.> In other words, make a commit introducing I<debian/> before
+patching the upstream source.
+
+A convenient way to ensure this requirement is satisfied is to start
+by creating I<debian/gbp.conf>:
=over 4
[DEFAULT]
upstream-branch = upstream
debian-branch = master
- upstream-tag = %(version)s
+ upstream-tag = upstream/%(version)s
sign-tags = True
pristine-tar = False
pristine-tar-commit = False
[import-orig]
- merge-mode = merge
+ merge = False
=back
-gbp-import-orig(1) requires a pre-existing upstream branch:
+and commit that:
=over 4
% git add debian/gbp.conf && git commit -m "create gbp.conf"
- % git checkout --orphan upstream
- % git rm -rf .
- % git commit --allow-empty -m "initial, empty branch for upstream source"
- % git checkout -f master
=back
-Then we can import the upstream version:
-
-=over 4
-
- % gbp import-orig --merge-mode=replace ../foo_1.2.2.orig.tar.xz
-
-=back
-
-Our upstream branch cannot be pushed to B<dgit-repos>, but since we
-will need it whenever we import a new upstream version, we must push
-it somewhere. The usual choice is B<salsa.debian.org>:
-
-=over 4
-
- % git remote add -f origin salsa.debian.org:Debian/foo.git
- % git push --follow-tags -u origin master upstream
-
-=back
-
-You are now ready to proceed as above, making commits to the
-I<debian/> directory and to the upstream source. As above, for
-technical reasons, B<it is essential that your first commit introduces
-the debian/ directory containing at least one file, and does nothing
-else.> In other words, make a commit introducing I<debian/> before
-patching the upstream source.
+Note that we couldn't create I<debian/gbp.conf> before now for the
+same technical reasons which require our first commit to introduce
+I<debian/> without patching the upstream source. That's why we had to
+pass a lot of options to our first call to gbp-import-orig(1).
=head1 CONVERTING AN EXISTING PACKAGE
=over 4
- % git remote update
+ % git fetch --tags upstream
=back
+If you want to package an untagged upstream commit (because upstream
+does not tag releases or because you want to package an upstream
+development snapshot), see "Using untagged upstream commits" above.
+
=head3 When upstream releases only tarballs
You will need the I<debian/gbp.conf> from "When upstream releases only
=over 4
- % gbp import-orig --no-merge ../foo_1.2.3.orig.tar.xz
+ % gbp import-orig ../foo_1.2.3.orig.tar.xz
=back
=over 4
- % gbp import-orig --no-merge --uscan
+ % gbp import-orig --uscan
=back
=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 that may need
-accounting for in your copyright file.
+Also, diff with I<--name-status> and I<--diff-filter=ADR> to see
+just the list of added or removed files, which is useful 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.
If you merged a git tag from upstream, you will first need to generate
will have to pass I<--overwrite> to dgit. git-debrebase will normally
tell you if this will be needed.
+If you want to upload with git-debpush(1), for the first upload you
+should pass the B<--quilt=linear> quilt mode option (see
+git-debpush(1)).
+
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
delta queue appears right at the tip of the branch you will push:
upload of the package, but this should already be represented in your
git history.)
+Alternatively, you can use git-debpush(1). For the first upload you
+should pass the B<--gbp> quilt mode option (see git-debpush(1)).
+
=head1 INCORPORATING NMUS
B<dgit pull> can't yet incorporate NMUs into patches-unapplied gbp
=back
+=head3 Using untagged upstream commits
+
+=over 4
+
+Sometimes upstream does not tag their releases, or you want to package
+an unreleased git snapshot. In such a case you can create your own
+upstream release tag, of the form B<upstream/>I<ver>, where I<ver> is
+the upstream version you plan to put in I<debian/changelog>. The
+B<upstream/> prefix ensures that your tag will not clash with any tags
+upstream later creates.
+
+For example, suppose that the latest upstream release is 1.2.2 and you
+want to package git commit ab34c21 which was made on 2013-12-11. A
+common convention is to use the upstream version number
+1.2.2+git20131211.ab34c21 and so you could use
+
+=over 4
+
+ % git tag -s upstream/1.2.2+git20131211.ab34c21 ab34c21
+
+=back
+
+to obtain a release tag, and then proceed as above.
+
+=back
+
=head2 When upstream releases only tarballs
We need a virtual upstream branch with virtual release tags.
[DEFAULT]
upstream-branch = upstream
debian-branch = master
- upstream-tag = %(version)s
+ upstream-tag = upstream/%(version)s
sign-tags = True
pristine-tar = False
[import-orig]
merge-mode = merge
+ merge = False
=back
=over 4
- % gbp import-orig --merge-mode=replace ../foo_1.2.2.orig.tar.xz
+ % gbp import-orig --merge --merge-mode=replace ../foo_1.2.2.orig.tar.xz
=back
error message explaining what you should do. If it's not clear, file
a bug against dgit. Remember to pass I<--new> for the first upload.
-As an alternative to B<dgit build> and friends, you can use a tool
-like gitpkg(1). This works because like dgit, gitpkg(1) enforces that
-HEAD has exactly the contents of the source package. gitpkg(1) is
-highly configurable, and one dgit user reports using it to produce and
-test multiple source packages, from different branches corresponding
-to each of the current Debian suites.
+If you want to upload with git-debpush(1), for the first upload you
+should pass the B<--quilt=smash> quilt mode option (see
+git-debpush(1)).
+
+As another alternative to B<dgit build> and friends, you can use a
+tool like gitpkg(1). This works because like dgit, gitpkg(1) enforces
+that HEAD has exactly the contents of the source package. gitpkg(1)
+is highly configurable, and one dgit user reports using it to produce
+and test multiple source packages, from different branches
+corresponding to each of the current Debian suites.
If you want to skip dgit's checks while iterating on a problem with
the package build (for example, you don't want to commit your changes
=over 4
- % git remote update
+ % git fetch --tags upstream
=back
+If you want to package an untagged upstream commit (because upstream
+does not tag releases or because you want to package an upstream
+development snapshot), see "Using untagged upstream commits" above.
+
=head3 When upstream releases only tarballs
You will need the I<debian/gbp.conf> from "When upstream releases only
=over 4
- % gbp import-orig --no-merge ../foo_1.2.3.orig.tar.xz
+ % gbp import-orig ../foo_1.2.3.orig.tar.xz
=back
=over 4
- % gbp import-orig --no-merge --uscan
+ % gbp import-orig --uscan
=back
+In the following, replace I<1.2.3> with I<upstream/1.2.3>.
+
=head2 Reviewing & merging the release
It's a good idea to preview the merge of the new upstream release.
=over 4
- % git diff --stat master..1.2.3 -- . ':!debian'
+ % git diff --name-status --diff-filter=ADR master..1.2.3 -- . ':!debian'
=back
The output is left in
.IR package \fB_\fR version \fB_multi.changes\fR.
.IP
-Note that by default
-sbuild does not build arch-independent packages.
-You probably want to pass \-A, to request those.
-.IP
Tagging, signing and actually uploading should be left to dgit push.
.TP
\fBdgit pbuilder\fR [\fIdebbuildopts\fP]
.TP
.BR -N " | " --new
The package is or may be new in this suite. Without this, dgit will
-refuse to push. It may (for Debian, will) be unable to access the git
+refuse to push.
+It may (for Debian, will) be unable to access the git
history for any packages which have been newly pushed and have not yet
been published.
.TP
This can be useful with build, if you plan to commit later. (dgit
push will still ensure that the .dsc you upload and the git tree
you push are identical, so this option won't make broken pushes.)
+
+Note that this does
+.BR not
+prevent dgit from cleaning your tree, so if the changes in your
+working tree are in the form of untracked files, those might still be
+deleted, especially with --clean=git.
+If you want to include untracked files in the build, you can
+use --clean=none or --clean=dpkg-source[-d]
+in addition to --include-dirty.
+Note that this
+combination can fail if the untracked files are under
+\fIdebian/patches/\fR.
.TP
.BR --ignore-dirty
Deprecated alias for --include-dirty.
This option is useful if you are the maintainer, and you have
incorporated NMU changes into your own git workflow in a way that
doesn't make your branch a fast forward from the NMU.
+It can also be useful when there was an upload made without dgit
+since the most recent upload made with dgit.
This option is also usually necessary
the first time a package is pushed with dgit push
git history, so that your push is a fast forward from the archive.
(In quilt mode
-.BR gbp ", " dpm " or " unpatched ,
+.BR gbp ", " dpm ", " unpatched " or " baredebian *,
implying a split between the dgit view and the
maintainer view, the pseudo-merge will appear only in the dgit view.)
.TP
dgit fails to find necessary git commits.
.TP
.BR \-\-save-dgit-view= \fIbranch\fR|\fIref\fR
-Specifies that when a split view quilt mode is in operation,
+Specifies that when split view is in operation,
and dgit calculates
(or looks up in its cache)
a dgit view corresponding to your HEAD,
This option is effective only with the following operations:
quilt-fixup; push; all builds.
-And it is only effective with
-\-\-[quilt=]gbp,
-\-\-[quilt=]dpm,
-\-\-quilt=unpatched.
+And it is only effective when split view is actually in operation.
If ref does not start with refs/
it is taken to be a branch -
understood in the context of Debian are discussed below:
.TP
.BR --deliberately-not-fast-forward
-Declare that you are deliberately rewinding history. When pushing to
-Debian, use this when you are making a renewed upload of an entirely
+Declare that you are deliberately rewriting history.
+This could be because your branch is not fast forward from the
+dgit server history,
+or not fast forward from a locally-synthesised dsc import.
+
+When pushing to Debian,
+use this only when you are making a renewed upload of an entirely
new source package whose previous version was not accepted for release
-from NEW because of problems with copyright or redistributibility.
+from NEW because of problems with copyright or redistributibility;
+or, exceptionally, for the very first upload with dgit.
-In split view quilt modes,
+When split view is in operation,
this also prevents the construction by dgit of a pseudomerge
to make the dgit view fast forwarding.
Normally only one of
rejected by ftpmaster for copyright or redistributability reasons.
.TP
.BR --deliberately-fresh-repo
-Declare that you are deliberately rewinding history and want to
+Declare that you are deliberately rewriting history and want to
throw away the existing repo. Not relevant when pushing to Debian,
as the Debian server will do this automatically when necessary.
.TP
.BR --quilt=auto
When fixing up source format `3.0 (quilt)' metadata, prefer to
generate a linear patch stack
-(as with --quilt=auto)
+(as with --quilt=linear)
but if that doesn't seem possible,
try to generate a single squashed patch for all the changes made in git
(as with --quilt=smash).
fixing up. If you use this option and the metadata did in fact need
fixing up, dgit push will fail.
.TP
-.BR -- [ quilt= ] gbp " | " -- [ quilt= ] dpm " | " --quilt=unapplied
+.BR -- [ quilt= ] gbp " | " -- [ quilt= ] dpm " | " --quilt=unapplied " | " -- [ quilt= ] baredebian [ +git | +tarball ]
Tell dgit that you are using a nearly-dgit-compatible git branch,
aka a
.BR "maintainer view" ,
and
do not want your branch changed by dgit.
+These quilt modes are known as
+.BR "splitting quilt modes" .
+See --split-view, below.
+
.B --gbp
(short for
.BR --quilt=gbp )
that any changes to upstream .gitignore files are represented as
patches in debian/patches).
-With --quilt=gbp|dpm|unapplied,
+.B --quilt=baredebian
+(or its alias
+.BR --quilt=baredebian+git )
+specifies that your HEAD contains only a debian/ directory,
+with any changes to upstream files represented as
+patches in debian/patches.
+The upstream source must be available in git,
+by default, in a suitably named git tag;
+see --upstream-commitish.
+In this mode, dgit cannot check that
+all edited upstream files are properly represented as patches:
+dgit relies on
+debian/patches being correct.
+
+.B --quilt=baredebian+tarball
+is like --quilt=baredebian,
+but is used when there is no appropriate upstream git history.
+To construct the dgit view,
+dgit will import your orig tarballs' contents into git.
+In this mode, dgit cannot check that
+the upstream parts of your upload correspond to what you intend:
+dgit relies on
+the right orig tarball(s) existing, and
+debian/patches being correct.
+
+With --quilt=gbp|dpm|unapplied|baredebian*,
dgit push (or precursors like quilt-fixup and build) will automatically
generate a conversion of your git branch into the right form.
dgit push will push the
in the archive and in dgit-repos.
How to set this up is not yet documented.
.TP
+.BR \-\-split-view=auto | always | never
+Controls whether dgit operates a split view,
+separating your own branch (as Debian maintainer)
+from that shown to users of dgit clone and dgit fetch.
+
+When split view is in operation
+dgit will not make or merge any commits onto your own branch.
+Specifically, only the dgit view will contain
+dgit's pseudomerges,
+which bring into the git history previous uploads made with dgit push,
+and any commits in debian/patches required
+to make a correct `3.0 (quilt)' source package.
+
+.B auto
+is the default, and splits the view only when needed:
+i.e., when you are working with a `3.0 (quilt)' source package
+and a splitting quilt mode:
+\-\-[quilt=]gbp, dpm, unpatched or baredebian*.
+
+.B always
+splits the view regardless of the source format and the quilt mode.
+
+.B never
+will cause dgit to fail if split view is needed.
+
+When split view is in operation, the dgit view is visible
+in your local git clone,
+but only in refs specific to dgit:
+notably
+.BI remotes/dgit/dgit/ suite
+and
+.BR archive/ \fIdistro\fR / \fIversion\fR.
+
+Note that split view does not affect dgit fetch,
+and is not compatible with dgit pull.
+.TP
.BI \-C changesfile
Specifies the .changes file which is to be uploaded. By default
dgit push looks for a single .changes file in the parent directory whose
default, in
.BR .. ).
.TP
+.BI \-\-upstream-commitish= upstream
+For use with --quilt=baredebian only.
+Specifies the commit containing the upstream source.
+This commit must be identical to your .orig tarball.
+The default is to look for one of the git tags
+.IB U " v" U " upstream/" U
+(in that order), where U is the upstream version.
+.TP
.B \-\-rm-old-changes
When doing a build, delete any changes files matching
.IB package _ version _*.changes
Generates a DEP-14 tag (eg
.BR debian/ \fIversion\fR)
as well as a dgit tag (eg
-.BR archive/debian/ \fIversion\fR)
-where possible. This is the default.
+.BR archive/debian/ \fIversion\fR).
+This is the default.
.TP
.BI --no-dep14tag
-Do not generate a DEP-14 tag, except in split quilt view mode.
-(On servers where only the old tag format is supported,
-the dgit tag will have the DEP-14 name.
-This option does not prevent that.)
+Do not generate a DEP-14 tag, except when split view is in operation.
.TP
-.BI --dep14tag-always
-Insist on generating a DEP-14 tag
-as well as a dgit tag.
-If the server does not support that, dgit push will fail.
+.BI --always-dep14tag
+Obsolete alias for --dep14tag, retained for compatibility.
.TP
.BI -D
Prints debugging information to stderr. Repeating the option produces
discarding the git history
that the person who pushed that .dsc was working with.
.TP
+.B \-\-force-reusing-version
+Carry on even though this involves reusing a version number
+of a previous push or upload.
+It is normally best to give different versions different numbers.
+Some servers (including, usually, the Debian server)
+will reject attempts to reuse or replace already-pushed versions.
+.TP
.B \-\-force-uploading-binaries
Carry on and
upload binaries
when running gbp pq import
when importing a package from a .dsc.
See Debian bug #841867.
+.TP
+.BR \-\-for\-push
+Override the dgit-distro.distro.readonly configuration setting,
+to specify that we have read/write access
+and should use the corresponding git and achieve access approach
+even if the operation is a read-only one.
.SH CONFIGURATION
dgit can be configured via the git config system.
You may set keys with git-config (either in system-global or per-tree
.TP
.BI dgit.default.distro " distro"
The default distro for an unknown suite.
+
+This is only used if no
+.BI /usr/share/distro-info/ somedistro .csv
+mentions the specified suite.
.TP
.BI dgit.default.default-suite " suite"
The default suite (eg for clone).
One of the values for the command line \-\-quilt= option; used if
\-\-quilt is not specified.
.TP
+.BR dgit-distro. \fIdistro\fR .split-view
+.TP
.BR dgit-distro. \fIdistro\fR .rm-old-changes
Boolean, used if neither \-\-rm-old-changes nor \-\-no-rm-old-changes
is specified. The default is not to remove.
.TP
.BI dgit-distro. distro .git-create " " ssh-cmd | true
.TP
-.BR dgit-distro. \fIdistro\fR .archive-query " " ftpmasterapi: " | " madison: "\fIdistro\fR | " dummycat: "\fI/path\fR | " sshpsql: \fIuser\fR @ \fIhost\fR : \fIdbname\fR
+.BR dgit-distro. \fIdistro\fR .archive-query " " ftpmasterapi: " | " madison: "\fIdistro\fR | " dummycat: "\fI/path\fR | " sshpsql: \fIuser\fR @ \fIhost\fR : \fIdbname\fR " " | " aptget:"
.TP
.BR dgit-distro. \fIdistro\fR .archive-query- ( url | tls-key | curl-ca-args )
.TP
.TP
.BI dgit-distro. distro .dgit-tag-format
.TP
-.BR dgit-distro. \fIdistro\fR .dep14tag " " want | no | always
+.BR dgit-distro. \fIdistro\fR .dep14tag " " want | no [| always ]
.TP
.BI dgit-distro. distro .ssh
.TP
Default git user.email and user.name for new trees. See
.BR "dgit setup-new-tree" .
.TP
-.BR gpg ", " dpkg- "..., " debsign ", " git ", " curl ", " dput ", " LWP::UserAgent
+.BR gpg ", " dpkg- "..., " debsign ", " git ", [" lib ] curl ", " dput
and other subprograms and modules used by dgit are affected by various
environment variables. Consult the documentation for those programs
for details.
Debian git tooling such as git-debrebase, git-dpm or git-buildpackage
with upstream git commit(s) or tag(s)
which are not 100% identical to your orig tarball(s).
-.SH SPLIT VIEW QUILT MODE
+.SH SPLIT VIEW AND SPLITTING QUILT MODES
When working with git branches intended
for use with the `3.0 (quilt)' source format
dgit can automatically convert a suitable
(in one of a variety of formats)
into a dgit branch.
-When a split view mode is engaged
+When a splitting quilt mode is selected
dgit build commands and
dgit push
will, on each invocation,
convert the user's HEAD into the dgit view,
so that it can be built and/or uploaded.
-dgit push in split view mode will push the dgit view to the dgit
+Split view mode can also be enabled explicitly
+with
+the --split-view command line option
+and
+the .split-view access configuration key.
+
+When split view is in operation,
+regardless of the quilt mode,
+any dgit-generated pseudomerges
+and any quilt fixup commits
+will appear only in the dgit view.
+dgit push
+will push the dgit view to the dgit
git server.
The dgit view is always a descendant of the maintainer view.
dgit push will also make a maintainer view tag
according to DEP-14
and push that to the dgit git server.
-Split view mode must be enabled explicitly
+Splitting quilt modes must be enabled explicitly
(by the use of the applicable command line options,
subcommands, or configuration).
This is because it is not possible to reliably tell
--- /dev/null
+#!/bin/bash
+
+# git-debpush -- create & push a git tag with metadata for an ftp-master upload
+#
+# Copyright (C) 2019 Sean Whitton
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+set -e$DGIT_TEST_DEBPUSH_DEBUG
+set -o pipefail
+
+# DESIGN PRINCIPLES
+#
+# - do not invoke dgit, do anything involving any tarballs, no network
+# access except `git push` right at the end
+#
+# - do not look at the working tree, like `git push` `git tag`
+#
+# - we are always in split brain mode, because that fits this workflow,
+# and avoids pushes failing just because dgit in the intermediary
+# service wants to append commits
+#
+# - if there is no previous tag created by this script, require a quilt
+# mode; if there is a previous tag, and no quilt mode provided, assume
+# same quilt mode as in previous tag created by this script
+
+# **** Helper functions and variables ****
+
+us="$(basename $0)"
+git_playtree_setup=git-playtree-setup ###substituted###
+git_playtree_setup=${DEBPUSH_GIT_PLAYTREE_SETUP-$git_playtree_setup}
+
+cleanup() {
+ if [ -d "$temp" ]; then
+ rm -rf "$temp"
+ fi
+}
+
+fail () {
+ echo >&2 "$us: $*";
+ exit 127;
+}
+
+badusage () {
+ fail "bad usage: $*";
+}
+
+get_file_from_ref () {
+ local path=$1
+
+ # redirect to /dev/null instead of using `grep -Eq` to avoid grep
+ # SIGPIPEing git-ls-tree
+ if git ls-tree --name-only -r "$branch" \
+ | grep -E "^$path$" >/dev/null; then
+ git cat-file blob $branch:$path
+ fi
+}
+
+failed_check=false
+fail_check () {
+ local check=$1; shift
+ local check_is_forced=false
+
+ case ",$force," in
+ *",$check,"*) check_is_forced=true ;;
+ esac
+ if $force_all || $check_is_forced; then
+ echo >&2 "$us: warning: $* ('$check' check)"
+ else
+ echo >&2 "$us: $* ('$check' check)"
+ failed_check=true
+ fi
+}
+
+fail_check_upstream_nonidentical () {
+ fail_check upstream-nonidentical \
+ "the upstream source in tag $upstream_tag is not identical to the upstream source in $branch"
+}
+
+find_last_tag () {
+ local prefix=$1
+
+ set +o pipefail # perl will SIGPIPE git-log(1) here
+ git log --pretty=format:'%D' --decorate=full "$branch" \
+ | perl -wne 'use Dpkg::Version;
+ @pieces = split /, /, $_;
+ @debian_tag_vs = sort { version_compare($b, $a) }
+ map { m|tag: refs/tags/'"$prefix"'(.+)| ? $1 : () } @pieces;
+ if (@debian_tag_vs) { print "'"$prefix"'$debian_tag_vs[0]\n"; exit }'
+ set -o pipefail
+}
+
+check_treesame () {
+ local first=$1
+ local second=$2
+ shift 2
+
+ set +e
+ git diff --quiet --exit-code "$first".."$second" -- . "$@"
+ git_diff_rc=$?
+ set -e
+
+ # show the user what the difference was
+ if [ $git_diff_rc = 1 ]; then
+ git diff --compact-summary "$first".."$second" -- . "$@"
+ fi
+
+ if [ $git_diff_rc -le 1 ]; then
+ return $git_diff_rc
+ else
+ fail "'git diff' exited with unexpected code $git_diff_rc"
+ fi
+}
+
+check_patches_apply () {
+ local should_match_branch="$1"
+
+ local playground="$(git rev-parse --git-dir)/gdp"
+ local playtree="$playground/apply-patches"
+ local git_apply_rc=0
+
+ rm -rf "$playground"
+ mkdir -p "$playtree"
+ local pwd="$(pwd)"
+ cd "$playtree"
+ "$git_playtree_setup" .
+
+ # checking out the upstream source and then d/patches on top
+ # ensures this check will work for a variety of quilt modes
+ git checkout -b upstream "$upstream_committish"
+ git checkout "$branch_commit" -- debian
+
+ if [ -s "debian/patches/series" ]; then
+ while read patch; do
+ shopt -s extglob; patch="${patch%%?( )#*}"; shopt -u extglob
+ if [ -z "$patch" ]; then continue; fi
+ set +e
+ git apply --index "debian/patches/$patch"
+ git_apply_rc=$?
+ set -e
+ if ! [ $git_apply_rc = 0 ]; then
+ fail_check patches-applicable \
+ "'git apply' failed to apply patch $patch"
+ break
+ fi
+ done <debian/patches/series
+
+ if $should_match_branch && [ $git_apply_rc = 0 ]; then
+ git commit -q -a -m"commit result of applying all patches"
+ check_treesame HEAD "$branch_commit" ':!debian' \
+ || fail_check patches-applicable \
+ "applying all patches does not yield $branch"
+ fi
+ fi
+
+ cd "$pwd"
+ rm -rf "$playground"
+}
+
+# **** Parse command line ****
+
+getopt=$(getopt -s bash -o 'nfu:' \
+ -l 'no-push,force::,branch:,remote:,distro:,upstream:,quilt:,gbp,dpm,\
+baredebian,baredebian+git,baredebian+tarball' \
+ -n "$us" -- "$@")
+eval "set - $getopt"
+set -e$DGIT_TEST_DEBPUSH_DEBUG
+
+git_tag_opts=()
+pushing=true
+force_all=false
+force=""
+distro=debian
+quilt_mode=""
+branch="HEAD"
+
+while true; do
+ case "$1" in
+ '-n'|'--no-push') pushing=false; shift; continue ;;
+ '-u') git_tag_opts+=(-u "$2"); shift 2; continue ;;
+ '-f') force_all=true; shift; continue ;;
+ '--gbp') quilt_mode='gbp'; shift; continue ;;
+ '--dpm') quilt_mode='dpm'; shift; continue ;;
+ '--branch') branch=$2; shift 2; continue ;;
+ '--remote') remote=$2; shift 2; continue ;;
+ '--distro') distro=$2; shift 2; continue ;;
+ '--quilt') quilt_mode=$2; shift 2; continue ;;
+ '--upstream') upstream_tag=$2; shift 2; continue ;;
+
+ '--baredebian'|'--baredebian+git')
+ quilt_mode=baredebian; shift; continue ;;
+ '--baredebian+tarball')
+ fail "--baredebian+tarball quilt mode not supported"
+ ;;
+
+ # we require the long form of the option to skip individual
+ # checks, not permitting `-f check`, to avoid problems if we
+ # later want to introduce positional args
+ '--force')
+ case "$2" in
+ '')
+ force_all=true ;;
+ *)
+ force="$force,$2" ;;
+ esac
+ shift 2; continue ;;
+
+ '--') shift; break ;;
+ *) badusage "unknown option $1" ;;
+ esac
+done
+
+if [ $# != 0 ]; then
+ badusage 'no positional arguments allowed'
+fi
+
+case "$quilt_mode" in
+ linear|auto|smash|nofix|gbp|dpm|unapplied|baredebian|'') ;;
+ baredebian+git) quilt_mode="baredebian" ;;
+ baredebian+tarball) fail "--baredebian+tarball quilt mode not supported" ;;
+ *) badusage "invalid quilt mode: $quilt_mode" ;;
+esac
+
+# **** Early sanity check ****
+
+if [ "$branch" = "HEAD" ] \
+ && ! git symbolic-ref --quiet HEAD >/dev/null; then
+ fail_check detached \
+ "HEAD is detached; you probably don't want to debpush it"
+fi
+
+# **** Gather git information ****
+
+remoteconfigs=()
+to_push=()
+
+# Maybe $branch is a symbolic ref. If so, resolve it
+branchref="$(git symbolic-ref -q $branch || test $? = 1)"
+if [ "x$branchref" != "x" ]; then
+ branch="$branchref"
+fi
+# If $branch is the name of a branch but it does not start with
+# 'refs/heads/', prepend 'refs/heads/', so that we can know later
+# whether we are tagging a branch or some other kind of committish
+case "$branch" in
+ refs/heads/*) ;;
+ *)
+ branchref="$(git for-each-ref --format='%(objectname)' \
+ '[r]efs/heads/$branch')"
+ if [ "x$branchref" != "x" ]; then
+ branch="refs/heads/$branch"
+ fi
+ ;;
+esac
+
+# If our tag will point at a branch, push that branch, and add its
+# pushRemote and remote to the things we'll check if the user didn't
+# supply a remote
+case "$branch" in
+ refs/heads/*)
+ b=${branch#refs/heads/}
+ to_push+=("$b")
+ remoteconfigs+=( branch.$b.pushRemote branch.$b.remote )
+ ;;
+esac
+
+# resolve $branch to a commit
+branch_commit="$(git rev-parse --verify ${branch}^{commit})"
+
+# also check, if the branch does not have its own pushRemote or
+# remote, whether there's a default push remote configured
+remoteconfigs+=(remote.pushDefault)
+
+if $pushing && [ "x$remote" = "x" ]; then
+ for c in "${remoteconfigs[@]}"; do
+ remote=$(git config "$c" || test $? = 1)
+ if [ "x$remote" != "x" ]; then break; fi
+ done
+ if [ "x$remote" = "x" ]; then
+ fail "pushing, but could not determine remote, so need --remote="
+ fi
+fi
+
+# **** Gather source package information ****
+
+temp=$(mktemp -d)
+trap cleanup EXIT
+mkdir "$temp/debian"
+git cat-file blob "$branch":debian/changelog >"$temp/debian/changelog"
+version=$(cd $temp; dpkg-parsechangelog -SVersion)
+source=$(cd $temp; dpkg-parsechangelog -SSource)
+target=$(cd $temp; dpkg-parsechangelog -SDistribution)
+rm -rf "$temp"
+trap - EXIT
+
+format="$(get_file_from_ref debian/source/format)"
+case "$format" in
+ '3.0 (quilt)') upstream=true ;;
+ '3.0 (native)') upstream=false ;;
+ '1.0'|'')
+ if get_file_from_ref debian/source/options | grep -q '^-sn *$'; then
+ upstream=false
+ elif get_file_from_ref debian/source/options | grep -q '^-sk *$'; then
+ upstream=true
+ else
+ fail 'please see "SOURCE FORMAT 1.0" in git-debpush(1)'
+ fi
+ ;;
+ *)
+ fail "unsupported debian/source/format $format"
+ ;;
+esac
+
+# **** Gather git history information ****
+
+last_debian_tag=$(find_last_tag "debian/")
+last_archive_tag=$(find_last_tag "archive/debian/")
+
+upstream_info=""
+if $upstream; then
+ if [ "x$upstream_tag" = x ]; then
+ upstream_tag=$(
+ set +e
+ git deborig --just-print --version="$version" \
+ | head -n1
+ ps="${PIPESTATUS[*]}"
+ set -e
+ case "$ps" in
+ "0 0"|"141 0") ;; # ok or SIGPIPE
+ *" 0")
+ echo >&2 \
+ "$us: git-deborig failed; maybe try $us --upstream=TAG"
+ exit 0
+ ;;
+ *) exit 127; # presumably head will have complained
+ esac
+ )
+ if [ "x$upstream_tag" = x ]; then exit 127; fi
+ fi
+ upstream_committish=$(git rev-parse "refs/tags/${upstream_tag}"^{})
+ upstream_info=" upstream-tag=$upstream_tag upstream=$upstream_committish"
+ to_push+=("$upstream_tag")
+fi
+
+# **** Useful sanity checks ****
+
+# ---- UNRELEASED suite
+
+if [ "$target" = "UNRELEASED" ]; then
+ fail_check unreleased "UNRELEASED changelog"
+fi
+
+# ---- Pushing dgit view to maintainer view
+
+if ! [ "x$last_debian_tag" = "x" ] && ! [ "x$last_archive_tag" = "x" ]; then
+ last_debian_tag_c=$(git rev-parse "$last_debian_tag"^{})
+ last_archive_tag_c=$(git rev-parse "$last_archive_tag"^{})
+ if ! [ "$last_debian_tag_c" = "$last_archive_tag_c" ] \
+ && git merge-base --is-ancestor \
+ "$last_debian_tag" "$last_archive_tag"; then
+ fail_check dgit-view \
+"looks like you might be trying to push the dgit view to the maintainer branch?"
+ fi
+fi
+
+# ---- Targeting different suite
+
+if ! [ "x$last_debian_tag" = "x" ]; then
+ temp=$(mktemp -d)
+ trap cleanup EXIT
+ mkdir "$temp/debian"
+ git cat-file blob "$last_debian_tag":debian/changelog >"$temp/debian/changelog"
+ prev_target=$(cd $temp; dpkg-parsechangelog -SDistribution)
+ rm -rf "$temp"
+ trap - EXIT
+
+ if ! [ "$prev_target" = "$target" ] && ! [ "$target" = "UNRELEASED" ]; then
+ fail_check suite \
+"last upload targeted $prev_target, now targeting $target; might be a mistake?"
+ fi
+fi
+
+# ---- Upstream tag is not ancestor of $branch
+
+if ! [ "x$upstream_tag" = "x" ] \
+ && ! git merge-base --is-ancestor "$upstream_tag" "$branch" \
+ && ! [ "$quilt_mode" = "baredebian" ]; then
+ fail_check upstream-nonancestor \
+ "upstream tag $upstream_tag is not an ancestor of $branch; probably a mistake"
+fi
+
+# ---- Quilt mode-specific checks
+
+case "$quilt_mode" in
+ gbp)
+ check_treesame "$upstream_tag" "$branch" ':!debian' ':!**.gitignore' \
+ || fail_check_upstream_nonidentical
+ check_patches_apply false
+ ;;
+ unapplied)
+ check_treesame "$upstream_tag" "$branch" ':!debian' \
+ || fail_check_upstream_nonidentical
+ check_patches_apply false
+ ;;
+ baredebian)
+ check_patches_apply false
+ ;;
+ dpm|nofix)
+ check_patches_apply true
+ ;;
+esac
+
+# ---- git-debrebase branch format checks
+
+# only check branches, since you can't run `git debrebase conclude` on
+# non-branches
+case "$branch" in
+ refs/heads/*)
+ # see "STITCHING, PSEUDO-MERGES, FFQ RECORD" in git-debrebase(5)
+ ffq_prev_ref="refs/ffq-prev/${branch#refs/}"
+ if git show-ref --quiet --verify "$ffq_prev_ref"; then
+ fail_check unstitched \
+ "this looks like an unstitched git-debrebase branch, which should not be pushed"
+ fi
+esac
+
+# ---- Summary
+
+if $failed_check; then
+ # We don't mention the --force=check options here as those are
+ # mainly for use by scripts, or when you already know what check
+ # is going to fail before you invoke git-debpush. Keep the
+ # script's terminal output as simple as possible. No "see the
+ # manpage"!
+ fail "some check(s) failed; you can pass --force to ignore them"
+fi
+
+# **** Create the git tag ****
+
+# convert according to DEP-14 rules
+git_version=$(echo $version | tr ':~' '%_' | sed 's/\.(?=\.|$|lock$)/.#/g')
+
+debian_tag="$distro/$git_version"
+to_push+=("$debian_tag")
+
+# If the user didn't supply a quilt mode, look for it in a previous
+# tag made by this script
+if [ "x$quilt_mode" = "x" ] && [ "$format" = "3.0 (quilt)" ]; then
+ set +o pipefail # perl will SIGPIPE git-cat-file(1) here
+ if [ "x$last_debian_tag" != "x" ]; then
+ quilt_mode=$(git cat-file -p $(git rev-parse "$last_debian_tag") \
+ | perl -wne \
+ 'm/^\[dgit.*--quilt=([a-z+]+).*\]$/;
+ if ($1) { print "$1\n"; exit }')
+ fi
+ set -o pipefail
+fi
+
+quilt_mode_text=""
+if [ "$format" = "3.0 (quilt)" ]; then
+ if [ "x$quilt_mode" = "x" ]; then
+ echo >&2 "$us: could not determine the git branch layout"
+ echo >&2 "$us: please supply a --quilt= argument"
+ exit 1
+ else
+ quilt_mode_text=" --quilt=$quilt_mode"
+ fi
+fi
+
+tagmessage="$source release $version for $target
+
+[dgit distro=$distro split$quilt_mode_text]
+[dgit please-upload$upstream_info]
+"
+
+git tag "${git_tag_opts[@]}" -s -m "$tagmessage" "$debian_tag" "$branch"
+
+# **** Do a git push ****
+
+if $pushing; then
+ git push "$remote" "${to_push[@]}"
+fi
--- /dev/null
+=head1 NAME
+
+git-debpush - create & push a git tag with metadata for an ftp-master upload
+
+=head1 SYNOPSIS
+
+B<git debpush> [I<option>...]
+
+=head1 DESCRIPTION
+
+B<git-debpush> is a wrapper around git-tag(1) and git-push(1). It
+helps you create and push a specially formatted signed tag which
+indicates that the tagged commit should be pushed (or "uploaded") to a
+Debian-style archive.
+
+Typically, your git server will be configured to notify an
+intermediary service of the new tag that you pushed. That service
+will then fetch your tag, check your PGP signature, do any conversion
+that's needed (such as producing and signing a B<.dsc> and
+B<.changes>), and upload the result to the Debian-style archive.
+
+B<git-debpush> is only for source-only uploads.
+
+=head1 TYPICAL USAGE
+
+B<git-debpush> is designed such that for regular uploads of your
+package, you should be able to just invoke it without passing any
+command line arguments. After you've built and tested some .debs, run
+dch(1) to finalise your changelog and committed the result, just type
+"git debpush", and the intermediary service and your distribution's
+autobuilder network will take care of the rest.
+
+The most common exception to this is the first time you use
+B<git-debpush> for a non-native package. You will need to pass a
+quilt mode option to inform the intermediary service which git branch
+format you are using, for example
+
+=over 4
+
+ % git debpush --gbp
+
+=back
+
+if you are using the git branch format typically used with gbp(1).
+See "QUILT MODE OPTIONS", below, for the available quilt mode options.
+
+Aside from a few sanity checks to help avoid broken uploads,
+B<git-debpush> does not do anything with the information provided by
+the quilt mode option. It simply embeds the corresponding quilt mode
+in its generated tag, for use by the intermediary service.
+
+Future invocations of B<git-debpush> will try to read the quilt mode
+out of the tag generated by B<git-debpush> for your previous upload.
+You can override that on the command line by passing a quilt mode
+option, which always takes precedence.
+
+=head1 SETUP FOR SOURCE FORMAT 1.0
+
+B<git-debpush> needs to tell the intermediary git service whether this
+is a native or non-native package. Given historical Debian practices,
+it is not sufficient for either B<git-debpush> or the intermediary
+service to rely on the version number in debian/changelog.
+
+If you are using one of the 3.0 source package formats, B<git-debpush>
+will just look in debian/source/format to determine whether the
+package is native or non-native, and you can ignore this section of
+the manpage.
+
+If you are using the 1.0 source package format -- either
+debian/source/format does not exist, or contains the string "1.0" --
+then B<git-debpush> must be told whether the package is native or
+non-native. We do this using debian/source/options. If your package
+is non-native, execute
+
+=over 4
+
+ % echo "-sn" >>debian/source/options
+
+=back
+
+If your package is native, execute
+
+=over 4
+
+ % echo "-sk" >>debian/source/options
+
+=back
+
+(With source format 1.0, dpkg-source(1) decides whether the package is
+native or non-native based on the presence of absence of an orig.tar
+in B<..>, but B<git-debpush> is a pure git tool that never looks at
+tarballs.)
+
+=head1 QUILT MODE OPTIONS
+
+=over 4
+
+=item B<--quilt=gbp>|B<--gbp>
+
+You are using the 'unapplied' branch format, typically used with
+gbp(1).
+
+=item B<--quilt=dpm>|B<--dpm>
+
+You are using git-dpm(1)'s branch format.
+
+=item B<--quilt=baredebian[+git]>|B<--baredebian[+git]>
+
+You are using the 'bare debian' branch format, with the upstream
+source in the form of an upstream tag.
+
+B<--quilt=baredebian+git> is an alias for B<--quilt=baredebian>.
+
+=item B<--quilt=linear>
+
+You are using the 'manually maintained applied' branch format or
+similar, and each commit touching the upstream source not already
+represented in debian/patches should be added as a new patch.
+
+=item B<--quilt=smash>
+
+You are using the 'manually maintained applied' branch format or
+similar, and you want all changes to the upstream source to be
+squashed into a single patch in debian/patches.
+
+=item B<--quilt=auto>
+
+Tell the intermediary service to try B<--quilt=linear>, and if that
+cannot succeed, fall back to B<--quilt=smash>.
+
+=item B<--quilt=nofix>
+
+You are using the 'manually maintained applied' branch format or
+similar, and you don't want debian/patches to be touched by the
+intermediary service.
+
+If all commits touching the upstream source are not already
+represented in debian/patches, the intermediary service will fail to
+upload your package.
+
+=back
+
+=head1 OTHER OPTIONS
+
+=over 4
+
+=item B<--no-push>|B<-n>
+
+Just tag, don't push.
+
+=item B<-u> I<keyid>
+
+Passed on to git-tag(1).
+
+=item B<--branch=>I<BRANCH>
+
+Where to place the tag, i.e., what you want to release. If
+unspecified, we put the tag on whatever HEAD points to.
+
+Note that this need not actually be a branch, but any committish (see
+gitglossary(7)). The option name is chosen to fit what is by far the
+most common case.
+
+=item B<--upstream=>I<TAG>
+
+When pushing a non-native package,
+B<git-debpush> needs a tag for the upstream part of your package.
+
+By default B<git-debpush> asks git-deborig(1),
+which searches for a suitable tag
+based on the upstream version in debian/changelog.
+
+=item B<--remote=>I<REMOTE>
+
+Where to push tags and branches. If unspecified, use the remote which
+git would use if you typed "git push BRANCH".
+
+=item B<--distro=>I<DISTRO>
+
+What distribution name to embed in the signed tag. Defaults to
+"debian".
+
+=item B<--force>|B<-f>
+
+Ignore the results of all checks designed to prevent broken uploads.
+
+=item B<--force>=I<check>[,I<check>] ...
+
+Override individual checks designed to prevent broken uploads. May be
+specified more than once.
+
+Using B<--force> or B<--force=>I<check> might cause the upload to fail
+at some later point in the process.
+
+Valid values for I<check> are:
+
+=over 4
+
+=item B<suite>
+
+Permit uploading to a different suite than the target of the most
+recent upload made with B<git-debpush> (e.g. when uploading to
+Debian unstable after uploading to Debian experimental).
+
+=item B<upstream-nonancestor>
+
+Ignore the fact that the upstream tag is not an ancestor of the branch
+to be tagged (skipping this check is implied by B<--quilt=baredebian>).
+
+=item B<upstream-nonidentical>
+
+Ignore any differences between the upstream source in the upstream tag
+and the upstream source in the branch to be tagged (this check is only
+run when using B<--quilt=gbp> or B<--quilt=unapplied>).
+
+=item B<patches-applicable>
+
+Ignore any failures of the following two checks:
+
+=over 4
+
+=item
+
+With B<--quilt=gbp>, B<--quilt=unapplied>, B<--quilt=baredebian>,
+B<--quilt=dpm>, and B<--quilt=nofix>, the quilt patches should apply
+cleanly to the upstream source with git-apply(1).
+
+=item
+
+With B<--quilt=dpm> and B<--quilt=nofix>, applying the quilt patches
+to the upstream source should produce exactly the source tree to be
+tagged.
+
+=back
+
+=item B<unreleased>
+
+Permit upload to a suite called UNRELEASED.
+
+=item B<dgit-view>
+
+Ignore apparently pushing the dgit view of a package (as produced by
+B<dgit clone>) to the maintainer branch, where the dgit view and the
+maintainer view of the package are not identical.
+
+=item B<unstitched>
+
+Ignore the fact that the branch to be pushed seems to be a
+git-debrebase(1) branch in an unstitched state (see git-debrebase(5)).
+
+=back
+
+=item B<detached>
+
+Ignore the fact that HEAD is to be tagged, but HEAD is detached (this
+check is only run when B<--branch=HEAD> or no B<--branch> option is
+specified).
+
+=back
+
+=head1 SEE ALSO
+
+Git branch formats in use by Debian maintainers:
+<https://wiki.debian.org/GitPackagingSurvey>
+
+=head1 AUTHOR
+
+B<git-debpush> and this manpage were written by Sean Whitton
+<spwhitton@spwhitton.name> with much input from Ian Jackson
+<ijackson@chiark.greenend.org.uk>.
# Script helping make fast-forwarding histories while still rebasing
# upstream deltas when working on Debian packaging
#
-# Copyright (C)2017,2018 Ian Jackson
+# Copyright (C)2017-2019 Ian Jackson
+# Copyright (C)2019 Niko Tyni
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
our $rd;
our $workarea;
-our @git = qw(git);
our @dgit = qw(dgit);
sub in_workarea ($) {
my @upd_cmd = (git_update_ref_cmd "debrebase: $mrest", qw(--stdin));
debugcmd '>|', @upd_cmd;
- open U, "|-", @upd_cmd or confess $!;
+ open U, "|-", @upd_cmd or confess "$!";
foreach (@$updates) {
printdebug ">= ", $_, "\n";
- print U $_, "\n" or confess $!;
+ print U $_, "\n" or confess "$!";
}
printdebug ">\$\n";
close U or failedcmd @upd_cmd;
return $&;
}
-sub rm_subdir_cached ($) {
- my ($subdir) = @_;
- runcmd @git, qw(rm --quiet -rf --cached --ignore-unmatch), $subdir;
-}
-
-sub read_tree_subdir ($$) {
- my ($subdir, $new_tree_object) = @_;
- rm_subdir_cached $subdir;
- runcmd @git, qw(read-tree), "--prefix=$subdir/", $new_tree_object;
-}
-
-sub read_tree_debian ($) {
- my ($treeish) = @_;
- read_tree_subdir 'debian', "$treeish:debian";
- rm_subdir_cached 'debian/patches';
-}
-
-sub read_tree_upstream ($;$$) {
- my ($treeish, $keep_patches, $tree_with_debian) = @_;
- # if $tree_with_debian is supplied, will use that for debian/
- # otherwise will save and restore it.
- my $debian =
- $tree_with_debian ? "$tree_with_debian:debian"
- : cmdoutput @git, qw(write-tree --prefix=debian/);
- runcmd @git, qw(read-tree), $treeish;
- read_tree_subdir 'debian', $debian;
- rm_subdir_cached 'debian/patches' unless $keep_patches;
-};
-
-sub make_commit ($$) {
- my ($parents, $message_paras) = @_;
- my $tree = cmdoutput @git, qw(write-tree);
- my @cmd = (@git, qw(commit-tree), $tree);
- push @cmd, qw(-p), $_ foreach @$parents;
- push @cmd, qw(-m), $_ foreach @$message_paras;
- return cmdoutput @cmd;
-}
-
our @snag_force_opts;
sub snag ($$;@) {
my ($tag,$msg) = @_; # ignores extra args, for benefit of keycommits
if ($any) {
open S, $seriesfile or confess "$seriesfile $!";
while (my $patch = <S>) {
- chomp $patch or confess $!;
+ chomp $patch or confess "$!";
$prereq{$patch} //= {};
foreach my $earlier (@earlier) {
$prereq{$patch}{$earlier}{$s}++ and confess;
};
};
- open NS, '>', $seriesfile or confess $!;
+ open NS, '>', $seriesfile or confess "$!";
while (keys %prereq) {
my $best;
$best = $try;
}
printdebug "merge_series series next $best\n";
- print NS "$best\n" or confess $!;
+ print NS "$best\n" or confess "$!";
delete $prereq{$best};
foreach my $gp (values %prereq) {
delete $gp->{$best};
my $tree = cmdoutput @git, qw(write-tree);
$commit =~ s{^parent (\S+)$}{parent $build}m or confess;
$commit =~ s{^tree (\S+)$}{tree $tree}m or confess;
- open C, ">", "../mcommit" or confess $!;
- print C $commit or confess $!;
- close C or confess $!;
- $build = cmdoutput @git, qw(hash-object -w -t commit ../mcommit);
+ open C, ">", "../mcommit" or confess "$!";
+ print C $commit or confess "$!";
+ close C or confess "$!";
+ $build = hash_commit '../mcommit';
}
$result = $build;
mwrecknote($wrecknotes, 'merged-result', $result);
confess __ "internal error" unless $build eq (pop @processed)->{CommitId};
in_workarea sub {
- mkdir $rd or $!==EEXIST or confess $!;
+ mkdir $rd or $!==EEXIST or confess "$!";
my $current_method;
my $want_debian = $build;
my $want_upstream = $build;
or confess "$ch ?";
}
my $cf = "$rd/m$rewriting";
- open CD, ">", $cf or confess $!;
- print CD $ch, "\n", $cl->{Msg} or confess $!;
- close CD or confess $!;
+ open CD, ">", $cf or confess "$!";
+ print CD $ch, "\n", $cl->{Msg} or confess "$!";
+ close CD or confess "$!";
my @cmd = (@git, qw(hash-object));
push @cmd, qw(-w) if $rewriting;
push @cmd, qw(-t commit), $cf;
$old = git_rev_parse 'HEAD';
}
my ($dummy,$breakwater) = walk $old, 1,*STDOUT;
- STDOUT->error and confess $!;
+ STDOUT->error and confess "$!";
}
sub ffq_check ($;$$) {
# normally $currentval should be HEAD
my ($currentval, $ff, $notff) =@_;
- $ff //= sub { print $_[0] or confess $!; };
+ $ff //= sub { print $_[0] or confess "$!"; };
$notff //= \&snag;
my ($status, $message, $current, $ffq_prev, $gdrlast)
stitch($dangling_head, $ffq_prev, $gdrlast, $ffq_prev_commitish, $prose);
}
-sub upstream_commitish_search ($$) {
- my ($upstream_version, $tried) = @_;
- # todo: at some point maybe use git-deborig to do this
- foreach my $tagpfx ('', 'v', 'upstream/') {
- my $tag = $tagpfx.(dep14_version_mangle $upstream_version);
- my $new_upstream = git_get_ref "refs/tags/$tag";
- push @$tried, $tag;
- return $new_upstream if length $new_upstream;
- }
-}
-
-sub resolve_upstream_version ($$) {
- my ($new_upstream, $upstream_version) = @_;
-
- my $used = $new_upstream;
- if (!defined $new_upstream) {
- my @tried;
- $new_upstream = upstream_commitish_search $upstream_version, \@tried;
- if (!length $new_upstream) {
- fail f_
- "Could not determine appropriate upstream commitish.\n".
- " (Tried these tags: %s)\n".
- " Check version, and specify upstream commitish explicitly.",
- "@tried";
- }
- $used = $tried[-1];
- }
- $new_upstream = git_rev_parse $new_upstream;
-
- return ($new_upstream, $used);
- # used is a human-readable idea of what we found
-}
-
sub cmd_new_upstream () {
# automatically and unconditionally launders before rebasing
# if rebase --abort is used, laundering has still been done
$new_version = (new Dpkg::Version "$spec_version-1", check => 1);
}
- my $new_upstream = shift @ARGV;
+ my $new_upstream = (@ARGV && $ARGV[0] !~ m{^-}) ? shift @ARGV : undef;
my $new_upstream_version = upstreamversion $new_version;
my $new_upstream_used;
($new_upstream, $new_upstream_used) =
badusage "no arguments allowed" if @ARGV;
my ($status, $msg) = record_ffq_prev_deferred();
if ($status eq 'exists' && $opt_noop_ok) {
- print __ "Previous head already recorded\n" or confess $!;
+ print __ "Previous head already recorded\n" or confess "$!";
} elsif ($status eq 'deferred') {
run_deferred_updates 'record-ffq-prev';
} else {
sub cmd_anchor () {
badusage __ "no arguments allowed" if @ARGV;
my ($anchor, $bw) = keycommits +(git_rev_parse 'HEAD'), 0,0;
- print "$anchor\n" or confess $!;
+ print "$anchor\n" or confess "$!";
}
sub cmd_breakwater () {
badusage __ "no arguments allowed" if @ARGV;
my ($anchor, $bw) = keycommits +(git_rev_parse 'HEAD'), 0,0;
- print "$bw\n" or confess $!;
+ print "$bw\n" or confess "$!";
}
sub cmd_status () {
my $prcommitinfo = sub {
my ($cid) = @_;
- flush STDOUT or confess $!;
+ flush STDOUT or confess "$!";
runcmd @git, qw(--no-pager log -n1),
'--pretty=format: %h %s%n',
$cid;
};
complete_convert_from $old_head, $work, $gdrlastinfo, 'convert-from-gbp';
- print f_ <<END, $us or confess $!;
+ print f_ <<END, $us or confess "$!";
%s: converted from patched-unapplied (gbp) branch format, OK
END
}
}
snags_maybe_bail();
update_head_checkout $head, $out, "convert to gbp (v0)";
- print f_ <<END, $us,$us,$us or confess $!;
+ print f_ <<END, $us,$us,$us or confess "$!";
%s: converted to git-buildpackage branch format
%s: WARNING: do not now run "git-debrebase" any more
%s: WARNING: doing so would drop all upstream patches!
my $spec = shift @ARGV;
my $commit = git_rev_parse "$spec^{commit}";
push @upstreams, { Commit => $commit,
- Source => (f_ "%s, from command line", $ARGV[0]),
+ Source => (f_ "%s, from command line", $spec),
Only => 1,
};
}
if (!@upstreams) {
if ($do_tags) {
my @tried;
- my $ups_tag = upstream_commitish_search $version, \@tried;
- if ($ups_tag) {
- my $this = f_ "git tag %s", $tried[-1];
- push @upstreams, { Commit => $ups_tag,
+ my ($ups_tag, $ups_rev) =
+ upstream_commitish_search $version, \@tried;
+ if ($ups_rev) {
+ my $this = f_ "git tag %s", $ups_tag;
+ push @upstreams, { Commit => $ups_rev,
Source => $this,
};
} else {
'experimental-merge-resolution!', \$opt_merges,
'-i:s' => sub {
my ($opt,$val) = @_;
- badusage f_ "%s: no cuddling to -i for git-rebase", $us
+ badusage f_ "%s: with git-debrebase, get-rebase -i option may only be followed by more options (as separate arguments)", $us
if length $val;
confess if $opt_defaultcmd_interactive; # should not happen
$opt_defaultcmd_interactive = [ qw(-i) ];
push @$opt_defaultcmd_interactive, @ARGV;
@ARGV=();
},
- 'help' => sub { print __ $usage_message or confess $!; finish 0; },
+ 'help' => sub { print __ $usage_message or confess "$!"; finish 0; },
);
initdebug('git-debrebase ');
=head1 NAME
-git-debrebase - delta queue rebase tool for Debian packaging
+git-debrebase - tool to maintain series of Debian changes to upstream source
=head1 SYNOPSYS
git-debrebase [<options...>] [-- <git-rebase options...>]
git-debrebase [<options...>] <operation> [<operation options...>
-=head1 INTRODUCTION
+=head1 QUICK REFERENCE
-git-debrebase is a tool for representing in git,
-and manpulating,
-Debian packages based on upstream source code.
+These are most of the commands you will regularly need:
+
+ git debrebase -i # edit the patch queue
+ git debrebase conclude && git push # push to eg salsa
+ git debrebase conclude && dgit push-source # source-only upload
+ git debrebase new-upstream 1.2.3-1 [-i] # uses tag, eg "v1.2.3"
+ dpkg-buildpackage -uc -b # get test debs, at any time
+
+To add patches, or edit the packaging, just make git commits.
+Ignore anything that may appear in debian/patches.
+Avoid using "git pull" and "git merge" without "--ff-only".
+
+git-debrebase has a special branch format, so see
+"CONVERTING AN EXISTING PACKAGE" in L<dgit-maint-debrebase(7)>.
+
+=head1 GUIDE TO DOCUMENTATION
This is the command line reference.
-Please read the tutorial
-L<dgit-maint-debrebase(7)>.
+There is also a detailed workflow tutorial at
+L<dgit-maint-debrebase(7)>
+(on which the above "QUICK REFERENCE" is based).
For background, theory of operation,
and definitions see L<git-debrebase(5)>.
=item git-debrebase scrap
Throws away all the work since the branch was last stitched.
-This is done by rewinding you to ffq-prev.
+This is done by resetting you to ffq-prev
+and discarding all working tree changes.
If you are in the middle of a git-rebase, will abort that too.
-=item git-debrebase new-upstream <new-version> [<upstream-details>...]
+=item git-debrebase new-upstream <new-version> [<upstream-details>...] [--|-i <git-rebase options...>]
Rebases the delta queue
onto a new upstream version. In detail:
Requests (more) debugging. May be repeated.
-=item --experimntal-merge-resolution
+=item --experimental-merge-resolution
Enable experimental code for handling general merges
(see L<git-debrebase(5)/General merges>).
=head1 SEE ALSO
git-debrebase(1),
-dgit-maint-rebase(7),
+dgit-maint-debrebase(7),
dgit(1),
gitglossary(7)
For this reason the tools will try to help the user
avoid divergence of the interchange branch.
-See dgit-maint-rebase(7)
+See dgit-maint-debrebase(7)
for a discussion of what kinds of behaviours
should be be avoided
because
The full set of annotations is:
[git-debrebase split: mixed commit, debian part]
[git-debrebase split: mixed commit, upstream-part]
- [git-debrebase onvert dgit import: debian changes]
+ [git-debrebase convert dgit import: debian changes]
[git-debrebase anchor: convert dgit import, upstream changes]
[git-debrebase upstream-combine . PIECE[ PIECE...]: new upstream]
--- /dev/null
+#!/bin/bash
+#
+# usage:
+# rm -rf .git/some/play/thing
+# git-playtree-setup .git/some/play/thing
+# or:
+# mkdir .git/some/play/thing
+# cd .git/some/play/thing
+# git-playtree-setup .
+
+set -e${GIT_PLAYTREE_SETUP_DEBUG}
+
+target=$1; shift
+
+case "$#.$target" in
+0.[^-]*) ;;
+*) echo >&2 'bad usage' ; exit 8 ;;
+esac
+
+[ "x$target" = x. ] || mkdir $target
+cd $target
+
+gcd=$(cd .. && git rev-parse --git-common-dir)
+case "$gcd" in
+/*) ;;
+*) gcd="../$gcd" ;;
+esac
+
+git init -q
+git config gc.auto 0
+
+unset_all () { git config --local --unset-all $key || [ $? = 5 ]; }
+
+for key in \
+ user.email user.name user.useConfigOnly \
+ core.sharedRepository \
+ core.compression core.looseCompression \
+ core.bigFileThreshold core.fsyncObjectFiles \
+; do
+ unset_all
+ (
+ git --git-dir="$gcd" config -z --get-all $key || [ $? = 1 ]
+ ) | xargs -n1 -0r -- \
+ git config --local --add $key
+done
+
+rm -rf .git/objects
+ln -s "$gcd/objects" .git/objects
--- /dev/null
+#!/usr/bin/perl -w
+
+# Intended to be used as a restricted command.
+# Usage:
+# command="/path/to/dgit-mirror-ssh-wrap /srv/repos/ .git --"
+# or similar. The two substantive arguments are literals.
+# The example permits writes to directories
+# /srv/repos/$PACKAGE.git
+# where $PACKAGE has the syntax of a Debian package name.
+
+use strict;
+
+die 'bad usage' unless @ARGV==3 && $ARGV[2] eq '--';
+our ($prefix, $suffix) = @ARGV;
+
+$prefix =~ s/\W/\\$&/g;
+$suffix =~ s/\W/\\$&/g;
+
+my $package = qr{[0-9a-z][-+.0-9a-z]*};
+my $d = qr{$prefix$package$suffix};
+
+my $command = $ENV{SSH_ORIGINAL_COMMAND}
+ // die "missing SSH_ORIGINAL_COMMAND";
+
+#print STDERR ">$d<\n";
+
+$_ = $command;
+
+m{^rsync --server -lHtre\.iLsfxC --timeout=\d+ --delete --safe-links \. $d$}
+||
+m{^rsync --server -lHtre\.iLsfxCIv --timeout=\d+ --delete --safe-links \. $d$}
+||
+m{^rsync --server -lHtre\.iLsfxCIvu --timeout=\d+ --delete --safe-links \. $d$}
+
+# To add a new command pattern, add || m{^ ... $} above.
+# The pattern should contain $d where the per-package destination
+# directory would go.
+
+or die "dgit-mirror-ssh-wrap: unexpected command (rsync upgraded?):
+ $command\n";
+
+exec $& or die $!;
#!/usr/bin/perl -w
# dgit repos policy hook script for Debian
#
-# Copyright (C) 2015-2016 Ian Jackson
+# Copyright (C) 2015-2019 Ian Jackson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
die unless defined $rcode;
$poldbh->commit;
+ printdebug "poldbh commit\n";
};
last unless length $@;
die $@ unless ref $@ eq $db_busy_exception;
#
# git protocol proxy to check dgit pushes etc.
#
-# Copyright (C) 2014-2016 Ian Jackson
+# Copyright (C) 2014-2017,2019 Ian Jackson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# usages:
# dgit-repos-server DISTRO DISTRO-DIR AUTH-SPEC [<settings>] --ssh
# dgit-repos-server DISTRO DISTRO-DIR AUTH-SPEC [<settings>] --cron
+# dgit-repos-server DISTRO DISTRO-DIR AUTH-SPEC [<settings>] \
+# --tag2upload URL TAGNAME
# settings
# --repos=GIT-REPOS-DIR default DISTRO-DIR/repos/
# --suites=SUITES-FILE default DISTRO-DIR/suites
# (With --cron AUTH-SPEC is not used and may be the empty string.)
use strict;
+use Carp;
+use IO::Handle;
use Debian::Dgit::Infra; # must precede Debian::Dgit; - can change @INC!
use Debian::Dgit qw(:DEFAULT :policyflags);
STDIN->error and die $!;
reject "push is missing tag ref update" unless %tags;
- my @newtags = grep { m#^archive/# } keys %tags;
- my @omtags = grep { !m#^archive/# } keys %tags;
- reject "pushing too many similar tags" if @newtags>1 || @omtags>1;
- if (@newtags) {
- ($tagname) = @newtags;
- ($maint_tagname) = @omtags;
- } else {
- ($tagname) = @omtags or die;
- }
+ my @dtags = grep { m#^archive/# } keys %tags;
+ reject "need exactly one archive/* tag" if @dtags!=1;
+ my @mtags = grep { !m#^archive/# } keys %tags;
+ reject "pushing too many non-dgit tags" if @mtags>1;
+ ($tagname) = @dtags;
+ ($maint_tagname) = @mtags;
$tagval = $tags{$tagname};
$maint_tagval = $tags{$maint_tagname // ''};
printdebug " updates ok.\n";
}
-sub parsetag () {
- printdebug " parsetag...\n";
+sub readtag () {
+ printdebug " readtag...\n";
+
open PT, ">dgit-tmp/plaintext" or die $!;
open DS, ">dgit-tmp/plaintext.asc" or die $!;
open T, "-|", qw(git cat-file tag), $tagval or die $!;
}
}
$!=0; $_=<T>; defined or die $!;
- m/^($package_re) release (\S+) for \S+ \((\S+)\) \[dgit\]$/ or
- reject "tag message not in expected format";
+}
- die unless $1 eq $package;
- $version = $2;
- die "$3 != $suite " unless $3 eq $suite;
+sub parsetag_general ($$) {
+ my ($dgititemfn, $distrofn) = @_;
+ printdebug " parsetag...\n";
my $copyl = $_;
for (;;) {
if (m/^\[dgit ([^"].*)\]$/) { # [dgit "something"] is for future
$_ = $1." ";
while (length) {
- if (s/^distro\=(\S+) //) {
- die "$1 != $distro" unless $1 eq $distro;
- } elsif (s/^(--deliberately-$deliberately_re) //) {
- push @deliberatelies, $1;
- } elsif (s/^previously:(\S+)=(\w+) //) {
- die "previously $1 twice" if defined $previously{$1};
- $previously{$1} = $2;
- } elsif (s/^[-+.=0-9a-z]\S* //) {
+ if ($dgititemfn->()) {
+ } elsif (s/^distro\=(\S+) //) {
+ $distrofn->($1);
+ } elsif (s/^([-+.=0-9a-z]\S*) //) {
+ printdebug " parsetag ignoring unrecognised \`$1'\n";
} else {
die "unknown dgit info in tag ($_)";
}
}
last if m/^-----BEGIN PGP/;
}
+
$_ = $copyl;
for (;;) {
print DS or die $!;
printdebug " parsetag ok.\n";
}
+sub parsetag () {
+ readtag();
+ m/^($package_re) release (\S+) for \S+ \((\S+)\) \[dgit\]$/ or
+ reject "tag message not in expected format";
+ die unless $1 eq $package;
+ $version = $2;
+ die "$3 != $suite " unless $3 eq $suite;
+
+ parsetag_general sub {
+ if (s/^(--deliberately-$deliberately_re) //) {
+ push @deliberatelies, $1;
+ } elsif (s/^previously:(\S+)=(\w+) //) {
+ die "previously $1 twice" if defined $previously{$1};
+ $previously{$1} = $2;
+ } else {
+ return 0;
+ }
+ return 1;
+ }, sub {
+ my ($gotdistro) = @_;
+ die "$gotdistro != $distro" unless $gotdistro eq $distro;
+ };
+}
+
sub checksig_keyring ($) {
my ($keyringfile) = @_;
# returns primary-keyid if signed by a key in this keyring
# current head for the suite (there must be at least one).
#
# This prevents any tag implying a NOFFCHECK push being
- # replayed to rewind from a different head.
+ # replayed to overwrite a different head.
#
# The possibility of an earlier ff-only push being replayed is
# eliminated as follows: the tag from such a push would still
return $vals->[0];
}
-sub checks () {
+sub basic_tag_checks() {
printdebug "checks\n";
tagh1('type') eq 'commit' or reject "tag refers to wrong kind of object";
tagh1('object') eq $commit or reject "tag refers to wrong commit";
tagh1('tag') eq $tagname or reject "tag name in tag is wrong";
+}
+
+sub checks () {
+ basic_tag_checks();
my @expecttagnames = debiantags($version, $distro);
printdebug "expected tag @expecttagnames\n";
grep { $tagname eq $_ } @expecttagnames or die;
foreach my $othertag (grep { $_ ne $tagname } @expecttagnames) {
- reject "tag $othertag (pushed with differing dgit version)".
- " already exists -".
+ reject "tag $othertag already exists -".
" not replacing previously-pushed version"
if git_get_ref "refs/tags/".$othertag;
}
# workrepo and destrepo handled ad-hoc
+sub mode_tag2upload () {
+ # CALLER MUST PREVENT MULTIPLE CONCURRENT RUNS IN SAME CWD
+ # If we fail (exit nonzero), caller should capture our stderr,
+ # and retry some bounded number of times in some appropriate way
+ # Uses whatever ambient gpg key is available
+ @ARGV==2 or die;
+
+ my $url;
+ ($url,$tagval) = @ARGV;
+
+ $ENV{DGIT_DRS_EMAIL_NOREPLY} // die;
+
+ my $start = time // die;
+ my @t = gmtime $start;
+
+ die if $url =~ m/[^[:graph:]]/;
+ die if $tagval =~ m/[^[:graph:]]/;
+
+ open OL, ">>overall.log" or die $!;
+ autoflush OL 1;
+ my $quit = sub {
+ printf OL "%04d-%02d-%02d %02d:%02d:%02d (%04ds): %s %s: %s\n",
+ $t[5] + 1900, @t[4,3,2,1,0], (time-$start), $url, $tagval, $_[0];
+ exit 0;
+ };
+
+ $ENV{DGIT_DRS_ANY_URL} or $url =~ m{^https://}s
+ or $quit->("url scheme not as expected");
+
+ $tagval =~ m{^$distro/($versiontag_re)$}s
+ or $quit->("tag name not for us");
+
+ $version = $1;
+ $version =~ y/_\%\#/:~/d;
+
+ my $work = 'work';
+
+ my $tagref = "refs/tags/$tagval";
+
+ rmtree $work;
+ rmtree 'bpd';
+ mkdir $work or die $!;
+ mkdir 'bpd' or die $!;
+ unlink <*.orig*>;
+ dif $! if <*.orig*>;
+ changedir $work;
+ runcmd qw(git init -q);
+ runcmd qw(git remote add origin), $url;
+ runcmd qw(git fetch --depth=1 origin), "$tagref:$tagref";
+ changedir ".git";
+ mkdir 'dgit-tmp' or die $!;
+
+ my $tagger;
+ open T, "-|", qw(git cat-file tag), $tagval or die $!;
+ {
+ local $/ = undef;
+ $!=0; $_=<T>; defined or die $!;
+
+ # quick and dirty check, will check properly later
+ m/^\[dgit[^"]* please-upload(?:\]| )/m or
+ $quit->("tag missing please-upload request");
+
+ m/^tagger (.*) \d+ [-+]\d+$/m or
+ $quit->("failed to fish tagger out of tag");
+ $tagger = $1;
+ };
+
+ readtag();
+ m/^($package_re) release (\S+) for ($suite_re)$/ or
+ $quit->("tag headline not for us");
+ $package = $1;
+ my $tagmversion = $2;
+ $suite = $3;
+
+
+ # This is for us. From now on, we will capture errors to
+ # be emailed to the tagger.
+
+ open H, ">>dgit-tmp/tagupl.email" or die $!;
+ print H <<END or die $!;
+Subject: push-to-upload failed, $package $version ($distro)
+X-Debian-Push-Distro: $distro
+X-Debian-Push-Package: $package
+END
+ printf H "To: %s", $tagger or die $!; # no newline
+ flush H or die $!;
+
+ open L, ">>dgit-tmp/tagupl.log" or die $!;
+
+ my $child = fork() // die $!;
+ if ($child) {
+ # we are the parent
+ # if child exits 0, it has called $quit->()
+ $!=0; waitpid $child, 0 == $child or die $!;
+ printdebug "child $child ?=$?\n";
+ exit 0 unless $?;
+ print L "execution child: ", waitstatusmsg(), "\n" or die $!;
+ close L or die $!;
+ print H <<END or die $!;
+
+
+Processing of tag $tagval
+From url $url
+Was not successful:
+
+END
+ $ENV{DGIT_DRS_SENDMAIL} //= '/usr/lib/sendmail';
+
+ close H or die $!;
+ runcmd qw(sh -ec), <<"END";
+ cd dgit-tmp
+ cat tagupl.log >>tagupl.email
+ $ENV{DGIT_DRS_SENDMAIL} -oee -odb -oi -t \\
+ -f$ENV{DGIT_DRS_EMAIL_NOREPLY} \\
+ <tagupl.email
+END
+ $quit->("failed, emailed");
+ }
+
+ open STDERR, ">&L" or die $!;
+ open STDOUT, ">&STDERR" or die $!;
+ open DEBUG, ">&STDERR" if $debuglevel;
+
+ reject "version mismatch $tagmversion != $version "
+ unless $tagmversion eq $version;
+
+ my %need = map { $_ => 1 } qw(please-upload split);
+ my ($upstreamc, $upstreamt);
+ my $quilt;
+ my $distro_ok;
+
+ confess if defined $upstreamt;
+
+ parsetag_general sub {
+ if (m/^(\S+) / && exists $need{$1}) {
+ $_ = $';
+ delete $need{$1};
+ } elsif (s/^upstream=(\w+) //) {
+ $upstreamc = $1;
+ } elsif (s/^upstream-tag=(\S+) //) {
+ $upstreamt = $1;
+ } elsif (s/^--quilt=([-+0-9a-z]+) //) {
+ $quilt = $1;
+ } else {
+ return 0;
+ }
+ return 1;
+ }, sub {
+ my ($gotdistro) = @_;
+ $distro_ok ||= $gotdistro eq $distro;
+ };
+
+ $quit->("not for this distro") unless $distro_ok;
+
+ reject "missing \"$_\"" foreach keys %need;
+
+ verifytag();
+
+ reject "upstream tag and not commitish, or v-v"
+ unless defined $upstreamt == defined $upstreamc;
+
+ my @dgit;
+ push @dgit, $ENV{DGIT_DRS_DGIT} // 'dgit';
+ push @dgit, '-wn';
+ push @dgit, "-p$package";
+ push @dgit, '--build-products-dir=../bpd';
+
+ changedir "..";
+ runcmd (@dgit, qw(setup-gitattributes));
+
+ my @fetch = qw(git fetch origin --unshallow);
+ if (defined $upstreamt) {
+ runcmd qw(git check-ref-format), "refs/tags/$upstreamt";
+ my $utagref = "refs/tags/$upstreamt";
+ push @fetch, "$utagref:$utagref";
+ }
+ runcmd @fetch;
+
+ runcmd qw(git checkout -q), "refs/tags/$tagval";
+
+ my $clogp = parsechangelog();
+ my $clogf = sub {
+ my ($f, $exp) = @_;
+ my $got = getfield $clogp, $f;
+ return if $got eq $exp;
+ reject "mismatch: changelog $f $got != $exp";
+ };
+ $clogf->('Version', $version);
+ $clogf->('Source', $package);
+
+ @fetch = (@dgit, qw(--for-push fetch), $suite);
+ debugcmd "+",@_;
+ $!=0; $?=-1;
+ if (system @fetch) {
+ failedcmd @fetch unless $? == 4*256;
+ }
+ # this is just to get the orig, so we don't really care about the ref
+ if (defined $upstreamc) {
+ my $need_upstreamc = git_rev_parse "refs/tags/$upstreamt";
+ $upstreamc eq $need_upstreamc or reject
+ "upstream-commitish=$upstreamc but tag refers to $need_upstreamc";
+ runcmd qw(git deborig), "$upstreamc";
+ }
+
+ my @dgitcmd;
+ push @dgitcmd, @dgit;
+ push @dgitcmd, qw(--force-uploading-source-only);
+ if (defined $quilt) {
+ push @dgitcmd, "--quilt=$quilt";
+ if ($quilt =~ m/baredebian/) {
+ die "needed upstream commmitish with --quilt=baredebian"
+ unless defined $upstreamc;
+ push @dgitcmd, "--upstream-commitish=refs/tags/$upstreamt";
+ }
+ }
+ push @dgitcmd, qw(push-source --new --overwrite), $suite;
+
+ runcmd @dgitcmd;
+
+ $quit->('done');
+}
+
sub mode_ssh () {
die if @ARGV;
$ENV{"DGIT_DRS_\U$_"} = ${ $main::{$_} } foreach @hookenvs;
- die unless @ARGV==1;
+ die unless @ARGV>=1;
my $mode = shift @ARGV;
die unless $mode =~ m/^--(\w+)$/;
msgstr ""
"Project-Id-Version: dgit ongoing\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-03-01 21:54+0000\n"
+"POT-Creation-Date: 2020-02-02 16:50+0000\n"
"PO-Revision-Date: 2018-08-26 16:55+0100\n"
"Last-Translator: Ian Jackson <ijackson@chiark.greenend.org.uk>\n"
"Language-Team: dgit developrs <dgit@packages.debian.org>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../dgit:242
+#: ../dgit:268
#, perl-format
msgid "%s: invalid configuration: %s\n"
msgstr ""
-#: ../dgit:249
+#: ../dgit:275
msgid "warning: overriding problem due to --force:\n"
msgstr ""
-#: ../dgit:257
+#: ../dgit:283
#, perl-format
msgid "warning: skipping checks or functionality due to --force-%s\n"
msgstr ""
-#: ../dgit:262
+#: ../dgit:288
#, perl-format
msgid "%s: source package %s does not exist in suite %s\n"
msgstr ""
-#: ../dgit:487
+#: ../dgit:520
#, perl-format
msgid "build host child %s"
msgstr ""
-#: ../dgit:492 ../dgit:498
+#: ../dgit:525 ../dgit:531
#, perl-format
msgid "connection lost: %s"
msgstr ""
-#: ../dgit:493
+#: ../dgit:526
#, perl-format
msgid "protocol violation; %s not expected"
msgstr ""
-#: ../dgit:501
+#: ../dgit:534
#, perl-format
msgid "eof (reading %s)"
msgstr ""
-#: ../dgit:508
+#: ../dgit:541
msgid "protocol message"
msgstr ""
-#: ../dgit:516
+#: ../dgit:549
#, perl-format
msgid "`%s'"
msgstr ""
-#: ../dgit:537
+#: ../dgit:570
msgid "bad byte count"
msgstr ""
-#: ../dgit:540
+#: ../dgit:573
msgid "data block"
msgstr ""
-#: ../dgit:621
-#, perl-format
-msgid "failed to fetch %s: %s"
-msgstr ""
-
-#: ../dgit:633
+#: ../dgit:652
#, perl-format
msgid "%s ok: %s"
msgstr ""
-#: ../dgit:635
+#: ../dgit:654
#, perl-format
msgid "would be ok: %s (but dry run only)"
msgstr ""
-#: ../dgit:660
+#: ../dgit:679
msgid ""
"main usages:\n"
" dgit [dgit-opts] clone [dgit-opts] package [suite] [./dir|/dir]\n"
" -c<name>=<value> set git config option (used directly by dgit too)\n"
msgstr ""
-#: ../dgit:679
+#: ../dgit:698
msgid "Perhaps the upload is stuck in incoming. Using the version from git.\n"
msgstr ""
-#: ../dgit:683
+#: ../dgit:702
#, perl-format
msgid ""
"%s: %s\n"
"%s"
msgstr ""
-#: ../dgit:688
+#: ../dgit:707
msgid "too few arguments"
msgstr ""
-#: ../dgit:799
+#: ../dgit:823
#, perl-format
msgid "multiple values for %s (in %s git config)"
msgstr ""
-#: ../dgit:802
+#: ../dgit:826
#, perl-format
msgid "value for config option %s (in %s git config) contains newline(s)!"
msgstr ""
-#: ../dgit:822
+#: ../dgit:846
#, perl-format
msgid ""
"need value for one of: %s\n"
"%s: distro or suite appears not to be (properly) supported"
msgstr ""
-#: ../dgit:863
+#: ../dgit:903
#, perl-format
msgid "bad syntax for (nominal) distro `%s' (does not match %s)"
msgstr ""
-#: ../dgit:878
+#: ../dgit:918
#, perl-format
msgid "backports-quirk needs % or ( )"
msgstr ""
-#: ../dgit:894
+#: ../dgit:934
#, perl-format
msgid "%s needs t (true, y, 1) or f (false, n, 0) not `%s'"
msgstr ""
-#: ../dgit:914
+#: ../dgit:954
msgid "readonly needs t (true, y, 1) or f (false, n, 0) or a (auto)"
msgstr ""
-#: ../dgit:923 ../git-debrebase:1586 ../Debian/Dgit.pm:201
+#: ../dgit:972
+#, perl-format
+msgid "unknown %s `%s'"
+msgstr ""
+
+#: ../dgit:977 ../git-debrebase:1548 ../Debian/Dgit.pm:211
msgid "internal error"
msgstr ""
-#: ../dgit:925
+#: ../dgit:979
msgid "pushing but distro is configured readonly"
msgstr ""
-#: ../dgit:929
+#: ../dgit:983
msgid ""
"Push failed, before we got started.\n"
"You can retry the push, after fixing the problem, if you like.\n"
msgstr ""
-#: ../dgit:1094
-msgid "this operation does not support multiple comma-separated suites"
-msgstr ""
-
-#: ../dgit:1140
+#: ../dgit:1006
#, perl-format
msgid ""
-"config requested specific TLS key but do not know how to get curl to use "
-"exactly that EE key (%s)"
+"dgit: quilt mode `%s' (for format `%s') implies split view, but split-view "
+"set to `%s'"
msgstr ""
-#: ../dgit:1161
-msgid "ftpmasterapi archive query method takes no data part"
+#: ../dgit:1169
+msgid "this operation does not support multiple comma-separated suites"
msgstr ""
-#: ../dgit:1169
-msgid "curl failed to print 3-digit HTTP code"
+#: ../dgit:1237
+#, perl-format
+msgid "fetch of %s failed (%s): %s"
msgstr ""
-#: ../dgit:1173
+#: ../dgit:1244
#, perl-format
msgid "fetch of %s gave HTTP code %s"
msgstr ""
-#: ../dgit:1189
+#: ../dgit:1265
+msgid "ftpmasterapi archive query method takes no data part"
+msgstr ""
+
+#: ../dgit:1283
#, perl-format
msgid "unknown suite %s, maybe -d would help"
msgstr ""
-#: ../dgit:1193
+#: ../dgit:1287
#, perl-format
msgid "multiple matches for suite %s\n"
msgstr ""
-#: ../dgit:1195
+#: ../dgit:1289
#, perl-format
msgid "suite %s info has no codename\n"
msgstr ""
-#: ../dgit:1197
+#: ../dgit:1291
#, perl-format
msgid "suite %s maps to bad codename\n"
msgstr ""
-#: ../dgit:1199 ../dgit:1224
+#: ../dgit:1293 ../dgit:1318
msgid "bad ftpmaster api response: "
msgstr ""
-#: ../dgit:1213
+#: ../dgit:1307
#, perl-format
msgid "bad version: %s\n"
msgstr ""
-#: ../dgit:1215
+#: ../dgit:1309
msgid "bad component"
msgstr ""
-#: ../dgit:1218
+#: ../dgit:1312
msgid "bad filename"
msgstr ""
-#: ../dgit:1220
+#: ../dgit:1314
msgid "bad sha256sum"
msgstr ""
-#: ../dgit:1271
+#: ../dgit:1365
msgid "aptget archive query method takes no data part"
msgstr ""
-#: ../dgit:1355
+#: ../dgit:1449
#, perl-format
msgid ""
"apt seemed to not to update dgit's cached Release files for %s.\n"
" is on a filesystem mounted `noatime'; if so, please use `relatime'.)\n"
msgstr ""
-#: ../dgit:1377
+#: ../dgit:1473
#, perl-format
msgid "Release file (%s) specifies intolerable %s"
msgstr ""
-#: ../dgit:1405
+#: ../dgit:1499
msgid "apt-get source did not produce a .dsc"
msgstr ""
-#: ../dgit:1406
+#: ../dgit:1500
#, perl-format
msgid "apt-get source produced several .dscs (%s)"
msgstr ""
-#: ../dgit:1511
+#: ../dgit:1605
#, perl-format
msgid ""
"unable to canonicalise suite using package %s which does not appear to exist "
"in suite %s; --existing-package may help"
msgstr ""
-#: ../dgit:1702
+#: ../dgit:1744
#, perl-format
msgid "cannot operate on %s suite"
msgstr ""
-#: ../dgit:1705
+#: ../dgit:1747
#, perl-format
msgid "canonical suite name for %s is %s"
msgstr ""
-#: ../dgit:1707
+#: ../dgit:1749
#, perl-format
msgid "canonical suite name is %s"
msgstr ""
-#: ../dgit:1727
+#: ../dgit:1769
#, perl-format
msgid "%s has hash %s but archive told us to expect %s"
msgstr ""
-#: ../dgit:1733
+#: ../dgit:1775
#, perl-format
msgid "unsupported source format %s, sorry"
msgstr ""
-#: ../dgit:1760
+#: ../dgit:1802
#, perl-format
msgid "diverting to %s (using config for %s)"
msgstr ""
-#: ../dgit:1777
-msgid "unexpected results from git check query - "
-msgstr ""
-
-#: ../dgit:1792
+#: ../dgit:1825
#, perl-format
msgid "unknown git-check `%s'"
msgstr ""
-#: ../dgit:1807
+#: ../dgit:1840
#, perl-format
msgid "unknown git-create `%s'"
msgstr ""
-#: ../dgit:1844
+#: ../dgit:1877
#, perl-format
msgid "%s: warning: removing from %s: %s\n"
msgstr ""
-#: ../dgit:1890
+#: ../dgit:1923
#, perl-format
msgid "could not parse .dsc %s line `%s'"
msgstr ""
-#: ../dgit:1901
+#: ../dgit:1934
#, perl-format
msgid "missing any supported Checksums-* or Files field in %s"
msgstr ""
-#: ../dgit:1947
+#: ../dgit:1980
#, perl-format
msgid "hash or size of %s varies in %s fields (between: %s)"
msgstr ""
-#: ../dgit:1956
+#: ../dgit:1989
#, perl-format
msgid "file list in %s varies between hash fields!"
msgstr ""
-#: ../dgit:1960
+#: ../dgit:1993
#, perl-format
msgid "%s has no files list field(s)"
msgstr ""
-#: ../dgit:1966
+#: ../dgit:1999
#, perl-format
msgid "no file appears in all file lists (looked in: %s)"
msgstr ""
-#: ../dgit:2006
+#: ../dgit:2039
#, perl-format
msgid "purportedly source-only changes polluted by %s\n"
msgstr ""
-#: ../dgit:2019
+#: ../dgit:2052
msgid "cannot find section/priority from .changes Files field"
msgstr ""
-#: ../dgit:2032
+#: ../dgit:2065
msgid ""
"archive does not support .orig check; hope you used --ch:--sa/-sd if needed\n"
msgstr ""
-#: ../dgit:2048
+#: ../dgit:2081
#, perl-format
msgid ".dsc %s missing entry for %s"
msgstr ""
-#: ../dgit:2053
+#: ../dgit:2086
#, perl-format
msgid "%s: %s (archive) != %s (local .dsc)"
msgstr ""
-#: ../dgit:2061
+#: ../dgit:2094
#, perl-format
msgid "archive %s: %s"
msgstr ""
-#: ../dgit:2068
+#: ../dgit:2101
#, perl-format
msgid "archive contains %s with different checksum"
msgstr ""
-#: ../dgit:2096
+#: ../dgit:2129
#, perl-format
msgid "edited .changes for archive .orig contents: %s %s"
msgstr ""
-#: ../dgit:2104
+#: ../dgit:2137
#, perl-format
msgid "[new .changes left in %s]"
msgstr ""
-#: ../dgit:2107
+#: ../dgit:2140
#, perl-format
msgid "%s already has appropriate .orig(s) (if any)"
msgstr ""
-#: ../dgit:2131
+#: ../dgit:2159
#, perl-format
msgid ""
"unexpected commit author line format `%s' (was generated from changelog "
"Maintainer field)"
msgstr ""
-#: ../dgit:2154
+#: ../dgit:2182
msgid ""
"\n"
"Unfortunately, this source package uses a feature of dpkg-source where\n"
"\n"
msgstr ""
-#: ../dgit:2166
+#: ../dgit:2194
#, perl-format
msgid ""
"Found active distro-specific series file for %s (%s): %s, cannot continue"
msgstr ""
-#: ../dgit:2197
+#: ../dgit:2225
msgid "Dpkg::Vendor `current vendor'"
msgstr ""
-#: ../dgit:2199
+#: ../dgit:2227
msgid "(base) distro being accessed"
msgstr ""
-#: ../dgit:2201
+#: ../dgit:2229
msgid "(nominal) distro being accessed"
msgstr ""
-#: ../dgit:2206
+#: ../dgit:2234
#, perl-format
msgid "build-products-dir %s is not accessible: %s\n"
msgstr ""
-#: ../dgit:2231
+#: ../dgit:2259
#, perl-format
msgid ""
"%s: found orig(s) in .. missing from build-products-dir, transferring:\n"
msgstr ""
-#: ../dgit:2235
+#: ../dgit:2263
#, perl-format
msgid "check orig file %s in bpd %s: %s"
msgstr ""
-#: ../dgit:2237
+#: ../dgit:2265
#, perl-format
msgid "check orig file %s in ..: %s"
msgstr ""
-#: ../dgit:2240
+#: ../dgit:2268
#, perl-format
msgid "check target of orig symlink %s in ..: %s"
msgstr ""
-#: ../dgit:2249
+#: ../dgit:2277
#, perl-format
msgid "%s: cloned orig symlink from ..: %s\n"
msgstr ""
-#: ../dgit:2253
+#: ../dgit:2281
#, perl-format
msgid "%s: hardlinked orig from ..: %s\n"
msgstr ""
-#: ../dgit:2256
+#: ../dgit:2284
#, perl-format
msgid "failed to make %s a hardlink to %s: %s"
msgstr ""
-#: ../dgit:2262
+#: ../dgit:2290
#, perl-format
msgid "%s: symmlinked orig from .. on other filesystem: %s\n"
msgstr ""
-#: ../dgit:2294 ../dgit:2299
-#, perl-format
-msgid "accessing %s: %s"
-msgstr ""
-
-#: ../dgit:2314 ../dgit:2321
-#, perl-format
-msgid "saving %s: %s"
-msgstr ""
-
-#: ../dgit:2386
+#: ../dgit:2361
#, perl-format
msgid "dgit (child): exec %s: %s"
msgstr ""
-#: ../dgit:2450 ../dgit:5974
-msgid "source package"
-msgstr ""
-
-#: ../dgit:2468
+#: ../dgit:2423
msgid "package changelog"
msgstr ""
-#: ../dgit:2508
+#: ../dgit:2463
msgid "package changelog has no entries!"
msgstr ""
-#: ../dgit:2527
+#: ../dgit:2532 ../dgit:2537
#, perl-format
-msgid "Import %s"
+msgid "accessing %s: %s"
msgstr ""
-#: ../dgit:2608
+#: ../dgit:2552 ../dgit:2559
+#, perl-format
+msgid "saving %s: %s"
+msgstr ""
+
+#: ../dgit:2585 ../dgit:6078
+msgid "source package"
+msgstr ""
+
+#: ../dgit:2665
#, perl-format
msgid "%s: trying slow absurd-git-apply..."
msgstr ""
-#: ../dgit:2627
+#: ../dgit:2684
#, perl-format
msgid "%s failed: %s\n"
msgstr ""
-#: ../dgit:2636
+#: ../dgit:2693
#, perl-format
msgid ""
"gbp-pq import and dpkg-source disagree!\n"
" dpkg-source --before-build gave tree %s\n"
msgstr ""
-#: ../dgit:2651
+#: ../dgit:2713
#, perl-format
msgid "synthesised git commit from .dsc %s"
msgstr ""
-#: ../dgit:2655
+#: ../dgit:2717
msgid "Import of source package"
msgstr ""
-#: ../dgit:2668
-#, perl-format
-msgid "Record %s (%s) in archive suite %s\n"
-msgstr ""
-
-#: ../dgit:2672
+#: ../dgit:2737
#, perl-format
msgid ""
"\n"
"%s\n"
msgstr ""
-#: ../dgit:2714
+#: ../dgit:2779
#, perl-format
msgid "using existing %s"
msgstr ""
-#: ../dgit:2718
+#: ../dgit:2783
#, perl-format
msgid ""
"file %s has hash %s but .dsc demands hash %s (perhaps you should delete this "
"file?)"
msgstr ""
-#: ../dgit:2722
+#: ../dgit:2787
#, perl-format
msgid "need to fetch correct version of %s"
msgstr ""
-#: ../dgit:2738
+#: ../dgit:2803
#, perl-format
msgid ""
"file %s has hash %s but .dsc demands hash %s (got wrong file from archive!)"
msgstr ""
-#: ../dgit:2833
+#: ../dgit:2898
msgid "too many iterations trying to get sane fetch!"
msgstr ""
-#: ../dgit:2848
+#: ../dgit:2913
#, perl-format
msgid "warning: git ls-remote %s reported %s; this is silly, ignoring it.\n"
msgstr ""
-#: ../dgit:2892
+#: ../dgit:2957
#, perl-format
msgid "warning: git fetch %s created %s; this is silly, deleting it.\n"
msgstr ""
-#: ../dgit:2907
+#: ../dgit:2972
msgid ""
"--dry-run specified but we actually wanted the results of git fetch,\n"
"so this is not going to work. Try running dgit fetch first,\n"
"or using --damp-run instead of --dry-run.\n"
msgstr ""
-#: ../dgit:2912
+#: ../dgit:2977
#, perl-format
msgid ""
"warning: git ls-remote suggests we want %s\n"
"warning: Will try again...\n"
msgstr ""
-#: ../dgit:2979
-#, perl-format
-msgid "Not updating %s from %s to %s.\n"
-msgstr ""
-
-#: ../dgit:3028
-#, perl-format
-msgid "%s: NO git hash"
-msgstr ""
-
-#: ../dgit:3032
-#, perl-format
-msgid "%s: specified git info (%s)"
-msgstr ""
-
-#: ../dgit:3039
-#, perl-format
-msgid "%s: specified git hash"
-msgstr ""
-
-#: ../dgit:3041
-#, perl-format
-msgid "%s: invalid Dgit info"
-msgstr ""
-
-#: ../dgit:3063
+#: ../dgit:3124
#, perl-format
msgid "not chasing .dsc distro %s: not fetching %s"
msgstr ""
-#: ../dgit:3068
+#: ../dgit:3129
#, perl-format
msgid ".dsc names distro %s: fetching %s"
msgstr ""
-#: ../dgit:3073
+#: ../dgit:3134
#, perl-format
msgid ""
".dsc Dgit metadata is in context of distro %s\n"
"for which we have no configured url and .dsc provides no hint\n"
msgstr ""
-#: ../dgit:3083
+#: ../dgit:3144
#, perl-format
msgid ""
".dsc Dgit metadata is in context of distro %s\n"
"(can be overridden by config - consult documentation)\n"
msgstr ""
-#: ../dgit:3103
+#: ../dgit:3164
msgid "rewrite map"
msgstr ""
-#: ../dgit:3110
+#: ../dgit:3171
msgid "server's git history rewrite map contains a relevant entry!"
msgstr ""
-#: ../dgit:3114
+#: ../dgit:3175
msgid "using rewritten git hash in place of .dsc value"
msgstr ""
-#: ../dgit:3116
+#: ../dgit:3177
msgid "server data says .dsc hash is to be disregarded"
msgstr ""
-#: ../dgit:3123
+#: ../dgit:3184
msgid "additional commits"
msgstr ""
-#: ../dgit:3126
+#: ../dgit:3187
#, perl-format
msgid ""
".dsc Dgit metadata requires commit %s\n"
"but we could not obtain that object anywhere.\n"
msgstr ""
-#: ../dgit:3151
+#: ../dgit:3212
msgid "last upload to archive"
msgstr ""
-#: ../dgit:3155
+#: ../dgit:3216
msgid "no version available from the archive"
msgstr ""
-#: ../dgit:3238
+#: ../dgit:3299
msgid "dgit suite branch on dgit git server"
msgstr ""
-#: ../dgit:3245
+#: ../dgit:3306
msgid "dgit client's archive history view"
msgstr ""
-#: ../dgit:3250
+#: ../dgit:3311
msgid "Dgit field in .dsc from archive"
msgstr ""
-#: ../dgit:3278
+#: ../dgit:3339
#, perl-format
msgid ""
"\n"
"%s\n"
msgstr ""
-#: ../dgit:3291
+#: ../dgit:3352
msgid "archive .dsc names newer git commit"
msgstr ""
-#: ../dgit:3294
+#: ../dgit:3355
msgid "archive .dsc names other git commit, fixing up"
msgstr ""
-#: ../dgit:3315
+#: ../dgit:3376
#, perl-format
msgid ""
"\n"
"%s\n"
msgstr ""
-#: ../dgit:3324
+#: ../dgit:3385
#, perl-format
msgid ""
"\n"
"\n"
msgstr ""
-#: ../dgit:3409
+#: ../dgit:3470
#, perl-format
msgid ""
"Record %s (%s) in archive suite %s\n"
"Record that\n"
msgstr ""
-#: ../dgit:3422
+#: ../dgit:3483
msgid "should be treated as descended from\n"
msgstr ""
-#: ../dgit:3440
+#: ../dgit:3501
msgid "dgit repo server tip (last push)"
msgstr ""
-#: ../dgit:3442
+#: ../dgit:3503
msgid "local tracking tip (last fetch)"
msgstr ""
-#: ../dgit:3453
+#: ../dgit:3514
#, perl-format
msgid ""
"\n"
"\n"
msgstr ""
-#: ../dgit:3468
+#: ../dgit:3529
msgid "fetched source tree"
msgstr ""
-#: ../dgit:3504
+#: ../dgit:3565
msgid "debian/changelog merge driver"
msgstr ""
-#: ../dgit:3569
+#: ../dgit:3630
msgid ""
"[attr]dgit-defuse-attrs already found, and proper, in .git/info/attributes\n"
" not doing further gitattributes setup\n"
msgstr ""
-#: ../dgit:3583
+#: ../dgit:3644
msgid "# ^ see GITATTRIBUTES in dgit(7) and dgit setup-new-tree in dgit(1)\n"
msgstr ""
-#: ../dgit:3598
+#: ../dgit:3659
#, perl-format
msgid "install %s: %s"
msgstr ""
-#: ../dgit:3625
+#: ../dgit:3686
#, perl-format
msgid ""
"dgit: warning: %s contains .gitattributes\n"
"tree.\n"
msgstr ""
-#: ../dgit:3647
+#: ../dgit:3708
#, perl-format
msgid "fetching %s..."
msgstr ""
-#: ../dgit:3655
+#: ../dgit:3716
#, perl-format
msgid "failed to obtain %s: %s"
msgstr ""
-#: ../dgit:3694
+#: ../dgit:3755
#, perl-format
msgid "package %s missing in (base suite) %s"
msgstr ""
-#: ../dgit:3726
+#: ../dgit:3787
msgid "local combined tracking branch"
msgstr ""
-#: ../dgit:3728
+#: ../dgit:3789
msgid "archive seems to have rewound: local tracking branch is ahead!"
msgstr ""
-#: ../dgit:3767
+#: ../dgit:3828
#, perl-format
msgid ""
"Combine archive branches %s [dgit]\n"
"Input branches:\n"
msgstr ""
-#: ../dgit:3781
+#: ../dgit:3842
msgid ""
"\n"
"Key\n"
"\n"
msgstr ""
-#: ../dgit:3796
+#: ../dgit:3857
#, perl-format
msgid "calculated combined tracking suite %s"
msgstr ""
-#: ../dgit:3814
+#: ../dgit:3875
#, perl-format
msgid "ready for work in %s"
msgstr ""
-#: ../dgit:3822
+#: ../dgit:3893
msgid "dry run makes no sense with clone"
msgstr ""
-#: ../dgit:3837
+#: ../dgit:3908
#, perl-format
msgid "create `%s': %s"
msgstr ""
-#: ../dgit:3853
+#: ../dgit:3920
msgid "fetching existing git history"
msgstr ""
-#: ../dgit:3857
+#: ../dgit:3923
msgid "starting new git history"
msgstr ""
-#: ../dgit:3883
+#: ../dgit:3948
#, perl-format
msgid ""
"FYI: Vcs-Git in %s has different url to your vcs-git remote.\n"
" Your vcs-git remote url may be out of date. Use dgit update-vcs-git ?\n"
msgstr ""
-#: ../dgit:3888
+#: ../dgit:3953
#, perl-format
msgid "fetched into %s"
msgstr ""
-#: ../dgit:3900
+#: ../dgit:3965
#, perl-format
msgid "Merge from %s [dgit]"
msgstr ""
-#: ../dgit:3902
+#: ../dgit:3967
#, perl-format
msgid "fetched to %s and merged into HEAD"
msgstr ""
-#: ../dgit:3910
+#: ../dgit:3975
#, perl-format
msgid "git tree contains %s"
msgstr ""
-#: ../dgit:3921
+#: ../dgit:3986
msgid "you have uncommitted changes to critical files, cannot continue:\n"
msgstr ""
-#: ../dgit:3940
+#: ../dgit:4005
#, perl-format
msgid ""
"quilt fixup required but quilt mode is `nofix'\n"
"HEAD commit%s differs from tree implied by debian/patches%s"
msgstr ""
-#: ../dgit:3957
+#: ../dgit:4022
msgid "nothing quilty to commit, ok."
msgstr ""
-#: ../dgit:3960
+#: ../dgit:4025
msgid " (wanted to commit patch update)"
msgstr ""
-#: ../dgit:3964
+#: ../dgit:4029
msgid ""
"Commit Debian 3.0 (quilt) metadata\n"
"\n"
msgstr ""
-#: ../dgit:4007
+#: ../dgit:4073
#, perl-format
msgid ""
"Not doing any fixup of `%s' due to ----no-quilt-fixup or --quilt=nocheck"
msgstr ""
-#: ../dgit:4012
+#: ../dgit:4078
#, perl-format
msgid "Format `%s', need to check/update patch stack"
msgstr ""
-#: ../dgit:4022
+#: ../dgit:4088
#, perl-format
msgid "commit id %s"
msgstr ""
-#: ../dgit:4028
+#: ../dgit:4094
#, perl-format
msgid "and left in %s"
msgstr ""
-#: ../dgit:4054
+#: ../dgit:4120
#, perl-format
msgid "Wanted tag %s (%s) on dgit server, but not found\n"
msgstr ""
-#: ../dgit:4057
+#: ../dgit:4123
#, perl-format
msgid "Wanted tag %s (one of: %s) on dgit server, but not found\n"
msgstr ""
-#: ../dgit:4065
+#: ../dgit:4131
#, perl-format
msgid "%s (%s) .. %s (%s) is not fast forward\n"
msgstr ""
-#: ../dgit:4074
+#: ../dgit:4140
msgid "version currently in archive"
msgstr ""
-#: ../dgit:4083
+#: ../dgit:4149
#, perl-format
msgid "Checking package changelog for archive version %s ..."
msgstr ""
-#: ../dgit:4091
+#: ../dgit:4157
#, perl-format
msgid "%s field from dpkg-parsechangelog %s"
msgstr ""
-#: ../dgit:4101
+#: ../dgit:4168
#, perl-format
msgid "Perhaps debian/changelog does not mention %s ?"
msgstr ""
-#: ../dgit:4104
+#: ../dgit:4171
#, perl-format
msgid ""
"%s is %s\n"
"Your tree seems to based on earlier (not uploaded) %s.\n"
msgstr ""
-#: ../dgit:4118
+#: ../dgit:4185
#, perl-format
msgid "Declaring that HEAD includes all changes in %s..."
msgstr ""
-#: ../dgit:4174
+#: ../dgit:4241
msgid "Checking that HEAD includes all changes in archive..."
msgstr ""
-#: ../dgit:4183
+#: ../dgit:4250
msgid "maintainer view tag"
msgstr ""
-#: ../dgit:4185
+#: ../dgit:4252
msgid "dgit view tag"
msgstr ""
-#: ../dgit:4186
+#: ../dgit:4253
msgid "current archive contents"
msgstr ""
-#: ../dgit:4199
+#: ../dgit:4266
msgid ""
"| Not fast forward; maybe --overwrite is needed ? Please see dgit(1).\n"
msgstr ""
-#: ../dgit:4209
+#: ../dgit:4276
#, perl-format
msgid "Declare fast forward from %s\n"
msgstr ""
-#: ../dgit:4210
+#: ../dgit:4277
#, perl-format
msgid "Make fast forward from %s\n"
msgstr ""
-#: ../dgit:4214
+#: ../dgit:4281
#, perl-format
msgid "Made pseudo-merge of %s into dgit view."
msgstr ""
-#: ../dgit:4227
+#: ../dgit:4294
#, perl-format
msgid "Declare fast forward from %s"
msgstr ""
-#: ../dgit:4235
+#: ../dgit:4302
#, perl-format
msgid "Make pseudo-merge of %s into your HEAD."
msgstr ""
-#: ../dgit:4247
+#: ../dgit:4314
#, perl-format
msgid "-p specified %s but changelog specified %s"
msgstr ""
-#: ../dgit:4269
+#: ../dgit:4336
#, perl-format
msgid "%s is for %s %s but debian/changelog is for %s %s"
msgstr ""
-#: ../dgit:4330
+#: ../dgit:4390
#, perl-format
msgid "changes field %s `%s' does not match changelog `%s'"
msgstr ""
-#: ../dgit:4358
-#, perl-format
-msgid "%s release %s for %s (%s) [dgit]\n"
-msgstr ""
-
-#: ../dgit:4371
-#, perl-format
-msgid ""
-"%s release %s for %s (%s)\n"
-"(maintainer view tag generated by dgit --quilt=%s)\n"
-msgstr ""
-
-#: ../dgit:4423
-msgid ""
-"Push failed, while checking state of the archive.\n"
-"You can retry the push, after fixing the problem, if you like.\n"
-msgstr ""
-
-#: ../dgit:4432
-msgid ""
-"package appears to be new in this suite; if this is intentional, use --new"
-msgstr ""
-
-#: ../dgit:4437
-msgid ""
-"Push failed, while preparing your push.\n"
-"You can retry the push, after fixing the problem, if you like.\n"
-msgstr ""
-
-#: ../dgit:4460
-#, perl-format
-msgid "looked for .dsc %s, but %s; maybe you forgot to build"
-msgstr ""
-
-#: ../dgit:4477
-#, perl-format
-msgid ""
-"Branch is managed by git-debrebase (%s\n"
-"exists), but quilt mode (%s) implies a split view.\n"
-"Pass the right --quilt option or adjust your git config.\n"
-"Or, maybe, run git-debrebase forget-was-ever-debrebase.\n"
-msgstr ""
-
-#: ../dgit:4501
-#, perl-format
-msgid ""
-"--quilt=%s but no cached dgit view:\n"
-" perhaps HEAD changed since dgit build[-source] ?"
-msgstr ""
-
-#: ../dgit:4532
-msgid ""
-"dgit push: HEAD is not a descendant of the archive's version.\n"
-"To overwrite the archive's contents, pass --overwrite[=VERSION].\n"
-"To rewind history, if permitted by the archive, use --deliberately-not-fast-"
-"forward."
-msgstr ""
-
-#: ../dgit:4542
-#, perl-format
-msgid "checking that %s corresponds to HEAD"
-msgstr ""
-
-#: ../dgit:4576 ../dgit:4588
-#, perl-format
-msgid "HEAD specifies a different tree to %s:\n"
-msgstr ""
-
-#: ../dgit:4582
-#, perl-format
-msgid ""
-"There is a problem with your source tree (see dgit(7) for some hints).\n"
-"To see a full diff, run git diff %s %s\n"
-msgstr ""
-
-#: ../dgit:4592
-#, perl-format
-msgid ""
-"Perhaps you forgot to build. Or perhaps there is a problem with your\n"
-" source tree (see dgit(7) for some hints). To see a full diff, run\n"
-" git diff %s %s\n"
-msgstr ""
-
-#: ../dgit:4603
-#, perl-format
-msgid ""
-"failed to find unique changes file (looked for %s in %s); perhaps you need "
-"to use dgit -C"
-msgstr ""
-
-#: ../dgit:4625
-msgid "uploading binaries, although distro policy is source only"
-msgstr ""
-
-#: ../dgit:4629
-msgid "source-only upload, although distro policy requires .debs"
-msgstr ""
-
-#: ../dgit:4633
-#, perl-format
-msgid ""
-"source-only upload, even though package is entirely NEW\n"
-"(this is contrary to policy in %s)"
-msgstr ""
-
-#: ../dgit:4640
-#, perl-format
-msgid "unknown source-only-uploads policy `%s'"
-msgstr ""
-
-#: ../dgit:4684
-msgid ""
-"Push failed, while signing the tag.\n"
-"You can retry the push, after fixing the problem, if you like.\n"
-msgstr ""
-
-#: ../dgit:4697
-msgid ""
-"Push failed, *after* signing the tag.\n"
-"If you want to try again, you should use a new version number.\n"
-msgstr ""
-
-#: ../dgit:4714
-msgid ""
-"Push failed, while updating the remote git repository - see messages above.\n"
-"If you want to try again, you should use a new version number.\n"
-msgstr ""
-
-#: ../dgit:4731
-msgid ""
-"Push failed, while obtaining signatures on the .changes and .dsc.\n"
-"If it was just that the signature failed, you may try again by using\n"
-"debsign by hand to sign the changes file (see the command dgit tried,\n"
-"above), and then dput that changes file to complete the upload.\n"
-"If you need to change the package, you must use a new version number.\n"
-msgstr ""
-
-#: ../dgit:4762
-#, perl-format
-msgid "pushed and uploaded %s"
-msgstr ""
-
-#: ../dgit:4774
-msgid "-p is not allowed with clone; specify as argument instead"
-msgstr ""
-
-#: ../dgit:4785
-msgid "incorrect arguments to dgit clone"
-msgstr ""
-
-#: ../dgit:4791 ../git-debrebase:1839
-#, perl-format
-msgid "%s already exists"
-msgstr ""
-
-#: ../dgit:4805
-#, perl-format
-msgid "remove %s: %s\n"
-msgstr ""
-
-#: ../dgit:4809
-#, perl-format
-msgid "check whether to remove %s: %s\n"
-msgstr ""
-
-#: ../dgit:4847
-msgid "incorrect arguments to dgit fetch or dgit pull"
-msgstr ""
-
-#: ../dgit:4864
-#, perl-format
-msgid "dgit pull not yet supported in split view mode (--quilt=%s)\n"
-msgstr ""
-
-#: ../dgit:4873
-msgid "dgit checkout needs a suite argument"
-msgstr ""
-
-#: ../dgit:4935
-#, perl-format
-msgid "setting up vcs-git: %s\n"
-msgstr ""
-
-#: ../dgit:4938
-#, perl-format
-msgid "vcs git already configured: %s\n"
-msgstr ""
-
-#: ../dgit:4940
-#, perl-format
-msgid "changing vcs-git url to: %s\n"
-msgstr ""
-
-#: ../dgit:4945
-#, perl-format
-msgid "fetching (%s)\n"
-msgstr ""
-
-#: ../dgit:4960
-#, perl-format
-msgid "incorrect arguments to dgit %s"
-msgstr ""
-
-#: ../dgit:4971
-#, perl-format
-msgid "dgit %s: changelog specifies %s (%s) but command line specifies %s"
-msgstr ""
-
-#: ../dgit:5009
-#, perl-format
-msgid ""
-"build host has dgit rpush protocol versions %s but invocation host has %s"
-msgstr ""
-
-#: ../dgit:5089
-#, perl-format
-msgid "create %s: %s"
-msgstr ""
-
-#: ../dgit:5126
-#, perl-format
-msgid "build host child failed: %s"
-msgstr ""
-
-#: ../dgit:5129
-msgid "all done\n"
-msgstr ""
-
-#: ../dgit:5138
-#, perl-format
-msgid "file %s (%s) twice"
-msgstr ""
-
-#: ../dgit:5146
-msgid "bad param spec"
-msgstr ""
-
-#: ../dgit:5152
-msgid "bad previously spec"
-msgstr ""
-
-#: ../dgit:5171
-#, perl-format
-msgid ""
-"rpush negotiated protocol version %s which does not support quilt mode %s"
-msgstr ""
-
-#: ../dgit:5216
-#, perl-format
-msgid "buildinfo mismatch in field %s"
-msgstr ""
-
-#: ../dgit:5219
-#, perl-format
-msgid "buildinfo contains forbidden field %s"
-msgstr ""
-
-#: ../dgit:5260
-msgid "remote changes file"
-msgstr ""
-
-#: ../dgit:5335
-msgid "not a plain file or symlink\n"
-msgstr ""
-
-#: ../dgit:5341
-msgid "mode or type changed\n"
-msgstr ""
-
-#: ../dgit:5342
-msgid "modified symlink\n"
-msgstr ""
-
-#: ../dgit:5345
-msgid "deletion of symlink\n"
-msgstr ""
-
-#: ../dgit:5349
-msgid "creation with non-default mode\n"
-msgstr ""
-
-#: ../dgit:5379
-msgid "dgit view: changes are required..."
-msgstr ""
-
-#: ../dgit:5408
-#, perl-format
-msgid ""
-"\n"
-"For full diff showing the problem(s), type:\n"
-" %s\n"
-msgstr ""
-
-#: ../dgit:5415
-#, perl-format
-msgid ""
-"--quilt=%s specified, implying patches-unapplied git tree\n"
-" but git tree differs from orig in upstream files."
-msgstr ""
-
-#: ../dgit:5421
-msgid ""
-"\n"
-" ... debian/patches is missing; perhaps this is a patch queue branch?"
-msgstr ""
-
-#: ../dgit:5428
-#, perl-format
-msgid ""
-"--quilt=%s specified, implying patches-applied git tree\n"
-" but git tree differs from result of applying debian/patches to upstream\n"
-msgstr ""
-
-#: ../dgit:5435
-msgid "dgit view: creating patches-applied version using gbp pq"
-msgstr ""
-
-#: ../dgit:5444
-#, perl-format
-msgid ""
-"--quilt=%s specified, implying that HEAD is for use with a\n"
-" tool which does not create patches for changes to upstream\n"
-" .gitignores: but, such patches exist in debian/patches.\n"
-msgstr ""
-
-#: ../dgit:5453
-msgid "dgit view: creating patch to represent .gitignore changes"
-msgstr ""
-
-#: ../dgit:5458
-#, perl-format
-msgid "%s already exists; but want to create it to record .gitignore changes"
-msgstr ""
-
-#: ../dgit:5463
-msgid ""
-"Subject: Update .gitignore from Debian packaging branch\n"
-"\n"
-"The Debian packaging git branch contains these updates to the upstream\n"
-".gitignore file(s). This patch is autogenerated, to provide these\n"
-"updates to users of the official Debian archive view of the package.\n"
-msgstr ""
-
-#: ../dgit:5485
-msgid "Commit patch to update .gitignore\n"
-msgstr ""
-
-#: ../dgit:5499
-msgid "converted"
-msgstr ""
-
-#: ../dgit:5500
-#, perl-format
-msgid "dgit view: created (%s)"
-msgstr ""
-
-#: ../dgit:5565
+#: ../dgit:5650
msgid "maximum search space exceeded"
msgstr ""
-#: ../dgit:5583
+#: ../dgit:5668
#, perl-format
msgid "has %s not %s"
msgstr ""
-#: ../dgit:5592
+#: ../dgit:5677
msgid "root commit"
msgstr ""
-#: ../dgit:5598
+#: ../dgit:5683
#, perl-format
msgid "merge (%s nontrivial parents)"
msgstr ""
-#: ../dgit:5610
+#: ../dgit:5695
#, perl-format
msgid "changed %s"
msgstr ""
-#: ../dgit:5629
+#: ../dgit:5714
#, perl-format
msgid ""
"\n"
"%s: error: quilt fixup cannot be linear. Stopped at:\n"
msgstr ""
-#: ../dgit:5636
+#: ../dgit:5721
#, perl-format
msgid "%s: %s: %s\n"
msgstr ""
-#: ../dgit:5648
+#: ../dgit:5733
msgid "quilt history linearisation failed. Search `quilt fixup' in dgit(7).\n"
msgstr ""
-#: ../dgit:5651
+#: ../dgit:5736
msgid "quilt fixup cannot be linear, smashing..."
msgstr ""
-#: ../dgit:5663
+#: ../dgit:5748
#, perl-format
msgid ""
"Automatically generated patch (%s)\n"
"\n"
msgstr ""
-#: ../dgit:5670
+#: ../dgit:5755
msgid "quiltify linearisation planning successful, executing..."
msgstr ""
-#: ../dgit:5704
+#: ../dgit:5789
msgid "contains unexpected slashes\n"
msgstr ""
-#: ../dgit:5705
+#: ../dgit:5790
msgid "contains leading punctuation\n"
msgstr ""
-#: ../dgit:5706
+#: ../dgit:5791
msgid "contains bad character(s)\n"
msgstr ""
-#: ../dgit:5707
+#: ../dgit:5792
msgid "is series file\n"
msgstr ""
-#: ../dgit:5708
+#: ../dgit:5793
msgid "too long\n"
msgstr ""
-#: ../dgit:5712
+#: ../dgit:5797
#, perl-format
msgid "quiltifying commit %s: ignoring/dropping Gbp-Pq %s: %s"
msgstr ""
-#: ../dgit:5741
+#: ../dgit:5826
#, perl-format
msgid "dgit: patch title transliteration error: %s"
msgstr ""
-#: ../dgit:5884
+#: ../dgit:5909
+#, perl-format
+msgid ""
+"quilt mode %s does not make sense (or is not supported) with single-debian-"
+"patch"
+msgstr ""
+
+#: ../dgit:5927
+msgid "converted"
+msgstr ""
+
+#: ../dgit:5928
+#, perl-format
+msgid "dgit view: created (%s)"
+msgstr ""
+
+#: ../dgit:5982
msgid "Commit removal of .pc (quilt series tracking data)\n"
msgstr ""
-#: ../dgit:5894
+#: ../dgit:5992
msgid "starting quiltify (single-debian-patch)"
msgstr ""
-#: ../dgit:5996
+#: ../dgit:6102
#, perl-format
msgid "dgit: split brain (separate dgit view) may be needed (--quilt=%s)."
msgstr ""
-#: ../dgit:6027
+#: ../dgit:6134
#, perl-format
msgid "dgit view: found cached (%s)"
msgstr ""
-#: ../dgit:6032
+#: ../dgit:6139
msgid "dgit view: found cached, no changes required"
msgstr ""
-#: ../dgit:6043
+#: ../dgit:6174
#, perl-format
msgid "examining quilt state (multiple patches, %s mode)"
msgstr ""
-#: ../dgit:6134
+#: ../dgit:6288
msgid ""
"failed to apply your git tree's patch stack (from debian/patches/) to\n"
" the corresponding upstream tarball(s). Your source tree and .orig\n"
" anomaly (depending on the quilt mode). Please see --quilt= in dgit(1).\n"
msgstr ""
-#: ../dgit:6148
+#: ../dgit:6302
msgid "Tree already contains .pc - will use it then delete it."
msgstr ""
-#: ../dgit:6185
+#: ../dgit:6336
+msgid "baredebian quilt fixup: could not find any origs"
+msgstr ""
+
+#: ../dgit:6349
+msgid "tarball"
+msgstr ""
+
+#: ../dgit:6367
+#, perl-format
+msgid "Combine orig tarballs for %s %s"
+msgstr ""
+
+#: ../dgit:6383
+msgid "tarballs"
+msgstr ""
+
+#: ../dgit:6397
+msgid "upstream"
+msgstr ""
+
+#: ../dgit:6421
#, perl-format
msgid "%s: base trees orig=%.20s o+d/p=%.20s"
msgstr ""
-#: ../dgit:6188
+#: ../dgit:6431
#, perl-format
msgid ""
"%s: quilt differences: src: %s orig %s gitignores: %s orig %s\n"
-"%s: quilt differences: HEAD %s o+d/p HEAD %s o+d/p"
+"%s: quilt differences: %9.00009s %s o+d/p %9.00009s %s o+d/p"
msgstr ""
-#: ../dgit:6194
+#: ../dgit:6440
#, perl-format
msgid "dgit: cannot represent change: %s: %s\n"
msgstr ""
-#: ../dgit:6198
+#: ../dgit:6444
msgid ""
"HEAD has changes to .orig[s] which are not representable by `3.0 (quilt)'\n"
msgstr ""
-#: ../dgit:6205
+#: ../dgit:6451
+msgid ""
+"This has only a debian/ directory; you probably want --quilt=bare debian."
+msgstr ""
+
+#: ../dgit:6455
msgid "This might be a patches-unapplied branch."
msgstr ""
-#: ../dgit:6208
+#: ../dgit:6458
msgid "This might be a patches-applied branch."
msgstr ""
-#: ../dgit:6211
+#: ../dgit:6461
msgid "Maybe you need one of --[quilt=]gbp --[quilt=]dpm --quilt=unapplied ?"
msgstr ""
-#: ../dgit:6214
+#: ../dgit:6464
msgid "Warning: Tree has .gitattributes. See GITATTRIBUTES in dgit(7)."
msgstr ""
-#: ../dgit:6218
+#: ../dgit:6468
msgid "Maybe orig tarball(s) are not identical to git representation?"
msgstr ""
-#: ../dgit:6227
+#: ../dgit:6479
#, perl-format
msgid "starting quiltify (multiple patches, %s mode)"
msgstr ""
-#: ../dgit:6265
+#: ../dgit:6518
msgid ""
"\n"
"dgit: Building, or cleaning with rules target, in patches-unapplied tree.\n"
"\n"
msgstr ""
-#: ../dgit:6277
+#: ../dgit:6530
msgid "dgit: Unapplying patches again to tidy up the tree."
msgstr ""
-#: ../dgit:6306
+#: ../dgit:6559
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"
"or --clean=git (-wg/-wgf) to use `git clean' instead.\n"
msgstr ""
-#: ../dgit:6318
+#: ../dgit:6571
msgid "tree contains uncommitted files and --clean=check specified"
msgstr ""
-#: ../dgit:6321
+#: ../dgit:6574
msgid "tree contains uncommitted files (NB dgit didn't run rules clean)"
msgstr ""
-#: ../dgit:6324
+#: ../dgit:6577
msgid ""
"tree contains uncommited, untracked, unignored files\n"
"You can use --clean=git[-ff],always (-wga/-wgfa) to delete them."
msgstr ""
-#: ../dgit:6342
+#: ../dgit:6590
+#, perl-format
+msgid ""
+"quilt mode %s (generally needs untracked upstream files)\n"
+"contradicts clean mode %s (which would delete them)\n"
+msgstr ""
+
+#: ../dgit:6607
msgid "tree contains uncommitted files (after running rules clean)"
msgstr ""
-#: ../dgit:6356
+#: ../dgit:6621
msgid "clean takes no additional arguments"
msgstr ""
-#: ../dgit:6369
+#: ../dgit:6640
+#, perl-format
+msgid "-p specified package %s, but changelog says %s"
+msgstr ""
+
+#: ../dgit:6650
+msgid ""
+"dgit: --include-dirty is not supported with split view (including with view-"
+"splitting quilt modes)"
+msgstr ""
+
+#: ../dgit:6659
#, perl-format
-msgid "-p is not allowed with dgit %s"
+msgid "dgit: --quilt=%s, %s"
msgstr ""
-#: ../dgit:6408
+#: ../dgit:6663
+msgid "dgit: --upstream-commitish only makes sense with --quilt=baredebian"
+msgstr ""
+
+#: ../dgit:6698
#, perl-format
msgid "remove old changes file %s: %s"
msgstr ""
-#: ../dgit:6410
+#: ../dgit:6700
#, perl-format
msgid "would remove %s"
msgstr ""
-#: ../dgit:6436
+#: ../dgit:6718
+#, perl-format
+msgid "warning: dgit option %s must be passed before %s on dgit command line\n"
+msgstr ""
+
+#: ../dgit:6725
+#, perl-format
+msgid ""
+"warning: option %s should probably be passed to dgit before %s sub-command "
+"on the dgit command line, so that it is seen by dgit and not simply passed "
+"to %s\n"
+msgstr ""
+
+#: ../dgit:6751
msgid "archive query failed (queried because --since-version not specified)"
msgstr ""
-#: ../dgit:6442
+#: ../dgit:6757
#, perl-format
msgid "changelog will contain changes since %s"
msgstr ""
-#: ../dgit:6445
+#: ../dgit:6760
msgid "package seems new, not specifying -v<version>"
msgstr ""
-#: ../dgit:6488
+#: ../dgit:6803
msgid "Wanted to build nothing!"
msgstr ""
-#: ../dgit:6526
+#: ../dgit:6841
#, perl-format
msgid "only one changes file from build (%s)\n"
msgstr ""
-#: ../dgit:6533
+#: ../dgit:6848
#, perl-format
msgid "%s found in binaries changes file %s"
msgstr ""
-#: ../dgit:6540
+#: ../dgit:6855
#, perl-format
msgid "%s unexpectedly not created by build"
msgstr ""
-#: ../dgit:6544
+#: ../dgit:6859
#, perl-format
msgid "install new changes %s{,.inmulti}: %s"
msgstr ""
-#: ../dgit:6549
+#: ../dgit:6864
#, perl-format
msgid "wrong number of different changes files (%s)"
msgstr ""
-#: ../dgit:6552
+#: ../dgit:6867
#, perl-format
msgid "build successful, results in %s\n"
msgstr ""
-#: ../dgit:6565
+#: ../dgit:6880
#, perl-format
msgid ""
"changes files other than source matching %s already present; building would "
"Suggest you delete %s.\n"
msgstr ""
-#: ../dgit:6583
+#: ../dgit:6898
msgid "build successful\n"
msgstr ""
-#: ../dgit:6590
+#: ../dgit:6906
#, perl-format
msgid ""
"%s: warning: build-products-dir set, but not supported by dpkg-buildpackage\n"
"%s: warning: build-products-dir will be ignored; files will go to ..\n"
msgstr ""
-#: ../dgit:6700
+#: ../dgit:7017
#, perl-format
msgid "remove %s: %s"
msgstr ""
-#: ../dgit:6735
+#: ../dgit:7054
msgid "--include-dirty not supported with --build-products-dir, sorry"
msgstr ""
-#: ../dgit:6755
+#: ../dgit:7074
#, perl-format
msgid "put in place new built file (%s): %s"
msgstr ""
-#: ../dgit:6768
+#: ../dgit:7087
msgid "build-source takes no additional arguments"
msgstr ""
-#: ../dgit:6772
+#: ../dgit:7091
#, perl-format
msgid "source built, results in %s and %s"
msgstr ""
-#: ../dgit:6779
+#: ../dgit:7098
msgid ""
"dgit push-source: --include-dirty/--ignore-dirty does not makesense with "
"push-source!"
msgstr ""
-#: ../dgit:6785
+#: ../dgit:7104
msgid "source changes file"
msgstr ""
-#: ../dgit:6787
+#: ../dgit:7106
msgid "user-specified changes file is not source-only"
msgstr ""
-#: ../dgit:6807 ../dgit:6809
+#: ../dgit:7126 ../dgit:7128
#, perl-format
msgid "%s (in build products dir): %s"
msgstr ""
-#: ../dgit:6822
+#: ../dgit:7142
msgid ""
"perhaps you need to pass -A ? (sbuild's default is to build only\n"
"arch-specific binaries; dgit 1.4 used to override that.)\n"
msgstr ""
-#: ../dgit:6834
+#: ../dgit:7155
msgid ""
"you asked for a builder but your debbuildopts didn't ask for any binaries -- "
"is this really what you meant?"
msgstr ""
-#: ../dgit:6838
+#: ../dgit:7159
msgid ""
"we must build a .dsc to pass to the builder but your debbuiltopts forbids "
"the building of a source package; cannot continue"
msgstr ""
-#: ../dgit:6868
+#: ../dgit:7189
msgid "incorrect arguments to dgit print-unapplied-treeish"
msgstr ""
-#: ../dgit:6890
+#: ../dgit:7210
msgid "source tree"
msgstr ""
-#: ../dgit:6892
+#: ../dgit:7212
#, perl-format
msgid "dgit: import-dsc: %s"
msgstr ""
-#: ../dgit:6905
+#: ../dgit:7225
#, perl-format
msgid "unknown dgit import-dsc sub-option `%s'"
msgstr ""
-#: ../dgit:6909
+#: ../dgit:7229
msgid "usage: dgit import-dsc .../PATH/TO/.DSC BRANCH"
msgstr ""
-#: ../dgit:6913
+#: ../dgit:7233
msgid "dry run makes no sense with import-dsc"
msgstr ""
-#: ../dgit:6930
+#: ../dgit:7250
#, perl-format
msgid "%s is checked out - will not update it"
msgstr ""
-#: ../dgit:6935
+#: ../dgit:7255
#, perl-format
msgid "open import .dsc (%s): %s"
msgstr ""
-#: ../dgit:6937
+#: ../dgit:7257
#, perl-format
msgid "read %s: %s"
msgstr ""
-#: ../dgit:6948
+#: ../dgit:7268
msgid "import-dsc signature check failed"
msgstr ""
-#: ../dgit:6951
+#: ../dgit:7271
#, perl-format
msgid "%s: warning: importing unsigned .dsc\n"
msgstr ""
-#: ../dgit:6962
+#: ../dgit:7282
msgid "Dgit metadata in .dsc"
msgstr ""
-#: ../dgit:6973
+#: ../dgit:7293
msgid "dgit: import-dsc of .dsc with Dgit field, using git hash"
msgstr ""
-#: ../dgit:6982
+#: ../dgit:7302
#, perl-format
msgid ""
".dsc contains Dgit field referring to object %s\n"
"plausible server (browse.dgit.d.o? salsa?), and try the import-dsc again.\n"
msgstr ""
-#: ../dgit:6989
+#: ../dgit:7309
msgid "Not fast forward, forced update."
msgstr ""
-#: ../dgit:6991
+#: ../dgit:7311
#, perl-format
msgid "Not fast forward to %s"
msgstr ""
-#: ../dgit:6996
+#: ../dgit:7316
#, perl-format
msgid "updated git ref %s"
msgstr ""
-#: ../dgit:7001
+#: ../dgit:7321
#, perl-format
msgid ""
"Branch %s already exists\n"
"Specify +%s to overwrite, discarding existing history\n"
msgstr ""
-#: ../dgit:7021
+#: ../dgit:7341
#, perl-format
msgid "lstat %s works but stat gives %s !"
msgstr ""
-#: ../dgit:7023
+#: ../dgit:7343
#, perl-format
msgid "stat %s: %s"
msgstr ""
-#: ../dgit:7031
+#: ../dgit:7351
#, perl-format
msgid "import %s requires %s, but: %s"
msgstr ""
-#: ../dgit:7050
+#: ../dgit:7370
#, perl-format
msgid "cannot import %s which seems to be inside working tree!"
msgstr ""
-#: ../dgit:7054
+#: ../dgit:7374
#, perl-format
msgid "symlink %s to %s: %s"
msgstr ""
-#: ../dgit:7055
+#: ../dgit:7375
#, perl-format
msgid "made symlink %s -> %s"
msgstr ""
-#: ../dgit:7066
+#: ../dgit:7386
msgid "Import, forced update - synthetic orphan git history."
msgstr ""
-#: ../dgit:7068
+#: ../dgit:7388
msgid "Import, merging."
msgstr ""
-#: ../dgit:7082
+#: ../dgit:7402
#, perl-format
msgid "Merge %s (%s) import into %s\n"
msgstr ""
-#: ../dgit:7091
+#: ../dgit:7411
#, perl-format
msgid "results are in git ref %s"
msgstr ""
-#: ../dgit:7098
+#: ../dgit:7418
msgid "need only 1 subpath argument"
msgstr ""
-#: ../dgit:7104
-#, perl-format
-msgid "exec curl: %s\n"
-msgstr ""
-
-#: ../dgit:7118
+#: ../dgit:7436
msgid "need destination argument"
msgstr ""
-#: ../dgit:7123
+#: ../dgit:7441
#, perl-format
msgid "exec git clone: %s\n"
msgstr ""
-#: ../dgit:7131
+#: ../dgit:7449
msgid "no arguments allowed to dgit print-dgit-repos-server-source-url"
msgstr ""
-#: ../dgit:7142
+#: ../dgit:7460
msgid "no arguments allowed to dgit print-dpkg-source-ignores"
msgstr ""
-#: ../dgit:7148
+#: ../dgit:7466
msgid "no arguments allowed to dgit setup-mergechangelogs"
msgstr ""
-#: ../dgit:7155 ../dgit:7161
+#: ../dgit:7473 ../dgit:7479
msgid "no arguments allowed to dgit setup-useremail"
msgstr ""
-#: ../dgit:7167
+#: ../dgit:7485
msgid "no arguments allowed to dgit setup-tree"
msgstr ""
-#: ../dgit:7214
+#: ../dgit:7532
msgid ""
"--initiator-tempdir must be used specify an absolute, not relative, "
"directory."
msgstr ""
-#: ../dgit:7253
+#: ../dgit:7571
#, perl-format
msgid "%s needs a value"
msgstr ""
-#: ../dgit:7257
+#: ../dgit:7575
#, perl-format
msgid "bad value `%s' for %s"
msgstr ""
-#: ../dgit:7348
+#: ../dgit:7675
#, perl-format
msgid "%s: warning: ignoring unknown force option %s\n"
msgstr ""
-#: ../dgit:7368
+#: ../dgit:7693
#, perl-format
msgid "unknown long option `%s'"
msgstr ""
-#: ../dgit:7423
+#: ../dgit:7748
#, perl-format
msgid "unknown short option `%s'"
msgstr ""
-#: ../dgit:7438
+#: ../dgit:7763
#, perl-format
msgid "%s is set to something other than SIG_DFL\n"
msgstr ""
-#: ../dgit:7442
+#: ../dgit:7767
#, perl-format
msgid "%s is blocked\n"
msgstr ""
-#: ../dgit:7448
+#: ../dgit:7773
#, perl-format
msgid ""
"On entry to dgit, %s\n"
"Giving up.\n"
msgstr ""
-#: ../dgit:7465
+#: ../dgit:7790
#, perl-format
msgid "cannot set command for %s"
msgstr ""
-#: ../dgit:7478
+#: ../dgit:7803
#, perl-format
msgid "cannot configure options for %s"
msgstr ""
-#: ../dgit:7498
+#: ../dgit:7823
#, perl-format
msgid "unknown quilt-mode `%s'"
msgstr ""
-#: ../dgit:7508
+#: ../dgit:7834
#, perl-format
msgid "unknown %s setting `%s'"
msgstr ""
-#: ../dgit:7513
-msgid "dgit: --include-dirty is not supported in split view quilt mode"
-msgstr ""
-
-#: ../dgit:7524
-#, perl-format
-msgid "unknown clean-mode `%s'"
-msgstr ""
-
-#: ../dgit:7545
+#: ../dgit:7862
msgid "DRY RUN ONLY\n"
msgstr ""
-#: ../dgit:7546
+#: ../dgit:7863
msgid "DAMP RUN - WILL MAKE LOCAL (UNSIGNED) CHANGES\n"
msgstr ""
-#: ../dgit:7565
+#: ../dgit:7882
#, perl-format
msgid "unknown operation %s"
msgstr ""
-#: ../git-debrebase:44
+#: ../git-debrebase:45
msgid ""
"usages:\n"
" git-debrebase [<options>] [--|-i <git rebase options...>]\n"
"See git-debrebase(1), git-debrebase(5), dgit-maint-debrebase(7) (in dgit).\n"
msgstr ""
-#: ../git-debrebase:67
+#: ../git-debrebase:68
#, perl-format
msgid "%s: bad usage: %s\n"
msgstr ""
-#: ../git-debrebase:78
+#: ../git-debrebase:79
#, perl-format
msgid "bad options follow `git-debrebase %s'"
msgstr ""
-#: ../git-debrebase:89
+#: ../git-debrebase:90
#, perl-format
msgid "missing required git config %s"
msgstr ""
-#: ../git-debrebase:401
+#: ../git-debrebase:363
#, perl-format
msgid "%s: snag ignored (-f%s): %s\n"
msgstr ""
-#: ../git-debrebase:404
+#: ../git-debrebase:366
#, perl-format
msgid "%s: snag detected (-f%s): %s\n"
msgstr ""
-#: ../git-debrebase:417
+#: ../git-debrebase:379
#, perl-format
msgid "%s: snags: %d overriden by individual -f options\n"
msgstr ""
-#: ../git-debrebase:423
+#: ../git-debrebase:385
#, perl-format
msgid "%s: snags: %d overriden by global --force\n"
msgstr ""
-#: ../git-debrebase:427
+#: ../git-debrebase:389
#, perl-format
msgid "%s: snags: %d blocker(s) (you could -f<tag>, or --force)"
msgstr ""
-#: ../git-debrebase:459
+#: ../git-debrebase:421
msgid ""
"Branch/history seems mangled - no longer in gdr format.\n"
"See ILLEGAL OPERATIONS in git-debrebase(5).\n"
msgstr ""
-#: ../git-debrebase:466
+#: ../git-debrebase:428
#, perl-format
msgid ""
"%s\n"
"Is this meant to be a gdr branch? %s\n"
msgstr ""
-#: ../git-debrebase:471
+#: ../git-debrebase:433
#, perl-format
msgid ""
"%s\n"
"Consider git-debrebase scrap, to throw away your recent work.\n"
msgstr ""
-#: ../git-debrebase:477
+#: ../git-debrebase:439
#, perl-format
msgid ""
"%s\n"
"Wrong branch, or maybe you needed git-debrebase convert-from-*.\n"
msgstr ""
-#: ../git-debrebase:488
+#: ../git-debrebase:450
#, perl-format
msgid ""
"%s\n"
"Maybe you reset to, or rebased from, somewhere inappropriate.\n"
msgstr ""
-#: ../git-debrebase:935
+#: ../git-debrebase:897
#, perl-format
msgid "git-debrebase `anchor' but %s"
msgstr ""
-#: ../git-debrebase:937
+#: ../git-debrebase:899
msgid "has other than two parents"
msgstr ""
-#: ../git-debrebase:938
+#: ../git-debrebase:900
msgid "contains debian/patches"
msgstr ""
-#: ../git-debrebase:964
+#: ../git-debrebase:926
msgid "is an origin commit"
msgstr ""
-#: ../git-debrebase:966
+#: ../git-debrebase:928
msgid "upstream files differ from left parent"
msgstr ""
-#: ../git-debrebase:968
+#: ../git-debrebase:930
msgid "debian/ differs from right parent"
msgstr ""
-#: ../git-debrebase:979
+#: ../git-debrebase:941
msgid "edits debian/patches"
msgstr ""
-#: ../git-debrebase:991
+#: ../git-debrebase:953
msgid "parent's debian is not a directory"
msgstr ""
-#: ../git-debrebase:998
+#: ../git-debrebase:960
msgid "no changes"
msgstr ""
-#: ../git-debrebase:1004
+#: ../git-debrebase:966
msgid "origin commit"
msgstr ""
-#: ../git-debrebase:1055
+#: ../git-debrebase:1017
#, perl-format
msgid "unknown kind of merge from %s"
msgstr ""
-#: ../git-debrebase:1058
+#: ../git-debrebase:1020
msgid "octopus merge"
msgstr ""
-#: ../git-debrebase:1062
+#: ../git-debrebase:1024
msgid "general two-parent merge"
msgstr ""
-#: ../git-debrebase:1079
+#: ../git-debrebase:1041
#, perl-format
msgid "inconsistent anchors in merged-breakwaters %s"
msgstr ""
-#: ../git-debrebase:1119
+#: ../git-debrebase:1081
#, perl-format
msgid "branch needs laundering (run git-debrebase): %s"
msgstr ""
-#: ../git-debrebase:1147
+#: ../git-debrebase:1109
#, perl-format
msgid "packaging change (%s) follows upstream change"
msgstr ""
-#: ../git-debrebase:1148
+#: ../git-debrebase:1110
#, perl-format
msgid " (eg %s)"
msgstr ""
-#: ../git-debrebase:1154
+#: ../git-debrebase:1116
msgid "found mixed upstream/packaging commit"
msgstr ""
-#: ../git-debrebase:1155 ../git-debrebase:1163 ../git-debrebase:1168
-#: ../git-debrebase:1173 ../git-debrebase:1179 ../git-debrebase:1187
+#: ../git-debrebase:1117 ../git-debrebase:1125 ../git-debrebase:1130
+#: ../git-debrebase:1135 ../git-debrebase:1141 ../git-debrebase:1149
#, perl-format
msgid " (%s)"
msgstr ""
-#: ../git-debrebase:1162
+#: ../git-debrebase:1124
#, perl-format
msgid "found interchange bureaucracy commit (%s)"
msgstr ""
-#: ../git-debrebase:1167
+#: ../git-debrebase:1129
msgid "found dgit dsc import"
msgstr ""
-#: ../git-debrebase:1172
+#: ../git-debrebase:1134
msgid "found bare dgit dsc import with no prior history"
msgstr ""
-#: ../git-debrebase:1178
+#: ../git-debrebase:1140
msgid "found vanilla merge"
msgstr ""
-#: ../git-debrebase:1185
+#: ../git-debrebase:1147
#, perl-format
msgid "found unprocessable commit, cannot cope: %s"
msgstr ""
-#: ../git-debrebase:1253
+#: ../git-debrebase:1215
#, perl-format
msgid "found unprocessable commit, cannot cope; %3$s: (commit %1$s) (d.%2$s)"
msgstr ""
-#: ../git-debrebase:1254
+#: ../git-debrebase:1216
#, perl-format
msgid "found unprocessable commit, cannot cope: (commit %1$s) (d.%2$s)"
msgstr ""
-#: ../git-debrebase:1375
+#: ../git-debrebase:1337
msgid "bare dgit dsc import"
msgstr ""
-#: ../git-debrebase:1715 ../git-debrebase:1718
+#: ../git-debrebase:1677 ../git-debrebase:1680
#, perl-format
msgid "mismatch %s ?"
msgstr ""
-#: ../git-debrebase:1721
+#: ../git-debrebase:1683
#, perl-format
msgid "mismatch %s != %s ?"
msgstr ""
-#: ../git-debrebase:1731
+#: ../git-debrebase:1693
#, perl-format
msgid "internal error %#x %s %s"
msgstr ""
-#: ../git-debrebase:1759
+#: ../git-debrebase:1721
#, perl-format
msgid "%s: laundered (head was %s)\n"
msgstr ""
-#: ../git-debrebase:1773
+#: ../git-debrebase:1735
msgid "you are in the middle of a git-rebase already"
msgstr ""
-#: ../git-debrebase:1799
+#: ../git-debrebase:1761
msgid "launder for rebase"
msgstr ""
-#: ../git-debrebase:1804
+#: ../git-debrebase:1766
msgid "analyse does not support any options"
msgstr ""
-#: ../git-debrebase:1806
+#: ../git-debrebase:1768
msgid "too many arguments to analyse"
msgstr ""
-#: ../git-debrebase:1841
+#: ../git-debrebase:1801
+#, perl-format
+msgid "%s already exists"
+msgstr ""
+
+#: ../git-debrebase:1803
msgid "HEAD symref is not to refs/heads/"
msgstr ""
-#: ../git-debrebase:1864
+#: ../git-debrebase:1826
#, perl-format
msgid "OK, you are ahead of %s\n"
msgstr ""
-#: ../git-debrebase:1868
+#: ../git-debrebase:1830
#, perl-format
msgid "you are behind %s, divergence risk"
msgstr ""
-#: ../git-debrebase:1872
+#: ../git-debrebase:1834
#, perl-format
msgid "you have diverged from %s"
msgstr ""
-#: ../git-debrebase:1894
+#: ../git-debrebase:1856
msgid "remote dgit branch"
msgstr ""
-#: ../git-debrebase:1897
+#: ../git-debrebase:1859
msgid "remote dgit branch for sid"
msgstr ""
-#: ../git-debrebase:1925
+#: ../git-debrebase:1887
msgid "Recorded previous head for preservation"
msgstr ""
-#: ../git-debrebase:1933
+#: ../git-debrebase:1895
#, perl-format
msgid "could not record ffq-prev: %s"
msgstr ""
-#: ../git-debrebase:1944
+#: ../git-debrebase:1906
#, perl-format
msgid "could not check ffq-prev: %s"
msgstr ""
-#: ../git-debrebase:1964
+#: ../git-debrebase:1926
msgid "fast forward"
msgstr ""
-#: ../git-debrebase:1974
+#: ../git-debrebase:1936
msgid "Declare fast forward / record previous work"
msgstr ""
-#: ../git-debrebase:1986
+#: ../git-debrebase:1948
msgid "No ffq-prev to stitch."
msgstr ""
-#: ../git-debrebase:2017
-#, perl-format
-msgid ""
-"Could not determine appropriate upstream commitish.\n"
-" (Tried these tags: %s)\n"
-" Check version, and specify upstream commitish explicitly."
-msgstr ""
-
-#: ../git-debrebase:2036
+#: ../git-debrebase:1965
msgid "need NEW-VERSION [UPS-COMMITTISH]"
msgstr ""
-#: ../git-debrebase:2041
+#: ../git-debrebase:1970
#, perl-format
msgid "bad version number `%s'"
msgstr ""
-#: ../git-debrebase:2059
+#: ../git-debrebase:1988
#, perl-format
msgid "upstream piece `%s'"
msgstr ""
-#: ../git-debrebase:2060
+#: ../git-debrebase:1989
msgid "upstream (main piece"
msgstr ""
-#: ../git-debrebase:2080
+#: ../git-debrebase:2009
msgid "for each EXTRA-UPS-NAME need EXTRA-UPS-COMMITISH"
msgstr ""
-#: ../git-debrebase:2098
+#: ../git-debrebase:2027
msgid "old anchor is recognised due to --anchor, cannot check upstream"
msgstr "old anchor is recognized due to --anchor, cannot check upstream"
-#: ../git-debrebase:2114
+#: ../git-debrebase:2043
#, perl-format
msgid ""
"previous upstream combine %s mentions %d pieces (each implying one parent) "
"but has %d parents (one per piece plus maybe a previous combine)"
msgstr ""
-#: ../git-debrebase:2123
+#: ../git-debrebase:2052
#, perl-format
msgid "previous upstream combine %s first piece is not `.'"
msgstr ""
-#: ../git-debrebase:2136
+#: ../git-debrebase:2065
#, perl-format
msgid ""
"previous upstream %s is from git-debrebase but not an `upstream-combine' "
"commit"
msgstr ""
-#: ../git-debrebase:2147
+#: ../git-debrebase:2076
#, perl-format
msgid "introducing upstream piece `%s'"
msgstr ""
-#: ../git-debrebase:2150
+#: ../git-debrebase:2079
#, perl-format
msgid "dropping upstream piece `%s'"
msgstr ""
-#: ../git-debrebase:2153
+#: ../git-debrebase:2082
#, perl-format
msgid "not fast forward: %s %s"
msgstr ""
-#: ../git-debrebase:2264
+#: ../git-debrebase:2193
msgid "Previous head already recorded\n"
msgstr ""
-#: ../git-debrebase:2268
+#: ../git-debrebase:2197
#, perl-format
msgid "Could not preserve: %s"
msgstr ""
-#: ../git-debrebase:2273 ../git-debrebase:2279 ../git-debrebase:2285
-#: ../git-debrebase:2375 ../git-debrebase:2384 ../git-debrebase:2408
-#: ../git-debrebase:2472
+#: ../git-debrebase:2202 ../git-debrebase:2208 ../git-debrebase:2214
+#: ../git-debrebase:2304 ../git-debrebase:2313 ../git-debrebase:2337
+#: ../git-debrebase:2401
msgid "no arguments allowed"
msgstr ""
-#: ../git-debrebase:2307
+#: ../git-debrebase:2236
msgid "branch contains furniture (not laundered)"
msgstr ""
-#: ../git-debrebase:2308
+#: ../git-debrebase:2237
msgid "branch is unlaundered"
msgstr ""
-#: ../git-debrebase:2309
+#: ../git-debrebase:2238
msgid "branch needs laundering"
msgstr ""
-#: ../git-debrebase:2310
+#: ../git-debrebase:2239
msgid "branch not in git-debrebase form"
msgstr ""
-#: ../git-debrebase:2320
+#: ../git-debrebase:2249
msgid "current branch contents, in git-debrebase terms:\n"
msgstr ""
-#: ../git-debrebase:2322
+#: ../git-debrebase:2251
msgid " branch is laundered\n"
msgstr ""
-#: ../git-debrebase:2338
+#: ../git-debrebase:2267
#, perl-format
msgid " %s is not well-defined\n"
msgstr ""
-#: ../git-debrebase:2344
+#: ../git-debrebase:2273
msgid "key git-debrebase commits:\n"
msgstr ""
-#: ../git-debrebase:2345
+#: ../git-debrebase:2274
msgid "anchor"
msgstr ""
-#: ../git-debrebase:2346
+#: ../git-debrebase:2275
msgid "breakwater"
msgstr ""
-#: ../git-debrebase:2351
+#: ../git-debrebase:2280
msgid "branch and ref status, in git-debrebase terms:\n"
msgstr ""
-#: ../git-debrebase:2358
+#: ../git-debrebase:2287
msgid " unstitched; previous tip was:\n"
msgstr ""
-#: ../git-debrebase:2361
+#: ../git-debrebase:2290
msgid " stitched? (no record of git-debrebase work)\n"
msgstr ""
-#: ../git-debrebase:2363
+#: ../git-debrebase:2292
msgid " stitched\n"
msgstr ""
-#: ../git-debrebase:2365
+#: ../git-debrebase:2294
msgid " not git-debrebase (diverged since last stitch)\n"
msgstr ""
-#: ../git-debrebase:2368
+#: ../git-debrebase:2297
msgid "you are currently rebasing\n"
msgstr ""
-#: ../git-debrebase:2385 ../git-debrebase:2398
+#: ../git-debrebase:2314 ../git-debrebase:2327
msgid "launder for git-debrebase quick"
msgstr ""
-#: ../git-debrebase:2392 ../git-debrebase:2422
+#: ../git-debrebase:2321 ../git-debrebase:2351
msgid "No ongoing git-debrebase session."
msgstr ""
-#: ../git-debrebase:2461
+#: ../git-debrebase:2390
msgid "Commit patch queue (exported by git-debrebase)"
msgstr ""
-#: ../git-debrebase:2478
+#: ../git-debrebase:2407
msgid "No (more) patches to export."
msgstr ""
-#: ../git-debrebase:2485
+#: ../git-debrebase:2414
#, perl-format
msgid ""
"Patch export produced patch amendments (abandoned output commit %s). Try "
"laundering first."
msgstr ""
-#: ../git-debrebase:2505
+#: ../git-debrebase:2434
#, perl-format
msgid "%s contains comments, which will be discarded"
msgstr ""
-#: ../git-debrebase:2510
+#: ../git-debrebase:2439
#, perl-format
msgid "patch %s repeated in %s !"
msgstr ""
-#: ../git-debrebase:2517
+#: ../git-debrebase:2446
#, perl-format
msgid "Unused patch file %s will be discarded"
msgstr ""
-#: ../git-debrebase:2525
+#: ../git-debrebase:2454
msgid "ffq-prev exists, this is already managed by git-debrebase!"
msgstr ""
-#: ../git-debrebase:2530
+#: ../git-debrebase:2459
msgid "ahead of debrebase-last, this is already managed by git-debrebase!"
msgstr ""
-#: ../git-debrebase:2546
+#: ../git-debrebase:2475
msgid "want only 1 optional argument, the upstream git commitish"
msgstr ""
-#: ../git-debrebase:2551
+#: ../git-debrebase:2480
msgid "missing Version from changelog\n"
msgstr ""
-#: ../git-debrebase:2567
+#: ../git-debrebase:2496
#, perl-format
msgid ""
"upstream (%s) and HEAD are not\n"
" git diff %s HEAD -- :!/debian :/\n"
msgstr ""
-#: ../git-debrebase:2575
+#: ../git-debrebase:2504
#, perl-format
msgid "upstream (%s) is not an ancestor of HEAD"
msgstr ""
-#: ../git-debrebase:2582
+#: ../git-debrebase:2511
#, perl-format
msgid ""
"history between upstream (%s) and HEAD contains direct changes to upstream "
"files - are you sure this is a gbp (patches-unapplied) branch?"
msgstr ""
-#: ../git-debrebase:2584
+#: ../git-debrebase:2513
#, perl-format
msgid "list expected changes with: %s\n"
msgstr ""
-#: ../git-debrebase:2591
+#: ../git-debrebase:2520
#, perl-format
msgid "upstream (%s) contains debian/ directory"
msgstr ""
-#: ../git-debrebase:2609
+#: ../git-debrebase:2538
msgid "neither of the first two changelog entries are released\n"
msgstr ""
-#: ../git-debrebase:2615
+#: ../git-debrebase:2544
#, perl-format
msgid "could not find suitable maintainer view tag %s\n"
msgstr ""
-#: ../git-debrebase:2618
+#: ../git-debrebase:2547
#, perl-format
msgid "HEAD is not FF from maintainer tag %s!"
msgstr ""
-#: ../git-debrebase:2621
+#: ../git-debrebase:2550
#, perl-format
msgid "dgit view tag %s not found\n"
msgstr ""
-#: ../git-debrebase:2623
+#: ../git-debrebase:2552
#, perl-format
msgid "dgit view tag %s is not FF from maintainer tag %s\n"
msgstr ""
-#: ../git-debrebase:2625
+#: ../git-debrebase:2554
#, perl-format
msgid "will stitch in dgit view, %s\n"
msgstr ""
-#: ../git-debrebase:2632
+#: ../git-debrebase:2561
#, perl-format
msgid ""
"Cannot confirm dgit view: %s\n"
"dgit --overwrite will be needed on the first dgit push after conversion.\n"
msgstr ""
-#: ../git-debrebase:2678
+#: ../git-debrebase:2607
#, perl-format
msgid "%s: converted from patched-unapplied (gbp) branch format, OK\n"
msgstr ""
-#: ../git-debrebase:2707
+#: ../git-debrebase:2636
#, perl-format
msgid ""
"%s: converted to git-buildpackage branch format\n"
"%s: WARNING: doing so would drop all upstream patches!\n"
msgstr ""
-#: ../git-debrebase:2728
+#: ../git-debrebase:2657
msgid "takes 1 optional argument, the upstream commitish"
msgstr ""
-#: ../git-debrebase:2736
+#: ../git-debrebase:2665
#, perl-format
msgid "%s, from command line"
msgstr ""
-#: ../git-debrebase:2750
+#: ../git-debrebase:2679
#, perl-format
msgid ""
"%s: Branch already seems to be in git-debrebase format!\n"
"%s: but is probably a bad idea. Probably, you wanted to do nothing.\n"
msgstr ""
-#: ../git-debrebase:2754
+#: ../git-debrebase:2683
msgid "Branch already in git-debrebase format."
msgstr ""
-#: ../git-debrebase:2766
+#: ../git-debrebase:2695
msgid "Considering possible commits corresponding to upstream:\n"
msgstr ""
-#: ../git-debrebase:2773
+#: ../git-debrebase:2702
#, perl-format
msgid "git tag %s"
msgstr ""
-#: ../git-debrebase:2779
+#: ../git-debrebase:2708
#, perl-format
msgid " git tag: no suitable tag found (tried %s)\n"
msgstr ""
-#: ../git-debrebase:2788
+#: ../git-debrebase:2717
#, perl-format
msgid "opendir build-products-dir %s: %s"
msgstr ""
-#: ../git-debrebase:2794
+#: ../git-debrebase:2723
#, perl-format
msgid " orig: found what looks like a .orig, %s\n"
msgstr ""
-#: ../git-debrebase:2825
+#: ../git-debrebase:2754
#, perl-format
msgid " orig: no suitable origs found (looked for %s in %s)\n"
msgstr ""
-#: ../git-debrebase:2834
+#: ../git-debrebase:2763
msgid "Evaluating possible commits corresponding to upstream:\n"
msgstr ""
-#: ../git-debrebase:2871
+#: ../git-debrebase:2800
#, perl-format
msgid " %s: couldn't apply patches: gbp pq %s"
msgstr ""
-#: ../git-debrebase:2880
+#: ../git-debrebase:2809
#, perl-format
msgid " %s: applying patches gives different tree\n"
msgstr ""
-#: ../git-debrebase:2894
+#: ../git-debrebase:2823
msgid ""
"Could not find or construct a suitable upstream commit.\n"
"Rerun adding --diagnose after convert-from-dgit-view, or pass a\n"
"upstream commmit explicitly or provide suitable origs.\n"
msgstr ""
-#: ../git-debrebase:2900
+#: ../git-debrebase:2829
#, perl-format
msgid "Yes, will base new branch on %s\n"
msgstr ""
-#: ../git-debrebase:2907
+#: ../git-debrebase:2836
msgid "forget-was-ever-debrebase takes no further arguments"
msgstr ""
-#: ../git-debrebase:2911
+#: ../git-debrebase:2840
#, perl-format
msgid "Not suitable for recording git-debrebaseness anyway: %s"
msgstr ""
-#: ../git-debrebase:3013
+#: ../git-debrebase:2942
msgid "bad options\n"
msgstr ""
-#: ../git-debrebase:3023
+#: ../git-debrebase:2952
#, perl-format
msgid "%s: no cuddling to -i for git-rebase"
msgstr ""
-#: ../git-debrebase:3053
+#: ../git-debrebase:2982
#, perl-format
msgid "unknown git-debrebase sub-operation %s"
msgstr ""
-#: ../Debian/Dgit.pm:295
+#: ../Debian/Dgit.pm:298
#, perl-format
msgid "error: %s\n"
msgstr ""
-#: ../Debian/Dgit.pm:315
+#: ../Debian/Dgit.pm:324
#, perl-format
msgid "getcwd failed: %s\n"
msgstr ""
-#: ../Debian/Dgit.pm:334
+#: ../Debian/Dgit.pm:343
msgid "terminated, reporting successful completion"
msgstr ""
-#: ../Debian/Dgit.pm:336
+#: ../Debian/Dgit.pm:345
#, perl-format
msgid "failed with error exit status %s"
msgstr ""
-#: ../Debian/Dgit.pm:339
+#: ../Debian/Dgit.pm:348
#, perl-format
msgid "died due to fatal signal %s"
msgstr ""
-#: ../Debian/Dgit.pm:343
+#: ../Debian/Dgit.pm:352
#, perl-format
msgid "failed with unknown wait status %s"
msgstr ""
-#: ../Debian/Dgit.pm:349
+#: ../Debian/Dgit.pm:358
msgid "failed command"
msgstr ""
-#: ../Debian/Dgit.pm:355
+#: ../Debian/Dgit.pm:364
#, perl-format
msgid "failed to fork/exec: %s"
msgstr ""
-#: ../Debian/Dgit.pm:357
+#: ../Debian/Dgit.pm:366
#, perl-format
msgid "subprocess %s"
msgstr ""
-#: ../Debian/Dgit.pm:359
+#: ../Debian/Dgit.pm:368
msgid "subprocess produced invalid output"
msgstr ""
-#: ../Debian/Dgit.pm:450
+#: ../Debian/Dgit.pm:459
msgid "stat source file: %S"
msgstr ""
-#: ../Debian/Dgit.pm:460
+#: ../Debian/Dgit.pm:469
msgid "stat destination file: %S"
msgstr ""
-#: ../Debian/Dgit.pm:479
+#: ../Debian/Dgit.pm:488
msgid "finally install file after cp: %S"
msgstr ""
-#: ../Debian/Dgit.pm:485
+#: ../Debian/Dgit.pm:494
msgid "delete old file after cp: %S"
msgstr ""
-#: ../Debian/Dgit.pm:506
+#: ../Debian/Dgit.pm:515
msgid ""
"not in a git working tree?\n"
"(git rev-parse --show-toplevel produced no output)\n"
msgstr ""
-#: ../Debian/Dgit.pm:509
+#: ../Debian/Dgit.pm:518
#, perl-format
msgid "chdir toplevel %s: %s\n"
msgstr ""
-#: ../Debian/Dgit.pm:617
+#: ../Debian/Dgit.pm:626
msgid "git index contains changes (does not match HEAD)"
msgstr ""
-#: ../Debian/Dgit.pm:618
+#: ../Debian/Dgit.pm:627
msgid "working tree is dirty (does not match HEAD)"
msgstr ""
-#: ../Debian/Dgit.pm:689
+#: ../Debian/Dgit.pm:649
+msgid "using specified upstream commitish"
+msgstr ""
+
+#: ../Debian/Dgit.pm:655
+#, perl-format
+msgid ""
+"Could not determine appropriate upstream commitish.\n"
+" (Tried these tags: %s)\n"
+" Check version, and specify upstream commitish explicitly."
+msgstr ""
+
+#: ../Debian/Dgit.pm:661 ../Debian/Dgit.pm:663
+#, perl-format
+msgid "using upstream from git tag %s"
+msgstr ""
+
+#: ../Debian/Dgit.pm:769
msgid "detached HEAD"
msgstr ""
-#: ../Debian/Dgit.pm:690
+#: ../Debian/Dgit.pm:770
msgid "HEAD symref is not to refs/"
msgstr ""
-#: ../Debian/Dgit.pm:706
+#: ../Debian/Dgit.pm:786
#, perl-format
msgid "parsing of %s failed"
msgstr ""
-#: ../Debian/Dgit.pm:715
+#: ../Debian/Dgit.pm:795
#, perl-format
msgid ""
"control file %s is (already) PGP-signed. Note that dgit push needs to "
"modify the .dsc and then do the signature itself"
msgstr ""
-#: ../Debian/Dgit.pm:729
+#: ../Debian/Dgit.pm:809
#, perl-format
msgid "open %s (%s): %s"
msgstr ""
-#: ../Debian/Dgit.pm:750
+#: ../Debian/Dgit.pm:830
#, perl-format
msgid "missing field %s in %s"
msgstr ""
-#: ../Debian/Dgit.pm:822
+#: ../Debian/Dgit.pm:916
msgid "Dummy commit - do not use\n"
msgstr ""
-#: ../Debian/Dgit.pm:843
+#: ../Debian/Dgit.pm:937
#, perl-format
msgid "exec %s: %s\n"
msgstr ""
-#: ../Debian/Dgit.pm:911
+#: ../Debian/Dgit.pm:1005
#, perl-format
msgid "cannot stat %s/.git: %s"
msgstr ""
-#: ../Debian/Dgit.pm:934
+#: ../Debian/Dgit.pm:1028
#, perl-format
msgid "failed to mkdir playground parent %s: %s"
msgstr ""
-#: ../Debian/Dgit.pm:942
+#: ../Debian/Dgit.pm:1036
#, perl-format
msgid "failed to mkdir a playground %s: %s"
msgstr ""
-#: ../Debian/Dgit.pm:951
+#: ../Debian/Dgit.pm:1045
#, perl-format
msgid "failed to mkdir the playground %s: %s"
msgstr ""
#, fuzzy
msgid ""
msgstr ""
-"#-#-#-#-# .dgit.pot (dgit ongoing) #-#-#-#-#\n"
"Project-Id-Version: dgit ongoing\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-03-01 21:54+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"#-#-#-#-# .git-debrebase.pot (dgit ongoing) #-#-#-#-#\n"
-"Project-Id-Version: dgit ongoing\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-03-01 21:54+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"#-#-#-#-# .common.pot (dgit ongoing) #-#-#-#-#\n"
-"Project-Id-Version: dgit ongoing\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-03-01 15:31+0000\n"
+"POT-Creation-Date: 2020-02-02 16:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../dgit:242
+#: ../dgit:268
#, perl-format
msgid "%s: invalid configuration: %s\n"
msgstr ""
-#: ../dgit:249
+#: ../dgit:275
msgid "warning: overriding problem due to --force:\n"
msgstr ""
-#: ../dgit:257
+#: ../dgit:283
#, perl-format
msgid "warning: skipping checks or functionality due to --force-%s\n"
msgstr ""
-#: ../dgit:262
+#: ../dgit:288
#, perl-format
msgid "%s: source package %s does not exist in suite %s\n"
msgstr ""
-#: ../dgit:487
+#: ../dgit:520
#, perl-format
msgid "build host child %s"
msgstr ""
-#: ../dgit:492 ../dgit:498
+#: ../dgit:525 ../dgit:531
#, perl-format
msgid "connection lost: %s"
msgstr ""
-#: ../dgit:493
+#: ../dgit:526
#, perl-format
msgid "protocol violation; %s not expected"
msgstr ""
-#: ../dgit:501
+#: ../dgit:534
#, perl-format
msgid "eof (reading %s)"
msgstr ""
-#: ../dgit:508
+#: ../dgit:541
msgid "protocol message"
msgstr ""
-#: ../dgit:516
+#: ../dgit:549
#, perl-format
msgid "`%s'"
msgstr ""
-#: ../dgit:537
+#: ../dgit:570
msgid "bad byte count"
msgstr ""
-#: ../dgit:540
+#: ../dgit:573
msgid "data block"
msgstr ""
-#: ../dgit:621
-#, perl-format
-msgid "failed to fetch %s: %s"
-msgstr ""
-
-#: ../dgit:633
+#: ../dgit:652
#, perl-format
msgid "%s ok: %s"
msgstr ""
-#: ../dgit:635
+#: ../dgit:654
#, perl-format
msgid "would be ok: %s (but dry run only)"
msgstr ""
-#: ../dgit:660
+#: ../dgit:679
msgid ""
"main usages:\n"
" dgit [dgit-opts] clone [dgit-opts] package [suite] [./dir|/dir]\n"
" -c<name>=<value> set git config option (used directly by dgit too)\n"
msgstr ""
-#: ../dgit:679
+#: ../dgit:698
msgid "Perhaps the upload is stuck in incoming. Using the version from git.\n"
msgstr ""
-#: ../dgit:683
+#: ../dgit:702
#, perl-format
msgid ""
"%s: %s\n"
"%s"
msgstr ""
-#: ../dgit:688
+#: ../dgit:707
msgid "too few arguments"
msgstr ""
-#: ../dgit:799
+#: ../dgit:823
#, perl-format
msgid "multiple values for %s (in %s git config)"
msgstr ""
-#: ../dgit:802
+#: ../dgit:826
#, perl-format
msgid "value for config option %s (in %s git config) contains newline(s)!"
msgstr ""
-#: ../dgit:822
+#: ../dgit:846
#, perl-format
msgid ""
"need value for one of: %s\n"
"%s: distro or suite appears not to be (properly) supported"
msgstr ""
-#: ../dgit:863
+#: ../dgit:903
#, perl-format
msgid "bad syntax for (nominal) distro `%s' (does not match %s)"
msgstr ""
-#: ../dgit:878
+#: ../dgit:918
#, perl-format
msgid "backports-quirk needs % or ( )"
msgstr ""
-#: ../dgit:894
+#: ../dgit:934
#, perl-format
msgid "%s needs t (true, y, 1) or f (false, n, 0) not `%s'"
msgstr ""
-#: ../dgit:914
+#: ../dgit:954
msgid "readonly needs t (true, y, 1) or f (false, n, 0) or a (auto)"
msgstr ""
-#: ../dgit:923 ../git-debrebase:1586 ../Debian/Dgit.pm:201
+#: ../dgit:972
+#, perl-format
+msgid "unknown %s `%s'"
+msgstr ""
+
+#: ../dgit:977 ../git-debrebase:1548 ../Debian/Dgit.pm:211
msgid "internal error"
msgstr ""
-#: ../dgit:925
+#: ../dgit:979
msgid "pushing but distro is configured readonly"
msgstr ""
-#: ../dgit:929
+#: ../dgit:983
msgid ""
"Push failed, before we got started.\n"
"You can retry the push, after fixing the problem, if you like.\n"
msgstr ""
-#: ../dgit:1094
-msgid "this operation does not support multiple comma-separated suites"
-msgstr ""
-
-#: ../dgit:1140
+#: ../dgit:1006
#, perl-format
msgid ""
-"config requested specific TLS key but do not know how to get curl to use "
-"exactly that EE key (%s)"
+"dgit: quilt mode `%s' (for format `%s') implies split view, but split-view "
+"set to `%s'"
msgstr ""
-#: ../dgit:1161
-msgid "ftpmasterapi archive query method takes no data part"
+#: ../dgit:1169
+msgid "this operation does not support multiple comma-separated suites"
msgstr ""
-#: ../dgit:1169
-msgid "curl failed to print 3-digit HTTP code"
+#: ../dgit:1237
+#, perl-format
+msgid "fetch of %s failed (%s): %s"
msgstr ""
-#: ../dgit:1173
+#: ../dgit:1244
#, perl-format
msgid "fetch of %s gave HTTP code %s"
msgstr ""
-#: ../dgit:1189
+#: ../dgit:1265
+msgid "ftpmasterapi archive query method takes no data part"
+msgstr ""
+
+#: ../dgit:1283
#, perl-format
msgid "unknown suite %s, maybe -d would help"
msgstr ""
-#: ../dgit:1193
+#: ../dgit:1287
#, perl-format
msgid "multiple matches for suite %s\n"
msgstr ""
-#: ../dgit:1195
+#: ../dgit:1289
#, perl-format
msgid "suite %s info has no codename\n"
msgstr ""
-#: ../dgit:1197
+#: ../dgit:1291
#, perl-format
msgid "suite %s maps to bad codename\n"
msgstr ""
-#: ../dgit:1199 ../dgit:1224
+#: ../dgit:1293 ../dgit:1318
msgid "bad ftpmaster api response: "
msgstr ""
-#: ../dgit:1213
+#: ../dgit:1307
#, perl-format
msgid "bad version: %s\n"
msgstr ""
-#: ../dgit:1215
+#: ../dgit:1309
msgid "bad component"
msgstr ""
-#: ../dgit:1218
+#: ../dgit:1312
msgid "bad filename"
msgstr ""
-#: ../dgit:1220
+#: ../dgit:1314
msgid "bad sha256sum"
msgstr ""
-#: ../dgit:1271
+#: ../dgit:1365
msgid "aptget archive query method takes no data part"
msgstr ""
-#: ../dgit:1355
+#: ../dgit:1449
#, perl-format
msgid ""
"apt seemed to not to update dgit's cached Release files for %s.\n"
" is on a filesystem mounted `noatime'; if so, please use `relatime'.)\n"
msgstr ""
-#: ../dgit:1377
+#: ../dgit:1473
#, perl-format
msgid "Release file (%s) specifies intolerable %s"
msgstr ""
-#: ../dgit:1405
+#: ../dgit:1499
msgid "apt-get source did not produce a .dsc"
msgstr ""
-#: ../dgit:1406
+#: ../dgit:1500
#, perl-format
msgid "apt-get source produced several .dscs (%s)"
msgstr ""
-#: ../dgit:1511
+#: ../dgit:1605
#, perl-format
msgid ""
"unable to canonicalise suite using package %s which does not appear to exist "
"in suite %s; --existing-package may help"
msgstr ""
-#: ../dgit:1702
+#: ../dgit:1744
#, perl-format
msgid "cannot operate on %s suite"
msgstr ""
-#: ../dgit:1705
+#: ../dgit:1747
#, perl-format
msgid "canonical suite name for %s is %s"
msgstr ""
-#: ../dgit:1707
+#: ../dgit:1749
#, perl-format
msgid "canonical suite name is %s"
msgstr ""
-#: ../dgit:1727
+#: ../dgit:1769
#, perl-format
msgid "%s has hash %s but archive told us to expect %s"
msgstr ""
-#: ../dgit:1733
+#: ../dgit:1775
#, perl-format
msgid "unsupported source format %s, sorry"
msgstr ""
-#: ../dgit:1760
+#: ../dgit:1802
#, perl-format
msgid "diverting to %s (using config for %s)"
msgstr ""
-#: ../dgit:1777
-msgid "unexpected results from git check query - "
-msgstr ""
-
-#: ../dgit:1792
+#: ../dgit:1825
#, perl-format
msgid "unknown git-check `%s'"
msgstr ""
-#: ../dgit:1807
+#: ../dgit:1840
#, perl-format
msgid "unknown git-create `%s'"
msgstr ""
-#: ../dgit:1844
+#: ../dgit:1877
#, perl-format
msgid "%s: warning: removing from %s: %s\n"
msgstr ""
-#: ../dgit:1890
+#: ../dgit:1923
#, perl-format
msgid "could not parse .dsc %s line `%s'"
msgstr ""
-#: ../dgit:1901
+#: ../dgit:1934
#, perl-format
msgid "missing any supported Checksums-* or Files field in %s"
msgstr ""
-#: ../dgit:1947
+#: ../dgit:1980
#, perl-format
msgid "hash or size of %s varies in %s fields (between: %s)"
msgstr ""
-#: ../dgit:1956
+#: ../dgit:1989
#, perl-format
msgid "file list in %s varies between hash fields!"
msgstr ""
-#: ../dgit:1960
+#: ../dgit:1993
#, perl-format
msgid "%s has no files list field(s)"
msgstr ""
-#: ../dgit:1966
+#: ../dgit:1999
#, perl-format
msgid "no file appears in all file lists (looked in: %s)"
msgstr ""
-#: ../dgit:2006
+#: ../dgit:2039
#, perl-format
msgid "purportedly source-only changes polluted by %s\n"
msgstr ""
-#: ../dgit:2019
+#: ../dgit:2052
msgid "cannot find section/priority from .changes Files field"
msgstr ""
-#: ../dgit:2032
+#: ../dgit:2065
msgid ""
"archive does not support .orig check; hope you used --ch:--sa/-sd if needed\n"
msgstr ""
-#: ../dgit:2048
+#: ../dgit:2081
#, perl-format
msgid ".dsc %s missing entry for %s"
msgstr ""
-#: ../dgit:2053
+#: ../dgit:2086
#, perl-format
msgid "%s: %s (archive) != %s (local .dsc)"
msgstr ""
-#: ../dgit:2061
+#: ../dgit:2094
#, perl-format
msgid "archive %s: %s"
msgstr ""
-#: ../dgit:2068
+#: ../dgit:2101
#, perl-format
msgid "archive contains %s with different checksum"
msgstr ""
-#: ../dgit:2096
+#: ../dgit:2129
#, perl-format
msgid "edited .changes for archive .orig contents: %s %s"
msgstr ""
-#: ../dgit:2104
+#: ../dgit:2137
#, perl-format
msgid "[new .changes left in %s]"
msgstr ""
-#: ../dgit:2107
+#: ../dgit:2140
#, perl-format
msgid "%s already has appropriate .orig(s) (if any)"
msgstr ""
-#: ../dgit:2131
+#: ../dgit:2159
#, perl-format
msgid ""
"unexpected commit author line format `%s' (was generated from changelog "
"Maintainer field)"
msgstr ""
-#: ../dgit:2154
+#: ../dgit:2182
msgid ""
"\n"
"Unfortunately, this source package uses a feature of dpkg-source where\n"
"\n"
msgstr ""
-#: ../dgit:2166
+#: ../dgit:2194
#, perl-format
msgid ""
"Found active distro-specific series file for %s (%s): %s, cannot continue"
msgstr ""
-#: ../dgit:2197
+#: ../dgit:2225
msgid "Dpkg::Vendor `current vendor'"
msgstr ""
-#: ../dgit:2199
+#: ../dgit:2227
msgid "(base) distro being accessed"
msgstr ""
-#: ../dgit:2201
+#: ../dgit:2229
msgid "(nominal) distro being accessed"
msgstr ""
-#: ../dgit:2206
+#: ../dgit:2234
#, perl-format
msgid "build-products-dir %s is not accessible: %s\n"
msgstr ""
-#: ../dgit:2231
+#: ../dgit:2259
#, perl-format
msgid ""
"%s: found orig(s) in .. missing from build-products-dir, transferring:\n"
msgstr ""
-#: ../dgit:2235
+#: ../dgit:2263
#, perl-format
msgid "check orig file %s in bpd %s: %s"
msgstr ""
-#: ../dgit:2237
+#: ../dgit:2265
#, perl-format
msgid "check orig file %s in ..: %s"
msgstr ""
-#: ../dgit:2240
+#: ../dgit:2268
#, perl-format
msgid "check target of orig symlink %s in ..: %s"
msgstr ""
-#: ../dgit:2249
+#: ../dgit:2277
#, perl-format
msgid "%s: cloned orig symlink from ..: %s\n"
msgstr ""
-#: ../dgit:2253
+#: ../dgit:2281
#, perl-format
msgid "%s: hardlinked orig from ..: %s\n"
msgstr ""
-#: ../dgit:2256
+#: ../dgit:2284
#, perl-format
msgid "failed to make %s a hardlink to %s: %s"
msgstr ""
-#: ../dgit:2262
+#: ../dgit:2290
#, perl-format
msgid "%s: symmlinked orig from .. on other filesystem: %s\n"
msgstr ""
-#: ../dgit:2294 ../dgit:2299
-#, perl-format
-msgid "accessing %s: %s"
-msgstr ""
-
-#: ../dgit:2314 ../dgit:2321
-#, perl-format
-msgid "saving %s: %s"
-msgstr ""
-
-#: ../dgit:2386
+#: ../dgit:2361
#, perl-format
msgid "dgit (child): exec %s: %s"
msgstr ""
-#: ../dgit:2450 ../dgit:5974
-msgid "source package"
-msgstr ""
-
-#: ../dgit:2468
+#: ../dgit:2423
msgid "package changelog"
msgstr ""
-#: ../dgit:2508
+#: ../dgit:2463
msgid "package changelog has no entries!"
msgstr ""
-#: ../dgit:2527
+#: ../dgit:2532 ../dgit:2537
+#, perl-format
+msgid "accessing %s: %s"
+msgstr ""
+
+#: ../dgit:2552 ../dgit:2559
#, perl-format
-msgid "Import %s"
+msgid "saving %s: %s"
msgstr ""
-#: ../dgit:2608
+#: ../dgit:2585 ../dgit:6078
+msgid "source package"
+msgstr ""
+
+#: ../dgit:2665
#, perl-format
msgid "%s: trying slow absurd-git-apply..."
msgstr ""
-#: ../dgit:2627
+#: ../dgit:2684
#, perl-format
msgid "%s failed: %s\n"
msgstr ""
-#: ../dgit:2636
+#: ../dgit:2693
#, perl-format
msgid ""
"gbp-pq import and dpkg-source disagree!\n"
" dpkg-source --before-build gave tree %s\n"
msgstr ""
-#: ../dgit:2651
+#: ../dgit:2713
#, perl-format
msgid "synthesised git commit from .dsc %s"
msgstr ""
-#: ../dgit:2655
+#: ../dgit:2717
msgid "Import of source package"
msgstr ""
-#: ../dgit:2668
-#, perl-format
-msgid "Record %s (%s) in archive suite %s\n"
-msgstr ""
-
-#: ../dgit:2672
+#: ../dgit:2737
#, perl-format
msgid ""
"\n"
"%s\n"
msgstr ""
-#: ../dgit:2714
+#: ../dgit:2779
#, perl-format
msgid "using existing %s"
msgstr ""
-#: ../dgit:2718
+#: ../dgit:2783
#, perl-format
msgid ""
"file %s has hash %s but .dsc demands hash %s (perhaps you should delete this "
"file?)"
msgstr ""
-#: ../dgit:2722
+#: ../dgit:2787
#, perl-format
msgid "need to fetch correct version of %s"
msgstr ""
-#: ../dgit:2738
+#: ../dgit:2803
#, perl-format
msgid ""
"file %s has hash %s but .dsc demands hash %s (got wrong file from archive!)"
msgstr ""
-#: ../dgit:2833
+#: ../dgit:2898
msgid "too many iterations trying to get sane fetch!"
msgstr ""
-#: ../dgit:2848
+#: ../dgit:2913
#, perl-format
msgid "warning: git ls-remote %s reported %s; this is silly, ignoring it.\n"
msgstr ""
-#: ../dgit:2892
+#: ../dgit:2957
#, perl-format
msgid "warning: git fetch %s created %s; this is silly, deleting it.\n"
msgstr ""
-#: ../dgit:2907
+#: ../dgit:2972
msgid ""
"--dry-run specified but we actually wanted the results of git fetch,\n"
"so this is not going to work. Try running dgit fetch first,\n"
"or using --damp-run instead of --dry-run.\n"
msgstr ""
-#: ../dgit:2912
+#: ../dgit:2977
#, perl-format
msgid ""
"warning: git ls-remote suggests we want %s\n"
"warning: Will try again...\n"
msgstr ""
-#: ../dgit:2979
-#, perl-format
-msgid "Not updating %s from %s to %s.\n"
-msgstr ""
-
-#: ../dgit:3028
-#, perl-format
-msgid "%s: NO git hash"
-msgstr ""
-
-#: ../dgit:3032
-#, perl-format
-msgid "%s: specified git info (%s)"
-msgstr ""
-
-#: ../dgit:3039
-#, perl-format
-msgid "%s: specified git hash"
-msgstr ""
-
-#: ../dgit:3041
-#, perl-format
-msgid "%s: invalid Dgit info"
-msgstr ""
-
-#: ../dgit:3063
+#: ../dgit:3124
#, perl-format
msgid "not chasing .dsc distro %s: not fetching %s"
msgstr ""
-#: ../dgit:3068
+#: ../dgit:3129
#, perl-format
msgid ".dsc names distro %s: fetching %s"
msgstr ""
-#: ../dgit:3073
+#: ../dgit:3134
#, perl-format
msgid ""
".dsc Dgit metadata is in context of distro %s\n"
"for which we have no configured url and .dsc provides no hint\n"
msgstr ""
-#: ../dgit:3083
+#: ../dgit:3144
#, perl-format
msgid ""
".dsc Dgit metadata is in context of distro %s\n"
"(can be overridden by config - consult documentation)\n"
msgstr ""
-#: ../dgit:3103
+#: ../dgit:3164
msgid "rewrite map"
msgstr ""
-#: ../dgit:3110
+#: ../dgit:3171
msgid "server's git history rewrite map contains a relevant entry!"
msgstr ""
-#: ../dgit:3114
+#: ../dgit:3175
msgid "using rewritten git hash in place of .dsc value"
msgstr ""
-#: ../dgit:3116
+#: ../dgit:3177
msgid "server data says .dsc hash is to be disregarded"
msgstr ""
-#: ../dgit:3123
+#: ../dgit:3184
msgid "additional commits"
msgstr ""
-#: ../dgit:3126
+#: ../dgit:3187
#, perl-format
msgid ""
".dsc Dgit metadata requires commit %s\n"
"but we could not obtain that object anywhere.\n"
msgstr ""
-#: ../dgit:3151
+#: ../dgit:3212
msgid "last upload to archive"
msgstr ""
-#: ../dgit:3155
+#: ../dgit:3216
msgid "no version available from the archive"
msgstr ""
-#: ../dgit:3238
+#: ../dgit:3299
msgid "dgit suite branch on dgit git server"
msgstr ""
-#: ../dgit:3245
+#: ../dgit:3306
msgid "dgit client's archive history view"
msgstr ""
-#: ../dgit:3250
+#: ../dgit:3311
msgid "Dgit field in .dsc from archive"
msgstr ""
-#: ../dgit:3278
+#: ../dgit:3339
#, perl-format
msgid ""
"\n"
"%s\n"
msgstr ""
-#: ../dgit:3291
+#: ../dgit:3352
msgid "archive .dsc names newer git commit"
msgstr ""
-#: ../dgit:3294
+#: ../dgit:3355
msgid "archive .dsc names other git commit, fixing up"
msgstr ""
-#: ../dgit:3315
+#: ../dgit:3376
#, perl-format
msgid ""
"\n"
"%s\n"
msgstr ""
-#: ../dgit:3324
+#: ../dgit:3385
#, perl-format
msgid ""
"\n"
"\n"
msgstr ""
-#: ../dgit:3409
+#: ../dgit:3470
#, perl-format
msgid ""
"Record %s (%s) in archive suite %s\n"
"Record that\n"
msgstr ""
-#: ../dgit:3422
+#: ../dgit:3483
msgid "should be treated as descended from\n"
msgstr ""
-#: ../dgit:3440
+#: ../dgit:3501
msgid "dgit repo server tip (last push)"
msgstr ""
-#: ../dgit:3442
+#: ../dgit:3503
msgid "local tracking tip (last fetch)"
msgstr ""
-#: ../dgit:3453
+#: ../dgit:3514
#, perl-format
msgid ""
"\n"
"\n"
msgstr ""
-#: ../dgit:3468
+#: ../dgit:3529
msgid "fetched source tree"
msgstr ""
-#: ../dgit:3504
+#: ../dgit:3565
msgid "debian/changelog merge driver"
msgstr ""
-#: ../dgit:3569
+#: ../dgit:3630
msgid ""
"[attr]dgit-defuse-attrs already found, and proper, in .git/info/attributes\n"
" not doing further gitattributes setup\n"
msgstr ""
-#: ../dgit:3583
+#: ../dgit:3644
msgid "# ^ see GITATTRIBUTES in dgit(7) and dgit setup-new-tree in dgit(1)\n"
msgstr ""
-#: ../dgit:3598
+#: ../dgit:3659
#, perl-format
msgid "install %s: %s"
msgstr ""
-#: ../dgit:3625
+#: ../dgit:3686
#, perl-format
msgid ""
"dgit: warning: %s contains .gitattributes\n"
"tree.\n"
msgstr ""
-#: ../dgit:3647
+#: ../dgit:3708
#, perl-format
msgid "fetching %s..."
msgstr ""
-#: ../dgit:3655
+#: ../dgit:3716
#, perl-format
msgid "failed to obtain %s: %s"
msgstr ""
-#: ../dgit:3694
+#: ../dgit:3755
#, perl-format
msgid "package %s missing in (base suite) %s"
msgstr ""
-#: ../dgit:3726
+#: ../dgit:3787
msgid "local combined tracking branch"
msgstr ""
-#: ../dgit:3728
+#: ../dgit:3789
msgid "archive seems to have rewound: local tracking branch is ahead!"
msgstr ""
-#: ../dgit:3767
+#: ../dgit:3828
#, perl-format
msgid ""
"Combine archive branches %s [dgit]\n"
"Input branches:\n"
msgstr ""
-#: ../dgit:3781
+#: ../dgit:3842
msgid ""
"\n"
"Key\n"
"\n"
msgstr ""
-#: ../dgit:3796
+#: ../dgit:3857
#, perl-format
msgid "calculated combined tracking suite %s"
msgstr ""
-#: ../dgit:3814
+#: ../dgit:3875
#, perl-format
msgid "ready for work in %s"
msgstr ""
-#: ../dgit:3822
+#: ../dgit:3893
msgid "dry run makes no sense with clone"
msgstr ""
-#: ../dgit:3837
+#: ../dgit:3908
#, perl-format
msgid "create `%s': %s"
msgstr ""
-#: ../dgit:3853
+#: ../dgit:3920
msgid "fetching existing git history"
msgstr ""
-#: ../dgit:3857
+#: ../dgit:3923
msgid "starting new git history"
msgstr ""
-#: ../dgit:3883
+#: ../dgit:3948
#, perl-format
msgid ""
"FYI: Vcs-Git in %s has different url to your vcs-git remote.\n"
" Your vcs-git remote url may be out of date. Use dgit update-vcs-git ?\n"
msgstr ""
-#: ../dgit:3888
+#: ../dgit:3953
#, perl-format
msgid "fetched into %s"
msgstr ""
-#: ../dgit:3900
+#: ../dgit:3965
#, perl-format
msgid "Merge from %s [dgit]"
msgstr ""
-#: ../dgit:3902
+#: ../dgit:3967
#, perl-format
msgid "fetched to %s and merged into HEAD"
msgstr ""
-#: ../dgit:3910
+#: ../dgit:3975
#, perl-format
msgid "git tree contains %s"
msgstr ""
-#: ../dgit:3921
+#: ../dgit:3986
msgid "you have uncommitted changes to critical files, cannot continue:\n"
msgstr ""
-#: ../dgit:3940
+#: ../dgit:4005
#, perl-format
msgid ""
"quilt fixup required but quilt mode is `nofix'\n"
"HEAD commit%s differs from tree implied by debian/patches%s"
msgstr ""
-#: ../dgit:3957
+#: ../dgit:4022
msgid "nothing quilty to commit, ok."
msgstr ""
-#: ../dgit:3960
+#: ../dgit:4025
msgid " (wanted to commit patch update)"
msgstr ""
-#: ../dgit:3964
+#: ../dgit:4029
msgid ""
"Commit Debian 3.0 (quilt) metadata\n"
"\n"
msgstr ""
-#: ../dgit:4007
+#: ../dgit:4073
#, perl-format
msgid ""
"Not doing any fixup of `%s' due to ----no-quilt-fixup or --quilt=nocheck"
msgstr ""
-#: ../dgit:4012
+#: ../dgit:4078
#, perl-format
msgid "Format `%s', need to check/update patch stack"
msgstr ""
-#: ../dgit:4022
+#: ../dgit:4088
#, perl-format
msgid "commit id %s"
msgstr ""
-#: ../dgit:4028
+#: ../dgit:4094
#, perl-format
msgid "and left in %s"
msgstr ""
-#: ../dgit:4054
+#: ../dgit:4120
#, perl-format
msgid "Wanted tag %s (%s) on dgit server, but not found\n"
msgstr ""
-#: ../dgit:4057
+#: ../dgit:4123
#, perl-format
msgid "Wanted tag %s (one of: %s) on dgit server, but not found\n"
msgstr ""
-#: ../dgit:4065
+#: ../dgit:4131
#, perl-format
msgid "%s (%s) .. %s (%s) is not fast forward\n"
msgstr ""
-#: ../dgit:4074
+#: ../dgit:4140
msgid "version currently in archive"
msgstr ""
-#: ../dgit:4083
+#: ../dgit:4149
#, perl-format
msgid "Checking package changelog for archive version %s ..."
msgstr ""
-#: ../dgit:4091
+#: ../dgit:4157
#, perl-format
msgid "%s field from dpkg-parsechangelog %s"
msgstr ""
-#: ../dgit:4101
+#: ../dgit:4168
#, perl-format
msgid "Perhaps debian/changelog does not mention %s ?"
msgstr ""
-#: ../dgit:4104
+#: ../dgit:4171
#, perl-format
msgid ""
"%s is %s\n"
"Your tree seems to based on earlier (not uploaded) %s.\n"
msgstr ""
-#: ../dgit:4118
+#: ../dgit:4185
#, perl-format
msgid "Declaring that HEAD includes all changes in %s..."
msgstr ""
-#: ../dgit:4174
+#: ../dgit:4241
msgid "Checking that HEAD includes all changes in archive..."
msgstr ""
-#: ../dgit:4183
+#: ../dgit:4250
msgid "maintainer view tag"
msgstr ""
-#: ../dgit:4185
+#: ../dgit:4252
msgid "dgit view tag"
msgstr ""
-#: ../dgit:4186
+#: ../dgit:4253
msgid "current archive contents"
msgstr ""
-#: ../dgit:4199
+#: ../dgit:4266
msgid ""
"| Not fast forward; maybe --overwrite is needed ? Please see dgit(1).\n"
msgstr ""
-#: ../dgit:4209
+#: ../dgit:4276
#, perl-format
msgid "Declare fast forward from %s\n"
msgstr ""
-#: ../dgit:4210
+#: ../dgit:4277
#, perl-format
msgid "Make fast forward from %s\n"
msgstr ""
-#: ../dgit:4214
+#: ../dgit:4281
#, perl-format
msgid "Made pseudo-merge of %s into dgit view."
msgstr ""
-#: ../dgit:4227
+#: ../dgit:4294
#, perl-format
msgid "Declare fast forward from %s"
msgstr ""
-#: ../dgit:4235
+#: ../dgit:4302
#, perl-format
msgid "Make pseudo-merge of %s into your HEAD."
msgstr ""
-#: ../dgit:4247
+#: ../dgit:4314
#, perl-format
msgid "-p specified %s but changelog specified %s"
msgstr ""
-#: ../dgit:4269
+#: ../dgit:4336
#, perl-format
msgid "%s is for %s %s but debian/changelog is for %s %s"
msgstr ""
-#: ../dgit:4330
+#: ../dgit:4390
#, perl-format
msgid "changes field %s `%s' does not match changelog `%s'"
msgstr ""
-#: ../dgit:4358
-#, perl-format
-msgid "%s release %s for %s (%s) [dgit]\n"
-msgstr ""
-
-#: ../dgit:4371
-#, perl-format
-msgid ""
-"%s release %s for %s (%s)\n"
-"(maintainer view tag generated by dgit --quilt=%s)\n"
-msgstr ""
-
-#: ../dgit:4423
-msgid ""
-"Push failed, while checking state of the archive.\n"
-"You can retry the push, after fixing the problem, if you like.\n"
-msgstr ""
-
-#: ../dgit:4432
-msgid ""
-"package appears to be new in this suite; if this is intentional, use --new"
-msgstr ""
-
-#: ../dgit:4437
-msgid ""
-"Push failed, while preparing your push.\n"
-"You can retry the push, after fixing the problem, if you like.\n"
-msgstr ""
-
-#: ../dgit:4460
-#, perl-format
-msgid "looked for .dsc %s, but %s; maybe you forgot to build"
-msgstr ""
-
-#: ../dgit:4477
-#, perl-format
-msgid ""
-"Branch is managed by git-debrebase (%s\n"
-"exists), but quilt mode (%s) implies a split view.\n"
-"Pass the right --quilt option or adjust your git config.\n"
-"Or, maybe, run git-debrebase forget-was-ever-debrebase.\n"
-msgstr ""
-
-#: ../dgit:4501
-#, perl-format
-msgid ""
-"--quilt=%s but no cached dgit view:\n"
-" perhaps HEAD changed since dgit build[-source] ?"
-msgstr ""
-
-#: ../dgit:4532
-msgid ""
-"dgit push: HEAD is not a descendant of the archive's version.\n"
-"To overwrite the archive's contents, pass --overwrite[=VERSION].\n"
-"To rewind history, if permitted by the archive, use --deliberately-not-fast-"
-"forward."
-msgstr ""
-
-#: ../dgit:4542
-#, perl-format
-msgid "checking that %s corresponds to HEAD"
-msgstr ""
-
-#: ../dgit:4576 ../dgit:4588
-#, perl-format
-msgid "HEAD specifies a different tree to %s:\n"
-msgstr ""
-
-#: ../dgit:4582
-#, perl-format
-msgid ""
-"There is a problem with your source tree (see dgit(7) for some hints).\n"
-"To see a full diff, run git diff %s %s\n"
-msgstr ""
-
-#: ../dgit:4592
-#, perl-format
-msgid ""
-"Perhaps you forgot to build. Or perhaps there is a problem with your\n"
-" source tree (see dgit(7) for some hints). To see a full diff, run\n"
-" git diff %s %s\n"
-msgstr ""
-
-#: ../dgit:4603
-#, perl-format
-msgid ""
-"failed to find unique changes file (looked for %s in %s); perhaps you need "
-"to use dgit -C"
-msgstr ""
-
-#: ../dgit:4625
-msgid "uploading binaries, although distro policy is source only"
-msgstr ""
-
-#: ../dgit:4629
-msgid "source-only upload, although distro policy requires .debs"
-msgstr ""
-
-#: ../dgit:4633
-#, perl-format
-msgid ""
-"source-only upload, even though package is entirely NEW\n"
-"(this is contrary to policy in %s)"
-msgstr ""
-
-#: ../dgit:4640
-#, perl-format
-msgid "unknown source-only-uploads policy `%s'"
-msgstr ""
-
-#: ../dgit:4684
-msgid ""
-"Push failed, while signing the tag.\n"
-"You can retry the push, after fixing the problem, if you like.\n"
-msgstr ""
-
-#: ../dgit:4697
-msgid ""
-"Push failed, *after* signing the tag.\n"
-"If you want to try again, you should use a new version number.\n"
-msgstr ""
-
-#: ../dgit:4714
-msgid ""
-"Push failed, while updating the remote git repository - see messages above.\n"
-"If you want to try again, you should use a new version number.\n"
-msgstr ""
-
-#: ../dgit:4731
-msgid ""
-"Push failed, while obtaining signatures on the .changes and .dsc.\n"
-"If it was just that the signature failed, you may try again by using\n"
-"debsign by hand to sign the changes file (see the command dgit tried,\n"
-"above), and then dput that changes file to complete the upload.\n"
-"If you need to change the package, you must use a new version number.\n"
-msgstr ""
-
-#: ../dgit:4762
-#, perl-format
-msgid "pushed and uploaded %s"
-msgstr ""
-
-#: ../dgit:4774
-msgid "-p is not allowed with clone; specify as argument instead"
-msgstr ""
-
-#: ../dgit:4785
-msgid "incorrect arguments to dgit clone"
-msgstr ""
-
-#: ../dgit:4791 ../git-debrebase:1839
-#, perl-format
-msgid "%s already exists"
-msgstr ""
-
-#: ../dgit:4805
-#, perl-format
-msgid "remove %s: %s\n"
-msgstr ""
-
-#: ../dgit:4809
-#, perl-format
-msgid "check whether to remove %s: %s\n"
-msgstr ""
-
-#: ../dgit:4847
-msgid "incorrect arguments to dgit fetch or dgit pull"
-msgstr ""
-
-#: ../dgit:4864
-#, perl-format
-msgid "dgit pull not yet supported in split view mode (--quilt=%s)\n"
-msgstr ""
-
-#: ../dgit:4873
-msgid "dgit checkout needs a suite argument"
-msgstr ""
-
-#: ../dgit:4935
-#, perl-format
-msgid "setting up vcs-git: %s\n"
-msgstr ""
-
-#: ../dgit:4938
-#, perl-format
-msgid "vcs git already configured: %s\n"
-msgstr ""
-
-#: ../dgit:4940
-#, perl-format
-msgid "changing vcs-git url to: %s\n"
-msgstr ""
-
-#: ../dgit:4945
-#, perl-format
-msgid "fetching (%s)\n"
-msgstr ""
-
-#: ../dgit:4960
-#, perl-format
-msgid "incorrect arguments to dgit %s"
-msgstr ""
-
-#: ../dgit:4971
-#, perl-format
-msgid "dgit %s: changelog specifies %s (%s) but command line specifies %s"
-msgstr ""
-
-#: ../dgit:5009
-#, perl-format
-msgid ""
-"build host has dgit rpush protocol versions %s but invocation host has %s"
-msgstr ""
-
-#: ../dgit:5089
-#, perl-format
-msgid "create %s: %s"
-msgstr ""
-
-#: ../dgit:5126
-#, perl-format
-msgid "build host child failed: %s"
-msgstr ""
-
-#: ../dgit:5129
-msgid "all done\n"
-msgstr ""
-
-#: ../dgit:5138
-#, perl-format
-msgid "file %s (%s) twice"
-msgstr ""
-
-#: ../dgit:5146
-msgid "bad param spec"
-msgstr ""
-
-#: ../dgit:5152
-msgid "bad previously spec"
-msgstr ""
-
-#: ../dgit:5171
-#, perl-format
-msgid ""
-"rpush negotiated protocol version %s which does not support quilt mode %s"
-msgstr ""
-
-#: ../dgit:5216
-#, perl-format
-msgid "buildinfo mismatch in field %s"
-msgstr ""
-
-#: ../dgit:5219
-#, perl-format
-msgid "buildinfo contains forbidden field %s"
-msgstr ""
-
-#: ../dgit:5260
-msgid "remote changes file"
-msgstr ""
-
-#: ../dgit:5335
-msgid "not a plain file or symlink\n"
-msgstr ""
-
-#: ../dgit:5341
-msgid "mode or type changed\n"
-msgstr ""
-
-#: ../dgit:5342
-msgid "modified symlink\n"
-msgstr ""
-
-#: ../dgit:5345
-msgid "deletion of symlink\n"
-msgstr ""
-
-#: ../dgit:5349
-msgid "creation with non-default mode\n"
-msgstr ""
-
-#: ../dgit:5379
-msgid "dgit view: changes are required..."
-msgstr ""
-
-#: ../dgit:5408
-#, perl-format
-msgid ""
-"\n"
-"For full diff showing the problem(s), type:\n"
-" %s\n"
-msgstr ""
-
-#: ../dgit:5415
-#, perl-format
-msgid ""
-"--quilt=%s specified, implying patches-unapplied git tree\n"
-" but git tree differs from orig in upstream files."
-msgstr ""
-
-#: ../dgit:5421
-msgid ""
-"\n"
-" ... debian/patches is missing; perhaps this is a patch queue branch?"
-msgstr ""
-
-#: ../dgit:5428
-#, perl-format
-msgid ""
-"--quilt=%s specified, implying patches-applied git tree\n"
-" but git tree differs from result of applying debian/patches to upstream\n"
-msgstr ""
-
-#: ../dgit:5435
-msgid "dgit view: creating patches-applied version using gbp pq"
-msgstr ""
-
-#: ../dgit:5444
-#, perl-format
-msgid ""
-"--quilt=%s specified, implying that HEAD is for use with a\n"
-" tool which does not create patches for changes to upstream\n"
-" .gitignores: but, such patches exist in debian/patches.\n"
-msgstr ""
-
-#: ../dgit:5453
-msgid "dgit view: creating patch to represent .gitignore changes"
-msgstr ""
-
-#: ../dgit:5458
-#, perl-format
-msgid "%s already exists; but want to create it to record .gitignore changes"
-msgstr ""
-
-#: ../dgit:5463
-msgid ""
-"Subject: Update .gitignore from Debian packaging branch\n"
-"\n"
-"The Debian packaging git branch contains these updates to the upstream\n"
-".gitignore file(s). This patch is autogenerated, to provide these\n"
-"updates to users of the official Debian archive view of the package.\n"
-msgstr ""
-
-#: ../dgit:5485
-msgid "Commit patch to update .gitignore\n"
-msgstr ""
-
-#: ../dgit:5499
-msgid "converted"
-msgstr ""
-
-#: ../dgit:5500
-#, perl-format
-msgid "dgit view: created (%s)"
-msgstr ""
-
-#: ../dgit:5565
+#: ../dgit:5650
msgid "maximum search space exceeded"
msgstr ""
-#: ../dgit:5583
+#: ../dgit:5668
#, perl-format
msgid "has %s not %s"
msgstr ""
-#: ../dgit:5592
+#: ../dgit:5677
msgid "root commit"
msgstr ""
-#: ../dgit:5598
+#: ../dgit:5683
#, perl-format
msgid "merge (%s nontrivial parents)"
msgstr ""
-#: ../dgit:5610
+#: ../dgit:5695
#, perl-format
msgid "changed %s"
msgstr ""
-#: ../dgit:5629
+#: ../dgit:5714
#, perl-format
msgid ""
"\n"
"%s: error: quilt fixup cannot be linear. Stopped at:\n"
msgstr ""
-#: ../dgit:5636
+#: ../dgit:5721
#, perl-format
msgid "%s: %s: %s\n"
msgstr ""
-#: ../dgit:5648
+#: ../dgit:5733
msgid "quilt history linearisation failed. Search `quilt fixup' in dgit(7).\n"
msgstr ""
-#: ../dgit:5651
+#: ../dgit:5736
msgid "quilt fixup cannot be linear, smashing..."
msgstr ""
-#: ../dgit:5663
+#: ../dgit:5748
#, perl-format
msgid ""
"Automatically generated patch (%s)\n"
"\n"
msgstr ""
-#: ../dgit:5670
+#: ../dgit:5755
msgid "quiltify linearisation planning successful, executing..."
msgstr ""
-#: ../dgit:5704
+#: ../dgit:5789
msgid "contains unexpected slashes\n"
msgstr ""
-#: ../dgit:5705
+#: ../dgit:5790
msgid "contains leading punctuation\n"
msgstr ""
-#: ../dgit:5706
+#: ../dgit:5791
msgid "contains bad character(s)\n"
msgstr ""
-#: ../dgit:5707
+#: ../dgit:5792
msgid "is series file\n"
msgstr ""
-#: ../dgit:5708
+#: ../dgit:5793
msgid "too long\n"
msgstr ""
-#: ../dgit:5712
+#: ../dgit:5797
#, perl-format
msgid "quiltifying commit %s: ignoring/dropping Gbp-Pq %s: %s"
msgstr ""
-#: ../dgit:5741
+#: ../dgit:5826
#, perl-format
msgid "dgit: patch title transliteration error: %s"
msgstr ""
-#: ../dgit:5884
+#: ../dgit:5909
+#, perl-format
+msgid ""
+"quilt mode %s does not make sense (or is not supported) with single-debian-"
+"patch"
+msgstr ""
+
+#: ../dgit:5927
+msgid "converted"
+msgstr ""
+
+#: ../dgit:5928
+#, perl-format
+msgid "dgit view: created (%s)"
+msgstr ""
+
+#: ../dgit:5982
msgid "Commit removal of .pc (quilt series tracking data)\n"
msgstr ""
-#: ../dgit:5894
+#: ../dgit:5992
msgid "starting quiltify (single-debian-patch)"
msgstr ""
-#: ../dgit:5996
+#: ../dgit:6102
#, perl-format
msgid "dgit: split brain (separate dgit view) may be needed (--quilt=%s)."
msgstr ""
-#: ../dgit:6027
+#: ../dgit:6134
#, perl-format
msgid "dgit view: found cached (%s)"
msgstr ""
-#: ../dgit:6032
+#: ../dgit:6139
msgid "dgit view: found cached, no changes required"
msgstr ""
-#: ../dgit:6043
+#: ../dgit:6174
#, perl-format
msgid "examining quilt state (multiple patches, %s mode)"
msgstr ""
-#: ../dgit:6134
+#: ../dgit:6288
msgid ""
"failed to apply your git tree's patch stack (from debian/patches/) to\n"
" the corresponding upstream tarball(s). Your source tree and .orig\n"
" anomaly (depending on the quilt mode). Please see --quilt= in dgit(1).\n"
msgstr ""
-#: ../dgit:6148
+#: ../dgit:6302
msgid "Tree already contains .pc - will use it then delete it."
msgstr ""
-#: ../dgit:6185
+#: ../dgit:6336
+msgid "baredebian quilt fixup: could not find any origs"
+msgstr ""
+
+#: ../dgit:6349
+msgid "tarball"
+msgstr ""
+
+#: ../dgit:6367
+#, perl-format
+msgid "Combine orig tarballs for %s %s"
+msgstr ""
+
+#: ../dgit:6383
+msgid "tarballs"
+msgstr ""
+
+#: ../dgit:6397
+msgid "upstream"
+msgstr ""
+
+#: ../dgit:6421
#, perl-format
msgid "%s: base trees orig=%.20s o+d/p=%.20s"
msgstr ""
-#: ../dgit:6188
+#: ../dgit:6431
#, perl-format
msgid ""
"%s: quilt differences: src: %s orig %s gitignores: %s orig %s\n"
-"%s: quilt differences: HEAD %s o+d/p HEAD %s o+d/p"
+"%s: quilt differences: %9.00009s %s o+d/p %9.00009s %s o+d/p"
msgstr ""
-#: ../dgit:6194
+#: ../dgit:6440
#, perl-format
msgid "dgit: cannot represent change: %s: %s\n"
msgstr ""
-#: ../dgit:6198
+#: ../dgit:6444
msgid ""
"HEAD has changes to .orig[s] which are not representable by `3.0 (quilt)'\n"
msgstr ""
-#: ../dgit:6205
+#: ../dgit:6451
+msgid ""
+"This has only a debian/ directory; you probably want --quilt=bare debian."
+msgstr ""
+
+#: ../dgit:6455
msgid "This might be a patches-unapplied branch."
msgstr ""
-#: ../dgit:6208
+#: ../dgit:6458
msgid "This might be a patches-applied branch."
msgstr ""
-#: ../dgit:6211
+#: ../dgit:6461
msgid "Maybe you need one of --[quilt=]gbp --[quilt=]dpm --quilt=unapplied ?"
msgstr ""
-#: ../dgit:6214
+#: ../dgit:6464
msgid "Warning: Tree has .gitattributes. See GITATTRIBUTES in dgit(7)."
msgstr ""
-#: ../dgit:6218
+#: ../dgit:6468
msgid "Maybe orig tarball(s) are not identical to git representation?"
msgstr ""
-#: ../dgit:6227
+#: ../dgit:6479
#, perl-format
msgid "starting quiltify (multiple patches, %s mode)"
msgstr ""
-#: ../dgit:6265
+#: ../dgit:6518
msgid ""
"\n"
"dgit: Building, or cleaning with rules target, in patches-unapplied tree.\n"
"\n"
msgstr ""
-#: ../dgit:6277
+#: ../dgit:6530
msgid "dgit: Unapplying patches again to tidy up the tree."
msgstr ""
-#: ../dgit:6306
+#: ../dgit:6559
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"
"or --clean=git (-wg/-wgf) to use `git clean' instead.\n"
msgstr ""
-#: ../dgit:6318
+#: ../dgit:6571
msgid "tree contains uncommitted files and --clean=check specified"
msgstr ""
-#: ../dgit:6321
+#: ../dgit:6574
msgid "tree contains uncommitted files (NB dgit didn't run rules clean)"
msgstr ""
-#: ../dgit:6324
+#: ../dgit:6577
msgid ""
"tree contains uncommited, untracked, unignored files\n"
"You can use --clean=git[-ff],always (-wga/-wgfa) to delete them."
msgstr ""
-#: ../dgit:6342
+#: ../dgit:6590
+#, perl-format
+msgid ""
+"quilt mode %s (generally needs untracked upstream files)\n"
+"contradicts clean mode %s (which would delete them)\n"
+msgstr ""
+
+#: ../dgit:6607
msgid "tree contains uncommitted files (after running rules clean)"
msgstr ""
-#: ../dgit:6356
+#: ../dgit:6621
msgid "clean takes no additional arguments"
msgstr ""
-#: ../dgit:6369
+#: ../dgit:6640
+#, perl-format
+msgid "-p specified package %s, but changelog says %s"
+msgstr ""
+
+#: ../dgit:6650
+msgid ""
+"dgit: --include-dirty is not supported with split view (including with view-"
+"splitting quilt modes)"
+msgstr ""
+
+#: ../dgit:6659
#, perl-format
-msgid "-p is not allowed with dgit %s"
+msgid "dgit: --quilt=%s, %s"
+msgstr ""
+
+#: ../dgit:6663
+msgid "dgit: --upstream-commitish only makes sense with --quilt=baredebian"
msgstr ""
-#: ../dgit:6408
+#: ../dgit:6698
#, perl-format
msgid "remove old changes file %s: %s"
msgstr ""
-#: ../dgit:6410
+#: ../dgit:6700
#, perl-format
msgid "would remove %s"
msgstr ""
-#: ../dgit:6436
+#: ../dgit:6718
+#, perl-format
+msgid "warning: dgit option %s must be passed before %s on dgit command line\n"
+msgstr ""
+
+#: ../dgit:6725
+#, perl-format
+msgid ""
+"warning: option %s should probably be passed to dgit before %s sub-command "
+"on the dgit command line, so that it is seen by dgit and not simply passed "
+"to %s\n"
+msgstr ""
+
+#: ../dgit:6751
msgid "archive query failed (queried because --since-version not specified)"
msgstr ""
-#: ../dgit:6442
+#: ../dgit:6757
#, perl-format
msgid "changelog will contain changes since %s"
msgstr ""
-#: ../dgit:6445
+#: ../dgit:6760
msgid "package seems new, not specifying -v<version>"
msgstr ""
-#: ../dgit:6488
+#: ../dgit:6803
msgid "Wanted to build nothing!"
msgstr ""
-#: ../dgit:6526
+#: ../dgit:6841
#, perl-format
msgid "only one changes file from build (%s)\n"
msgstr ""
-#: ../dgit:6533
+#: ../dgit:6848
#, perl-format
msgid "%s found in binaries changes file %s"
msgstr ""
-#: ../dgit:6540
+#: ../dgit:6855
#, perl-format
msgid "%s unexpectedly not created by build"
msgstr ""
-#: ../dgit:6544
+#: ../dgit:6859
#, perl-format
msgid "install new changes %s{,.inmulti}: %s"
msgstr ""
-#: ../dgit:6549
+#: ../dgit:6864
#, perl-format
msgid "wrong number of different changes files (%s)"
msgstr ""
-#: ../dgit:6552
+#: ../dgit:6867
#, perl-format
msgid "build successful, results in %s\n"
msgstr ""
-#: ../dgit:6565
+#: ../dgit:6880
#, perl-format
msgid ""
"changes files other than source matching %s already present; building would "
"Suggest you delete %s.\n"
msgstr ""
-#: ../dgit:6583
+#: ../dgit:6898
msgid "build successful\n"
msgstr ""
-#: ../dgit:6590
+#: ../dgit:6906
#, perl-format
msgid ""
"%s: warning: build-products-dir set, but not supported by dpkg-buildpackage\n"
"%s: warning: build-products-dir will be ignored; files will go to ..\n"
msgstr ""
-#: ../dgit:6700
+#: ../dgit:7017
#, perl-format
msgid "remove %s: %s"
msgstr ""
-#: ../dgit:6735
+#: ../dgit:7054
msgid "--include-dirty not supported with --build-products-dir, sorry"
msgstr ""
-#: ../dgit:6755
+#: ../dgit:7074
#, perl-format
msgid "put in place new built file (%s): %s"
msgstr ""
-#: ../dgit:6768
+#: ../dgit:7087
msgid "build-source takes no additional arguments"
msgstr ""
-#: ../dgit:6772
+#: ../dgit:7091
#, perl-format
msgid "source built, results in %s and %s"
msgstr ""
-#: ../dgit:6779
+#: ../dgit:7098
msgid ""
"dgit push-source: --include-dirty/--ignore-dirty does not makesense with "
"push-source!"
msgstr ""
-#: ../dgit:6785
+#: ../dgit:7104
msgid "source changes file"
msgstr ""
-#: ../dgit:6787
+#: ../dgit:7106
msgid "user-specified changes file is not source-only"
msgstr ""
-#: ../dgit:6807 ../dgit:6809
+#: ../dgit:7126 ../dgit:7128
#, perl-format
msgid "%s (in build products dir): %s"
msgstr ""
-#: ../dgit:6822
+#: ../dgit:7142
msgid ""
"perhaps you need to pass -A ? (sbuild's default is to build only\n"
"arch-specific binaries; dgit 1.4 used to override that.)\n"
msgstr ""
-#: ../dgit:6834
+#: ../dgit:7155
msgid ""
"you asked for a builder but your debbuildopts didn't ask for any binaries -- "
"is this really what you meant?"
msgstr ""
-#: ../dgit:6838
+#: ../dgit:7159
msgid ""
"we must build a .dsc to pass to the builder but your debbuiltopts forbids "
"the building of a source package; cannot continue"
msgstr ""
-#: ../dgit:6868
+#: ../dgit:7189
msgid "incorrect arguments to dgit print-unapplied-treeish"
msgstr ""
-#: ../dgit:6890
+#: ../dgit:7210
msgid "source tree"
msgstr ""
-#: ../dgit:6892
+#: ../dgit:7212
#, perl-format
msgid "dgit: import-dsc: %s"
msgstr ""
-#: ../dgit:6905
+#: ../dgit:7225
#, perl-format
msgid "unknown dgit import-dsc sub-option `%s'"
msgstr ""
-#: ../dgit:6909
+#: ../dgit:7229
msgid "usage: dgit import-dsc .../PATH/TO/.DSC BRANCH"
msgstr ""
-#: ../dgit:6913
+#: ../dgit:7233
msgid "dry run makes no sense with import-dsc"
msgstr ""
-#: ../dgit:6930
+#: ../dgit:7250
#, perl-format
msgid "%s is checked out - will not update it"
msgstr ""
-#: ../dgit:6935
+#: ../dgit:7255
#, perl-format
msgid "open import .dsc (%s): %s"
msgstr ""
-#: ../dgit:6937
+#: ../dgit:7257
#, perl-format
msgid "read %s: %s"
msgstr ""
-#: ../dgit:6948
+#: ../dgit:7268
msgid "import-dsc signature check failed"
msgstr ""
-#: ../dgit:6951
+#: ../dgit:7271
#, perl-format
msgid "%s: warning: importing unsigned .dsc\n"
msgstr ""
-#: ../dgit:6962
+#: ../dgit:7282
msgid "Dgit metadata in .dsc"
msgstr ""
-#: ../dgit:6973
+#: ../dgit:7293
msgid "dgit: import-dsc of .dsc with Dgit field, using git hash"
msgstr ""
-#: ../dgit:6982
+#: ../dgit:7302
#, perl-format
msgid ""
".dsc contains Dgit field referring to object %s\n"
"plausible server (browse.dgit.d.o? salsa?), and try the import-dsc again.\n"
msgstr ""
-#: ../dgit:6989
+#: ../dgit:7309
msgid "Not fast forward, forced update."
msgstr ""
-#: ../dgit:6991
+#: ../dgit:7311
#, perl-format
msgid "Not fast forward to %s"
msgstr ""
-#: ../dgit:6996
+#: ../dgit:7316
#, perl-format
msgid "updated git ref %s"
msgstr ""
-#: ../dgit:7001
+#: ../dgit:7321
#, perl-format
msgid ""
"Branch %s already exists\n"
"Specify +%s to overwrite, discarding existing history\n"
msgstr ""
-#: ../dgit:7021
+#: ../dgit:7341
#, perl-format
msgid "lstat %s works but stat gives %s !"
msgstr ""
-#: ../dgit:7023
+#: ../dgit:7343
#, perl-format
msgid "stat %s: %s"
msgstr ""
-#: ../dgit:7031
+#: ../dgit:7351
#, perl-format
msgid "import %s requires %s, but: %s"
msgstr ""
-#: ../dgit:7050
+#: ../dgit:7370
#, perl-format
msgid "cannot import %s which seems to be inside working tree!"
msgstr ""
-#: ../dgit:7054
+#: ../dgit:7374
#, perl-format
msgid "symlink %s to %s: %s"
msgstr ""
-#: ../dgit:7055
+#: ../dgit:7375
#, perl-format
msgid "made symlink %s -> %s"
msgstr ""
-#: ../dgit:7066
+#: ../dgit:7386
msgid "Import, forced update - synthetic orphan git history."
msgstr ""
-#: ../dgit:7068
+#: ../dgit:7388
msgid "Import, merging."
msgstr ""
-#: ../dgit:7082
+#: ../dgit:7402
#, perl-format
msgid "Merge %s (%s) import into %s\n"
msgstr ""
-#: ../dgit:7091
+#: ../dgit:7411
#, perl-format
msgid "results are in git ref %s"
msgstr ""
-#: ../dgit:7098
+#: ../dgit:7418
msgid "need only 1 subpath argument"
msgstr ""
-#: ../dgit:7104
-#, perl-format
-msgid "exec curl: %s\n"
-msgstr ""
-
-#: ../dgit:7118
+#: ../dgit:7436
msgid "need destination argument"
msgstr ""
-#: ../dgit:7123
+#: ../dgit:7441
#, perl-format
msgid "exec git clone: %s\n"
msgstr ""
-#: ../dgit:7131
+#: ../dgit:7449
msgid "no arguments allowed to dgit print-dgit-repos-server-source-url"
msgstr ""
-#: ../dgit:7142
+#: ../dgit:7460
msgid "no arguments allowed to dgit print-dpkg-source-ignores"
msgstr ""
-#: ../dgit:7148
+#: ../dgit:7466
msgid "no arguments allowed to dgit setup-mergechangelogs"
msgstr ""
-#: ../dgit:7155 ../dgit:7161
+#: ../dgit:7473 ../dgit:7479
msgid "no arguments allowed to dgit setup-useremail"
msgstr ""
-#: ../dgit:7167
+#: ../dgit:7485
msgid "no arguments allowed to dgit setup-tree"
msgstr ""
-#: ../dgit:7214
+#: ../dgit:7532
msgid ""
"--initiator-tempdir must be used specify an absolute, not relative, "
"directory."
msgstr ""
-#: ../dgit:7253
+#: ../dgit:7571
#, perl-format
msgid "%s needs a value"
msgstr ""
-#: ../dgit:7257
+#: ../dgit:7575
#, perl-format
msgid "bad value `%s' for %s"
msgstr ""
-#: ../dgit:7348
+#: ../dgit:7675
#, perl-format
msgid "%s: warning: ignoring unknown force option %s\n"
msgstr ""
-#: ../dgit:7368
+#: ../dgit:7693
#, perl-format
msgid "unknown long option `%s'"
msgstr ""
-#: ../dgit:7423
+#: ../dgit:7748
#, perl-format
msgid "unknown short option `%s'"
msgstr ""
-#: ../dgit:7438
+#: ../dgit:7763
#, perl-format
msgid "%s is set to something other than SIG_DFL\n"
msgstr ""
-#: ../dgit:7442
+#: ../dgit:7767
#, perl-format
msgid "%s is blocked\n"
msgstr ""
-#: ../dgit:7448
+#: ../dgit:7773
#, perl-format
msgid ""
"On entry to dgit, %s\n"
"Giving up.\n"
msgstr ""
-#: ../dgit:7465
+#: ../dgit:7790
#, perl-format
msgid "cannot set command for %s"
msgstr ""
-#: ../dgit:7478
+#: ../dgit:7803
#, perl-format
msgid "cannot configure options for %s"
msgstr ""
-#: ../dgit:7498
+#: ../dgit:7823
#, perl-format
msgid "unknown quilt-mode `%s'"
msgstr ""
-#: ../dgit:7508
+#: ../dgit:7834
#, perl-format
msgid "unknown %s setting `%s'"
msgstr ""
-#: ../dgit:7513
-msgid "dgit: --include-dirty is not supported in split view quilt mode"
-msgstr ""
-
-#: ../dgit:7524
-#, perl-format
-msgid "unknown clean-mode `%s'"
-msgstr ""
-
-#: ../dgit:7545
+#: ../dgit:7862
msgid "DRY RUN ONLY\n"
msgstr ""
-#: ../dgit:7546
+#: ../dgit:7863
msgid "DAMP RUN - WILL MAKE LOCAL (UNSIGNED) CHANGES\n"
msgstr ""
-#: ../dgit:7565
+#: ../dgit:7882
#, perl-format
msgid "unknown operation %s"
msgstr ""
-#: ../git-debrebase:44
+#: ../git-debrebase:45
msgid ""
"usages:\n"
" git-debrebase [<options>] [--|-i <git rebase options...>]\n"
"See git-debrebase(1), git-debrebase(5), dgit-maint-debrebase(7) (in dgit).\n"
msgstr ""
-#: ../git-debrebase:67
+#: ../git-debrebase:68
#, perl-format
msgid "%s: bad usage: %s\n"
msgstr ""
-#: ../git-debrebase:78
+#: ../git-debrebase:79
#, perl-format
msgid "bad options follow `git-debrebase %s'"
msgstr ""
-#: ../git-debrebase:89
+#: ../git-debrebase:90
#, perl-format
msgid "missing required git config %s"
msgstr ""
-#: ../git-debrebase:401
+#: ../git-debrebase:363
#, perl-format
msgid "%s: snag ignored (-f%s): %s\n"
msgstr ""
-#: ../git-debrebase:404
+#: ../git-debrebase:366
#, perl-format
msgid "%s: snag detected (-f%s): %s\n"
msgstr ""
-#: ../git-debrebase:417
+#: ../git-debrebase:379
#, perl-format
msgid "%s: snags: %d overriden by individual -f options\n"
msgstr ""
-#: ../git-debrebase:423
+#: ../git-debrebase:385
#, perl-format
msgid "%s: snags: %d overriden by global --force\n"
msgstr ""
-#: ../git-debrebase:427
+#: ../git-debrebase:389
#, perl-format
msgid "%s: snags: %d blocker(s) (you could -f<tag>, or --force)"
msgstr ""
-#: ../git-debrebase:459
+#: ../git-debrebase:421
msgid ""
"Branch/history seems mangled - no longer in gdr format.\n"
"See ILLEGAL OPERATIONS in git-debrebase(5).\n"
msgstr ""
-#: ../git-debrebase:466
+#: ../git-debrebase:428
#, perl-format
msgid ""
"%s\n"
"Is this meant to be a gdr branch? %s\n"
msgstr ""
-#: ../git-debrebase:471
+#: ../git-debrebase:433
#, perl-format
msgid ""
"%s\n"
"Consider git-debrebase scrap, to throw away your recent work.\n"
msgstr ""
-#: ../git-debrebase:477
+#: ../git-debrebase:439
#, perl-format
msgid ""
"%s\n"
"Wrong branch, or maybe you needed git-debrebase convert-from-*.\n"
msgstr ""
-#: ../git-debrebase:488
+#: ../git-debrebase:450
#, perl-format
msgid ""
"%s\n"
"Maybe you reset to, or rebased from, somewhere inappropriate.\n"
msgstr ""
-#: ../git-debrebase:935
+#: ../git-debrebase:897
#, perl-format
msgid "git-debrebase `anchor' but %s"
msgstr ""
-#: ../git-debrebase:937
+#: ../git-debrebase:899
msgid "has other than two parents"
msgstr ""
-#: ../git-debrebase:938
+#: ../git-debrebase:900
msgid "contains debian/patches"
msgstr ""
-#: ../git-debrebase:964
+#: ../git-debrebase:926
msgid "is an origin commit"
msgstr ""
-#: ../git-debrebase:966
+#: ../git-debrebase:928
msgid "upstream files differ from left parent"
msgstr ""
-#: ../git-debrebase:968
+#: ../git-debrebase:930
msgid "debian/ differs from right parent"
msgstr ""
-#: ../git-debrebase:979
+#: ../git-debrebase:941
msgid "edits debian/patches"
msgstr ""
-#: ../git-debrebase:991
+#: ../git-debrebase:953
msgid "parent's debian is not a directory"
msgstr ""
-#: ../git-debrebase:998
+#: ../git-debrebase:960
msgid "no changes"
msgstr ""
-#: ../git-debrebase:1004
+#: ../git-debrebase:966
msgid "origin commit"
msgstr ""
-#: ../git-debrebase:1055
+#: ../git-debrebase:1017
#, perl-format
msgid "unknown kind of merge from %s"
msgstr ""
-#: ../git-debrebase:1058
+#: ../git-debrebase:1020
msgid "octopus merge"
msgstr ""
-#: ../git-debrebase:1062
+#: ../git-debrebase:1024
msgid "general two-parent merge"
msgstr ""
-#: ../git-debrebase:1079
+#: ../git-debrebase:1041
#, perl-format
msgid "inconsistent anchors in merged-breakwaters %s"
msgstr ""
-#: ../git-debrebase:1119
+#: ../git-debrebase:1081
#, perl-format
msgid "branch needs laundering (run git-debrebase): %s"
msgstr ""
-#: ../git-debrebase:1147
+#: ../git-debrebase:1109
#, perl-format
msgid "packaging change (%s) follows upstream change"
msgstr ""
-#: ../git-debrebase:1148
+#: ../git-debrebase:1110
#, perl-format
msgid " (eg %s)"
msgstr ""
-#: ../git-debrebase:1154
+#: ../git-debrebase:1116
msgid "found mixed upstream/packaging commit"
msgstr ""
-#: ../git-debrebase:1155 ../git-debrebase:1163 ../git-debrebase:1168
-#: ../git-debrebase:1173 ../git-debrebase:1179 ../git-debrebase:1187
+#: ../git-debrebase:1117 ../git-debrebase:1125 ../git-debrebase:1130
+#: ../git-debrebase:1135 ../git-debrebase:1141 ../git-debrebase:1149
#, perl-format
msgid " (%s)"
msgstr ""
-#: ../git-debrebase:1162
+#: ../git-debrebase:1124
#, perl-format
msgid "found interchange bureaucracy commit (%s)"
msgstr ""
-#: ../git-debrebase:1167
+#: ../git-debrebase:1129
msgid "found dgit dsc import"
msgstr ""
-#: ../git-debrebase:1172
+#: ../git-debrebase:1134
msgid "found bare dgit dsc import with no prior history"
msgstr ""
-#: ../git-debrebase:1178
+#: ../git-debrebase:1140
msgid "found vanilla merge"
msgstr ""
-#: ../git-debrebase:1185
+#: ../git-debrebase:1147
#, perl-format
msgid "found unprocessable commit, cannot cope: %s"
msgstr ""
-#: ../git-debrebase:1253
+#: ../git-debrebase:1215
#, perl-format
msgid "found unprocessable commit, cannot cope; %3$s: (commit %1$s) (d.%2$s)"
msgstr ""
-#: ../git-debrebase:1254
+#: ../git-debrebase:1216
#, perl-format
msgid "found unprocessable commit, cannot cope: (commit %1$s) (d.%2$s)"
msgstr ""
-#: ../git-debrebase:1375
+#: ../git-debrebase:1337
msgid "bare dgit dsc import"
msgstr ""
-#: ../git-debrebase:1715 ../git-debrebase:1718
+#: ../git-debrebase:1677 ../git-debrebase:1680
#, perl-format
msgid "mismatch %s ?"
msgstr ""
-#: ../git-debrebase:1721
+#: ../git-debrebase:1683
#, perl-format
msgid "mismatch %s != %s ?"
msgstr ""
-#: ../git-debrebase:1731
+#: ../git-debrebase:1693
#, perl-format
msgid "internal error %#x %s %s"
msgstr ""
-#: ../git-debrebase:1759
+#: ../git-debrebase:1721
#, perl-format
msgid "%s: laundered (head was %s)\n"
msgstr ""
-#: ../git-debrebase:1773
+#: ../git-debrebase:1735
msgid "you are in the middle of a git-rebase already"
msgstr ""
-#: ../git-debrebase:1799
+#: ../git-debrebase:1761
msgid "launder for rebase"
msgstr ""
-#: ../git-debrebase:1804
+#: ../git-debrebase:1766
msgid "analyse does not support any options"
msgstr ""
-#: ../git-debrebase:1806
+#: ../git-debrebase:1768
msgid "too many arguments to analyse"
msgstr ""
-#: ../git-debrebase:1841
+#: ../git-debrebase:1801
+#, perl-format
+msgid "%s already exists"
+msgstr ""
+
+#: ../git-debrebase:1803
msgid "HEAD symref is not to refs/heads/"
msgstr ""
-#: ../git-debrebase:1864
+#: ../git-debrebase:1826
#, perl-format
msgid "OK, you are ahead of %s\n"
msgstr ""
-#: ../git-debrebase:1868
+#: ../git-debrebase:1830
#, perl-format
msgid "you are behind %s, divergence risk"
msgstr ""
-#: ../git-debrebase:1872
+#: ../git-debrebase:1834
#, perl-format
msgid "you have diverged from %s"
msgstr ""
-#: ../git-debrebase:1894
+#: ../git-debrebase:1856
msgid "remote dgit branch"
msgstr ""
-#: ../git-debrebase:1897
+#: ../git-debrebase:1859
msgid "remote dgit branch for sid"
msgstr ""
-#: ../git-debrebase:1925
+#: ../git-debrebase:1887
msgid "Recorded previous head for preservation"
msgstr ""
-#: ../git-debrebase:1933
+#: ../git-debrebase:1895
#, perl-format
msgid "could not record ffq-prev: %s"
msgstr ""
-#: ../git-debrebase:1944
+#: ../git-debrebase:1906
#, perl-format
msgid "could not check ffq-prev: %s"
msgstr ""
-#: ../git-debrebase:1964
+#: ../git-debrebase:1926
msgid "fast forward"
msgstr ""
-#: ../git-debrebase:1974
+#: ../git-debrebase:1936
msgid "Declare fast forward / record previous work"
msgstr ""
-#: ../git-debrebase:1986
+#: ../git-debrebase:1948
msgid "No ffq-prev to stitch."
msgstr ""
-#: ../git-debrebase:2017
-#, perl-format
-msgid ""
-"Could not determine appropriate upstream commitish.\n"
-" (Tried these tags: %s)\n"
-" Check version, and specify upstream commitish explicitly."
-msgstr ""
-
-#: ../git-debrebase:2036
+#: ../git-debrebase:1965
msgid "need NEW-VERSION [UPS-COMMITTISH]"
msgstr ""
-#: ../git-debrebase:2041
+#: ../git-debrebase:1970
#, perl-format
msgid "bad version number `%s'"
msgstr ""
-#: ../git-debrebase:2059
+#: ../git-debrebase:1988
#, perl-format
msgid "upstream piece `%s'"
msgstr ""
-#: ../git-debrebase:2060
+#: ../git-debrebase:1989
msgid "upstream (main piece"
msgstr ""
-#: ../git-debrebase:2080
+#: ../git-debrebase:2009
msgid "for each EXTRA-UPS-NAME need EXTRA-UPS-COMMITISH"
msgstr ""
-#: ../git-debrebase:2098
+#: ../git-debrebase:2027
msgid "old anchor is recognised due to --anchor, cannot check upstream"
msgstr ""
-#: ../git-debrebase:2114
+#: ../git-debrebase:2043
#, perl-format
msgid ""
"previous upstream combine %s mentions %d pieces (each implying one parent) "
"but has %d parents (one per piece plus maybe a previous combine)"
msgstr ""
-#: ../git-debrebase:2123
+#: ../git-debrebase:2052
#, perl-format
msgid "previous upstream combine %s first piece is not `.'"
msgstr ""
-#: ../git-debrebase:2136
+#: ../git-debrebase:2065
#, perl-format
msgid ""
"previous upstream %s is from git-debrebase but not an `upstream-combine' "
"commit"
msgstr ""
-#: ../git-debrebase:2147
+#: ../git-debrebase:2076
#, perl-format
msgid "introducing upstream piece `%s'"
msgstr ""
-#: ../git-debrebase:2150
+#: ../git-debrebase:2079
#, perl-format
msgid "dropping upstream piece `%s'"
msgstr ""
-#: ../git-debrebase:2153
+#: ../git-debrebase:2082
#, perl-format
msgid "not fast forward: %s %s"
msgstr ""
-#: ../git-debrebase:2264
+#: ../git-debrebase:2193
msgid "Previous head already recorded\n"
msgstr ""
-#: ../git-debrebase:2268
+#: ../git-debrebase:2197
#, perl-format
msgid "Could not preserve: %s"
msgstr ""
-#: ../git-debrebase:2273 ../git-debrebase:2279 ../git-debrebase:2285
-#: ../git-debrebase:2375 ../git-debrebase:2384 ../git-debrebase:2408
-#: ../git-debrebase:2472
+#: ../git-debrebase:2202 ../git-debrebase:2208 ../git-debrebase:2214
+#: ../git-debrebase:2304 ../git-debrebase:2313 ../git-debrebase:2337
+#: ../git-debrebase:2401
msgid "no arguments allowed"
msgstr ""
-#: ../git-debrebase:2307
+#: ../git-debrebase:2236
msgid "branch contains furniture (not laundered)"
msgstr ""
-#: ../git-debrebase:2308
+#: ../git-debrebase:2237
msgid "branch is unlaundered"
msgstr ""
-#: ../git-debrebase:2309
+#: ../git-debrebase:2238
msgid "branch needs laundering"
msgstr ""
-#: ../git-debrebase:2310
+#: ../git-debrebase:2239
msgid "branch not in git-debrebase form"
msgstr ""
-#: ../git-debrebase:2320
+#: ../git-debrebase:2249
msgid "current branch contents, in git-debrebase terms:\n"
msgstr ""
-#: ../git-debrebase:2322
+#: ../git-debrebase:2251
msgid " branch is laundered\n"
msgstr ""
-#: ../git-debrebase:2338
+#: ../git-debrebase:2267
#, perl-format
msgid " %s is not well-defined\n"
msgstr ""
-#: ../git-debrebase:2344
+#: ../git-debrebase:2273
msgid "key git-debrebase commits:\n"
msgstr ""
-#: ../git-debrebase:2345
+#: ../git-debrebase:2274
msgid "anchor"
msgstr ""
-#: ../git-debrebase:2346
+#: ../git-debrebase:2275
msgid "breakwater"
msgstr ""
-#: ../git-debrebase:2351
+#: ../git-debrebase:2280
msgid "branch and ref status, in git-debrebase terms:\n"
msgstr ""
-#: ../git-debrebase:2358
+#: ../git-debrebase:2287
msgid " unstitched; previous tip was:\n"
msgstr ""
-#: ../git-debrebase:2361
+#: ../git-debrebase:2290
msgid " stitched? (no record of git-debrebase work)\n"
msgstr ""
-#: ../git-debrebase:2363
+#: ../git-debrebase:2292
msgid " stitched\n"
msgstr ""
-#: ../git-debrebase:2365
+#: ../git-debrebase:2294
msgid " not git-debrebase (diverged since last stitch)\n"
msgstr ""
-#: ../git-debrebase:2368
+#: ../git-debrebase:2297
msgid "you are currently rebasing\n"
msgstr ""
-#: ../git-debrebase:2385 ../git-debrebase:2398
+#: ../git-debrebase:2314 ../git-debrebase:2327
msgid "launder for git-debrebase quick"
msgstr ""
-#: ../git-debrebase:2392 ../git-debrebase:2422
+#: ../git-debrebase:2321 ../git-debrebase:2351
msgid "No ongoing git-debrebase session."
msgstr ""
-#: ../git-debrebase:2461
+#: ../git-debrebase:2390
msgid "Commit patch queue (exported by git-debrebase)"
msgstr ""
-#: ../git-debrebase:2478
+#: ../git-debrebase:2407
msgid "No (more) patches to export."
msgstr ""
-#: ../git-debrebase:2485
+#: ../git-debrebase:2414
#, perl-format
msgid ""
"Patch export produced patch amendments (abandoned output commit %s). Try "
"laundering first."
msgstr ""
-#: ../git-debrebase:2505
+#: ../git-debrebase:2434
#, perl-format
msgid "%s contains comments, which will be discarded"
msgstr ""
-#: ../git-debrebase:2510
+#: ../git-debrebase:2439
#, perl-format
msgid "patch %s repeated in %s !"
msgstr ""
-#: ../git-debrebase:2517
+#: ../git-debrebase:2446
#, perl-format
msgid "Unused patch file %s will be discarded"
msgstr ""
-#: ../git-debrebase:2525
+#: ../git-debrebase:2454
msgid "ffq-prev exists, this is already managed by git-debrebase!"
msgstr ""
-#: ../git-debrebase:2530
+#: ../git-debrebase:2459
msgid "ahead of debrebase-last, this is already managed by git-debrebase!"
msgstr ""
-#: ../git-debrebase:2546
+#: ../git-debrebase:2475
msgid "want only 1 optional argument, the upstream git commitish"
msgstr ""
-#: ../git-debrebase:2551
+#: ../git-debrebase:2480
msgid "missing Version from changelog\n"
msgstr ""
-#: ../git-debrebase:2567
+#: ../git-debrebase:2496
#, perl-format
msgid ""
"upstream (%s) and HEAD are not\n"
" git diff %s HEAD -- :!/debian :/\n"
msgstr ""
-#: ../git-debrebase:2575
+#: ../git-debrebase:2504
#, perl-format
msgid "upstream (%s) is not an ancestor of HEAD"
msgstr ""
-#: ../git-debrebase:2582
+#: ../git-debrebase:2511
#, perl-format
msgid ""
"history between upstream (%s) and HEAD contains direct changes to upstream "
"files - are you sure this is a gbp (patches-unapplied) branch?"
msgstr ""
-#: ../git-debrebase:2584
+#: ../git-debrebase:2513
#, perl-format
msgid "list expected changes with: %s\n"
msgstr ""
-#: ../git-debrebase:2591
+#: ../git-debrebase:2520
#, perl-format
msgid "upstream (%s) contains debian/ directory"
msgstr ""
-#: ../git-debrebase:2609
+#: ../git-debrebase:2538
msgid "neither of the first two changelog entries are released\n"
msgstr ""
-#: ../git-debrebase:2615
+#: ../git-debrebase:2544
#, perl-format
msgid "could not find suitable maintainer view tag %s\n"
msgstr ""
-#: ../git-debrebase:2618
+#: ../git-debrebase:2547
#, perl-format
msgid "HEAD is not FF from maintainer tag %s!"
msgstr ""
-#: ../git-debrebase:2621
+#: ../git-debrebase:2550
#, perl-format
msgid "dgit view tag %s not found\n"
msgstr ""
-#: ../git-debrebase:2623
+#: ../git-debrebase:2552
#, perl-format
msgid "dgit view tag %s is not FF from maintainer tag %s\n"
msgstr ""
-#: ../git-debrebase:2625
+#: ../git-debrebase:2554
#, perl-format
msgid "will stitch in dgit view, %s\n"
msgstr ""
-#: ../git-debrebase:2632
+#: ../git-debrebase:2561
#, perl-format
msgid ""
"Cannot confirm dgit view: %s\n"
"dgit --overwrite will be needed on the first dgit push after conversion.\n"
msgstr ""
-#: ../git-debrebase:2678
+#: ../git-debrebase:2607
#, perl-format
msgid "%s: converted from patched-unapplied (gbp) branch format, OK\n"
msgstr ""
-#: ../git-debrebase:2707
+#: ../git-debrebase:2636
#, perl-format
msgid ""
"%s: converted to git-buildpackage branch format\n"
"%s: WARNING: doing so would drop all upstream patches!\n"
msgstr ""
-#: ../git-debrebase:2728
+#: ../git-debrebase:2657
msgid "takes 1 optional argument, the upstream commitish"
msgstr ""
-#: ../git-debrebase:2736
+#: ../git-debrebase:2665
#, perl-format
msgid "%s, from command line"
msgstr ""
-#: ../git-debrebase:2750
+#: ../git-debrebase:2679
#, perl-format
msgid ""
"%s: Branch already seems to be in git-debrebase format!\n"
"%s: but is probably a bad idea. Probably, you wanted to do nothing.\n"
msgstr ""
-#: ../git-debrebase:2754
+#: ../git-debrebase:2683
msgid "Branch already in git-debrebase format."
msgstr ""
-#: ../git-debrebase:2766
+#: ../git-debrebase:2695
msgid "Considering possible commits corresponding to upstream:\n"
msgstr ""
-#: ../git-debrebase:2773
+#: ../git-debrebase:2702
#, perl-format
msgid "git tag %s"
msgstr ""
-#: ../git-debrebase:2779
+#: ../git-debrebase:2708
#, perl-format
msgid " git tag: no suitable tag found (tried %s)\n"
msgstr ""
-#: ../git-debrebase:2788
+#: ../git-debrebase:2717
#, perl-format
msgid "opendir build-products-dir %s: %s"
msgstr ""
-#: ../git-debrebase:2794
+#: ../git-debrebase:2723
#, perl-format
msgid " orig: found what looks like a .orig, %s\n"
msgstr ""
-#: ../git-debrebase:2825
+#: ../git-debrebase:2754
#, perl-format
msgid " orig: no suitable origs found (looked for %s in %s)\n"
msgstr ""
-#: ../git-debrebase:2834
+#: ../git-debrebase:2763
msgid "Evaluating possible commits corresponding to upstream:\n"
msgstr ""
-#: ../git-debrebase:2871
+#: ../git-debrebase:2800
#, perl-format
msgid " %s: couldn't apply patches: gbp pq %s"
msgstr ""
-#: ../git-debrebase:2880
+#: ../git-debrebase:2809
#, perl-format
msgid " %s: applying patches gives different tree\n"
msgstr ""
-#: ../git-debrebase:2894
+#: ../git-debrebase:2823
msgid ""
"Could not find or construct a suitable upstream commit.\n"
"Rerun adding --diagnose after convert-from-dgit-view, or pass a\n"
"upstream commmit explicitly or provide suitable origs.\n"
msgstr ""
-#: ../git-debrebase:2900
+#: ../git-debrebase:2829
#, perl-format
msgid "Yes, will base new branch on %s\n"
msgstr ""
-#: ../git-debrebase:2907
+#: ../git-debrebase:2836
msgid "forget-was-ever-debrebase takes no further arguments"
msgstr ""
-#: ../git-debrebase:2911
+#: ../git-debrebase:2840
#, perl-format
msgid "Not suitable for recording git-debrebaseness anyway: %s"
msgstr ""
-#: ../git-debrebase:3013
+#: ../git-debrebase:2942
msgid "bad options\n"
msgstr ""
-#: ../git-debrebase:3023
+#: ../git-debrebase:2952
#, perl-format
msgid "%s: no cuddling to -i for git-rebase"
msgstr ""
-#: ../git-debrebase:3053
+#: ../git-debrebase:2982
#, perl-format
msgid "unknown git-debrebase sub-operation %s"
msgstr ""
-#: ../Debian/Dgit.pm:295
+#: ../Debian/Dgit.pm:298
#, perl-format
msgid "error: %s\n"
msgstr ""
-#: ../Debian/Dgit.pm:315
+#: ../Debian/Dgit.pm:324
#, perl-format
msgid "getcwd failed: %s\n"
msgstr ""
-#: ../Debian/Dgit.pm:334
+#: ../Debian/Dgit.pm:343
msgid "terminated, reporting successful completion"
msgstr ""
-#: ../Debian/Dgit.pm:336
+#: ../Debian/Dgit.pm:345
#, perl-format
msgid "failed with error exit status %s"
msgstr ""
-#: ../Debian/Dgit.pm:339
+#: ../Debian/Dgit.pm:348
#, perl-format
msgid "died due to fatal signal %s"
msgstr ""
-#: ../Debian/Dgit.pm:343
+#: ../Debian/Dgit.pm:352
#, perl-format
msgid "failed with unknown wait status %s"
msgstr ""
-#: ../Debian/Dgit.pm:349
+#: ../Debian/Dgit.pm:358
msgid "failed command"
msgstr ""
-#: ../Debian/Dgit.pm:355
+#: ../Debian/Dgit.pm:364
#, perl-format
msgid "failed to fork/exec: %s"
msgstr ""
-#: ../Debian/Dgit.pm:357
+#: ../Debian/Dgit.pm:366
#, perl-format
msgid "subprocess %s"
msgstr ""
-#: ../Debian/Dgit.pm:359
+#: ../Debian/Dgit.pm:368
msgid "subprocess produced invalid output"
msgstr ""
-#: ../Debian/Dgit.pm:450
+#: ../Debian/Dgit.pm:459
msgid "stat source file: %S"
msgstr ""
-#: ../Debian/Dgit.pm:460
+#: ../Debian/Dgit.pm:469
msgid "stat destination file: %S"
msgstr ""
-#: ../Debian/Dgit.pm:479
+#: ../Debian/Dgit.pm:488
msgid "finally install file after cp: %S"
msgstr ""
-#: ../Debian/Dgit.pm:485
+#: ../Debian/Dgit.pm:494
msgid "delete old file after cp: %S"
msgstr ""
-#: ../Debian/Dgit.pm:506
+#: ../Debian/Dgit.pm:515
msgid ""
"not in a git working tree?\n"
"(git rev-parse --show-toplevel produced no output)\n"
msgstr ""
-#: ../Debian/Dgit.pm:509
+#: ../Debian/Dgit.pm:518
#, perl-format
msgid "chdir toplevel %s: %s\n"
msgstr ""
-#: ../Debian/Dgit.pm:617
+#: ../Debian/Dgit.pm:626
msgid "git index contains changes (does not match HEAD)"
msgstr ""
-#: ../Debian/Dgit.pm:618
+#: ../Debian/Dgit.pm:627
msgid "working tree is dirty (does not match HEAD)"
msgstr ""
-#: ../Debian/Dgit.pm:689
+#: ../Debian/Dgit.pm:649
+msgid "using specified upstream commitish"
+msgstr ""
+
+#: ../Debian/Dgit.pm:655
+#, perl-format
+msgid ""
+"Could not determine appropriate upstream commitish.\n"
+" (Tried these tags: %s)\n"
+" Check version, and specify upstream commitish explicitly."
+msgstr ""
+
+#: ../Debian/Dgit.pm:661 ../Debian/Dgit.pm:663
+#, perl-format
+msgid "using upstream from git tag %s"
+msgstr ""
+
+#: ../Debian/Dgit.pm:769
msgid "detached HEAD"
msgstr ""
-#: ../Debian/Dgit.pm:690
+#: ../Debian/Dgit.pm:770
msgid "HEAD symref is not to refs/"
msgstr ""
-#: ../Debian/Dgit.pm:706
+#: ../Debian/Dgit.pm:786
#, perl-format
msgid "parsing of %s failed"
msgstr ""
-#: ../Debian/Dgit.pm:715
+#: ../Debian/Dgit.pm:795
#, perl-format
msgid ""
"control file %s is (already) PGP-signed. Note that dgit push needs to "
"modify the .dsc and then do the signature itself"
msgstr ""
-#: ../Debian/Dgit.pm:729
+#: ../Debian/Dgit.pm:809
#, perl-format
msgid "open %s (%s): %s"
msgstr ""
-#: ../Debian/Dgit.pm:750
+#: ../Debian/Dgit.pm:830
#, perl-format
msgid "missing field %s in %s"
msgstr ""
-#: ../Debian/Dgit.pm:822
+#: ../Debian/Dgit.pm:916
msgid "Dummy commit - do not use\n"
msgstr ""
-#: ../Debian/Dgit.pm:843
+#: ../Debian/Dgit.pm:937
#, perl-format
msgid "exec %s: %s\n"
msgstr ""
-#: ../Debian/Dgit.pm:911
+#: ../Debian/Dgit.pm:1005
#, perl-format
msgid "cannot stat %s/.git: %s"
msgstr ""
-#: ../Debian/Dgit.pm:934
+#: ../Debian/Dgit.pm:1028
#, perl-format
msgid "failed to mkdir playground parent %s: %s"
msgstr ""
-#: ../Debian/Dgit.pm:942
+#: ../Debian/Dgit.pm:1036
#, perl-format
msgid "failed to mkdir a playground %s: %s"
msgstr ""
-#: ../Debian/Dgit.pm:951
+#: ../Debian/Dgit.pm:1045
#, perl-format
msgid "failed to mkdir the playground %s: %s"
msgstr ""
#
msgid ""
msgstr ""
-"Project-Id-Version: dgit_8.3\n"
+"Project-Id-Version: dgit_9.9\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-03-01 21:54+0000\n"
-"PO-Revision-Date: 2019-01-19 20:58+0100\n"
+"POT-Creation-Date: 2020-02-02 16:50+0000\n"
+"PO-Revision-Date: 2019-11-10 22:17+0100\n"
"Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n"
"Language-Team: Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>\n"
"Language: nl\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Gtranslator 2.91.7\n"
+"X-Generator: Poedit 1.8.11\n"
-#: ../dgit:242
+#: ../dgit:268
#, perl-format
msgid "%s: invalid configuration: %s\n"
msgstr "%s: ongeldige configuratie: %s\n"
-#: ../dgit:249
+#: ../dgit:275
msgid "warning: overriding problem due to --force:\n"
msgstr "waarschuwing: overschrijvingsprobleem wegens --force:\n"
-#: ../dgit:257
+#: ../dgit:283
#, perl-format
msgid "warning: skipping checks or functionality due to --force-%s\n"
msgstr ""
"waarschuwing: controles of functionaliteit overgeslagen wegens --force-%s\n"
-#: ../dgit:262
+#: ../dgit:288
#, perl-format
msgid "%s: source package %s does not exist in suite %s\n"
msgstr "%s: broncodepakket %s bestaat niet in suite %s\n"
-#: ../dgit:487
+#: ../dgit:520
#, perl-format
msgid "build host child %s"
msgstr "bouwcomputer-dochter %s"
-#: ../dgit:492 ../dgit:498
+#: ../dgit:525 ../dgit:531
#, perl-format
msgid "connection lost: %s"
msgstr "verbinding verbroken: %s"
-#: ../dgit:493
+#: ../dgit:526
#, perl-format
msgid "protocol violation; %s not expected"
msgstr "protocolschending; %s werd niet verwacht"
-#: ../dgit:501
+#: ../dgit:534
#, perl-format
msgid "eof (reading %s)"
msgstr "eof (bij het lezen van %s)"
-#: ../dgit:508
+#: ../dgit:541
msgid "protocol message"
msgstr "protocolbericht"
-#: ../dgit:516
+#: ../dgit:549
#, perl-format
msgid "`%s'"
msgstr "`%s'"
-#: ../dgit:537
+#: ../dgit:570
msgid "bad byte count"
msgstr "aantal slechte bytes"
-#: ../dgit:540
+#: ../dgit:573
msgid "data block"
msgstr "gegevensblok"
-#: ../dgit:621
-#, perl-format
-msgid "failed to fetch %s: %s"
-msgstr "ophalen (fetch) van %s mislukt: %s"
-
-#: ../dgit:633
+#: ../dgit:652
#, perl-format
msgid "%s ok: %s"
msgstr "%s oké: %s"
-#: ../dgit:635
+#: ../dgit:654
#, perl-format
msgid "would be ok: %s (but dry run only)"
msgstr "zou oké zijn: %s (maar slechts een testuitvoering)"
-#: ../dgit:660
+#: ../dgit:679
msgid ""
"main usages:\n"
" dgit [dgit-opts] clone [dgit-opts] package [suite] [./dir|/dir]\n"
" -c<naam>=<waarde> configuratieoptie instellen voor git\n"
" (ook rechtstreeks gebruikt door dgit)\n"
-#: ../dgit:679
+#: ../dgit:698
msgid "Perhaps the upload is stuck in incoming. Using the version from git.\n"
msgstr ""
"Misschien zit de upload vast in incoming. De versie van git wordt "
"gebruikt.\n"
-#: ../dgit:683
+#: ../dgit:702
#, perl-format
msgid ""
"%s: %s\n"
"%s: %s\n"
"%s"
-#: ../dgit:688
+#: ../dgit:707
msgid "too few arguments"
msgstr "te weinig argumenten"
-#: ../dgit:799
+#: ../dgit:823
#, perl-format
msgid "multiple values for %s (in %s git config)"
msgstr "verschillende waarden voor %s (in %s git config)"
-#: ../dgit:802
+#: ../dgit:826
#, perl-format
msgid "value for config option %s (in %s git config) contains newline(s)!"
msgstr ""
"waarde voor configuratieoptie %s (in %s git config) bevat regeleinde(s)!"
-#: ../dgit:822
+#: ../dgit:846
#, perl-format
msgid ""
"need value for one of: %s\n"
"heb waarde nodig voor één van: %s\n"
"%s: distributie of suite lijkt niet (behoorlijk) ondersteund te worden"
-#: ../dgit:863
+#: ../dgit:903
#, perl-format
msgid "bad syntax for (nominal) distro `%s' (does not match %s)"
msgstr ""
"slechte syntaxis voor (nominale) distributie `%s' (komt niet overeen met %s)"
-#: ../dgit:878
+#: ../dgit:918
#, perl-format
msgid "backports-quirk needs % or ( )"
msgstr "backports-spitsvondigheid vereist % of ( )"
-#: ../dgit:894
+#: ../dgit:934
#, perl-format
msgid "%s needs t (true, y, 1) or f (false, n, 0) not `%s'"
msgstr "%s vereist t (true, y, 1) of f (false, n, 0) en niet `%s'"
-#: ../dgit:914
+#: ../dgit:954
msgid "readonly needs t (true, y, 1) or f (false, n, 0) or a (auto)"
msgstr ""
"alleen-lezen (readonly) vereist t (true, y, 1) of f (false, n, 0) of een "
"(auto)"
-#: ../dgit:923 ../git-debrebase:1586 ../Debian/Dgit.pm:201
+#: ../dgit:972
+#, perl-format
+msgid "unknown %s `%s'"
+msgstr "onbekend %s `%s'"
+
+#: ../dgit:977 ../git-debrebase:1548 ../Debian/Dgit.pm:211
msgid "internal error"
msgstr "interne fout"
-#: ../dgit:925
+#: ../dgit:979
msgid "pushing but distro is configured readonly"
msgstr ""
"bezig een push uit te voeren, maar de distributie is voor alleen-lezen "
"geconfigureerd"
-#: ../dgit:929
+#: ../dgit:983
msgid ""
"Push failed, before we got started.\n"
"You can retry the push, after fixing the problem, if you like.\n"
"Als u wilt, kunt u de push opnieuw proberen nadat het probleem opgelost "
"werd.\n"
-#: ../dgit:1094
+#: ../dgit:1006
+#, perl-format
+msgid ""
+"dgit: quilt mode `%s' (for format `%s') implies split view, but split-view "
+"set to `%s'"
+msgstr ""
+"dgit: quilt modus `%s' (voor indeling `%s') impliceert gesplitste weergave, "
+"maar gesplitste weergave staat ingesteld op `%s'"
+
+#: ../dgit:1169
msgid "this operation does not support multiple comma-separated suites"
msgstr ""
"meerdere met een komma van elkaar gescheiden suites worden door deze "
"bewerking niet ondersteund"
-#: ../dgit:1140
+#: ../dgit:1237
#, perl-format
-msgid ""
-"config requested specific TLS key but do not know how to get curl to use "
-"exactly that EE key (%s)"
-msgstr ""
-"de configuratie vereiste een specifieke TLS-sleutel, maar weet niet hoe curl "
-"ertoe te brengen exact die EE-sleutel (%s) te gebruiken"
+msgid "fetch of %s failed (%s): %s"
+msgstr "ophalen (fetch) van %s mislukte (%s): %s"
+
+#: ../dgit:1244
+#, perl-format
+msgid "fetch of %s gave HTTP code %s"
+msgstr "een fetch van %s gaf HTTP-code %s"
-#: ../dgit:1161
+#: ../dgit:1265
msgid "ftpmasterapi archive query method takes no data part"
msgstr ""
"de methode ftpmasterapi voor een verzoek aan het archief kent geen data-"
"onderdeel"
-#: ../dgit:1169
-msgid "curl failed to print 3-digit HTTP code"
-msgstr "curl slaagde niet in het weergeven van een 3-cijferige HTTP-code"
-
-#: ../dgit:1173
-#, perl-format
-msgid "fetch of %s gave HTTP code %s"
-msgstr "een fetch van %s gaf HTTP-code %s"
-
-#: ../dgit:1189
+#: ../dgit:1283
#, perl-format
msgid "unknown suite %s, maybe -d would help"
msgstr "onbekende suite %s, misschien is -d nuttig"
-#: ../dgit:1193
+#: ../dgit:1287
#, perl-format
msgid "multiple matches for suite %s\n"
msgstr "meerdere overeenkomsten met suite %s\n"
-#: ../dgit:1195
+#: ../dgit:1289
#, perl-format
msgid "suite %s info has no codename\n"
msgstr "info over suite %s bevat geen codenaam\n"
-#: ../dgit:1197
+#: ../dgit:1291
#, perl-format
msgid "suite %s maps to bad codename\n"
msgstr "suite %s is gekoppeld aan een verkeerde codenaam\n"
-#: ../dgit:1199 ../dgit:1224
+#: ../dgit:1293 ../dgit:1318
msgid "bad ftpmaster api response: "
msgstr "verkeerd antwoord van de ftpmaster api:"
-#: ../dgit:1213
+#: ../dgit:1307
#, perl-format
msgid "bad version: %s\n"
msgstr "verkeerde versie: %s\n"
-#: ../dgit:1215
+#: ../dgit:1309
msgid "bad component"
msgstr "verkeerde component"
-#: ../dgit:1218
+#: ../dgit:1312
msgid "bad filename"
msgstr "verkeerde bestandsnaam"
-#: ../dgit:1220
+#: ../dgit:1314
msgid "bad sha256sum"
msgstr "verkeerde sha256sum"
-#: ../dgit:1271
+#: ../dgit:1365
msgid "aptget archive query method takes no data part"
msgstr ""
"de methode aptget voor een verzoek aan het archief kent geen data-onderdeel"
-#: ../dgit:1355
+#: ../dgit:1449
#, perl-format
msgid ""
"apt seemed to not to update dgit's cached Release files for %s.\n"
" zich op een bestandssysteem dat met `noatime' aangekoppeld is; mocht dit "
"het geval zijn, gebruik dan `relatime'.)\n"
-#: ../dgit:1377
+#: ../dgit:1473
#, perl-format
msgid "Release file (%s) specifies intolerable %s"
msgstr "Release-bestand (%s) vermeldt ontoelaatbaar %s"
-#: ../dgit:1405
+#: ../dgit:1499
msgid "apt-get source did not produce a .dsc"
msgstr "apt-get source produceerde geen .dsc-bestand"
-#: ../dgit:1406
+#: ../dgit:1500
#, perl-format
msgid "apt-get source produced several .dscs (%s)"
msgstr "apt-get source produceerde verschillende .dsc-bestanden (%s)"
-#: ../dgit:1511
+#: ../dgit:1605
#, perl-format
msgid ""
"unable to canonicalise suite using package %s which does not appear to exist "
"niet in staat de suite ondubbelzinnig te bepalen met pakket %s dat blijkbaar "
"niet bestaat in suite %s; --existing-package kan behulpzaam zijn"
-#: ../dgit:1702
+#: ../dgit:1744
#, perl-format
msgid "cannot operate on %s suite"
msgstr "kan geen acties uitvoeren op suite %s"
-#: ../dgit:1705
+#: ../dgit:1747
#, perl-format
msgid "canonical suite name for %s is %s"
msgstr "de gebruikelijke suitenaam voor %s is %s"
-#: ../dgit:1707
+#: ../dgit:1749
#, perl-format
msgid "canonical suite name is %s"
msgstr "de gebruikelijke suitenaam is %s"
-#: ../dgit:1727
+#: ../dgit:1769
#, perl-format
msgid "%s has hash %s but archive told us to expect %s"
msgstr "%s heeft hash %s maar volgens het archief moesten we %s verwachten"
-#: ../dgit:1733
+#: ../dgit:1775
#, perl-format
msgid "unsupported source format %s, sorry"
msgstr "niet-ondersteunde broncode-indeling %s, sorry"
-#: ../dgit:1760
+#: ../dgit:1802
#, perl-format
msgid "diverting to %s (using config for %s)"
msgstr "er wordt omgeschakeld naar %s (de configuratie voor %s wordt gebruikt)"
-#: ../dgit:1777
-msgid "unexpected results from git check query - "
-msgstr "het verzoek git check leverde onverwachte resultaten op - "
-
-#: ../dgit:1792
+#: ../dgit:1825
#, perl-format
msgid "unknown git-check `%s'"
msgstr "onbekende git-check `%s'"
-#: ../dgit:1807
+#: ../dgit:1840
#, perl-format
msgid "unknown git-create `%s'"
msgstr "onbekende git-create `%s'"
-#: ../dgit:1844
+#: ../dgit:1877
#, perl-format
msgid "%s: warning: removing from %s: %s\n"
msgstr "%s: waarschuwing: wordt verwijderd van %s: %s\n"
-#: ../dgit:1890
+#: ../dgit:1923
#, perl-format
msgid "could not parse .dsc %s line `%s'"
msgstr "kon .dsc %s regel `%s' niet ontleden"
-#: ../dgit:1901
+#: ../dgit:1934
#, perl-format
msgid "missing any supported Checksums-* or Files field in %s"
msgstr "een ondersteund Checksums-* of Files-veld ontbreekt in %s"
-#: ../dgit:1947
+#: ../dgit:1980
#, perl-format
msgid "hash or size of %s varies in %s fields (between: %s)"
msgstr "hash of grootte van %s varieert in %s-velden (tussen: %s)"
-#: ../dgit:1956
+#: ../dgit:1989
#, perl-format
msgid "file list in %s varies between hash fields!"
msgstr "bestandenlijst in %s varieert tussen hash-velden!"
-#: ../dgit:1960
+#: ../dgit:1993
#, perl-format
msgid "%s has no files list field(s)"
msgstr "%s bevat geen veld(en) met een bestandenlijst"
-#: ../dgit:1966
+#: ../dgit:1999
#, perl-format
msgid "no file appears in all file lists (looked in: %s)"
msgstr "in geen enkele bestandenlijst komt een bestand voor (gezocht in: %s)"
-#: ../dgit:2006
+#: ../dgit:2039
#, perl-format
msgid "purportedly source-only changes polluted by %s\n"
msgstr "ogenschijnlijke source-only wijzigingen vervuild door %s\n"
-#: ../dgit:2019
+#: ../dgit:2052
msgid "cannot find section/priority from .changes Files field"
msgstr ""
"kan sectie/prioriteit niet vinden in het veld Files van het .changes-bestand"
-#: ../dgit:2032
+#: ../dgit:2065
msgid ""
"archive does not support .orig check; hope you used --ch:--sa/-sd if needed\n"
msgstr ""
"archief ondersteunt controle van .orig niet; hopelijk gebruikte u zo nodig --"
"ch:--sa/-sd\n"
-#: ../dgit:2048
+#: ../dgit:2081
#, perl-format
msgid ".dsc %s missing entry for %s"
msgstr ".dsc %s mist een item voor %s"
-#: ../dgit:2053
+#: ../dgit:2086
#, perl-format
msgid "%s: %s (archive) != %s (local .dsc)"
msgstr "%s: %s (archief) != %s (lokale .dsc)"
-#: ../dgit:2061
+#: ../dgit:2094
#, perl-format
msgid "archive %s: %s"
msgstr "archief %s: %s"
-#: ../dgit:2068
+#: ../dgit:2101
#, perl-format
msgid "archive contains %s with different checksum"
msgstr "archief bevat %s met een andere checksum"
-#: ../dgit:2096
+#: ../dgit:2129
#, perl-format
msgid "edited .changes for archive .orig contents: %s %s"
msgstr "bewerkte .changes voor de inhoud van .orig van het archief: %s %s"
-#: ../dgit:2104
+#: ../dgit:2137
#, perl-format
msgid "[new .changes left in %s]"
msgstr "[nieuwe .changes achtergelaten in %s]"
-#: ../dgit:2107
+#: ../dgit:2140
#, perl-format
msgid "%s already has appropriate .orig(s) (if any)"
msgstr "%s heeft reeds passende .orig(s) (indien van toepassing)"
-#: ../dgit:2131
+#: ../dgit:2159
#, perl-format
msgid ""
"unexpected commit author line format `%s' (was generated from changelog "
"onverwachte indeling `%s' van de auteursregel van de commit (werd "
"gegenereerd uit het Maintainer-veld in changelog)"
-#: ../dgit:2154
+#: ../dgit:2182
msgid ""
"\n"
"Unfortunately, this source package uses a feature of dpkg-source where\n"
"dat verschillende distributies andere broncode hebben).\n"
"\n"
-#: ../dgit:2166
+#: ../dgit:2194
#, perl-format
msgid ""
"Found active distro-specific series file for %s (%s): %s, cannot continue"
"Vond een actief distributiespecifiek series-bestand voor %s (%s): %s, kan "
"niet voortgaan"
-#: ../dgit:2197
+#: ../dgit:2225
msgid "Dpkg::Vendor `current vendor'"
msgstr "Dpkg::Vendor `current vendor'"
-#: ../dgit:2199
+#: ../dgit:2227
msgid "(base) distro being accessed"
msgstr "(basis)-distributie wordt benaderd"
-#: ../dgit:2201
+#: ../dgit:2229
msgid "(nominal) distro being accessed"
msgstr "(nominale) distributie wordt benaderd"
-#: ../dgit:2206
+#: ../dgit:2234
#, perl-format
msgid "build-products-dir %s is not accessible: %s\n"
msgstr "build-products-dir %s is niet toegankelijk: %s\n"
-#: ../dgit:2231
+#: ../dgit:2259
#, perl-format
msgid ""
"%s: found orig(s) in .. missing from build-products-dir, transferring:\n"
"%s: orig(s) gevonden in .. welke ontbreken in build-products-dir, bezig met "
"overbrengen:\n"
-#: ../dgit:2235
+#: ../dgit:2263
#, perl-format
msgid "check orig file %s in bpd %s: %s"
msgstr "controleer orig-bestand %s in bpd %s: %s"
-#: ../dgit:2237
+#: ../dgit:2265
#, perl-format
msgid "check orig file %s in ..: %s"
msgstr "controleer orig-bestand %s in ..: %s"
-#: ../dgit:2240
+#: ../dgit:2268
#, perl-format
msgid "check target of orig symlink %s in ..: %s"
msgstr "controleer doel van orig-symbolische koppeling %s in ..: %s"
-#: ../dgit:2249
+#: ../dgit:2277
#, perl-format
msgid "%s: cloned orig symlink from ..: %s\n"
msgstr "%s: orig-symbolische koppeling gekloond van ..: %s\n"
-#: ../dgit:2253
+#: ../dgit:2281
#, perl-format
msgid "%s: hardlinked orig from ..: %s\n"
msgstr "%s: vast gekoppelde orig van ..: %s\n"
-#: ../dgit:2256
+#: ../dgit:2284
#, perl-format
msgid "failed to make %s a hardlink to %s: %s"
msgstr "niet gelukt om %s een vaste koppeling naar %s te maken: %s"
-#: ../dgit:2262
+#: ../dgit:2290
#, perl-format
msgid "%s: symmlinked orig from .. on other filesystem: %s\n"
msgstr ""
"%s: symbolisch gekoppelde orig van .. op een ander bestandssysteem: %s\n"
-#: ../dgit:2294 ../dgit:2299
-#, perl-format
-msgid "accessing %s: %s"
-msgstr "bezig met benaderen van %s: %s"
-
-#: ../dgit:2314 ../dgit:2321
-#, perl-format
-msgid "saving %s: %s"
-msgstr "bezig met opslaan van %s: %s"
-
-#: ../dgit:2386
+#: ../dgit:2361
#, perl-format
msgid "dgit (child): exec %s: %s"
msgstr "dgit (dochter): exec %s: %s"
-#: ../dgit:2450 ../dgit:5974
-msgid "source package"
-msgstr "broncodepakket"
-
-#: ../dgit:2468
+#: ../dgit:2423
msgid "package changelog"
msgstr "changelog van het pakket"
-#: ../dgit:2508
+#: ../dgit:2463
msgid "package changelog has no entries!"
msgstr "het changelog-bestand van het pakket bevat geen vermeldingen!"
-#: ../dgit:2527
+#: ../dgit:2532 ../dgit:2537
+#, perl-format
+msgid "accessing %s: %s"
+msgstr "bezig met benaderen van %s: %s"
+
+#: ../dgit:2552 ../dgit:2559
#, perl-format
-msgid "Import %s"
-msgstr "Importeren van %s"
+msgid "saving %s: %s"
+msgstr "bezig met opslaan van %s: %s"
+
+#: ../dgit:2585 ../dgit:6078
+msgid "source package"
+msgstr "broncodepakket"
-#: ../dgit:2608
+#: ../dgit:2665
#, perl-format
msgid "%s: trying slow absurd-git-apply..."
msgstr "%s: langzame absurd-git-apply wordt gebruikt..."
-#: ../dgit:2627
+#: ../dgit:2684
#, perl-format
msgid "%s failed: %s\n"
msgstr "%s mislukte: %s\n"
-#: ../dgit:2636
+#: ../dgit:2693
#, perl-format
msgid ""
"gbp-pq import and dpkg-source disagree!\n"
" gbp-pq import gaf boom %s\n"
" dpkg-source --before-build gaf boom %s\n"
-#: ../dgit:2651
+#: ../dgit:2713
#, perl-format
msgid "synthesised git commit from .dsc %s"
msgstr "git commit samengesteld vanuit .dsc %s"
-#: ../dgit:2655
+#: ../dgit:2717
msgid "Import of source package"
msgstr "Importeren van broncodepakket"
-#: ../dgit:2668
-#, perl-format
-msgid "Record %s (%s) in archive suite %s\n"
-msgstr "Gegeven %s (%s) uit archiefsuite %s\n"
-
-#: ../dgit:2672
+#: ../dgit:2737
#, perl-format
msgid ""
"\n"
"Laatste versie die met dgit gepusht werd : %s (recentere of dezelfde)\n"
"%s\n"
-#: ../dgit:2714
+#: ../dgit:2779
#, perl-format
msgid "using existing %s"
msgstr "bestaande %s wordt gebruikt"
-#: ../dgit:2718
+#: ../dgit:2783
#, perl-format
msgid ""
"file %s has hash %s but .dsc demands hash %s (perhaps you should delete this "
"bestand %s heeft hash %s maar .dsc vereist hash %s (moet u misschien dit "
"bestand verwijderen?)"
-#: ../dgit:2722
+#: ../dgit:2787
#, perl-format
msgid "need to fetch correct version of %s"
msgstr "moet de juiste versie van %s ophalen met fetch"
-#: ../dgit:2738
+#: ../dgit:2803
#, perl-format
msgid ""
"file %s has hash %s but .dsc demands hash %s (got wrong file from archive!)"
"bestand %s heeft hash %s maar .dsc vereist hash %s (verkreeg een verkeerd "
"bestand van het archief!)"
-#: ../dgit:2833
+#: ../dgit:2898
msgid "too many iterations trying to get sane fetch!"
msgstr "te veel pogingen om een foutloze fetch te bekomen!"
-#: ../dgit:2848
+#: ../dgit:2913
#, perl-format
msgid "warning: git ls-remote %s reported %s; this is silly, ignoring it.\n"
msgstr ""
"waarschuwing: git ls-remote %s rapporteerde %s; dit is onzinnig, wordt "
"genegeerd.\n"
-#: ../dgit:2892
+#: ../dgit:2957
#, perl-format
msgid "warning: git fetch %s created %s; this is silly, deleting it.\n"
msgstr ""
"waarschuwing: git fetch %s creëerde %s; dit is onzinnig, wordt verwijderd.\n"
-#: ../dgit:2907
+#: ../dgit:2972
msgid ""
"--dry-run specified but we actually wanted the results of git fetch,\n"
"so this is not going to work. Try running dgit fetch first,\n"
"git fetch, dus dit zal niet werken. Probeer eerst git fetch uit te voeren,\n"
"of --damp-run te gebruiken in plaats van --dry-run.\n"
-#: ../dgit:2912
+#: ../dgit:2977
#, perl-format
msgid ""
"warning: git ls-remote suggests we want %s\n"
"waarschuwing: Is mogelijk te wijten aan een race met iemand die de server\n"
"waarschuwing: bijwerkt. Zal later opnieuw proberen...\n"
-#: ../dgit:2979
-#, perl-format
-msgid "Not updating %s from %s to %s.\n"
-msgstr "%s wordt niet opgewaardeerd van %s naar %s.\n"
-
-#: ../dgit:3028
-#, perl-format
-msgid "%s: NO git hash"
-msgstr "%s: GEEN hash van git"
-
-#: ../dgit:3032
-#, perl-format
-msgid "%s: specified git info (%s)"
-msgstr "%s: git info werd opgegeven (%s)"
-
-#: ../dgit:3039
-#, perl-format
-msgid "%s: specified git hash"
-msgstr "%s: git hash werd opgegeven"
-
-#: ../dgit:3041
-#, perl-format
-msgid "%s: invalid Dgit info"
-msgstr "%s: ongeldige Dgit info"
-
-#: ../dgit:3063
+#: ../dgit:3124
#, perl-format
msgid "not chasing .dsc distro %s: not fetching %s"
msgstr ""
"ben niet bezig met achter .dsc van distributie %s aan te gaan: %s wordt niet "
"gehaald"
-#: ../dgit:3068
+#: ../dgit:3129
#, perl-format
msgid ".dsc names distro %s: fetching %s"
msgstr ".dsc vernoemt distributie %s: %s wordt opgehaald"
-#: ../dgit:3073
+#: ../dgit:3134
#, perl-format
msgid ""
".dsc Dgit metadata is in context of distro %s\n"
"De Dgit-metadata van .dsc zijn in de context van distributie %s\n"
"waarvoor we geen geconfigureerde url hebben en .dsc geeft geen aanwijzing\n"
-#: ../dgit:3083
+#: ../dgit:3144
#, perl-format
msgid ""
".dsc Dgit metadata is in context of distro %s\n"
".dsc geeft een aanduiding voor een url met het onveilige protocol %s.\n"
"(kan door de configuratie overschreven worden - raadpleeg de documentatie)\n"
-#: ../dgit:3103
+#: ../dgit:3164
msgid "rewrite map"
msgstr "modificatieplan (rewrite map)"
-#: ../dgit:3110
+#: ../dgit:3171
msgid "server's git history rewrite map contains a relevant entry!"
msgstr ""
"het modificatieplan (rewrite map) van de git-geschiedenis op de server bevat "
"een relevant element!"
-#: ../dgit:3114
+#: ../dgit:3175
msgid "using rewritten git hash in place of .dsc value"
msgstr "de gemodificeerde git hash wordt gebruikt in plaats van de .dsc-waarde"
-#: ../dgit:3116
+#: ../dgit:3177
msgid "server data says .dsc hash is to be disregarded"
msgstr ""
"de gegevens van de server zeggen dat de .dsc-hash genegeerd moet worden"
-#: ../dgit:3123
+#: ../dgit:3184
msgid "additional commits"
msgstr "extra vastleggingen (commits)"
-#: ../dgit:3126
+#: ../dgit:3187
#, perl-format
msgid ""
".dsc Dgit metadata requires commit %s\n"
"De Dgit-metadata uit .dsc vereist commit %s\n"
"maar we konden dat object nergens bekomen.\n"
-#: ../dgit:3151
+#: ../dgit:3212
msgid "last upload to archive"
msgstr "laatste upload naar het archief"
-#: ../dgit:3155
+#: ../dgit:3216
msgid "no version available from the archive"
msgstr "geen versie beschikbaar uit het archief"
-#: ../dgit:3238
+#: ../dgit:3299
msgid "dgit suite branch on dgit git server"
msgstr "dgit suite-tak op dgit git-server"
-#: ../dgit:3245
+#: ../dgit:3306
msgid "dgit client's archive history view"
msgstr "dgit - weergave geschiedenis van cliëntarchief"
-#: ../dgit:3250
+#: ../dgit:3311
msgid "Dgit field in .dsc from archive"
msgstr "Dgit-veld in het .dsc uit het archief"
-#: ../dgit:3278
+#: ../dgit:3339
#, perl-format
msgid ""
"\n"
"Laatste versie die met dgit gepusht werd: %s\n"
"%s\n"
-#: ../dgit:3291
+#: ../dgit:3352
msgid "archive .dsc names newer git commit"
msgstr ".dsc van het archief vermeldt een recentere git commit"
-#: ../dgit:3294
+#: ../dgit:3355
msgid "archive .dsc names other git commit, fixing up"
msgstr ".dsc van het archief vermeldt een andere git commit, wordt gerepareerd"
-#: ../dgit:3315
+#: ../dgit:3376
#, perl-format
msgid ""
"\n"
"dgit.\n"
"%s\n"
-#: ../dgit:3324
+#: ../dgit:3385
#, perl-format
msgid ""
"\n"
"Maar we konden geen enkele versie bekomen uit het archief of uit git.\n"
"\n"
-#: ../dgit:3409
+#: ../dgit:3470
#, perl-format
msgid ""
"Record %s (%s) in archive suite %s\n"
"\n"
"Gegeven dat\n"
-#: ../dgit:3422
+#: ../dgit:3483
msgid "should be treated as descended from\n"
msgstr "behandeld zou moeten worden als afstammend van\n"
-#: ../dgit:3440
+#: ../dgit:3501
msgid "dgit repo server tip (last push)"
msgstr "tip van de dgit-opslagplaats op de server (laatste push)"
-#: ../dgit:3442
+#: ../dgit:3503
msgid "local tracking tip (last fetch)"
msgstr "tip van de lokale kopie (laatste fetch)"
-#: ../dgit:3453
+#: ../dgit:3514
#, perl-format
msgid ""
"\n"
"We waren slechts in staat om %s te bekomen\n"
"\n"
-#: ../dgit:3468
+#: ../dgit:3529
msgid "fetched source tree"
msgstr "broncodeboom opgehaald"
-#: ../dgit:3504
+#: ../dgit:3565
msgid "debian/changelog merge driver"
msgstr "stuurprogramma voor samenvoeging van debian/changelog"
-#: ../dgit:3569
+#: ../dgit:3630
msgid ""
"[attr]dgit-defuse-attrs already found, and proper, in .git/info/attributes\n"
" not doing further gitattributes setup\n"
"[attr]dgit-defuse-attrs reeds gevonden in .git/info/attributes, en geschikt\n"
" gitattributes wordt niet verder ingesteld\n"
-#: ../dgit:3583
+#: ../dgit:3644
msgid "# ^ see GITATTRIBUTES in dgit(7) and dgit setup-new-tree in dgit(1)\n"
msgstr "# ^ zie GITATTRIBUTES in dgit(7) en dgit setup-new-tree in dgit(1)\n"
-#: ../dgit:3598
+#: ../dgit:3659
#, perl-format
msgid "install %s: %s"
msgstr "installeren van %s: %s"
-#: ../dgit:3625
+#: ../dgit:3686
#, perl-format
msgid ""
"dgit: warning: %s contains .gitattributes\n"
"dgit: .gitattributes niet (volledig) geneutraliseerd. Aanbevolen: dgit "
"setup-new-tree.\n"
-#: ../dgit:3647
+#: ../dgit:3708
#, perl-format
msgid "fetching %s..."
msgstr "ophalen van %s..."
-#: ../dgit:3655
+#: ../dgit:3716
#, perl-format
msgid "failed to obtain %s: %s"
msgstr "verkrijgen van %s mislukte: %s"
-#: ../dgit:3694
+#: ../dgit:3755
#, perl-format
msgid "package %s missing in (base suite) %s"
msgstr "pakket %s ontbreekt in (basissuite) %s"
-#: ../dgit:3726
+#: ../dgit:3787
msgid "local combined tracking branch"
msgstr "lokale gecombineerde navolgende tak (tracking branch)"
-#: ../dgit:3728
+#: ../dgit:3789
msgid "archive seems to have rewound: local tracking branch is ahead!"
msgstr ""
"het archief lijkt teruggespoeld te hebben: de lokale navolgende tak loopt "
"voorop!"
-#: ../dgit:3767
+#: ../dgit:3828
#, perl-format
msgid ""
"Combine archive branches %s [dgit]\n"
"\n"
"Invoertakken:\n"
-#: ../dgit:3781
+#: ../dgit:3842
msgid ""
"\n"
"Key\n"
" + markeert elke tak die niet reeds een voorouder was\n"
"\n"
-#: ../dgit:3796
+#: ../dgit:3857
#, perl-format
msgid "calculated combined tracking suite %s"
msgstr "berekende gecombineerde navolgende suite %s"
-#: ../dgit:3814
+#: ../dgit:3875
#, perl-format
msgid "ready for work in %s"
msgstr "klaar om te werken in %s"
-#: ../dgit:3822
+#: ../dgit:3893
msgid "dry run makes no sense with clone"
msgstr "dry run is zinloos met clone"
-#: ../dgit:3837
+#: ../dgit:3908
#, perl-format
msgid "create `%s': %s"
msgstr "creëren van `%s': %s"
-#: ../dgit:3853
+#: ../dgit:3920
msgid "fetching existing git history"
msgstr "ophalen van bestaande git-geschiedenis"
-#: ../dgit:3857
+#: ../dgit:3923
msgid "starting new git history"
msgstr "starten van een nieuwe git-geschiedenis"
-#: ../dgit:3883
+#: ../dgit:3948
#, perl-format
msgid ""
"FYI: Vcs-Git in %s has different url to your vcs-git remote.\n"
" De url voor uw externe vcs-git zou verouderd kunnen zijn. Misschien dgit "
"update-vcs-git gebruiken?\n"
-#: ../dgit:3888
+#: ../dgit:3953
#, perl-format
msgid "fetched into %s"
msgstr "opgehaald naar %s"
-#: ../dgit:3900
+#: ../dgit:3965
#, perl-format
msgid "Merge from %s [dgit]"
msgstr "Samenvoegen vanuit %s [dgit]"
-#: ../dgit:3902
+#: ../dgit:3967
#, perl-format
msgid "fetched to %s and merged into HEAD"
msgstr "opgehaald naar %s samengevoegd naar HEAD"
-#: ../dgit:3910
+#: ../dgit:3975
#, perl-format
msgid "git tree contains %s"
msgstr "git-boom bevat %s"
-#: ../dgit:3921
+#: ../dgit:3986
msgid "you have uncommitted changes to critical files, cannot continue:\n"
msgstr ""
"u heeft niet-vastgelegde wijzigingen in cruciale bestanden, kan niet "
"voortgaan:\n"
-#: ../dgit:3940
+#: ../dgit:4005
#, perl-format
msgid ""
"quilt fixup required but quilt mode is `nofix'\n"
"er is een quilt fixup vereist, maar de quilt-modus is `nofix'\n"
"HEAD commit%s verschilt van de boom die uit debian/patches%s volgt"
-#: ../dgit:3957
+#: ../dgit:4022
msgid "nothing quilty to commit, ok."
msgstr "niets quilt-achtig vast te leggen, oké."
-#: ../dgit:3960
+#: ../dgit:4025
msgid " (wanted to commit patch update)"
msgstr " (wilde een patch-update vastleggen)"
-#: ../dgit:3964
+#: ../dgit:4029
msgid ""
"Commit Debian 3.0 (quilt) metadata\n"
"\n"
"Vastleggen van (commit) Debian 3.0 (quilt) metadata\n"
"\n"
-#: ../dgit:4007
+#: ../dgit:4073
#, perl-format
msgid ""
"Not doing any fixup of `%s' due to ----no-quilt-fixup or --quilt=nocheck"
"Opknappen van `%s' wordt niet gedaan, wegens ----no-quilt-fixup of --"
"quilt=nocheck"
-#: ../dgit:4012
+#: ../dgit:4078
#, perl-format
msgid "Format `%s', need to check/update patch stack"
msgstr "Indeling `%s', moet de patch-stack nakijken/bijwerken"
-#: ../dgit:4022
+#: ../dgit:4088
#, perl-format
msgid "commit id %s"
msgstr "vastleggings-id (commit id) %s"
-#: ../dgit:4028
+#: ../dgit:4094
#, perl-format
msgid "and left in %s"
msgstr "en achtergelaten in %s"
-#: ../dgit:4054
+#: ../dgit:4120
#, perl-format
msgid "Wanted tag %s (%s) on dgit server, but not found\n"
msgstr "Wenste tag %s (%s) op de dgit-server, maar niet gevonden\n"
-#: ../dgit:4057
+#: ../dgit:4123
#, perl-format
msgid "Wanted tag %s (one of: %s) on dgit server, but not found\n"
msgstr "Wenste tag %s (één van: %s) op de dgit-server, maar niet gevonden\n"
-#: ../dgit:4065
+#: ../dgit:4131
#, perl-format
msgid "%s (%s) .. %s (%s) is not fast forward\n"
msgstr ""
"%s (%s) .. %s (%s) is niet fast forward (geen lineaire "
"veranderingsgeschiedenis)\n"
-#: ../dgit:4074
+#: ../dgit:4140
msgid "version currently in archive"
msgstr "momenteel in het archief aanwezige versie"
-#: ../dgit:4083
+#: ../dgit:4149
#, perl-format
msgid "Checking package changelog for archive version %s ..."
msgstr ""
"Het changlog-bestand van het pakket wordt gecontroleerd op archiefversie "
"%s ..."
-#: ../dgit:4091
+#: ../dgit:4157
#, perl-format
msgid "%s field from dpkg-parsechangelog %s"
msgstr "veld %s van dpkg-parsechangelog %s"
-#: ../dgit:4101
+#: ../dgit:4168
#, perl-format
msgid "Perhaps debian/changelog does not mention %s ?"
msgstr "Vermeldt debian/changelog misschien %s niet?"
-#: ../dgit:4104
+#: ../dgit:4171
#, perl-format
msgid ""
"%s is %s\n"
"%s is %s\n"
"Uw boom lijkt gebaseerd op een eerdere (niet geüploade) %s.\n"
-#: ../dgit:4118
+#: ../dgit:4185
#, perl-format
msgid "Declaring that HEAD includes all changes in %s..."
msgstr "Bezig te verklaren dat HEAD alle wijzigingen uit %s omvat..."
-#: ../dgit:4174
+#: ../dgit:4241
msgid "Checking that HEAD includes all changes in archive..."
msgstr ""
"Bezig te controleren dat HEAD alle wijzigingen uit het archief omvat..."
-#: ../dgit:4183
+#: ../dgit:4250
msgid "maintainer view tag"
msgstr "tag weergave pakketonderhouder"
-#: ../dgit:4185
+#: ../dgit:4252
msgid "dgit view tag"
msgstr "tag weergave dgit"
-#: ../dgit:4186
+#: ../dgit:4253
msgid "current archive contents"
msgstr "huidige inhoud van het archief"
-#: ../dgit:4199
+#: ../dgit:4266
msgid ""
"| Not fast forward; maybe --overwrite is needed ? Please see dgit(1).\n"
msgstr ""
"| Niet fast forward (geen lineaire geschiedenis); is misschien --overwrite "
"nodig? Raadpleeg dgit(1).\n"
-#: ../dgit:4209
+#: ../dgit:4276
#, perl-format
msgid "Declare fast forward from %s\n"
msgstr "Lineair (fast forward) declareren vanuit %s\n"
-#: ../dgit:4210
+#: ../dgit:4277
#, perl-format
msgid "Make fast forward from %s\n"
msgstr "Lineair (fast forward) maken vanuit %s\n"
-#: ../dgit:4214
+#: ../dgit:4281
#, perl-format
msgid "Made pseudo-merge of %s into dgit view."
msgstr "Maakte een pseudo-samenvoeging van %s in de dgit-weergave."
-#: ../dgit:4227
+#: ../dgit:4294
#, perl-format
msgid "Declare fast forward from %s"
msgstr "Lineair (fast forward) declareren vanuit %s"
-#: ../dgit:4235
+#: ../dgit:4302
#, perl-format
msgid "Make pseudo-merge of %s into your HEAD."
msgstr "Pseudo-samenvoeging maken van %s naar uw HEAD."
-#: ../dgit:4247
+#: ../dgit:4314
#, perl-format
msgid "-p specified %s but changelog specified %s"
msgstr "-p gaf %s op, maar het changelog-bestand vermeldde %s"
-#: ../dgit:4269
+#: ../dgit:4336
#, perl-format
msgid "%s is for %s %s but debian/changelog is for %s %s"
msgstr "%s is voor %s %s maar debian/changelog is voor %s %s"
-#: ../dgit:4330
+#: ../dgit:4390
#, perl-format
msgid "changes field %s `%s' does not match changelog `%s'"
msgstr "het changes-veld %s `%s' komt niet overeen met `%s' uit changelog"
-#: ../dgit:4358
-#, perl-format
-msgid "%s release %s for %s (%s) [dgit]\n"
-msgstr "%s release %s voor %s (%s) [dgit]\n"
-
-#: ../dgit:4371
-#, perl-format
-msgid ""
-"%s release %s for %s (%s)\n"
-"(maintainer view tag generated by dgit --quilt=%s)\n"
-msgstr ""
-"%s release %s voor %s (%s)\n"
-"(tag 'maintainer view' gegenereerd door dgit --quilt=%s)\n"
-
-#: ../dgit:4423
-msgid ""
-"Push failed, while checking state of the archive.\n"
-"You can retry the push, after fixing the problem, if you like.\n"
-msgstr ""
-"Push mislukte tijdens het nagaan van de toestand van het archief.\n"
-"Indien u wenst, kunt u de push opnieuw proberen, na het oplossen van het "
-"probleem.\n"
-
-#: ../dgit:4432
-msgid ""
-"package appears to be new in this suite; if this is intentional, use --new"
-msgstr ""
-"het pakket lijkt in deze suite nieuw te zijn; als dit ook de bedoeling is, "
-"gebruik dan --new"
-
-#: ../dgit:4437
-msgid ""
-"Push failed, while preparing your push.\n"
-"You can retry the push, after fixing the problem, if you like.\n"
-msgstr ""
-"Push mislukte tijdens het voorbereiden van uw push.\n"
-"Indien u wenst, kunt u de push opnieuw proberen, na het oplossen van het "
-"probleem.\n"
-
-#: ../dgit:4460
-#, perl-format
-msgid "looked for .dsc %s, but %s; maybe you forgot to build"
-msgstr "zocht naar .dsc %s, maar %s; misschien vergat u te bouwen"
-
-#: ../dgit:4477
-#, perl-format
-msgid ""
-"Branch is managed by git-debrebase (%s\n"
-"exists), but quilt mode (%s) implies a split view.\n"
-"Pass the right --quilt option or adjust your git config.\n"
-"Or, maybe, run git-debrebase forget-was-ever-debrebase.\n"
-msgstr ""
-"Tak wordt beheerd door git-debrebase (%s\n"
-"bestaat), maar de quilt-modus (%s) impliceert een gesplitste weergave.\n"
-"Gebruik de juiste --quilt-optie of pas uw git config aan.\n"
-"Of voer misschien git-debrebase forget-was-ever-debrebase uit.\n"
-
-#: ../dgit:4501
-#, perl-format
-msgid ""
-"--quilt=%s but no cached dgit view:\n"
-" perhaps HEAD changed since dgit build[-source] ?"
-msgstr ""
-"--quilt=%s maar geen gecachete dgit-weergave:\n"
-" werd HEAD misschien gewijzigd sinds dgit build[-source]?"
-
-#: ../dgit:4532
-msgid ""
-"dgit push: HEAD is not a descendant of the archive's version.\n"
-"To overwrite the archive's contents, pass --overwrite[=VERSION].\n"
-"To rewind history, if permitted by the archive, use --deliberately-not-fast-"
-"forward."
-msgstr ""
-"dgit push: HEAD is geen afstammeling van de versie van het archief.\n"
-"Om de inhoud van het archief te overschrijven, geeft u de opdracht --"
-"overwrite[=VERSIE].\n"
-"Om de geschiedenis terug te spoelen, als het archief dat toestaat, gebruikt "
-"u --deliberately-not-fast-forward."
-
-#: ../dgit:4542
-#, perl-format
-msgid "checking that %s corresponds to HEAD"
-msgstr "bezig na te gaan dat %s overeenkomt met HEAD"
-
-#: ../dgit:4576 ../dgit:4588
-#, perl-format
-msgid "HEAD specifies a different tree to %s:\n"
-msgstr "HEAD geeft een andere boom op aan %s:\n"
-
-#: ../dgit:4582
-#, perl-format
-msgid ""
-"There is a problem with your source tree (see dgit(7) for some hints).\n"
-"To see a full diff, run git diff %s %s\n"
-msgstr ""
-"Er is een probleem met uw broncodeboom (zie dgit(7) voor suggesties).\n"
-"Om alle verschillen te zien, gebruikt u git diff %s %s\n"
-
-#: ../dgit:4592
-#, perl-format
-msgid ""
-"Perhaps you forgot to build. Or perhaps there is a problem with your\n"
-" source tree (see dgit(7) for some hints). To see a full diff, run\n"
-" git diff %s %s\n"
-msgstr ""
-"Misschien vergat u te bouwen (build). Of er is misschien een probleem met\n"
-" uw broncodeboom (zie dgit(7) voor suggesties). Om alle verschillen te "
-"zien,\n"
-" gebruikt u git diff %s %s\n"
-
-#: ../dgit:4603
-#, perl-format
-msgid ""
-"failed to find unique changes file (looked for %s in %s); perhaps you need "
-"to use dgit -C"
-msgstr ""
-"kon geen uniek changes-bestand vinden (zocht naar %s in %s); misschien moet "
-"u dgit -C gebruiken"
-
-#: ../dgit:4625
-msgid "uploading binaries, although distro policy is source only"
-msgstr ""
-"bezig met uploaden van binaire pakketten, hoewel het beleid van de "
-"distributie uitsluitend broncode (source only) voorschrijft"
-
-#: ../dgit:4629
-msgid "source-only upload, although distro policy requires .debs"
-msgstr ""
-"upload van uitsluitend broncode (source-only), hoewel het beleid van de "
-"distributie .deb's vereist"
-
-#: ../dgit:4633
-#, perl-format
-msgid ""
-"source-only upload, even though package is entirely NEW\n"
-"(this is contrary to policy in %s)"
-msgstr ""
-"upload van uitsluitend broncode (source-only), hoewel pakket volledig NIEUW "
-"is\n"
-"(dit is in tegenspraak met de beleidsrichtlijnen in %s)"
-
-#: ../dgit:4640
-#, perl-format
-msgid "unknown source-only-uploads policy `%s'"
-msgstr "onbekende source-only-uploads beleidsrichtlijn `%s'"
-
-#: ../dgit:4684
-msgid ""
-"Push failed, while signing the tag.\n"
-"You can retry the push, after fixing the problem, if you like.\n"
-msgstr ""
-"Push mislukte tijdens het ondertekenen van de tag.\n"
-"Indien u dit wenst, kunt u de push opnieuw proberen na het oplossen van het "
-"probleem.\n"
-
-#: ../dgit:4697
-msgid ""
-"Push failed, *after* signing the tag.\n"
-"If you want to try again, you should use a new version number.\n"
-msgstr ""
-"Push mislukte *na* het ondertekenen van de tag.\n"
-"Indien u opnieuw wenst te proberen, moet u een nieuw versienummer "
-"gebruiken.\n"
-
-#: ../dgit:4714
-msgid ""
-"Push failed, while updating the remote git repository - see messages above.\n"
-"If you want to try again, you should use a new version number.\n"
-msgstr ""
-"Push mislukte tijdens het bijwerken van de externe git-opslagplaats - zie de "
-"meldingen hierboven.\n"
-"Indien u opnieuw wenst te proberen, moet u een nieuw versienummer "
-"gebruiken.\n"
-
-#: ../dgit:4731
-msgid ""
-"Push failed, while obtaining signatures on the .changes and .dsc.\n"
-"If it was just that the signature failed, you may try again by using\n"
-"debsign by hand to sign the changes file (see the command dgit tried,\n"
-"above), and then dput that changes file to complete the upload.\n"
-"If you need to change the package, you must use a new version number.\n"
-msgstr ""
-"Push mislukte bij het verkrijgen van de ondertekening van .changes en .dsc.\n"
-"Indien het louter een mislukte ondertekening betreft, kunt u opnieuw "
-"proberen\n"
-"door handmatig het changes-bestand te ondertekenen met debsign (zie "
-"hierboven\n"
-"welk commando dgit gebruikte) en vervolgens het changes-bestand te uploaden\n"
-"met dput om zo de upload te vervolledigen.\n"
-"Indien u het pakket moet aanpassen, moet u een nieuw versienummer "
-"gebruiken.\n"
-
-#: ../dgit:4762
-#, perl-format
-msgid "pushed and uploaded %s"
-msgstr "%s gepusht en geüpload"
-
-#: ../dgit:4774
-msgid "-p is not allowed with clone; specify as argument instead"
-msgstr ""
-"-p mag niet met clone gebruikt worden; geef het in de plaats daarvan op als "
-"argument"
-
-#: ../dgit:4785
-msgid "incorrect arguments to dgit clone"
-msgstr "incorrecte argumenten voor dgit clone"
-
-#: ../dgit:4791 ../git-debrebase:1839
-#, perl-format
-msgid "%s already exists"
-msgstr "%s bestaat reeds"
-
-#: ../dgit:4805
-#, perl-format
-msgid "remove %s: %s\n"
-msgstr "verwijder %s: %s\n"
-
-#: ../dgit:4809
-#, perl-format
-msgid "check whether to remove %s: %s\n"
-msgstr "controleer of %s moet verwijderd worden: %s\n"
-
-#: ../dgit:4847
-msgid "incorrect arguments to dgit fetch or dgit pull"
-msgstr "incorrecte argumenten voor dgit fetch of dgit pull"
-
-#: ../dgit:4864
-#, perl-format
-msgid "dgit pull not yet supported in split view mode (--quilt=%s)\n"
-msgstr ""
-"dgit pull wordt in gesplitste weergavemodus (--quilt=%s) nog niet "
-"ondersteund\n"
-
-#: ../dgit:4873
-msgid "dgit checkout needs a suite argument"
-msgstr "dgit checkout heeft een suite nodig als argument"
-
-#: ../dgit:4935
-#, perl-format
-msgid "setting up vcs-git: %s\n"
-msgstr "bezig met opzetten van vcs-git: %s\n"
-
-#: ../dgit:4938
-#, perl-format
-msgid "vcs git already configured: %s\n"
-msgstr "vcs git is reeds geconfigureerd: %s\n"
-
-#: ../dgit:4940
-#, perl-format
-msgid "changing vcs-git url to: %s\n"
-msgstr "url van vcs-git wordt veranderd naar: %s\n"
-
-#: ../dgit:4945
-#, perl-format
-msgid "fetching (%s)\n"
-msgstr "bezig met ophalen (%s)\n"
-
-#: ../dgit:4960
-#, perl-format
-msgid "incorrect arguments to dgit %s"
-msgstr "incorrecte argumenten voor dgit %s"
-
-#: ../dgit:4971
-#, perl-format
-msgid "dgit %s: changelog specifies %s (%s) but command line specifies %s"
-msgstr ""
-"dgit %s: het changelog-bestand vermeldt %s (%s), maar op de commandoregel "
-"wordt %s opgegeven"
-
-#: ../dgit:5009
-#, perl-format
-msgid ""
-"build host has dgit rpush protocol versions %s but invocation host has %s"
-msgstr ""
-"de protocolversies van dgit rpush op de bouwcomputer zijn %s, maar die van "
-"de aanroepende computer zijn %s"
-
-#: ../dgit:5089
-#, perl-format
-msgid "create %s: %s"
-msgstr "maak %s aan: %s"
-
-#: ../dgit:5126
-#, perl-format
-msgid "build host child failed: %s"
-msgstr "dochterproces op de bouwcomputer faalde: %s"
-
-#: ../dgit:5129
-msgid "all done\n"
-msgstr "alles klaar\n"
-
-#: ../dgit:5138
-#, perl-format
-msgid "file %s (%s) twice"
-msgstr "bestand %s (%s) tweemaal"
-
-#: ../dgit:5146
-msgid "bad param spec"
-msgstr "slechte parameter-spec"
-
-#: ../dgit:5152
-msgid "bad previously spec"
-msgstr "slechte vroegere spec"
-
-#: ../dgit:5171
-#, perl-format
-msgid ""
-"rpush negotiated protocol version %s which does not support quilt mode %s"
-msgstr ""
-"de onderhandeling van rpush leverde protocolversie %s op, welke quilt-modus "
-"%s niet ondersteunt"
-
-#: ../dgit:5216
-#, perl-format
-msgid "buildinfo mismatch in field %s"
-msgstr "buildinfo-incongruentie in veld %s"
-
-#: ../dgit:5219
-#, perl-format
-msgid "buildinfo contains forbidden field %s"
-msgstr "buildinfo bevat ongeoorloofd veld %s"
-
-#: ../dgit:5260
-msgid "remote changes file"
-msgstr "extern changes-bestand"
-
-#: ../dgit:5335
-msgid "not a plain file or symlink\n"
-msgstr "geen echt bestand of symbolische koppeling\n"
-
-#: ../dgit:5341
-msgid "mode or type changed\n"
-msgstr "modus of type gewijzigd\n"
-
-#: ../dgit:5342
-msgid "modified symlink\n"
-msgstr "symbolische koppeling gewijzigd\n"
-
-#: ../dgit:5345
-msgid "deletion of symlink\n"
-msgstr "verwijdering van symbolische koppeling\n"
-
-#: ../dgit:5349
-msgid "creation with non-default mode\n"
-msgstr "creatie met een niet-standaard modus\n"
-
-#: ../dgit:5379
-msgid "dgit view: changes are required..."
-msgstr "dgit-weergave: er zijn wijzigingen vereist..."
-
-#: ../dgit:5408
-#, perl-format
-msgid ""
-"\n"
-"For full diff showing the problem(s), type:\n"
-" %s\n"
-msgstr ""
-"\n"
-"Voor een volledige diff die het/de probl(e)em(en) laat zien, typt u:\n"
-" %s\n"
-
-#: ../dgit:5415
-#, perl-format
-msgid ""
-"--quilt=%s specified, implying patches-unapplied git tree\n"
-" but git tree differs from orig in upstream files."
-msgstr ""
-"--quilt=%s opgegeven, hetgeen een patches-unapplied git tree impliceert\n"
-" (een git-boom zonder dat de patches toegepast worden)\n"
-" maar de git-boom verschilt van orig in de toeleveraarsbestanden."
-
-#: ../dgit:5421
-msgid ""
-"\n"
-" ... debian/patches is missing; perhaps this is a patch queue branch?"
-msgstr ""
-"\n"
-" ... debian/patches ontbreekt; is dit misschien een tak met een patch-"
-"wachtrij?"
-
-#: ../dgit:5428
-#, perl-format
-msgid ""
-"--quilt=%s specified, implying patches-applied git tree\n"
-" but git tree differs from result of applying debian/patches to upstream\n"
-msgstr ""
-"--quilt=%s opgegeven, hetgeen een patches-applied git tree impliceert\n"
-" (een git-boom met toegepaste patches)\n"
-" maar de git-boom verschilt van het resultaat van het toepassen van\n"
-" debian/patches op de broncode van de toeleveraar.\n"
-
-#: ../dgit:5435
-msgid "dgit view: creating patches-applied version using gbp pq"
-msgstr ""
-"dgit-weergave: met gbp pq wordt een versie met toegepaste patches gemaakt"
-
-#: ../dgit:5444
-#, perl-format
-msgid ""
-"--quilt=%s specified, implying that HEAD is for use with a\n"
-" tool which does not create patches for changes to upstream\n"
-" .gitignores: but, such patches exist in debian/patches.\n"
-msgstr ""
-"--quilt=%s werd opgegeven, hetgeen inhoudt dat HEAD bedoeld is om gebruikt\n"
-" te worden met een hulpmiddel dat geen patches maakt om .gitignores van de\n"
-" toeleveraar te wijzigen: maar debian/patches heeft wel dergelijke patches.\n"
-
-#: ../dgit:5453
-msgid "dgit view: creating patch to represent .gitignore changes"
-msgstr ""
-"dgit-weergave: een patch wordt gemaakt om de wijzigingen aan .gitignore te "
-"representeren"
-
-#: ../dgit:5458
-#, perl-format
-msgid "%s already exists; but want to create it to record .gitignore changes"
-msgstr ""
-"%s bestaat reeds; maar wil het aanmaken om de wijzigingen aan .gitignore op "
-"te tekenen"
-
-#: ../dgit:5463
-msgid ""
-"Subject: Update .gitignore from Debian packaging branch\n"
-"\n"
-"The Debian packaging git branch contains these updates to the upstream\n"
-".gitignore file(s). This patch is autogenerated, to provide these\n"
-"updates to users of the official Debian archive view of the package.\n"
-msgstr ""
-"Onderwerp: Bijwerken van .gitignore vanuit de Debian pakketbouw-tak\n"
-"\n"
-"De git-tak met het Debian pakket bevat deze bijwerkingen aan het/de\n"
-".gitignore-bestand(en) van de toeleveraar. Deze patch werd automatisch\n"
-"gegenereerd om deze updates ter beschikking te stellen van gebruikers van\n"
-"de weergave van het pakket uit het officiële Debian-archief.\n"
-
-#: ../dgit:5485
-msgid "Commit patch to update .gitignore\n"
-msgstr "Commit (vastleggen) van patch om .gitignore bij te werken\n"
-
-#: ../dgit:5499
-msgid "converted"
-msgstr "omgezet"
-
-#: ../dgit:5500
-#, perl-format
-msgid "dgit view: created (%s)"
-msgstr "dgit-weergave: gecreëerd: (%s)"
-
-#: ../dgit:5565
+#: ../dgit:5650
msgid "maximum search space exceeded"
msgstr "maximale zoekruimte overschreden"
-#: ../dgit:5583
+#: ../dgit:5668
#, perl-format
msgid "has %s not %s"
msgstr "bevat %s, niet %s"
-#: ../dgit:5592
+#: ../dgit:5677
msgid "root commit"
msgstr "beginvastlegging (root commit)"
-#: ../dgit:5598
+#: ../dgit:5683
#, perl-format
msgid "merge (%s nontrivial parents)"
msgstr "samenvoeging (merge) (%s niet-triviale ouders)"
-#: ../dgit:5610
+#: ../dgit:5695
#, perl-format
msgid "changed %s"
msgstr "gewijzigd: %s"
-#: ../dgit:5629
+#: ../dgit:5714
#, perl-format
msgid ""
"\n"
"\n"
"%s: fout: een quilt fixup kan niet lineair zijn. Gestopt bij:\n"
-#: ../dgit:5636
+#: ../dgit:5721
#, perl-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: ../dgit:5648
+#: ../dgit:5733
msgid "quilt history linearisation failed. Search `quilt fixup' in dgit(7).\n"
msgstr ""
"lineair maken van de quilt-geschiedenis mislukte. Zoek naar `quilt fixup' in "
"dgit(7).\n"
-#: ../dgit:5651
+#: ../dgit:5736
msgid "quilt fixup cannot be linear, smashing..."
msgstr ""
"de quilt fixup kan niet lineair zijn, de smash strategie wordt gebruikt..."
-#: ../dgit:5663
+#: ../dgit:5748
#, perl-format
msgid ""
"Automatically generated patch (%s)\n"
"Laatste (tot en met) %s git-wijzigingen, ter informatie:\n"
"\n"
-#: ../dgit:5670
+#: ../dgit:5755
msgid "quiltify linearisation planning successful, executing..."
msgstr "linearisatieplanning voor quiltify was succesvol, wordt uitgevoerd..."
-#: ../dgit:5704
+#: ../dgit:5789
msgid "contains unexpected slashes\n"
msgstr "bevat onverwachte slashes\n"
-#: ../dgit:5705
+#: ../dgit:5790
msgid "contains leading punctuation\n"
msgstr "bevat leestekens aan het begin\n"
-#: ../dgit:5706
+#: ../dgit:5791
msgid "contains bad character(s)\n"
msgstr "bevat foutieve teken(s)\n"
-#: ../dgit:5707
+#: ../dgit:5792
msgid "is series file\n"
msgstr "is een series-bestand\n"
-#: ../dgit:5708
+#: ../dgit:5793
msgid "too long\n"
msgstr "te lang\n"
-#: ../dgit:5712
+#: ../dgit:5797
#, perl-format
msgid "quiltifying commit %s: ignoring/dropping Gbp-Pq %s: %s"
msgstr ""
"quiltifying commit (quiltificerende vastlegging) %s: Gbp-Pq %s wordt "
"genegeerd/weggelaten: %s"
-#: ../dgit:5741
+#: ../dgit:5826
#, perl-format
msgid "dgit: patch title transliteration error: %s"
msgstr "dgit: fout bij de transliteratie van de patch-titel: %s"
-#: ../dgit:5884
+#: ../dgit:5909
+#, perl-format
+msgid ""
+"quilt mode %s does not make sense (or is not supported) with single-debian-"
+"patch"
+msgstr ""
+"quilt modus %s is zinloos (of wordt niet ondersteund) met single-debian-patch"
+
+#: ../dgit:5927
+msgid "converted"
+msgstr "omgezet"
+
+#: ../dgit:5928
+#, perl-format
+msgid "dgit view: created (%s)"
+msgstr "dgit-weergave: gecreëerd: (%s)"
+
+#: ../dgit:5982
msgid "Commit removal of .pc (quilt series tracking data)\n"
msgstr ""
"Vastleggingsverwijdering (commit removal) van .pc (quilt-seriegegevens)\n"
-#: ../dgit:5894
+#: ../dgit:5992
msgid "starting quiltify (single-debian-patch)"
msgstr "quiltify wordt gestart (één enkele debian-patch)"
-#: ../dgit:5996
+#: ../dgit:6102
#, perl-format
msgid "dgit: split brain (separate dgit view) may be needed (--quilt=%s)."
msgstr ""
"dgit: gespleten brein (aparte dgit-weergave) is mogelijk nodig (--quilt=%s)."
-#: ../dgit:6027
+#: ../dgit:6134
#, perl-format
msgid "dgit view: found cached (%s)"
msgstr "dgit-weergave: gecachete (%s) aangetroffen"
-#: ../dgit:6032
+#: ../dgit:6139
msgid "dgit view: found cached, no changes required"
msgstr "dgit-weergave: gecachete aangetroffen, geen wijzigingen vereist"
-#: ../dgit:6043
+#: ../dgit:6174
#, perl-format
msgid "examining quilt state (multiple patches, %s mode)"
msgstr "toestand van quilt wordt nagegaan (meerdere patches, %s-modus)"
-#: ../dgit:6134
+#: ../dgit:6288
msgid ""
"failed to apply your git tree's patch stack (from debian/patches/) to\n"
" the corresponding upstream tarball(s). Your source tree and .orig\n"
msgstr ""
"toepassen van de patch-stapel (uit debian/patches/) van uw git-boom op het/"
"de\n"
-" overeenkomstig(e) tararchie(f)(ven) van de toeleveraar mislukte.\n"
+" overeenkomstig(e) tararchie(f)(ven) van de bovenstroomse toeleveraar "
+"mislukte.\n"
" Uw broncodeboom en .orig zijn wellicht te inconsistent.\n"
" dgit can enkel bepaalde soorten anomalieën repareren\n"
" (afhankelijk van de quilt-modus). Raadpleeg --quilt= in dgit(1).\n"
-#: ../dgit:6148
+#: ../dgit:6302
msgid "Tree already contains .pc - will use it then delete it."
msgstr "Boom bevat reeds een .pc - zal dit gebruiken en dan verwijderen."
-#: ../dgit:6185
+#: ../dgit:6336
+msgid "baredebian quilt fixup: could not find any origs"
+msgstr "baredebian quilt reparatie: kon geen origs vinden"
+
+#: ../dgit:6349
+msgid "tarball"
+msgstr "tar-archief"
+
+#: ../dgit:6367
+#, perl-format
+msgid "Combine orig tarballs for %s %s"
+msgstr " Combineren van orig tar-archieven voor %s %s"
+
+#: ../dgit:6383
+msgid "tarballs"
+msgstr "tar-archieven"
+
+#: ../dgit:6397
+msgid "upstream"
+msgstr "bovenstrooms"
+
+#: ../dgit:6421
#, perl-format
msgid "%s: base trees orig=%.20s o+d/p=%.20s"
msgstr "%s: van de basisbomen zijn orig=%.20s en o+d/p=%.20s"
-#: ../dgit:6188
+#: ../dgit:6431
#, perl-format
msgid ""
"%s: quilt differences: src: %s orig %s gitignores: %s orig %s\n"
-"%s: quilt differences: HEAD %s o+d/p HEAD %s o+d/p"
+"%s: quilt differences: %9.00009s %s o+d/p %9.00009s %s o+d/p"
msgstr ""
"%s: quilt-verschillen: src: %s orig %s gitignores: %s orig %s\n"
-"%s: quilt-verschillen: HEAD %s o+d/p HEAD %s o+d/p"
+"%s: quilt-verschillen: %9.00009s %s o+d/p %9.00009s %s o+d/p"
-#: ../dgit:6194
+#: ../dgit:6440
#, perl-format
msgid "dgit: cannot represent change: %s: %s\n"
msgstr "dgit: kan wijziging niet representeren: %s: %s\n"
-#: ../dgit:6198
+#: ../dgit:6444
msgid ""
"HEAD has changes to .orig[s] which are not representable by `3.0 (quilt)'\n"
msgstr ""
"HEAD bevat wijzigingen aan .orig[s] welke niet door `3.0 (quilt)' vertolkt "
"kunnen worden\n"
-#: ../dgit:6205
+#: ../dgit:6451
+msgid ""
+"This has only a debian/ directory; you probably want --quilt=bare debian."
+msgstr "Dit bevat enkel een map debian/; wellicht wilt u --quilt=bare debian."
+
+#: ../dgit:6455
msgid "This might be a patches-unapplied branch."
msgstr "Dit is mogelijk een tak zonder toepassing van patches."
-#: ../dgit:6208
+#: ../dgit:6458
msgid "This might be a patches-applied branch."
msgstr "Dit is mogelijk een tak met toegepaste patches."
-#: ../dgit:6211
+#: ../dgit:6461
msgid "Maybe you need one of --[quilt=]gbp --[quilt=]dpm --quilt=unapplied ?"
msgstr ""
"Heeft u mogelijk een van de volgende opties nodig: --[quilt=]gbp --"
"[quilt=]dpm --quilt=unapplied ?"
-#: ../dgit:6214
+#: ../dgit:6464
msgid "Warning: Tree has .gitattributes. See GITATTRIBUTES in dgit(7)."
msgstr ""
"Waarschuwing: Boom bevat .gitattributes. Zie GITATTRIBUTES in dgit(7)."
-#: ../dgit:6218
+#: ../dgit:6468
msgid "Maybe orig tarball(s) are not identical to git representation?"
msgstr ""
"Is/zijn het/de orig-tararchie(f)(ven) misschien niet identiek aan de "
"representatie ervan door git?"
-#: ../dgit:6227
+#: ../dgit:6479
#, perl-format
msgid "starting quiltify (multiple patches, %s mode)"
msgstr "quiltify wordt gestart (meerdere patches, %s-modus)"
-#: ../dgit:6265
+#: ../dgit:6518
msgid ""
"\n"
"dgit: Building, or cleaning with rules target, in patches-unapplied tree.\n"
"dgit: (Overweeg het gebruik van --clean=git en (of) dgit sbuild.)\n"
"\n"
-#: ../dgit:6277
+#: ../dgit:6530
msgid "dgit: Unapplying patches again to tidy up the tree."
msgstr ""
"dgit: Bezig toepassen van patches terug ongedaan te maken om de boom op te "
"schonen."
-#: ../dgit:6306
+#: ../dgit:6559
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"
"negeren, of --clean=git (-wg/-wgf) om in de plaats `git clean' te "
"gebruiken.\n"
-#: ../dgit:6318
+#: ../dgit:6571
msgid "tree contains uncommitted files and --clean=check specified"
msgstr ""
"de boom bevat niet-vastgelegde bestanden en --clean=check werd opgegeven"
-#: ../dgit:6321
+#: ../dgit:6574
msgid "tree contains uncommitted files (NB dgit didn't run rules clean)"
msgstr ""
"de boom bevat niet-vastgelegde bestanden (NB dgit voerde geen rules clean "
"uit)"
-#: ../dgit:6324
+#: ../dgit:6577
msgid ""
"tree contains uncommited, untracked, unignored files\n"
"You can use --clean=git[-ff],always (-wga/-wgfa) to delete them."
"de boom bevat niet-vastgelegde, niet-gevolgde, niet-genegeerde bestanden\n"
"U kunt --clean=git[-ff],always (-wga/-wgfa) gebruiken om ze te verwijderen."
-#: ../dgit:6342
+#: ../dgit:6590
+#, perl-format
+msgid ""
+"quilt mode %s (generally needs untracked upstream files)\n"
+"contradicts clean mode %s (which would delete them)\n"
+msgstr ""
+"quilt modus %s (heeft meestal niet gevolgde bovenstroomse bestanden nodig)\n"
+"is in strijd met clean modus %s (welke deze zou verwijderen)\n"
+
+#: ../dgit:6607
msgid "tree contains uncommitted files (after running rules clean)"
msgstr ""
"de boom bevat niet-vastgelegde bestanden (na het uitvoeren van rules clean)"
-#: ../dgit:6356
+#: ../dgit:6621
msgid "clean takes no additional arguments"
msgstr "met clean kunnen geen extra argumenten opgegeven worden"
-#: ../dgit:6369
+#: ../dgit:6640
#, perl-format
-msgid "-p is not allowed with dgit %s"
-msgstr "-p is niet toegestaan met dgit %s"
+msgid "-p specified package %s, but changelog says %s"
+msgstr "-p specificeerde pakket %s, maar het changelog-bestand vermeldt %s"
-#: ../dgit:6408
+#: ../dgit:6650
+msgid ""
+"dgit: --include-dirty is not supported with split view (including with view-"
+"splitting quilt modes)"
+msgstr ""
+"dgit: --include-dirty wordt niet ondersteund bij gesplitste weergave (met "
+"inbegrip van quilt-modi welke de weergave splitsen)"
+
+#: ../dgit:6659
+#, perl-format
+msgid "dgit: --quilt=%s, %s"
+msgstr "dgit: --quilt=%s, %s"
+
+#: ../dgit:6663
+msgid "dgit: --upstream-commitish only makes sense with --quilt=baredebian"
+msgstr "dgit: --upstream-commitish is enkel zinvol met --quilt=baredebian"
+
+#: ../dgit:6698
#, perl-format
msgid "remove old changes file %s: %s"
msgstr "verwijder oud changes-bestand %s: %s"
-#: ../dgit:6410
+#: ../dgit:6700
#, perl-format
msgid "would remove %s"
msgstr "zou %s verwijderen"
-#: ../dgit:6436
+#: ../dgit:6718
+#, perl-format
+msgid "warning: dgit option %s must be passed before %s on dgit command line\n"
+msgstr ""
+"waarschuwing: aan de commandoregel van dgit moet de optie %s van dgit "
+"opgegeven worden voor %s\n"
+
+#: ../dgit:6725
+#, perl-format
+msgid ""
+"warning: option %s should probably be passed to dgit before %s sub-command "
+"on the dgit command line, so that it is seen by dgit and not simply passed "
+"to %s\n"
+msgstr ""
+"waarschuwing: op de commandoregel van dgit moet optie %s wellicht meegegeven "
+"worden aan dgit voor het sub-commando %s, zodat het door dgit gezien wordt "
+"en niet enkel meegegeven wordt aan %s\n"
+
+#: ../dgit:6751
msgid "archive query failed (queried because --since-version not specified)"
msgstr ""
"mislukt verzoek aan het archief (verzoek gedaan omdat --since-version niet "
"opgegeven werd)"
-#: ../dgit:6442
+#: ../dgit:6757
#, perl-format
msgid "changelog will contain changes since %s"
msgstr "changelog zal wijzigingen sinds %s bevatten"
-#: ../dgit:6445
+#: ../dgit:6760
msgid "package seems new, not specifying -v<version>"
msgstr "pakket lijkt nieuw te zijn, geen vermelding van -v<versie>"
-#: ../dgit:6488
+#: ../dgit:6803
msgid "Wanted to build nothing!"
msgstr "Wilde niets bouwen!"
-#: ../dgit:6526
+#: ../dgit:6841
#, perl-format
msgid "only one changes file from build (%s)\n"
msgstr "slechts één changes-bestand van bouw (%s)\n"
-#: ../dgit:6533
+#: ../dgit:6848
#, perl-format
msgid "%s found in binaries changes file %s"
msgstr "%s aangetroffen in changes-bestand %s van de binaire pakketten"
-#: ../dgit:6540
+#: ../dgit:6855
#, perl-format
msgid "%s unexpectedly not created by build"
msgstr "%s tegen de verwachtingen in niet gecreëerd door de bouw"
-#: ../dgit:6544
+#: ../dgit:6859
#, perl-format
msgid "install new changes %s{,.inmulti}: %s"
msgstr "installeer nieuw changes %s{,.inmulti}: %s"
-#: ../dgit:6549
+#: ../dgit:6864
#, perl-format
msgid "wrong number of different changes files (%s)"
msgstr "fout nummer van verschillende changes-bestanden (%s)"
-#: ../dgit:6552
+#: ../dgit:6867
#, perl-format
msgid "build successful, results in %s\n"
msgstr "bouw was succesvol, resultaten in %s\n"
-#: ../dgit:6565
+#: ../dgit:6880
#, perl-format
msgid ""
"changes files other than source matching %s already present; building would "
"resultaat.\n"
"De suggestie is dat u %s verwijdert.\n"
-#: ../dgit:6583
+#: ../dgit:6898
msgid "build successful\n"
msgstr "de bouw was succesvol\n"
-#: ../dgit:6590
+#: ../dgit:6906
#, perl-format
msgid ""
"%s: warning: build-products-dir set, but not supported by dpkg-buildpackage\n"
"%s: waarschuwing: build-products-dir zal genegeerd worden; bestanden zullen "
"gaan naar ..\n"
-#: ../dgit:6700
+#: ../dgit:7017
#, perl-format
msgid "remove %s: %s"
msgstr "verwijder %s: %s"
-#: ../dgit:6735
+#: ../dgit:7054
msgid "--include-dirty not supported with --build-products-dir, sorry"
msgstr "--include-dirty niet ondersteund met --build-products-dir, sorry"
-#: ../dgit:6755
+#: ../dgit:7074
#, perl-format
msgid "put in place new built file (%s): %s"
msgstr "zet nieuw gebouwd bestand (%s) op zijn plaats: %s"
-#: ../dgit:6768
+#: ../dgit:7087
msgid "build-source takes no additional arguments"
msgstr "build-source moet zonder bijkomende argumenten gebruikt worden"
-#: ../dgit:6772
+#: ../dgit:7091
#, perl-format
msgid "source built, results in %s and %s"
msgstr "broncodepakket is gebouwd, resultaten in %s en %s"
-#: ../dgit:6779
+#: ../dgit:7098
msgid ""
"dgit push-source: --include-dirty/--ignore-dirty does not makesense with "
"push-source!"
"dgit push-source: --include-dirty/--ignore-dirty zijn zinloos met push-"
"source!"
-#: ../dgit:6785
+#: ../dgit:7104
msgid "source changes file"
msgstr "broncode-changes-bestand"
-#: ../dgit:6787
+#: ../dgit:7106
msgid "user-specified changes file is not source-only"
msgstr ""
"door de gebruiker opgegeven changes-bestand is niet 'uitsluitend broncode'"
-#: ../dgit:6807 ../dgit:6809
+#: ../dgit:7126 ../dgit:7128
#, perl-format
msgid "%s (in build products dir): %s"
msgstr "%s (in bouwproductenmap): %s"
-#: ../dgit:6822
+#: ../dgit:7142
msgid ""
"perhaps you need to pass -A ? (sbuild's default is to build only\n"
"arch-specific binaries; dgit 1.4 used to override that.)\n"
"specifieke\n"
"binaire pakketten te bouwen; dgit 1.4 was gewend dit te overschrijven.)\n"
-#: ../dgit:6834
+#: ../dgit:7155
msgid ""
"you asked for a builder but your debbuildopts didn't ask for any binaries -- "
"is this really what you meant?"
"u vroeg een bouwprogramma maar uw debbuildopts vroeg geen enkel binair "
"pakket - is dit echt wat u bedoelde?"
-#: ../dgit:6838
+#: ../dgit:7159
msgid ""
"we must build a .dsc to pass to the builder but your debbuiltopts forbids "
"the building of a source package; cannot continue"
"debbuiltopts verbiedt het bouwen van een broncodepakket; voortgaan is "
"onmogelijk"
-#: ../dgit:6868
+#: ../dgit:7189
msgid "incorrect arguments to dgit print-unapplied-treeish"
msgstr "foutieve argumenten voor dgit print-unapplied-treeish"
-#: ../dgit:6890
+#: ../dgit:7210
msgid "source tree"
msgstr "broncodeboom"
-#: ../dgit:6892
+#: ../dgit:7212
#, perl-format
msgid "dgit: import-dsc: %s"
msgstr "dgit: import-dsc: %s"
-#: ../dgit:6905
+#: ../dgit:7225
#, perl-format
msgid "unknown dgit import-dsc sub-option `%s'"
msgstr "onbekende onderliggende optie `%s' voor dgit import-dsc"
-#: ../dgit:6909
+#: ../dgit:7229
msgid "usage: dgit import-dsc .../PATH/TO/.DSC BRANCH"
msgstr "gebruik: dgit import-dsc .../PAD/NAAR/.DSC TAK"
-#: ../dgit:6913
+#: ../dgit:7233
msgid "dry run makes no sense with import-dsc"
msgstr "testuitvoering (dry run) is zinloos met import-dsc"
-#: ../dgit:6930
+#: ../dgit:7250
#, perl-format
msgid "%s is checked out - will not update it"
msgstr "%s is binnengehaald (checked out) - zal het niet bijwerken"
-#: ../dgit:6935
+#: ../dgit:7255
#, perl-format
msgid "open import .dsc (%s): %s"
msgstr "open import-.dsc (%s): %s"
-#: ../dgit:6937
+#: ../dgit:7257
#, perl-format
msgid "read %s: %s"
msgstr "lees %s: %s"
-#: ../dgit:6948
+#: ../dgit:7268
msgid "import-dsc signature check failed"
msgstr "controle ondertekening van import-dsc mislukte"
-#: ../dgit:6951
+#: ../dgit:7271
#, perl-format
msgid "%s: warning: importing unsigned .dsc\n"
msgstr "%s: waarschuwing: niet-ondertekend .dsc wordt geïmporteerd\n"
-#: ../dgit:6962
+#: ../dgit:7282
msgid "Dgit metadata in .dsc"
msgstr "Dgit-metadata in .dsc"
-#: ../dgit:6973
+#: ../dgit:7293
msgid "dgit: import-dsc of .dsc with Dgit field, using git hash"
msgstr "dgit: import-dsc van .dsc met Dgit-veld, met behulp van git hash"
-#: ../dgit:6982
+#: ../dgit:7302
#, perl-format
msgid ""
".dsc contains Dgit field referring to object %s\n"
"Uw git-boom bevat dat object niet. Gebruik `git fetch' van een aannemelijke\n"
"server (browse.dgit.d.o? salsa?) en probeer import-dsc opnieuw.\n"
-#: ../dgit:6989
+#: ../dgit:7309
msgid "Not fast forward, forced update."
msgstr "Niet lineair (fast forward), gedwongen update."
-#: ../dgit:6991
+#: ../dgit:7311
#, perl-format
msgid "Not fast forward to %s"
msgstr "Niet lineair (fast forward) naar %s"
-#: ../dgit:6996
+#: ../dgit:7316
#, perl-format
msgid "updated git ref %s"
msgstr "git ref %s geüpdatet"
-#: ../dgit:7001
+#: ../dgit:7321
#, perl-format
msgid ""
"Branch %s already exists\n"
"geschiedenis\n"
"Geef +%s op om te overschrijven en bestaande geschiedenis te verwijderen\n"
-#: ../dgit:7021
+#: ../dgit:7341
#, perl-format
msgid "lstat %s works but stat gives %s !"
msgstr "lstat %s werkt maar stat geeft %s !"
-#: ../dgit:7023
+#: ../dgit:7343
#, perl-format
msgid "stat %s: %s"
msgstr "stat %s: %s"
-#: ../dgit:7031
+#: ../dgit:7351
#, perl-format
msgid "import %s requires %s, but: %s"
msgstr "importeren van %s vereist %s, maar: %s"
-#: ../dgit:7050
+#: ../dgit:7370
#, perl-format
msgid "cannot import %s which seems to be inside working tree!"
msgstr "kan %s niet importeren, het lijkt in de werkboom te zitten!"
-#: ../dgit:7054
+#: ../dgit:7374
#, perl-format
msgid "symlink %s to %s: %s"
msgstr "symbolische koppeling %s naar %s: %s"
-#: ../dgit:7055
+#: ../dgit:7375
#, perl-format
msgid "made symlink %s -> %s"
msgstr "maakte symbolische koppeling %s -> %s"
-#: ../dgit:7066
+#: ../dgit:7386
msgid "Import, forced update - synthetic orphan git history."
msgstr "Import, gedwongen update - kunstmatige verweesde git-geschiedenis."
-#: ../dgit:7068
+#: ../dgit:7388
msgid "Import, merging."
msgstr "Import, bezig met samenvoegen."
-#: ../dgit:7082
+#: ../dgit:7402
#, perl-format
msgid "Merge %s (%s) import into %s\n"
msgstr "Invoegen van import %s (%s) in %s\n"
-#: ../dgit:7091
+#: ../dgit:7411
#, perl-format
msgid "results are in git ref %s"
msgstr "resultaten staan in git ref %s"
-#: ../dgit:7098
+#: ../dgit:7418
msgid "need only 1 subpath argument"
msgstr "slechts 1 argument met een onderliggend pad nodig"
-#: ../dgit:7104
-#, perl-format
-msgid "exec curl: %s\n"
-msgstr "exec curl: %s\n"
-
-#: ../dgit:7118
+#: ../dgit:7436
msgid "need destination argument"
msgstr "bestemmingsargument nodig"
-#: ../dgit:7123
+#: ../dgit:7441
#, perl-format
msgid "exec git clone: %s\n"
msgstr "exec git clone: %s\n"
-#: ../dgit:7131
+#: ../dgit:7449
msgid "no arguments allowed to dgit print-dgit-repos-server-source-url"
msgstr "geen argumenten toegelaten bij dgit print-dgit-repos-server-source-url"
-#: ../dgit:7142
+#: ../dgit:7460
msgid "no arguments allowed to dgit print-dpkg-source-ignores"
msgstr "geen argumenten toegelaten bij dgit print-dpkg-source-ignores"
-#: ../dgit:7148
+#: ../dgit:7466
msgid "no arguments allowed to dgit setup-mergechangelogs"
msgstr "geen argumenten toegelaten bij dgit setup-mergechangelogs"
-#: ../dgit:7155 ../dgit:7161
+#: ../dgit:7473 ../dgit:7479
msgid "no arguments allowed to dgit setup-useremail"
msgstr "geen argumenten toegelaten bij dgit setup-useremail"
-#: ../dgit:7167
+#: ../dgit:7485
msgid "no arguments allowed to dgit setup-tree"
msgstr "geen argumenten toegelaten bij dgit setup-tree"
-#: ../dgit:7214
+#: ../dgit:7532
msgid ""
"--initiator-tempdir must be used specify an absolute, not relative, "
"directory."
"--initiator-tempdir moet gebruikt worden om een absolute, geen relatieve map "
"op te geven."
-#: ../dgit:7253
+#: ../dgit:7571
#, perl-format
msgid "%s needs a value"
msgstr "%s moet een waarde hebben"
-#: ../dgit:7257
+#: ../dgit:7575
#, perl-format
msgid "bad value `%s' for %s"
msgstr "foute waarde `%s' voor %s"
-#: ../dgit:7348
+#: ../dgit:7675
#, perl-format
msgid "%s: warning: ignoring unknown force option %s\n"
msgstr "%s: waarschuwing: onbekende force-optie %s wordt genegeerd\n"
-#: ../dgit:7368
+#: ../dgit:7693
#, perl-format
msgid "unknown long option `%s'"
msgstr "onbekende lange optie `%s'"
-#: ../dgit:7423
+#: ../dgit:7748
#, perl-format
msgid "unknown short option `%s'"
msgstr "onbekende korte optie `%s'"
-#: ../dgit:7438
+#: ../dgit:7763
#, perl-format
msgid "%s is set to something other than SIG_DFL\n"
msgstr "%s staat ingesteld op iets anders dan SIG_DFL\n"
-#: ../dgit:7442
+#: ../dgit:7767
#, perl-format
msgid "%s is blocked\n"
msgstr "%s is geblokkeerd\n"
-#: ../dgit:7448
+#: ../dgit:7773
#, perl-format
msgid ""
"On entry to dgit, %s\n"
"Dit is een bug die veroorzaakt wordt door iets in uw uitvoeringsomgeving.\n"
"Er wordt opgegeven.\n"
-#: ../dgit:7465
+#: ../dgit:7790
#, perl-format
msgid "cannot set command for %s"
msgstr "kan commando voor %s niet instellen"
-#: ../dgit:7478
+#: ../dgit:7803
#, perl-format
msgid "cannot configure options for %s"
msgstr "kan opties voor %s niet configureren"
-#: ../dgit:7498
+#: ../dgit:7823
#, perl-format
msgid "unknown quilt-mode `%s'"
msgstr "onbekende quilt-modus `%s'"
-#: ../dgit:7508
+#: ../dgit:7834
#, perl-format
msgid "unknown %s setting `%s'"
msgstr "onbekende %s dat `%s' instelt"
-#: ../dgit:7513
-msgid "dgit: --include-dirty is not supported in split view quilt mode"
-msgstr ""
-"dgit: --include-dirty wordt niet ondersteund in de quilt-modus gesplitste "
-"weergave"
-
-#: ../dgit:7524
-#, perl-format
-msgid "unknown clean-mode `%s'"
-msgstr "onbekende clean-modus `%s'"
-
-#: ../dgit:7545
+#: ../dgit:7862
msgid "DRY RUN ONLY\n"
msgstr "ENKEL TESTUITVOERING (DRY RUN)\n"
-#: ../dgit:7546
+#: ../dgit:7863
msgid "DAMP RUN - WILL MAKE LOCAL (UNSIGNED) CHANGES\n"
msgstr ""
"GETEMPERDE UITVOERING (DAMP RUN) - ZAL LOKALE (NIET-ONDERTEKENDE) "
"WIJZIGINGEN MAKEN\n"
-#: ../dgit:7565
+#: ../dgit:7882
#, perl-format
msgid "unknown operation %s"
msgstr "onbekende bewerking %s"
-#: ../git-debrebase:44
+#: ../git-debrebase:45
msgid ""
"usages:\n"
" git-debrebase [<options>] [--|-i <git rebase options...>]\n"
" ...\n"
"Zie git-debrebase(1), git-debrebase(5), dgit-maint-debrebase(7) (in dgit).\n"
-#: ../git-debrebase:67
+#: ../git-debrebase:68
#, perl-format
msgid "%s: bad usage: %s\n"
msgstr "%s: foutief gebruik: %s\n"
-#: ../git-debrebase:78
+#: ../git-debrebase:79
#, perl-format
msgid "bad options follow `git-debrebase %s'"
msgstr "foutieve opties volgen na `git-debrebase %s'"
-#: ../git-debrebase:89
+#: ../git-debrebase:90
#, perl-format
msgid "missing required git config %s"
msgstr "de vereiste git-configuratie %s ontbreekt"
-#: ../git-debrebase:401
+#: ../git-debrebase:363
#, perl-format
msgid "%s: snag ignored (-f%s): %s\n"
msgstr "%s: moeilijkheid (snag) genegeerd (-f%s): %s\n"
-#: ../git-debrebase:404
+#: ../git-debrebase:366
#, perl-format
msgid "%s: snag detected (-f%s): %s\n"
msgstr "%s: moeilijkheid (snag) gevonden (-f%s): %s\n"
-#: ../git-debrebase:417
+#: ../git-debrebase:379
#, perl-format
msgid "%s: snags: %d overriden by individual -f options\n"
msgstr ""
"%s: moeilijkheden (snags): %d overschreven door individuele -f opties\n"
-#: ../git-debrebase:423
+#: ../git-debrebase:385
#, perl-format
msgid "%s: snags: %d overriden by global --force\n"
msgstr "%s: moeilijkheden (snags): %d overschreven door het globale --force\n"
-#: ../git-debrebase:427
+#: ../git-debrebase:389
#, perl-format
msgid "%s: snags: %d blocker(s) (you could -f<tag>, or --force)"
msgstr ""
"%s: moeilijkheden (snags): %d blokker(s) (u zou -f<tag> of --force kunnen "
"gebruiken)"
-#: ../git-debrebase:459
+#: ../git-debrebase:421
msgid ""
"Branch/history seems mangled - no longer in gdr format.\n"
"See ILLEGAL OPERATIONS in git-debrebase(5).\n"
"Tak/geschiedenis lijkt verknoeid - niet langer in gdr-indeling.\n"
"Zie ILLEGAL OPERATIONS (ongeldige bewerkingen) in git-debrebase(5).\n"
-#: ../git-debrebase:466
+#: ../git-debrebase:428
#, perl-format
msgid ""
"%s\n"
"%s\n"
"Zou dit een gdr-tak moeten zijn? %s\n"
-#: ../git-debrebase:471
+#: ../git-debrebase:433
#, perl-format
msgid ""
"%s\n"
"%s\n"
"Overweeg git-debrebase scrap, om uw recent werk weg te gooien.\n"
-#: ../git-debrebase:477
+#: ../git-debrebase:439
#, perl-format
msgid ""
"%s\n"
"Tak lijkt niet bedoeld te zijn als git-debrebase tak?\n"
"Foute tak, of misschien had u git-debrebase convert-from-* nodig.\n"
-#: ../git-debrebase:488
+#: ../git-debrebase:450
#, perl-format
msgid ""
"%s\n"
"Misschien voerde u een reset naar of een rebase van een ongepaste plaats "
"uit.\n"
-#: ../git-debrebase:935
+#: ../git-debrebase:897
#, perl-format
msgid "git-debrebase `anchor' but %s"
msgstr "git-debrebase `anker' maar %s"
-#: ../git-debrebase:937
+#: ../git-debrebase:899
msgid "has other than two parents"
msgstr "heeft iets anders dan twee ouders"
-#: ../git-debrebase:938
+#: ../git-debrebase:900
msgid "contains debian/patches"
msgstr "bevat debian/patches"
-#: ../git-debrebase:964
+#: ../git-debrebase:926
msgid "is an origin commit"
msgstr "is een externe vastlegging (origin commit)"
-#: ../git-debrebase:966
+#: ../git-debrebase:928
msgid "upstream files differ from left parent"
-msgstr "bestanden van de toeleveraar verschillen van de linkerouder"
+msgstr ""
+"bestanden van de bovenstroomse toeleveraar verschillen van de linkerouder"
-#: ../git-debrebase:968
+#: ../git-debrebase:930
msgid "debian/ differs from right parent"
msgstr "debian/ verschilt van de rechterouder"
-#: ../git-debrebase:979
+#: ../git-debrebase:941
msgid "edits debian/patches"
msgstr "bewerkt debian/patches"
-#: ../git-debrebase:991
+#: ../git-debrebase:953
msgid "parent's debian is not a directory"
msgstr "bij de ouder is debian geen map"
-#: ../git-debrebase:998
+#: ../git-debrebase:960
msgid "no changes"
msgstr "geen wijzigingen"
-#: ../git-debrebase:1004
+#: ../git-debrebase:966
msgid "origin commit"
msgstr "externe vastlegging (origin commit)"
-#: ../git-debrebase:1055
+#: ../git-debrebase:1017
#, perl-format
msgid "unknown kind of merge from %s"
msgstr "onbekend soort samenvoeging vanuit %s"
-#: ../git-debrebase:1058
+#: ../git-debrebase:1020
msgid "octopus merge"
msgstr "meervoudige samenvoeging (octopus merge)"
-#: ../git-debrebase:1062
+#: ../git-debrebase:1024
msgid "general two-parent merge"
msgstr "algemene twee-oudersamenvoeging (two-parent merge)"
-#: ../git-debrebase:1079
+#: ../git-debrebase:1041
#, perl-format
msgid "inconsistent anchors in merged-breakwaters %s"
msgstr "strijdige ankers in samengevoegde golfbrekers (merged-breakwaters) %s"
-#: ../git-debrebase:1119
+#: ../git-debrebase:1081
#, perl-format
msgid "branch needs laundering (run git-debrebase): %s"
msgstr "tak heeft wasbeurt (laundering) nodig (voer git-debrebase uit): %s"
-#: ../git-debrebase:1147
+#: ../git-debrebase:1109
#, perl-format
msgid "packaging change (%s) follows upstream change"
-msgstr "wijziging (%s) bij het verpakken volgt de wijziging van de toeleveraar"
+msgstr ""
+"wijziging (%s) bij het verpakken volgt de wijziging van de bovenstroomse "
+"toeleveraar"
-#: ../git-debrebase:1148
+#: ../git-debrebase:1110
#, perl-format
msgid " (eg %s)"
msgstr " (bijv. %s)"
-#: ../git-debrebase:1154
+#: ../git-debrebase:1116
msgid "found mixed upstream/packaging commit"
-msgstr "gemengde toeleveraar/pakket-vastlegging aangetroffen"
+msgstr "gemengde toeleveraars-/verpakkings-vastlegging aangetroffen"
-#: ../git-debrebase:1155 ../git-debrebase:1163 ../git-debrebase:1168
-#: ../git-debrebase:1173 ../git-debrebase:1179 ../git-debrebase:1187
+#: ../git-debrebase:1117 ../git-debrebase:1125 ../git-debrebase:1130
+#: ../git-debrebase:1135 ../git-debrebase:1141 ../git-debrebase:1149
#, perl-format
msgid " (%s)"
msgstr " (%s)"
-#: ../git-debrebase:1162
+#: ../git-debrebase:1124
#, perl-format
msgid "found interchange bureaucracy commit (%s)"
msgstr "vastlegging in verband met uitwisselingsbeheer aangetroffen (%s)"
-#: ../git-debrebase:1167
+#: ../git-debrebase:1129
msgid "found dgit dsc import"
msgstr "dsc-import door dgit aangetroffen"
-#: ../git-debrebase:1172
+#: ../git-debrebase:1134
msgid "found bare dgit dsc import with no prior history"
msgstr ""
"kale dsc-import door dgit aangetroffen zonder voorafgaande geschiedenis"
-#: ../git-debrebase:1178
+#: ../git-debrebase:1140
msgid "found vanilla merge"
msgstr "standaardsamenvoeging (vanilla merge) aangetroffen"
-#: ../git-debrebase:1185
+#: ../git-debrebase:1147
#, perl-format
msgid "found unprocessable commit, cannot cope: %s"
msgstr "niet-verwerkbare vastlegging aangetroffen, kan er niet mee om: %s"
-#: ../git-debrebase:1253
+#: ../git-debrebase:1215
#, perl-format
msgid "found unprocessable commit, cannot cope; %3$s: (commit %1$s) (d.%2$s)"
msgstr ""
"niet-verwerkbare vastlegging aangetroffen, kan er niet mee om; %3$s: "
"(vastlegging %1$s) (d.%2$s)"
-#: ../git-debrebase:1254
+#: ../git-debrebase:1216
#, perl-format
msgid "found unprocessable commit, cannot cope: (commit %1$s) (d.%2$s)"
msgstr ""
"niet-verwerkbare vastlegging aangetroffen, kan er niet mee om: (vastlegging "
"%1$s) (d.%2$s)"
-#: ../git-debrebase:1375
+#: ../git-debrebase:1337
msgid "bare dgit dsc import"
msgstr "kale dsc-import door dgit"
-#: ../git-debrebase:1715 ../git-debrebase:1718
+#: ../git-debrebase:1677 ../git-debrebase:1680
#, perl-format
msgid "mismatch %s ?"
msgstr "discrepantie %s ?"
-#: ../git-debrebase:1721
+#: ../git-debrebase:1683
#, perl-format
msgid "mismatch %s != %s ?"
msgstr "discrepantie %s != %s ?"
-#: ../git-debrebase:1731
+#: ../git-debrebase:1693
#, perl-format
msgid "internal error %#x %s %s"
msgstr "interne fout %#x %s %s"
-#: ../git-debrebase:1759
+#: ../git-debrebase:1721
#, perl-format
msgid "%s: laundered (head was %s)\n"
msgstr "%s: gewassen (laundered) (head was %s)\n"
-#: ../git-debrebase:1773
+#: ../git-debrebase:1735
msgid "you are in the middle of a git-rebase already"
msgstr "u bent reeds middenin een git-rebase"
-#: ../git-debrebase:1799
+#: ../git-debrebase:1761
msgid "launder for rebase"
msgstr "wassen (launder) voor rebase"
-#: ../git-debrebase:1804
+#: ../git-debrebase:1766
msgid "analyse does not support any options"
msgstr "analyse ondersteunt geen opties"
-#: ../git-debrebase:1806
+#: ../git-debrebase:1768
msgid "too many arguments to analyse"
msgstr "te veel argumenten om te analyseren"
-#: ../git-debrebase:1841
+#: ../git-debrebase:1801
+#, perl-format
+msgid "%s already exists"
+msgstr "%s bestaat reeds"
+
+#: ../git-debrebase:1803
msgid "HEAD symref is not to refs/heads/"
msgstr "HEAD symref wijst niet naar refs/heads/"
-#: ../git-debrebase:1864
+#: ../git-debrebase:1826
#, perl-format
msgid "OK, you are ahead of %s\n"
msgstr "Oké, u bent voor op %s\n"
-#: ../git-debrebase:1868
+#: ../git-debrebase:1830
#, perl-format
msgid "you are behind %s, divergence risk"
msgstr "u bent achter op %s, gevaar voor uiteenlopen"
-#: ../git-debrebase:1872
+#: ../git-debrebase:1834
#, perl-format
msgid "you have diverged from %s"
msgstr "u bent uiteengelopen van %s"
-#: ../git-debrebase:1894
+#: ../git-debrebase:1856
msgid "remote dgit branch"
msgstr "externe dgit-tak"
-#: ../git-debrebase:1897
+#: ../git-debrebase:1859
msgid "remote dgit branch for sid"
msgstr "externe dgit-tak voor sid"
-#: ../git-debrebase:1925
+#: ../git-debrebase:1887
msgid "Recorded previous head for preservation"
msgstr "Vorige head voor behoud opgetekend"
-#: ../git-debrebase:1933
+#: ../git-debrebase:1895
#, perl-format
msgid "could not record ffq-prev: %s"
msgstr "kon ffq-prev niet optekenen: %s"
-#: ../git-debrebase:1944
+#: ../git-debrebase:1906
#, perl-format
msgid "could not check ffq-prev: %s"
msgstr "kon ffq-prev niet controleren: %s"
-#: ../git-debrebase:1964
+#: ../git-debrebase:1926
msgid "fast forward"
msgstr "lineair (fast forward)"
-#: ../git-debrebase:1974
+#: ../git-debrebase:1936
msgid "Declare fast forward / record previous work"
msgstr "Afkondigen lineair (fast forward) / optekenen vorig werk"
-#: ../git-debrebase:1986
+#: ../git-debrebase:1948
msgid "No ffq-prev to stitch."
msgstr "Geen ffq-prev om te borduren."
-#: ../git-debrebase:2017
-#, perl-format
-msgid ""
-"Could not determine appropriate upstream commitish.\n"
-" (Tried these tags: %s)\n"
-" Check version, and specify upstream commitish explicitly."
-msgstr ""
-"Kon geen passende toeleveraar-commitish bepalen.\n"
-" (Probeerde deze tags: %s)\n"
-" Controleer versie en geef toeleveraar-commitish expliciet op."
-
-#: ../git-debrebase:2036
+#: ../git-debrebase:1965
msgid "need NEW-VERSION [UPS-COMMITTISH]"
msgstr "heb NIEUWE-VERSIE [TOEL-COMMITTISH] nodig"
-#: ../git-debrebase:2041
+#: ../git-debrebase:1970
#, perl-format
msgid "bad version number `%s'"
msgstr "fout versienummer `%s'"
-#: ../git-debrebase:2059
+#: ../git-debrebase:1988
#, perl-format
msgid "upstream piece `%s'"
-msgstr "toeleveraarsstuk `%s'"
+msgstr "bovenstrooms stuk `%s'"
-#: ../git-debrebase:2060
+#: ../git-debrebase:1989
msgid "upstream (main piece"
-msgstr "van de toeleveraar (belangrijkste stuk"
+msgstr "van de bovenstroomse toeleveraar (belangrijkste stuk"
-#: ../git-debrebase:2080
+#: ../git-debrebase:2009
msgid "for each EXTRA-UPS-NAME need EXTRA-UPS-COMMITISH"
msgstr "voor elke EXTRA-TOEL-NAAM is een EXTRA-TOEL-COMMITISH nodig"
-#: ../git-debrebase:2098
+#: ../git-debrebase:2027
msgid "old anchor is recognised due to --anchor, cannot check upstream"
msgstr ""
"oud anker werd herkend omwille van --anchor, kan niet controleren bij "
-"toeleveraar"
+"bovenstroomse toeleveraar"
-#: ../git-debrebase:2114
+#: ../git-debrebase:2043
#, perl-format
msgid ""
"previous upstream combine %s mentions %d pieces (each implying one parent) "
"but has %d parents (one per piece plus maybe a previous combine)"
msgstr ""
-"vorige toeleveraarscombinatie (upstream combine) %s vermeldt %d stukken "
+"vorige bovenstroom-bijeenvoeging (upstream combine) %s vermeldt %d stukken "
"(hetgeen voor elk ervan één ouder impliceert) maar heeft %d ouders (één per "
-"stuk plus misschien een eerdere combinatie)"
+"stuk plus misschien een eerdere bijeenvoeging)"
-#: ../git-debrebase:2123
+#: ../git-debrebase:2052
#, perl-format
msgid "previous upstream combine %s first piece is not `.'"
msgstr ""
-"eerste stuk van vorige toeleveraarscombinatie (upstream combine) %s is niet "
-"`.'"
+"eerste stuk van vorige bovenstroom-bijeenvoeging (upstream combine) %s is "
+"niet `.'"
-#: ../git-debrebase:2136
+#: ../git-debrebase:2065
#, perl-format
msgid ""
"previous upstream %s is from git-debrebase but not an `upstream-combine' "
"commit"
msgstr ""
-"vorige toeleveraarsvastlegging %s is van git-debrebase maar geen `upstream-"
-"combine'-vastlegging"
+"vorige bovenstroomse %s is van git-debrebase maar geen `upstream-combine'-"
+"vastlegging"
-#: ../git-debrebase:2147
+#: ../git-debrebase:2076
#, perl-format
msgid "introducing upstream piece `%s'"
-msgstr "toeleveraarsstuk `%s' wordt ingevoerd"
+msgstr "bovenstrooms stuk `%s' wordt ingevoerd"
-#: ../git-debrebase:2150
+#: ../git-debrebase:2079
#, perl-format
msgid "dropping upstream piece `%s'"
-msgstr "toeleveraarsstuk `%s' wordt weggelaten"
+msgstr "bovenstrooms stuk `%s' wordt weggelaten"
-#: ../git-debrebase:2153
+#: ../git-debrebase:2082
#, perl-format
msgid "not fast forward: %s %s"
msgstr "niet lineair (fast forward): %s %s"
-#: ../git-debrebase:2264
+#: ../git-debrebase:2193
msgid "Previous head already recorded\n"
msgstr "Vorige head reeds opgenomen\n"
-#: ../git-debrebase:2268
+#: ../git-debrebase:2197
#, perl-format
msgid "Could not preserve: %s"
msgstr "Niet in staat te behouden: %s"
-#: ../git-debrebase:2273 ../git-debrebase:2279 ../git-debrebase:2285
-#: ../git-debrebase:2375 ../git-debrebase:2384 ../git-debrebase:2408
-#: ../git-debrebase:2472
+#: ../git-debrebase:2202 ../git-debrebase:2208 ../git-debrebase:2214
+#: ../git-debrebase:2304 ../git-debrebase:2313 ../git-debrebase:2337
+#: ../git-debrebase:2401
msgid "no arguments allowed"
msgstr "geen argumenten toegelaten"
-#: ../git-debrebase:2307
+#: ../git-debrebase:2236
msgid "branch contains furniture (not laundered)"
msgstr "tak bevat stoffering (niet gewassen)"
-#: ../git-debrebase:2308
+#: ../git-debrebase:2237
msgid "branch is unlaundered"
msgstr "tak is ongewassen (unlaundered)"
-#: ../git-debrebase:2309
+#: ../git-debrebase:2238
msgid "branch needs laundering"
msgstr "tak heeft wasbeurt nodig"
-#: ../git-debrebase:2310
+#: ../git-debrebase:2239
msgid "branch not in git-debrebase form"
msgstr "tak is niet in git-debrebase-indeling"
-#: ../git-debrebase:2320
+#: ../git-debrebase:2249
msgid "current branch contents, in git-debrebase terms:\n"
msgstr "inhoud van de huidige tak, in git-debrebase-terminologie:\n"
-#: ../git-debrebase:2322
+#: ../git-debrebase:2251
msgid " branch is laundered\n"
msgstr " tak is gewassen\n"
-#: ../git-debrebase:2338
+#: ../git-debrebase:2267
#, perl-format
msgid " %s is not well-defined\n"
msgstr " %s is niet goed gedefinieerd\n"
-#: ../git-debrebase:2344
+#: ../git-debrebase:2273
msgid "key git-debrebase commits:\n"
msgstr "kern-git-debrebase-vastleggingen:\n"
-#: ../git-debrebase:2345
+#: ../git-debrebase:2274
msgid "anchor"
msgstr "anker"
-#: ../git-debrebase:2346
+#: ../git-debrebase:2275
msgid "breakwater"
msgstr "golfbreker (breakwater)"
-#: ../git-debrebase:2351
+#: ../git-debrebase:2280
msgid "branch and ref status, in git-debrebase terms:\n"
msgstr "toestand van tak en ref, in git-debrebase-terminologie:\n"
-#: ../git-debrebase:2358
+#: ../git-debrebase:2287
msgid " unstitched; previous tip was:\n"
msgstr " borduursel losgemaakt; vorige tip was:\n"
-#: ../git-debrebase:2361
+#: ../git-debrebase:2290
msgid " stitched? (no record of git-debrebase work)\n"
msgstr " geborduurd? (geen registratie van git-debrebase-werk)\n"
-#: ../git-debrebase:2363
+#: ../git-debrebase:2292
msgid " stitched\n"
msgstr " geborduurd\n"
-#: ../git-debrebase:2365
+#: ../git-debrebase:2294
msgid " not git-debrebase (diverged since last stitch)\n"
msgstr " geen git-debrebase (uiteengelopen sinds laatste borduursel)\n"
-#: ../git-debrebase:2368
+#: ../git-debrebase:2297
msgid "you are currently rebasing\n"
msgstr "u bent momenteel aan het rebasen\n"
-#: ../git-debrebase:2385 ../git-debrebase:2398
+#: ../git-debrebase:2314 ../git-debrebase:2327
msgid "launder for git-debrebase quick"
msgstr "wassen voor git-debrebase quick"
-#: ../git-debrebase:2392 ../git-debrebase:2422
+#: ../git-debrebase:2321 ../git-debrebase:2351
msgid "No ongoing git-debrebase session."
msgstr "Geen lopende git-debrebase-sessie."
-#: ../git-debrebase:2461
+#: ../git-debrebase:2390
msgid "Commit patch queue (exported by git-debrebase)"
msgstr "Vastlegging patch-wachtrij (geëxporteerd door git-debrebase)"
-#: ../git-debrebase:2478
+#: ../git-debrebase:2407
msgid "No (more) patches to export."
msgstr "Geen (andere) patches die geëxporteerd moeten worden."
-#: ../git-debrebase:2485
+#: ../git-debrebase:2414
#, perl-format
msgid ""
"Patch export produced patch amendments (abandoned output commit %s). Try "
"De patch-export produceerde patch-herzieningen (vastlegging van uitvoer %s "
"gestaakt). Probeer eerst een wasbeurt te doen."
-#: ../git-debrebase:2505
+#: ../git-debrebase:2434
#, perl-format
msgid "%s contains comments, which will be discarded"
msgstr "%s bevat commentaar die verwijderd zal worden"
-#: ../git-debrebase:2510
+#: ../git-debrebase:2439
#, perl-format
msgid "patch %s repeated in %s !"
msgstr "patch %s herhaald in %s !"
-#: ../git-debrebase:2517
+#: ../git-debrebase:2446
#, perl-format
msgid "Unused patch file %s will be discarded"
msgstr "Niet gebruikt patch-bestand %s zal verwijderd worden"
-#: ../git-debrebase:2525
+#: ../git-debrebase:2454
msgid "ffq-prev exists, this is already managed by git-debrebase!"
msgstr "ffq-prev bestaat; dit wordt reeds beheerd door git-debrebase!"
-#: ../git-debrebase:2530
+#: ../git-debrebase:2459
msgid "ahead of debrebase-last, this is already managed by git-debrebase!"
msgstr "voorop op debrebase-last; dit wordt reeds beheerd door git-debrebase!"
-#: ../git-debrebase:2546
+#: ../git-debrebase:2475
msgid "want only 1 optional argument, the upstream git commitish"
msgstr ""
-"wil slechts 1 facultatief argument, de git commitish van de toeleveraar"
+"wil slechts 1 facultatief argument, de git commitish van de bovenstroomse "
+"toeleveraar"
-#: ../git-debrebase:2551
+#: ../git-debrebase:2480
msgid "missing Version from changelog\n"
msgstr "Version vanuit de changelog wordt gemist\n"
-#: ../git-debrebase:2567
+#: ../git-debrebase:2496
#, perl-format
msgid ""
"upstream (%s) and HEAD are not\n"
" git diff %s HEAD -- :!/debian :/\n"
msgstr ""
"upstream (%s) en HEAD zijn niet\n"
-"identiek in de toeleveraarsbestanden. Zie diffstat hierboven, of voer dit "
+"identiek in de bovenstroomse bestanden. Zie diffstat hierboven, of voer dit "
"commando uit:\n"
" git diff %s HEAD -- :!/debian :/\n"
-#: ../git-debrebase:2575
+#: ../git-debrebase:2504
#, perl-format
msgid "upstream (%s) is not an ancestor of HEAD"
msgstr "upstream (%s) is geen voorouder van HEAD"
-#: ../git-debrebase:2582
+#: ../git-debrebase:2511
#, perl-format
msgid ""
"history between upstream (%s) and HEAD contains direct changes to upstream "
"files - are you sure this is a gbp (patches-unapplied) branch?"
msgstr ""
"de geschiedenis tussen upstream (%s) en HEAD bevat rechtstreekse wijzigingen "
-"aan toeleveraarsbestanden - bent u zeker dat dit een gbp-tak (patches-"
-"unapplied)(geen toepassing van patches) is?"
+"aan bovenstroomse bestanden - bent u zeker dat dit een gbp-tak (patches-"
+"unapplied) (geen toepassing van patches) is?"
-#: ../git-debrebase:2584
+#: ../git-debrebase:2513
#, perl-format
msgid "list expected changes with: %s\n"
msgstr "toon verwachte wijzigingen met: %s\n"
-#: ../git-debrebase:2591
+#: ../git-debrebase:2520
#, perl-format
msgid "upstream (%s) contains debian/ directory"
msgstr "upstream (%s) bevat een map debian/"
-#: ../git-debrebase:2609
+#: ../git-debrebase:2538
msgid "neither of the first two changelog entries are released\n"
msgstr ""
"geen van de eerste twee items uit het changelog-bestand werd uitgebracht\n"
-#: ../git-debrebase:2615
+#: ../git-debrebase:2544
#, perl-format
msgid "could not find suitable maintainer view tag %s\n"
msgstr "kon geen geschikte maintainer-weergavetag %s vinden\n"
-#: ../git-debrebase:2618
+#: ../git-debrebase:2547
#, perl-format
msgid "HEAD is not FF from maintainer tag %s!"
msgstr "HEAD is niet FF (lineair) vanaf maintainer-tag %s!"
-#: ../git-debrebase:2621
+#: ../git-debrebase:2550
#, perl-format
msgid "dgit view tag %s not found\n"
msgstr "dgit-weergavetag %s niet gevonden\n"
-#: ../git-debrebase:2623
+#: ../git-debrebase:2552
#, perl-format
msgid "dgit view tag %s is not FF from maintainer tag %s\n"
msgstr "dgit-weergavetag %s is niet FF (lineair) vanaf maintainer-tag %s\n"
-#: ../git-debrebase:2625
+#: ../git-debrebase:2554
#, perl-format
msgid "will stitch in dgit view, %s\n"
msgstr "zal borduren in de dgit-weergave, %s\n"
-#: ../git-debrebase:2632
+#: ../git-debrebase:2561
#, perl-format
msgid ""
"Cannot confirm dgit view: %s\n"
"Borduren in dgit-weergave mislukte (zie bovenstaande berichten).\n"
"dgit --overwrite zal nodig zijn bij de eerste dgit push na de omzetting.\n"
-#: ../git-debrebase:2678
+#: ../git-debrebase:2607
#, perl-format
msgid "%s: converted from patched-unapplied (gbp) branch format, OK\n"
msgstr ""
"%s: omgezet vanuit de indeling van de tak zonder toepassing van patches "
"(patched-unapplied) (gbp), Oké\n"
-#: ../git-debrebase:2707
+#: ../git-debrebase:2636
#, perl-format
msgid ""
"%s: converted to git-buildpackage branch format\n"
msgstr ""
"%s: omgezet naar de indeling voor een tak van git-buildpackage\n"
"%s: WAARSCHUWING: voer \"git-debrebase\" nu niet meer uit\n"
-"%s: WAARSCHUWING: dat doen zou alle toeleveraarspatches doen wegvallen!\n"
+"%s: WAARSCHUWING: dat doen zou alle bovenstroomse patches doen wegvallen!\n"
-#: ../git-debrebase:2728
+#: ../git-debrebase:2657
msgid "takes 1 optional argument, the upstream commitish"
msgstr ""
-"heeft 1 facultatief argument, de toeleveraar-commitish (upstream commitish)"
+"heeft 1 facultatief argument, de bovenstroomse commitish (upstream commitish)"
-#: ../git-debrebase:2736
+#: ../git-debrebase:2665
#, perl-format
msgid "%s, from command line"
msgstr "%s, van de commandoregel"
-#: ../git-debrebase:2750
+#: ../git-debrebase:2679
#, perl-format
msgid ""
"%s: Branch already seems to be in git-debrebase format!\n"
"%s: --always-convert-anyway zou de omzettingsbewerking toch uitvoeren,\n"
"%s: maar is wellicht geen goed idee. Vermoedelijk wilde u niets doen.\n"
-#: ../git-debrebase:2754
+#: ../git-debrebase:2683
msgid "Branch already in git-debrebase format."
msgstr "Tak is reeds in git-debrebase-indeling."
-#: ../git-debrebase:2766
+#: ../git-debrebase:2695
msgid "Considering possible commits corresponding to upstream:\n"
msgstr ""
"Bezig vastleggingen na te gaan die mogelijk overeenkomen met die van de "
-"toeleveraar:\n"
+"bovenstroomse toeleveraar:\n"
-#: ../git-debrebase:2773
+#: ../git-debrebase:2702
#, perl-format
msgid "git tag %s"
msgstr "git tag %s"
-#: ../git-debrebase:2779
+#: ../git-debrebase:2708
#, perl-format
msgid " git tag: no suitable tag found (tried %s)\n"
msgstr " git tag: geen geschikte tag gevonden (probeerde %s)\n"
-#: ../git-debrebase:2788
+#: ../git-debrebase:2717
#, perl-format
msgid "opendir build-products-dir %s: %s"
msgstr "opendir build-products-dir %s: %s"
-#: ../git-debrebase:2794
+#: ../git-debrebase:2723
#, perl-format
msgid " orig: found what looks like a .orig, %s\n"
msgstr " orig: iets wat op een .orig lijkt gevonden, %s\n"
-#: ../git-debrebase:2825
+#: ../git-debrebase:2754
#, perl-format
msgid " orig: no suitable origs found (looked for %s in %s)\n"
msgstr " orig: geen geschikte origs gevonden (gezocht naar %s in %s)\n"
-#: ../git-debrebase:2834
+#: ../git-debrebase:2763
msgid "Evaluating possible commits corresponding to upstream:\n"
msgstr ""
"Bezig vastleggingen te evalueren die mogelijk overeenkomen met die van de "
-"toeleveraar:\n"
+"bovenstroomse toeleveraar:\n"
-#: ../git-debrebase:2871
+#: ../git-debrebase:2800
#, perl-format
msgid " %s: couldn't apply patches: gbp pq %s"
msgstr " %s: kon patches niet toepassen: gbp pq %s"
-#: ../git-debrebase:2880
+#: ../git-debrebase:2809
#, perl-format
msgid " %s: applying patches gives different tree\n"
msgstr " %s: patches toepassen geeft een afwijkende boom\n"
-#: ../git-debrebase:2894
+#: ../git-debrebase:2823
msgid ""
"Could not find or construct a suitable upstream commit.\n"
"Rerun adding --diagnose after convert-from-dgit-view, or pass a\n"
"upstream commmit explicitly or provide suitable origs.\n"
msgstr ""
-"Kon geen geschikte vastlegging van de toeleveraar vinden of construeren.\n"
+"Kon geen geschikte vastlegging van de bovenstroomse toeleveraar vinden of "
+"construeren.\n"
"Voer convert-from-dgit-view opnieuw uit met toevoeging van --diagnose,\n"
-"of geef expliciet een vastlegging van de toeleveraar op,\n"
+"of geef expliciet een vastlegging van de bovenstroomse toeleveraar op,\n"
"of bezorg geschikte origs.\n"
-#: ../git-debrebase:2900
+#: ../git-debrebase:2829
#, perl-format
msgid "Yes, will base new branch on %s\n"
msgstr "Ja, zal nieuwe tak baseren op %s\n"
-#: ../git-debrebase:2907
+#: ../git-debrebase:2836
msgid "forget-was-ever-debrebase takes no further arguments"
msgstr "forget-was-ever-debrebase wordt zonder verdere argumenten gebruikt"
-#: ../git-debrebase:2911
+#: ../git-debrebase:2840
#, perl-format
msgid "Not suitable for recording git-debrebaseness anyway: %s"
msgstr ""
"Hoe dan ook niet geschikt om de git-debrebase-toestand te registreren: %s"
-#: ../git-debrebase:3013
+#: ../git-debrebase:2942
msgid "bad options\n"
msgstr "foute opties\n"
-#: ../git-debrebase:3023
+#: ../git-debrebase:2952
#, perl-format
msgid "%s: no cuddling to -i for git-rebase"
msgstr "%s: niet gek van -i voor git-rebase"
-#: ../git-debrebase:3053
+#: ../git-debrebase:2982
#, perl-format
msgid "unknown git-debrebase sub-operation %s"
msgstr "onbekende onderliggende bewerking van git-debrebase: %s"
-#: ../Debian/Dgit.pm:295
+#: ../Debian/Dgit.pm:298
#, perl-format
msgid "error: %s\n"
msgstr "fout: %s\n"
-#: ../Debian/Dgit.pm:315
+#: ../Debian/Dgit.pm:324
#, perl-format
msgid "getcwd failed: %s\n"
msgstr "getcwd mislukte: %s\n"
-#: ../Debian/Dgit.pm:334
+#: ../Debian/Dgit.pm:343
msgid "terminated, reporting successful completion"
msgstr "beëindigd, met de melding van een succesvolle voltooiing"
-#: ../Debian/Dgit.pm:336
+#: ../Debian/Dgit.pm:345
#, perl-format
msgid "failed with error exit status %s"
msgstr "mislukt met de foutmelding %s"
-#: ../Debian/Dgit.pm:339
+#: ../Debian/Dgit.pm:348
#, perl-format
msgid "died due to fatal signal %s"
msgstr "gestorven vanwege fataal signaal %s"
-#: ../Debian/Dgit.pm:343
+#: ../Debian/Dgit.pm:352
#, perl-format
msgid "failed with unknown wait status %s"
msgstr "mislukt met ongekende wachttoestand %s"
-#: ../Debian/Dgit.pm:349
+#: ../Debian/Dgit.pm:358
msgid "failed command"
msgstr "mislukt commando"
-#: ../Debian/Dgit.pm:355
+#: ../Debian/Dgit.pm:364
#, perl-format
msgid "failed to fork/exec: %s"
msgstr "fork/exec is mislukt: %s"
-#: ../Debian/Dgit.pm:357
+#: ../Debian/Dgit.pm:366
#, perl-format
msgid "subprocess %s"
msgstr "onderliggend proces %s"
-#: ../Debian/Dgit.pm:359
+#: ../Debian/Dgit.pm:368
msgid "subprocess produced invalid output"
msgstr "onderliggend proces produceerde ongeldige uitvoer"
-#: ../Debian/Dgit.pm:450
+#: ../Debian/Dgit.pm:459
msgid "stat source file: %S"
msgstr "stat bronbestand: %S"
-#: ../Debian/Dgit.pm:460
+#: ../Debian/Dgit.pm:469
msgid "stat destination file: %S"
msgstr "stat doelbestand: %S"
-#: ../Debian/Dgit.pm:479
+#: ../Debian/Dgit.pm:488
msgid "finally install file after cp: %S"
msgstr "tot slot, installeer bestand na cp: %S"
-#: ../Debian/Dgit.pm:485
+#: ../Debian/Dgit.pm:494
msgid "delete old file after cp: %S"
msgstr "verwijder oud bestand na cp: %S"
-#: ../Debian/Dgit.pm:506
+#: ../Debian/Dgit.pm:515
msgid ""
"not in a git working tree?\n"
"(git rev-parse --show-toplevel produced no output)\n"
"niet in een git werkboom?\n"
"(git rev-parse --show-toplevel gaf geen uitvoer)\n"
-#: ../Debian/Dgit.pm:509
+#: ../Debian/Dgit.pm:518
#, perl-format
msgid "chdir toplevel %s: %s\n"
msgstr "chdir naar hoogste niveau %s: %s\n"
-#: ../Debian/Dgit.pm:617
+#: ../Debian/Dgit.pm:626
msgid "git index contains changes (does not match HEAD)"
msgstr "de index van git bevat wijzigingen (komt niet overeen met HEAD)"
-#: ../Debian/Dgit.pm:618
+#: ../Debian/Dgit.pm:627
msgid "working tree is dirty (does not match HEAD)"
msgstr "werkboom is bevuild (komt niet overeen met HEAD)"
-#: ../Debian/Dgit.pm:689
+#: ../Debian/Dgit.pm:649
+msgid "using specified upstream commitish"
+msgstr "opgegeven bovenstroomse commitish wordt gebruikt"
+
+#: ../Debian/Dgit.pm:655
+#, perl-format
+msgid ""
+"Could not determine appropriate upstream commitish.\n"
+" (Tried these tags: %s)\n"
+" Check version, and specify upstream commitish explicitly."
+msgstr ""
+"Kon geen passende bovenstroomse commitish bepalen.\n"
+" (Probeerde deze tags: %s)\n"
+" Controleer versie en geef bovenstroomse commitish expliciet op."
+
+#: ../Debian/Dgit.pm:661 ../Debian/Dgit.pm:663
+#, perl-format
+msgid "using upstream from git tag %s"
+msgstr "bovenstroom van git tag %s wordt gebruikt"
+
+#: ../Debian/Dgit.pm:769
msgid "detached HEAD"
msgstr "vrijstaande HEAD (detached HEAD)"
-#: ../Debian/Dgit.pm:690
+#: ../Debian/Dgit.pm:770
msgid "HEAD symref is not to refs/"
msgstr "symbolische referentie HEAD is geen referentie naar refs/"
-#: ../Debian/Dgit.pm:706
+#: ../Debian/Dgit.pm:786
#, perl-format
msgid "parsing of %s failed"
msgstr "ontleden van %s mislukte"
-#: ../Debian/Dgit.pm:715
+#: ../Debian/Dgit.pm:795
#, perl-format
msgid ""
"control file %s is (already) PGP-signed. Note that dgit push needs to "
"controlebestand %s heeft (reeds) een PGP-ondertekening. Merk op dat dgit "
"push het .dsc moet aanpassen en het dan zelf moet ondertekenen"
-#: ../Debian/Dgit.pm:729
+#: ../Debian/Dgit.pm:809
#, perl-format
msgid "open %s (%s): %s"
msgstr "open %s (%s): %s"
-#: ../Debian/Dgit.pm:750
+#: ../Debian/Dgit.pm:830
#, perl-format
msgid "missing field %s in %s"
msgstr "ontbrekend veld %s in %s"
-#: ../Debian/Dgit.pm:822
+#: ../Debian/Dgit.pm:916
msgid "Dummy commit - do not use\n"
msgstr "Voorbeeldvastlegging - niet gebruiken\n"
-#: ../Debian/Dgit.pm:843
+#: ../Debian/Dgit.pm:937
#, perl-format
msgid "exec %s: %s\n"
msgstr "exec %s: %s\n"
-#: ../Debian/Dgit.pm:911
+#: ../Debian/Dgit.pm:1005
#, perl-format
msgid "cannot stat %s/.git: %s"
msgstr "kan status van %s/.git niet verkrijgen: %s"
-#: ../Debian/Dgit.pm:934
+#: ../Debian/Dgit.pm:1028
#, perl-format
msgid "failed to mkdir playground parent %s: %s"
msgstr "mkdir van speelplaatsouder %s mislukte: %s"
-#: ../Debian/Dgit.pm:942
+#: ../Debian/Dgit.pm:1036
#, perl-format
msgid "failed to mkdir a playground %s: %s"
msgstr "mkdir van een speelplaats %s mislukte: %s"
-#: ../Debian/Dgit.pm:951
+#: ../Debian/Dgit.pm:1045
#, perl-format
msgid "failed to mkdir the playground %s: %s"
msgstr "mkdir van de speelplaats %s mislukte: %s"
-
-#~ msgid "import %s requires .../%s, but it does not exist"
-#~ msgstr "importeren van %s vereist .../%s, maar dit bestaat niet"
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2019-03-01 16:59+0000\n"
+"POT-Creation-Date: 2020-02-02 16:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: ../dgit-maint-native.7.pod:1 ../dgit-maint-merge.7.pod:1
#: ../dgit-maint-gbp.7.pod:1 ../dgit-maint-debrebase.7.pod:1
#: ../dgit-downstream-dsc.7.pod:1 ../dgit-sponsorship.7.pod:1
-#: ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../dgit-maint-bpo.7.pod:1 ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../git-debpush.1.pod:1
#, no-wrap
msgid "NAME"
msgstr ""
#. type: =head1
-#: ../dgit.1:1470 ../dgit.7:23 ../dgit-user.7.pod:447
+#: ../dgit.1:1575 ../dgit.7:23 ../dgit-user.7.pod:447
#: ../dgit-nmu-simple.7.pod:137 ../dgit-maint-native.7.pod:126
-#: ../dgit-maint-merge.7.pod:491 ../dgit-maint-gbp.7.pod:136
-#: ../dgit-maint-debrebase.7.pod:747 ../dgit-downstream-dsc.7.pod:352
-#: ../dgit-sponsorship.7.pod:321 ../git-debrebase.1.pod:619
-#: ../git-debrebase.5.pod:678
+#: ../dgit-maint-merge.7.pod:524 ../dgit-maint-gbp.7.pod:136
+#: ../dgit-maint-debrebase.7.pod:782 ../dgit-downstream-dsc.7.pod:352
+#: ../dgit-sponsorship.7.pod:321 ../dgit-maint-bpo.7.pod:140
+#: ../git-debrebase.1.pod:634 ../git-debrebase.5.pod:678
+#: ../git-debpush.1.pod:261
#, no-wrap
msgid "SEE ALSO"
msgstr ""
#: ../dgit-user.7.pod:5 ../dgit-maint-native.7.pod:5
#: ../dgit-maint-merge.7.pod:5 ../dgit-maint-gbp.7.pod:5
#: ../dgit-maint-debrebase.7.pod:5 ../dgit-downstream-dsc.7.pod:5
-#: ../git-debrebase.1.pod:10 ../git-debrebase.5.pod:5
+#: ../dgit-maint-bpo.7.pod:5 ../git-debrebase.5.pod:5
msgid "INTRODUCTION"
msgstr ""
msgstr ""
#. type: =head3
-#: ../dgit-maint-merge.7.pod:53 ../dgit-maint-merge.7.pod:335
-#: ../dgit-maint-merge.7.pod:408 ../dgit-maint-debrebase.7.pod:67
-#: ../dgit-maint-debrebase.7.pod:326
+#: ../dgit-maint-merge.7.pod:53 ../dgit-maint-merge.7.pod:362
+#: ../dgit-maint-merge.7.pod:441 ../dgit-maint-debrebase.7.pod:67
+#: ../dgit-maint-debrebase.7.pod:354
msgid "When upstream tags releases in git"
msgstr ""
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:97 ../dgit-maint-merge.7.pod:402
-#: ../dgit-maint-debrebase.7.pod:106 ../dgit-maint-debrebase.7.pod:388
+#: ../dgit-maint-merge.7.pod:97 ../dgit-maint-merge.7.pod:435
+#: ../dgit-maint-debrebase.7.pod:106 ../dgit-maint-debrebase.7.pod:423
#, no-wrap
msgid ""
" % git deborig\n"
msgstr ""
#. type: =head3
-#: ../dgit-maint-merge.7.pod:123 ../dgit-maint-merge.7.pod:343
-#: ../dgit-maint-merge.7.pod:433 ../dgit-maint-debrebase.7.pod:137
-#: ../dgit-maint-debrebase.7.pod:334
-msgid "When upstream releases only tarballs"
+#: ../dgit-maint-merge.7.pod:123 ../dgit-maint-debrebase.7.pod:137
+msgid "Using untagged upstream commits"
msgstr ""
-#. type: verbatim
-#: ../dgit-maint-merge.7.pod:130 ../dgit-maint-debrebase.7.pod:145
-#, no-wrap
+#. type: textblock
+#: ../dgit-maint-merge.7.pod:127 ../dgit-maint-debrebase.7.pod:141
msgid ""
-" % mkdir foo\n"
-" % cd foo\n"
-" % git init\n"
-"\n"
+"Sometimes upstream does not tag their releases, or you want to package an "
+"unreleased git snapshot. In such a case you can create your own upstream "
+"release tag, of the form B<upstream/>I<ver>, where I<ver> is the upstream "
+"version you plan to put in I<debian/changelog>. The B<upstream/> prefix "
+"ensures that your tag will not clash with any tags upstream later creates."
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:136 ../dgit-maint-debrebase.7.pod:151
-msgid "Now create I<debian/gbp.conf>:"
-msgstr ""
-
-#. type: verbatim
-#: ../dgit-maint-merge.7.pod:140 ../dgit-maint-debrebase.7.pod:155
-#, no-wrap
+#: ../dgit-maint-merge.7.pod:134 ../dgit-maint-debrebase.7.pod:148
msgid ""
-" [DEFAULT]\n"
-" upstream-branch = upstream\n"
-" debian-branch = master\n"
-" upstream-tag = %(version)s\n"
-"\n"
+"For example, suppose that the latest upstream release is 1.2.2 and you want "
+"to package git commit ab34c21 which was made on 2013-12-11. A common "
+"convention is to use the upstream version number 1.2.2+git20131211.ab34c21 "
+"and so you could use"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:145 ../dgit-maint-debrebase.7.pod:160
+#: ../dgit-maint-merge.7.pod:141 ../dgit-maint-debrebase.7.pod:155
#, no-wrap
msgid ""
-" sign-tags = True\n"
-" pristine-tar = False\n"
-" pristine-tar-commit = False\n"
+" % git tag -s upstream/1.2.2+git20131211.ab34c21 ab34c21\n"
"\n"
msgstr ""
-#. type: verbatim
-#: ../dgit-maint-merge.7.pod:149 ../dgit-maint-debrebase.7.pod:164
-#, no-wrap
-msgid ""
-" [import-orig]\n"
-" merge-mode = merge\n"
-"\n"
+#. type: textblock
+#: ../dgit-maint-merge.7.pod:145 ../dgit-maint-debrebase.7.pod:159
+msgid "to obtain a release tag, and then proceed as above."
msgstr ""
-#. type: textblock
-#: ../dgit-maint-merge.7.pod:154 ../dgit-maint-debrebase.7.pod:169
-msgid "gbp-import-orig(1) requires a pre-existing upstream branch:"
+#. type: =head3
+#: ../dgit-maint-merge.7.pod:149 ../dgit-maint-merge.7.pod:374
+#: ../dgit-maint-merge.7.pod:466 ../dgit-maint-debrebase.7.pod:163
+#: ../dgit-maint-debrebase.7.pod:366
+msgid "When upstream releases only tarballs"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:158 ../dgit-maint-debrebase.7.pod:173
+#: ../dgit-maint-merge.7.pod:166 ../dgit-maint-debrebase.7.pod:208
#, no-wrap
msgid ""
-" % git add debian/gbp.conf && git commit -m \"create gbp.conf\"\n"
-" % git checkout --orphan upstream\n"
-" % git rm -rf .\n"
-" % git commit --allow-empty -m \"initial, empty branch for upstream source\"\n"
-" % git checkout -f master\n"
+" [DEFAULT]\n"
+" upstream-branch = upstream\n"
+" debian-branch = master\n"
+" upstream-tag = upstream/%(version)s\n"
"\n"
msgstr ""
-#. type: textblock
-#: ../dgit-maint-merge.7.pod:166 ../dgit-maint-debrebase.7.pod:181
-msgid "Then we can import the upstream version:"
-msgstr ""
-
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:170 ../dgit-maint-debrebase.7.pod:185
+#: ../dgit-maint-merge.7.pod:171 ../dgit-maint-debrebase.7.pod:213
#, no-wrap
msgid ""
-" % gbp import-orig --merge-mode=replace ../foo_1.2.2.orig.tar.xz\n"
+" sign-tags = True\n"
+" pristine-tar = False\n"
+" pristine-tar-commit = False\n"
"\n"
msgstr ""
-#. type: textblock
-#: ../dgit-maint-merge.7.pod:174 ../dgit-maint-debrebase.7.pod:189
-msgid ""
-"Our upstream branch cannot be pushed to B<dgit-repos>, but since we will "
-"need it whenever we import a new upstream version, we must push it "
-"somewhere. The usual choice is B<salsa.debian.org>:"
-msgstr ""
-
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:180 ../dgit-maint-debrebase.7.pod:195
+#: ../dgit-maint-merge.7.pod:207 ../dgit-maint-debrebase.7.pod:191
#, no-wrap
msgid ""
" % git remote add -f origin salsa.debian.org:Debian/foo.git\n"
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:188 ../dgit-maint-debrebase.7.pod:207
+#: ../dgit-maint-merge.7.pod:215 ../dgit-maint-debrebase.7.pod:235
msgid "CONVERTING AN EXISTING PACKAGE"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:190 ../dgit-maint-debrebase.7.pod:209
+#: ../dgit-maint-merge.7.pod:217 ../dgit-maint-debrebase.7.pod:237
msgid ""
"This section explains how to convert an existing Debian package to this "
"workflow. It should be skipped when debianising a new package."
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:229 ../dgit-maint-debrebase.7.pod:240
+#: ../dgit-maint-merge.7.pod:256 ../dgit-maint-debrebase.7.pod:268
#, no-wrap
msgid ""
" % git remote add -f upstream https://some.upstream/foo.git\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:242 ../dgit-maint-debrebase.7.pod:294
+#: ../dgit-maint-merge.7.pod:269 ../dgit-maint-debrebase.7.pod:322
msgid ""
"To achieve this, you might need to delete I<debian/source/local-options>. "
"One way to have dgit check your progress is to run B<dgit build-source>."
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:312 ../dgit-maint-debrebase.7.pod:441
+#: ../dgit-maint-merge.7.pod:339 ../dgit-maint-debrebase.7.pod:476
msgid "BUILDING AND UPLOADING"
msgstr ""
#. type: =head2
-#: ../dgit-maint-merge.7.pod:333 ../dgit-maint-debrebase.7.pod:324
+#: ../dgit-maint-merge.7.pod:360 ../dgit-maint-debrebase.7.pod:352
msgid "Obtaining the release"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:339 ../dgit-maint-debrebase.7.pod:330
+#: ../dgit-maint-merge.7.pod:366 ../dgit-maint-debrebase.7.pod:358
#, no-wrap
msgid ""
-" % git remote update\n"
+" % git fetch --tags upstream\n"
"\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:345 ../dgit-maint-debrebase.7.pod:336
+#: ../dgit-maint-merge.7.pod:370 ../dgit-maint-debrebase.7.pod:362
+msgid ""
+"If you want to package an untagged upstream commit (because upstream does "
+"not tag releases or because you want to package an upstream development "
+"snapshot), see \"Using untagged upstream commits\" above."
+msgstr ""
+
+#. type: textblock
+#: ../dgit-maint-merge.7.pod:376 ../dgit-maint-debrebase.7.pod:368
msgid ""
"You will need the I<debian/gbp.conf> from \"When upstream releases only "
"tarballs\", above. You will also need your upstream branch. Above, we "
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:350 ../dgit-maint-debrebase.7.pod:341
+#: ../dgit-maint-merge.7.pod:381 ../dgit-maint-debrebase.7.pod:373
msgid "Then, either"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:354 ../dgit-maint-debrebase.7.pod:345
+#: ../dgit-maint-merge.7.pod:385 ../dgit-maint-debrebase.7.pod:377
#, no-wrap
msgid ""
-" % gbp import-orig --no-merge ../foo_1.2.3.orig.tar.xz\n"
+" % gbp import-orig ../foo_1.2.3.orig.tar.xz\n"
"\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:358 ../dgit-maint-debrebase.7.pod:349
+#: ../dgit-maint-merge.7.pod:389 ../dgit-maint-debrebase.7.pod:381
msgid "or if you have a working watch file"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:362 ../dgit-maint-debrebase.7.pod:353
+#: ../dgit-maint-merge.7.pod:393 ../dgit-maint-debrebase.7.pod:385
#, no-wrap
msgid ""
-" % gbp import-orig --no-merge --uscan\n"
+" % gbp import-orig --uscan\n"
"\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:396 ../dgit-maint-debrebase.7.pod:382
+#: ../dgit-maint-merge.7.pod:429 ../dgit-maint-debrebase.7.pod:417
msgid ""
"If you obtained a tarball from upstream, you are ready to try a build. If "
"you merged a git tag from upstream, you will first need to generate a "
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:406 ../dgit-maint-debrebase.7.pod:472
+#: ../dgit-maint-merge.7.pod:439 ../dgit-maint-debrebase.7.pod:507
msgid "HANDLING DFSG-NON-FREE MATERIAL"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:435 ../dgit-maint-debrebase.7.pod:546
+#: ../dgit-maint-merge.7.pod:468 ../dgit-maint-debrebase.7.pod:581
msgid ""
"The easiest way to handle this is to add a B<Files-Excluded> field to "
"I<debian/copyright>, and a B<uversionmangle> setting in I<debian/watch>. "
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:480 ../dgit-maint-gbp.7.pod:130
-#: ../dgit-maint-debrebase.7.pod:551
+#: ../dgit-maint-merge.7.pod:513 ../dgit-maint-gbp.7.pod:130
+#: ../dgit-maint-debrebase.7.pod:586
msgid "INCORPORATING NMUS"
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:495 ../dgit-maint-gbp.7.pod:140
-#: ../dgit-maint-debrebase.7.pod:751
+#: ../dgit-maint-merge.7.pod:528 ../dgit-maint-gbp.7.pod:140
+#: ../dgit-maint-debrebase.7.pod:786 ../dgit-maint-bpo.7.pod:144
+#: ../git-debpush.1.pod:266
msgid "AUTHOR"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:497 ../dgit-maint-debrebase.7.pod:753
+#: ../dgit-maint-merge.7.pod:530 ../dgit-maint-debrebase.7.pod:788
msgid ""
"This tutorial was written and is maintained by Sean Whitton "
"<spwhitton@spwhitton.name>. It contains contributions from other dgit "
msgstr ""
#. type: =head1
-#: ../dgit-maint-gbp.7.pod:32 ../dgit-maint-debrebase.7.pod:298
+#: ../dgit-maint-gbp.7.pod:32 ../dgit-maint-debrebase.7.pod:326
msgid "GIT CONFIGURATION"
msgstr ""
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:139
+#: ../dgit-maint-debrebase.7.pod:165
msgid ""
"Because we want to work in git, we need a virtual upstream branch with "
"virtual release tags. gbp-import-orig(1) can manage this for us. To begin"
msgstr ""
+#. type: verbatim
+#: ../dgit-maint-debrebase.7.pod:171
+#, no-wrap
+msgid ""
+" % mkdir foo\n"
+" % cd foo\n"
+" % git init\n"
+" % git checkout -b upstream\n"
+" % gbp import-orig \\\n"
+" --upstream-branch=upstream --debian-branch=master \\\n"
+" --upstream-tag='upstream/%(version)s' \\\n"
+" --sign-tags --no-pristine-tar \\\n"
+" ../foo_1.2.2.orig.tar.xz\n"
+" % git branch -f upstream\n"
+"\n"
+msgstr ""
+
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:200
+#: ../dgit-maint-debrebase.7.pod:184
+msgid ""
+"This should leave you on the master branch. Next, our upstream branch "
+"cannot be pushed to B<dgit-repos>, but since we will need it whenever we "
+"import a new upstream version, we must push it somewhere. The usual choice "
+"is B<salsa.debian.org>:"
+msgstr ""
+
+#. type: textblock
+#: ../dgit-maint-debrebase.7.pod:196
msgid ""
"You are now ready to proceed as above, making commits to the I<debian/> "
"directory and to the upstream source. As above, for technical reasons, B<it "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:212
+#: ../dgit-maint-debrebase.7.pod:203
+msgid ""
+"A convenient way to ensure this requirement is satisfied is to start by "
+"creating I<debian/gbp.conf>:"
+msgstr ""
+
+#. type: verbatim
+#: ../dgit-maint-debrebase.7.pod:217
+#, no-wrap
+msgid ""
+" [import-orig]\n"
+" merge = False\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../dgit-maint-debrebase.7.pod:222
+msgid "and commit that:"
+msgstr ""
+
+#. type: verbatim
+#: ../dgit-maint-debrebase.7.pod:226
+#, no-wrap
+msgid ""
+" % git add debian/gbp.conf && git commit -m \"create gbp.conf\"\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../dgit-maint-debrebase.7.pod:230
+msgid ""
+"Note that we couldn't create I<debian/gbp.conf> before now for the same "
+"technical reasons which require our first commit to introduce I<debian/> "
+"without patching the upstream source. That's why we had to pass a lot of "
+"options to our first call to gbp-import-orig(1)."
+msgstr ""
+
+#. type: textblock
+#: ../dgit-maint-debrebase.7.pod:240
msgid ""
"If you have an existing git history that you have pushed to an ordinary git "
"server like B<salsa.debian.org>, we start with that. If you don't already "
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:219
+#: ../dgit-maint-debrebase.7.pod:247
#, no-wrap
msgid ""
" % git clone salsa.debian.org:Debian/foo\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:226
+#: ../dgit-maint-debrebase.7.pod:254
msgid ""
"If you don't have any existing git history, or you have history only on the "
"special B<dgit-repos> server, we start with B<dgit clone>:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:231
+#: ../dgit-maint-debrebase.7.pod:259
#, no-wrap
msgid ""
" % dgit clone foo\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:236
+#: ../dgit-maint-debrebase.7.pod:264
msgid "Then we make new upstream tags available:"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:244
+#: ../dgit-maint-debrebase.7.pod:272
msgid ""
"We now use a B<git debrebase convert-from-*> command to convert your "
"existing history to the git-debrebase(5) data model. Which command you "
msgstr ""
#. type: =item
-#: ../dgit-maint-debrebase.7.pod:250
+#: ../dgit-maint-debrebase.7.pod:278
msgid "(A) There is no delta queue."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:252
+#: ../dgit-maint-debrebase.7.pod:280
msgid "If there do not exist any Debian patches, use"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:256 ../dgit-maint-debrebase.7.pod:268
+#: ../dgit-maint-debrebase.7.pod:284 ../dgit-maint-debrebase.7.pod:296
#, no-wrap
msgid ""
" % git debrebase convert-from-gbp\n"
msgstr ""
#. type: =item
-#: ../dgit-maint-debrebase.7.pod:260
+#: ../dgit-maint-debrebase.7.pod:288
msgid "(B) There is a delta queue, and patches are unapplied."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:262
+#: ../dgit-maint-debrebase.7.pod:290
msgid ""
"This is the standard git-buildpackage(1) workflow: there are Debian patches, "
"but the upstream source is committed to git without those patches applied. "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:272
+#: ../dgit-maint-debrebase.7.pod:300
msgid ""
"If you were not previously using dgit to upload your package (i.e. you were "
"not using the workflow described in dgit-maint-gbp(7)), and you happen to "
msgstr ""
#. type: =item
-#: ../dgit-maint-debrebase.7.pod:277
+#: ../dgit-maint-debrebase.7.pod:305
msgid "(C) There is a delta queue, and patches are applied."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:279
+#: ../dgit-maint-debrebase.7.pod:307
msgid "Use"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:283
+#: ../dgit-maint-debrebase.7.pod:311
#, no-wrap
msgid ""
" % git debrebase convert-from-dgit-view\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:289
+#: ../dgit-maint-debrebase.7.pod:317
msgid ""
"Finally, you need to ensure that your git HEAD is dgit-compatible, i.e., it "
"is exactly what you would get if you deleted .git, invoked B<dpkg-"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:300
+#: ../dgit-maint-debrebase.7.pod:328
msgid ""
"git-debrebase(1) does not yet support using B<git merge> to merge divergent "
"branches of development (see \"OTHER MERGES\" in git-debrebase(5)). You "
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:307
+#: ../dgit-maint-debrebase.7.pod:335
#, no-wrap
msgid ""
" % git config --local pull.rebase true\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:311
+#: ../dgit-maint-debrebase.7.pod:339
msgid ""
"Now when you pull work from other Debian contributors, git will rebase your "
"work on top of theirs."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:314
+#: ../dgit-maint-debrebase.7.pod:342
msgid ""
"If you use this clone for upstream development in addition to Debian "
"packaging work, you may not want to set this global setting. Instead, see "
msgstr ""
#. type: =head1
-#: ../dgit-maint-debrebase.7.pod:319
+#: ../dgit-maint-debrebase.7.pod:347
msgid "IMPORTING NEW UPSTREAM RELEASES"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:321
+#: ../dgit-maint-debrebase.7.pod:349
msgid ""
"There are two steps: obtaining git refs that correspond to the new release, "
"and importing that release using git-debrebase(1)."
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:357
+#: ../dgit-maint-debrebase.7.pod:389
msgid "Importing the release"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:361
+#: ../dgit-maint-debrebase.7.pod:393
#, no-wrap
msgid ""
" % git debrebase new-upstream 1.2.3\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:365
+#: ../dgit-maint-debrebase.7.pod:397
+msgid "replacing I<1.2.3> with I<upstream/1.2.3> if you imported a tarball."
+msgstr ""
+
+#. type: textblock
+#: ../dgit-maint-debrebase.7.pod:399
msgid ""
"This invocation of git-debrebase(1) involves a git rebase. You may need to "
"resolve conflicts if the Debian delta queue does not apply cleanly to the "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:369
+#: ../dgit-maint-debrebase.7.pod:403
msgid ""
"If all went well, you can now review the merge of the new upstream release:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:374
+#: ../dgit-maint-debrebase.7.pod:408
#, no-wrap
msgid ""
" git diff debian/1.2.2-1..HEAD -- . ':!debian'\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:378
+#: ../dgit-maint-debrebase.7.pod:412
msgid ""
-"Pass I<--stat> just to see the list of changed files, which is useful to "
-"determine whether there are any new or deleted files that may need "
-"accounting for in your copyright file."
+"Also, diff with I<--name-status> and I<--diff-filter=ADR> to see just the "
+"list of added or removed files, which is useful to determine whether there "
+"are any new or deleted files that may need accounting for in your copyright "
+"file."
msgstr ""
#. type: =head1
-#: ../dgit-maint-debrebase.7.pod:392
+#: ../dgit-maint-debrebase.7.pod:427
msgid "EDITING THE DEBIAN PACKAGING"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:394
+#: ../dgit-maint-debrebase.7.pod:429
msgid "Just make commits on master that change the contents of I<debian/>."
msgstr ""
#. type: =head1
-#: ../dgit-maint-debrebase.7.pod:396
+#: ../dgit-maint-debrebase.7.pod:431
msgid "EDITING THE DELTA QUEUE"
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:398
+#: ../dgit-maint-debrebase.7.pod:433
msgid "Adding new patches"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:400
+#: ../dgit-maint-debrebase.7.pod:435
msgid ""
"Adding new patches is straightforward: just make commits touching only files "
"outside of the I<debian/> directory. You can also use tools like git-"
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:404
+#: ../dgit-maint-debrebase.7.pod:439
msgid "Editing patches: starting a debrebase"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:406
+#: ../dgit-maint-debrebase.7.pod:441
msgid ""
"git-debrebase(1) is a wrapper around git-rebase(1) which allows us to edit, "
"re-order and delete patches. Run"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:411 ../dgit-maint-debrebase.7.pod:714
+#: ../dgit-maint-debrebase.7.pod:446 ../dgit-maint-debrebase.7.pod:749
#, no-wrap
msgid ""
" % git debrebase -i\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:415
+#: ../dgit-maint-debrebase.7.pod:450
msgid ""
"to start an interactive rebase. You can edit, re-order and delete commits "
"just as you would during B<git rebase -i>."
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:418
+#: ../dgit-maint-debrebase.7.pod:453
msgid "Editing patches: finishing a debrebase"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:420
+#: ../dgit-maint-debrebase.7.pod:455
msgid ""
"After completing the git rebase, your branch will not be a fast-forward of "
"the git HEAD you had before the rebase. This means that we cannot push the "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:426
+#: ../dgit-maint-debrebase.7.pod:461
msgid ""
"If you are not yet ready to upload, and want to push your branch to a git "
"remote such as B<salsa.debian.org>,"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:431
+#: ../dgit-maint-debrebase.7.pod:466
#, no-wrap
msgid ""
" % git debrebase conclude\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:435
+#: ../dgit-maint-debrebase.7.pod:470
msgid ""
"Note that each time you conclude a debrebase you introduce a pseudomerge "
"into your git history, which may make it harder to read. Try to do all of "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:443
+#: ../dgit-maint-debrebase.7.pod:478
msgid ""
"You can use dpkg-buildpackage(1) for test builds. When you are ready to "
"build for an upload, use B<dgit sbuild>, B<dgit pbuilder> or B<dgit "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:447
+#: ../dgit-maint-debrebase.7.pod:482
msgid ""
"Upload with B<dgit push> or B<dgit push-source>. Remember to pass I<--new> "
"if the package is new in the target suite."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:450
+#: ../dgit-maint-debrebase.7.pod:485
msgid ""
"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-"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:456
+#: ../dgit-maint-debrebase.7.pod:491
msgid ""
"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 delta queue "
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:462
+#: ../dgit-maint-debrebase.7.pod:497
#, no-wrap
msgid ""
" % git debrebase\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:467
+#: ../dgit-maint-debrebase.7.pod:502
msgid "Note that this will introduce a new pseudomerge."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:469
+#: ../dgit-maint-debrebase.7.pod:504
msgid ""
"After dgit pushing, be sure to git push to B<salsa.debian.org>, if you're "
"using that."
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:474
+#: ../dgit-maint-debrebase.7.pod:509
msgid "Illegal material"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:476
+#: ../dgit-maint-debrebase.7.pod:511
msgid ""
"Here we explain how to handle material that is merely DFSG-non-free. "
"Material which is legally dangerous (for example, files which are actually "
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:480
+#: ../dgit-maint-debrebase.7.pod:515
#, no-wrap
msgid ""
"If you encounter possibly-legally-dangerous material in the upstream\n"
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:486
+#: ../dgit-maint-debrebase.7.pod:521
msgid "DFSG-non-free: When upstream tags releases in git"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:488
+#: ../dgit-maint-debrebase.7.pod:523
msgid ""
"Our approach is to maintain a DFSG-clean upstream branch, and create tags on "
"this branch for each release that we want to import. We then import those "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:494
+#: ../dgit-maint-debrebase.7.pod:529
msgid "For the first upstream release that requires DFSG filtering:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:498
+#: ../dgit-maint-debrebase.7.pod:533
#, no-wrap
msgid ""
" % git checkout -b upstream-dfsg 1.2.3\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:506
+#: ../dgit-maint-debrebase.7.pod:541
msgid ""
"Now either proceed with \"Importing the release\" on the 1.2.3+dfsg tag, or "
"in the case of a new package,"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:511
+#: ../dgit-maint-debrebase.7.pod:546
#, no-wrap
msgid ""
" % git branch --unset-upstream\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:516
+#: ../dgit-maint-debrebase.7.pod:551
msgid "and proceed with \"INITIAL DEBIANISATION\"."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:518
+#: ../dgit-maint-debrebase.7.pod:553
msgid ""
"For subsequent releases (whether or not they require additional filtering):"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:523
+#: ../dgit-maint-debrebase.7.pod:558
#, no-wrap
msgid ""
" % git checkout upstream-dfsg\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:533
+#: ../dgit-maint-debrebase.7.pod:568
msgid ""
"Our upstream-dfsg branch cannot be pushed to B<dgit-repos>, but since we "
"will need it whenever we import a new upstream version, we must push it "
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:540
+#: ../dgit-maint-debrebase.7.pod:575
#, no-wrap
msgid ""
" % git push --follow-tags -u origin master upstream-dfsg\n"
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:544
+#: ../dgit-maint-debrebase.7.pod:579
msgid "DFSG-non-free: When upstream releases only tarballs"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:553
+#: ../dgit-maint-debrebase.7.pod:588
msgid "In the simplest case,"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:557
+#: ../dgit-maint-debrebase.7.pod:592
#, no-wrap
msgid ""
" % dgit fetch\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:562
+#: ../dgit-maint-debrebase.7.pod:597
msgid ""
"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 "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:566
+#: ../dgit-maint-debrebase.7.pod:601
msgid ""
"Note that you should not try to resolve the divergent branches by editing "
"files in I<debian/patches>. Changes there would either cause trouble, or be "
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:570
+#: ../dgit-maint-debrebase.7.pod:605
msgid "Rebasing your work onto the NMU"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:574
+#: ../dgit-maint-debrebase.7.pod:609
#, no-wrap
msgid ""
" % git rebase dgit/dgit/sid\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:578
+#: ../dgit-maint-debrebase.7.pod:613
msgid ""
"If the NMUer added new commits modifying the upstream source, you will "
"probably want to debrebase before your next upload to tidy those up."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:581
+#: ../dgit-maint-debrebase.7.pod:616
msgid ""
"For example, the NMUer might have used git-revert(1) to unapply one of your "
"patches. A debrebase can be used to strip both the patch and the reversion "
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:585
+#: ../dgit-maint-debrebase.7.pod:620
msgid "Manually applying the debdiff"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:587
+#: ../dgit-maint-debrebase.7.pod:622
msgid ""
"If you cannot rebase because you have already pushed to B<salsa.debian.org>, "
"say, you can manually apply the NMU debdiff, commit and debrebase. The next "
msgstr ""
#. type: =head1
-#: ../dgit-maint-debrebase.7.pod:592
+#: ../dgit-maint-debrebase.7.pod:627
msgid "HINTS AND TIPS"
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:594
+#: ../dgit-maint-debrebase.7.pod:629
msgid "Minimising pseudomerges"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:596
+#: ../dgit-maint-debrebase.7.pod:631
msgid ""
"Above we noted that each time you conclude a debrebase, you introduce a "
"pseudomerge into your git history, which may make it harder to read."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:599
+#: ../dgit-maint-debrebase.7.pod:634
msgid ""
"A simple convention you can use to minimise the number of pseudomerges is to "
"B<git debrebase conclude> only right before you upload or push to B<salsa."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:603
+#: ../dgit-maint-debrebase.7.pod:638
msgid ""
"It is possible, though much less convenient, to reduce the number of "
"pseudomerges yet further. We debrebase only (i) when importing a new "
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:611
+#: ../dgit-maint-debrebase.7.pod:646
msgid "The debian/patches directory"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:613
+#: ../dgit-maint-debrebase.7.pod:648
msgid ""
"In this workflow, I<debian/patches> is purely an output of git-"
"debrebase(1). You should not make changes there. They will either cause "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:618
+#: ../dgit-maint-debrebase.7.pod:653
msgid ""
"I<debian/patches> will often be out-of-date because git-debrebase(1) will "
"only regenerate it when it needs to. So you should not rely on the "
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:624
+#: ../dgit-maint-debrebase.7.pod:659
msgid "Upstream branches"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:626
+#: ../dgit-maint-debrebase.7.pod:661
msgid "In this workflow, we specify upstream tags rather than any branches."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:628
+#: ../dgit-maint-debrebase.7.pod:663
msgid ""
"Except when (i) upstream releases only tarballs, (ii) we require DFSG "
"filtering, or (iii) you also happen to be involved in upstream development, "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:634
+#: ../dgit-maint-debrebase.7.pod:669
msgid ""
"The idea here is that from Debian's point of view, upstream releases are "
"immutable points in history. We want to make sure that we are basing our "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:640
+#: ../dgit-maint-debrebase.7.pod:675
msgid ""
"Upstream's branches remain available as the git remote tracking branches for "
"your upstream remote, e.g. I<remotes/upstream/master>."
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:643
+#: ../dgit-maint-debrebase.7.pod:678
msgid "The first ever dgit push"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:645
+#: ../dgit-maint-debrebase.7.pod:680
msgid ""
"If this is the first ever dgit push of the package, consider passing I<--"
"deliberately-not-fast-forward> instead of I<--overwrite>. This avoids "
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:651
+#: ../dgit-maint-debrebase.7.pod:686
msgid "Inspecting the history"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:653
+#: ../dgit-maint-debrebase.7.pod:688
msgid ""
"The git history made by git-debrebase can seem complicated. Here are some "
"suggestions for helpful invocations of gitk and git. They can be adapted "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:657
+#: ../dgit-maint-debrebase.7.pod:692
msgid "History of package in Debian, disregarding history from upstream:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:661
+#: ../dgit-maint-debrebase.7.pod:696
#, no-wrap
msgid ""
" % gitk --first-parent\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:663
+#: ../dgit-maint-debrebase.7.pod:698
msgid "In a laundered branch, the delta queue is at the top."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:667
+#: ../dgit-maint-debrebase.7.pod:702
msgid "History of the packaging, excluding the delta queue:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:669
+#: ../dgit-maint-debrebase.7.pod:704
#, no-wrap
msgid ""
" % gitk :/debian :!/debian/patches\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:671
+#: ../dgit-maint-debrebase.7.pod:706
msgid "Just the delta queue (i.e. Debian's changes to upstream):"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:673
+#: ../dgit-maint-debrebase.7.pod:708
#, no-wrap
msgid ""
" % gitk --first-parent -- :/ :!/debian\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:675
+#: ../dgit-maint-debrebase.7.pod:710
msgid "Full history including old versions of the delta queue:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:679
+#: ../dgit-maint-debrebase.7.pod:714
#, no-wrap
msgid ""
" % gitk --date-order\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:681
+#: ../dgit-maint-debrebase.7.pod:716
msgid ""
"The \"Declare fast forward\" commits you see have an older history (usually, "
"an older delta queue) as one parent, and a newer history as the other. --"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:688
+#: ../dgit-maint-debrebase.7.pod:723
msgid "Complete diff since the last upload:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:692
+#: ../dgit-maint-debrebase.7.pod:727
#, no-wrap
msgid ""
" % git diff dgit/dgit/sid..HEAD -- :/ :!/debian/patches\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:694
+#: ../dgit-maint-debrebase.7.pod:729
msgid "This includes changes to upstream files."
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:698
+#: ../dgit-maint-debrebase.7.pod:733
msgid "Interdiff of delta queue since last upload, if you really want it:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:700
+#: ../dgit-maint-debrebase.7.pod:735
#, no-wrap
msgid ""
" % git debrebase make-patches\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:703
+#: ../dgit-maint-debrebase.7.pod:738
msgid "And of course there is:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:705
+#: ../dgit-maint-debrebase.7.pod:740
#, no-wrap
msgid ""
" % git debrebase status\n"
msgstr ""
#. type: =head2
-#: ../dgit-maint-debrebase.7.pod:707
+#: ../dgit-maint-debrebase.7.pod:742
msgid "Alternative ways to start a debrebase"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:709
+#: ../dgit-maint-debrebase.7.pod:744
msgid ""
"Above we started an interactive debrebase by invoking git-debrebase(1) like "
"this:"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:718
+#: ../dgit-maint-debrebase.7.pod:753
msgid "It is also possible to perform a non-interactive rebase, like this:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:722
+#: ../dgit-maint-debrebase.7.pod:757
#, no-wrap
msgid ""
" % git debrebase -- [git-rebase options...]\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:727
+#: ../dgit-maint-debrebase.7.pod:762
msgid ""
"A third alternative is to have git-debrebase(1) shuffle all the Debian "
"changes to the end of your branch, and then manipulate them yourself using "
msgstr ""
#. type: verbatim
-#: ../dgit-maint-debrebase.7.pod:733
+#: ../dgit-maint-debrebase.7.pod:768
#, no-wrap
msgid ""
" % git debrebase\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:738
+#: ../dgit-maint-debrebase.7.pod:773
msgid ""
"If you take this approach, you should be very careful not to start the "
"rebase too early, including before the most recent pseudomerge. git-rebase "
msgstr ""
#. type: textblock
-#: ../dgit-maint-debrebase.7.pod:749
+#: ../dgit-maint-debrebase.7.pod:784
msgid "dgit(1), dgit(7), git-debrebase(1), git-debrebase(5)"
msgstr ""
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2018-10-04 01:04+0100\n"
+"POT-Creation-Date: 2020-02-02 16:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: ../dgit-maint-native.7.pod:1 ../dgit-maint-merge.7.pod:1
#: ../dgit-maint-gbp.7.pod:1 ../dgit-maint-debrebase.7.pod:1
#: ../dgit-downstream-dsc.7.pod:1 ../dgit-sponsorship.7.pod:1
-#: ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../dgit-maint-bpo.7.pod:1 ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../git-debpush.1.pod:1
#, no-wrap
msgid "NAME"
msgstr ""
#. type: =item
-#: ../dgit.1:286 ../dgit-maint-merge.7.pod:446
+#: ../dgit.1:286 ../dgit-maint-merge.7.pod:479
#, no-wrap
msgid "1."
msgstr ""
#. type: =item
-#: ../dgit.1:287 ../dgit-maint-merge.7.pod:450
+#: ../dgit.1:287 ../dgit-maint-merge.7.pod:483
#, no-wrap
msgid "2."
msgstr ""
#. type: =item
-#: ../dgit.1:288 ../dgit-maint-merge.7.pod:455
+#: ../dgit.1:288 ../dgit-maint-merge.7.pod:488
#, no-wrap
msgid "3."
msgstr ""
#. type: =head1
-#: ../dgit.1:1394 ../dgit.7:23 ../dgit-user.7.pod:447
+#: ../dgit.1:1575 ../dgit.7:23 ../dgit-user.7.pod:447
#: ../dgit-nmu-simple.7.pod:137 ../dgit-maint-native.7.pod:126
-#: ../dgit-maint-merge.7.pod:491 ../dgit-maint-gbp.7.pod:136
-#: ../dgit-maint-debrebase.7.pod:722 ../dgit-downstream-dsc.7.pod:352
-#: ../dgit-sponsorship.7.pod:321 ../git-debrebase.1.pod:601
-#: ../git-debrebase.5.pod:678
+#: ../dgit-maint-merge.7.pod:524 ../dgit-maint-gbp.7.pod:136
+#: ../dgit-maint-debrebase.7.pod:782 ../dgit-downstream-dsc.7.pod:352
+#: ../dgit-sponsorship.7.pod:321 ../dgit-maint-bpo.7.pod:140
+#: ../git-debrebase.1.pod:634 ../git-debrebase.5.pod:678
+#: ../git-debpush.1.pod:261
#, no-wrap
msgid "SEE ALSO"
msgstr ""
#: ../dgit-user.7.pod:5 ../dgit-maint-native.7.pod:5
#: ../dgit-maint-merge.7.pod:5 ../dgit-maint-gbp.7.pod:5
#: ../dgit-maint-debrebase.7.pod:5 ../dgit-downstream-dsc.7.pod:5
-#: ../git-debrebase.1.pod:10 ../git-debrebase.5.pod:5
+#: ../dgit-maint-bpo.7.pod:5 ../git-debrebase.5.pod:5
msgid "INTRODUCTION"
msgstr ""
#. type: textblock
#: ../dgit-user.7.pod:449 ../dgit-maint-native.7.pod:128
-#: ../dgit-maint-merge.7.pod:493 ../dgit-maint-gbp.7.pod:138
+#: ../dgit-maint-merge.7.pod:526 ../dgit-maint-gbp.7.pod:138
msgid "dgit(1), dgit(7)"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-native.7.pod:107 ../dgit-maint-merge.7.pod:484
+#: ../dgit-maint-native.7.pod:107 ../dgit-maint-merge.7.pod:517
#, no-wrap
msgid ""
" % dgit pull\n"
msgstr ""
#. type: =head3
-#: ../dgit-maint-merge.7.pod:53 ../dgit-maint-merge.7.pod:335
-#: ../dgit-maint-merge.7.pod:408 ../dgit-maint-debrebase.7.pod:67
-#: ../dgit-maint-debrebase.7.pod:321
+#: ../dgit-maint-merge.7.pod:53 ../dgit-maint-merge.7.pod:362
+#: ../dgit-maint-merge.7.pod:441 ../dgit-maint-debrebase.7.pod:67
+#: ../dgit-maint-debrebase.7.pod:354
msgid "When upstream tags releases in git"
msgstr ""
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:97 ../dgit-maint-merge.7.pod:402
-#: ../dgit-maint-debrebase.7.pod:106 ../dgit-maint-debrebase.7.pod:383
+#: ../dgit-maint-merge.7.pod:97 ../dgit-maint-merge.7.pod:435
+#: ../dgit-maint-debrebase.7.pod:106 ../dgit-maint-debrebase.7.pod:423
#, no-wrap
msgid ""
" % git deborig\n"
msgstr ""
#. type: =head3
-#: ../dgit-maint-merge.7.pod:123 ../dgit-maint-merge.7.pod:343
-#: ../dgit-maint-merge.7.pod:433 ../dgit-maint-debrebase.7.pod:137
-#: ../dgit-maint-debrebase.7.pod:329
+#: ../dgit-maint-merge.7.pod:123 ../dgit-maint-debrebase.7.pod:137
+msgid "Using untagged upstream commits"
+msgstr ""
+
+#. type: textblock
+#: ../dgit-maint-merge.7.pod:127 ../dgit-maint-debrebase.7.pod:141
+msgid ""
+"Sometimes upstream does not tag their releases, or you want to package an "
+"unreleased git snapshot. In such a case you can create your own upstream "
+"release tag, of the form B<upstream/>I<ver>, where I<ver> is the upstream "
+"version you plan to put in I<debian/changelog>. The B<upstream/> prefix "
+"ensures that your tag will not clash with any tags upstream later creates."
+msgstr ""
+
+#. type: textblock
+#: ../dgit-maint-merge.7.pod:134 ../dgit-maint-debrebase.7.pod:148
+msgid ""
+"For example, suppose that the latest upstream release is 1.2.2 and you want "
+"to package git commit ab34c21 which was made on 2013-12-11. A common "
+"convention is to use the upstream version number 1.2.2+git20131211.ab34c21 "
+"and so you could use"
+msgstr ""
+
+#. type: verbatim
+#: ../dgit-maint-merge.7.pod:141 ../dgit-maint-debrebase.7.pod:155
+#, no-wrap
+msgid ""
+" % git tag -s upstream/1.2.2+git20131211.ab34c21 ab34c21\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../dgit-maint-merge.7.pod:145 ../dgit-maint-debrebase.7.pod:159
+msgid "to obtain a release tag, and then proceed as above."
+msgstr ""
+
+#. type: =head3
+#: ../dgit-maint-merge.7.pod:149 ../dgit-maint-merge.7.pod:374
+#: ../dgit-maint-merge.7.pod:466 ../dgit-maint-debrebase.7.pod:163
+#: ../dgit-maint-debrebase.7.pod:366
msgid "When upstream releases only tarballs"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:125
+#: ../dgit-maint-merge.7.pod:151
msgid ""
"We need a virtual upstream branch with virtual release tags. gbp-import-"
"orig(1) can manage this for us. To begin"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:130 ../dgit-maint-debrebase.7.pod:145
+#: ../dgit-maint-merge.7.pod:156
#, no-wrap
msgid ""
" % mkdir foo\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:136 ../dgit-maint-debrebase.7.pod:151
+#: ../dgit-maint-merge.7.pod:162
msgid "Now create I<debian/gbp.conf>:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:140 ../dgit-maint-debrebase.7.pod:155
+#: ../dgit-maint-merge.7.pod:166 ../dgit-maint-debrebase.7.pod:208
#, no-wrap
msgid ""
" [DEFAULT]\n"
" upstream-branch = upstream\n"
" debian-branch = master\n"
-" upstream-tag = %(version)s\n"
+" upstream-tag = upstream/%(version)s\n"
"\n"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:145 ../dgit-maint-debrebase.7.pod:160
+#: ../dgit-maint-merge.7.pod:171 ../dgit-maint-debrebase.7.pod:213
#, no-wrap
msgid ""
" sign-tags = True\n"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:149 ../dgit-maint-debrebase.7.pod:164
+#: ../dgit-maint-merge.7.pod:175
#, no-wrap
msgid ""
" [import-orig]\n"
" merge-mode = merge\n"
+" merge = False\n"
"\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:154 ../dgit-maint-debrebase.7.pod:169
+#: ../dgit-maint-merge.7.pod:181
msgid "gbp-import-orig(1) requires a pre-existing upstream branch:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:158 ../dgit-maint-debrebase.7.pod:173
+#: ../dgit-maint-merge.7.pod:185
#, no-wrap
msgid ""
" % git add debian/gbp.conf && git commit -m \"create gbp.conf\"\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:166 ../dgit-maint-debrebase.7.pod:181
+#: ../dgit-maint-merge.7.pod:193
msgid "Then we can import the upstream version:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:170 ../dgit-maint-debrebase.7.pod:185
+#: ../dgit-maint-merge.7.pod:197
#, no-wrap
msgid ""
-" % gbp import-orig --merge-mode=replace ../foo_1.2.2.orig.tar.xz\n"
+" % gbp import-orig --merge --merge-mode=replace ../foo_1.2.2.orig.tar.xz\n"
"\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:174 ../dgit-maint-debrebase.7.pod:189
+#: ../dgit-maint-merge.7.pod:201
msgid ""
"Our upstream branch cannot be pushed to B<dgit-repos>, but since we will "
"need it whenever we import a new upstream version, we must push it "
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:180 ../dgit-maint-debrebase.7.pod:195
+#: ../dgit-maint-merge.7.pod:207 ../dgit-maint-debrebase.7.pod:191
#, no-wrap
msgid ""
" % git remote add -f origin salsa.debian.org:Debian/foo.git\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:185
+#: ../dgit-maint-merge.7.pod:212
msgid ""
"You are now ready to proceed as above, making commits to both the upstream "
"source and the I<debian/> directory."
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:188 ../dgit-maint-debrebase.7.pod:207
+#: ../dgit-maint-merge.7.pod:215 ../dgit-maint-debrebase.7.pod:235
msgid "CONVERTING AN EXISTING PACKAGE"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:190 ../dgit-maint-debrebase.7.pod:209
+#: ../dgit-maint-merge.7.pod:217 ../dgit-maint-debrebase.7.pod:237
msgid ""
"This section explains how to convert an existing Debian package to this "
"workflow. It should be skipped when debianising a new package."
msgstr ""
#. type: =head2
-#: ../dgit-maint-merge.7.pod:193
+#: ../dgit-maint-merge.7.pod:220
msgid "No existing git history"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:197
+#: ../dgit-maint-merge.7.pod:224
#, no-wrap
msgid ""
" % dgit clone foo\n"
msgstr ""
#. type: =head2
-#: ../dgit-maint-merge.7.pod:203
+#: ../dgit-maint-merge.7.pod:230
msgid "Existing git history using another workflow"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:205
+#: ../dgit-maint-merge.7.pod:232
msgid ""
"First, if you don't already have the git history locally, clone it, and "
"obtain the corresponding orig.tar from the archive:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:210
+#: ../dgit-maint-merge.7.pod:237
#, no-wrap
msgid ""
" % git clone git.debian.org:collab-maint/foo\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:216
+#: ../dgit-maint-merge.7.pod:243
msgid "Now dump any existing patch queue:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:220
+#: ../dgit-maint-merge.7.pod:247
#, no-wrap
msgid ""
" % git rm -rf debian/patches\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:225
+#: ../dgit-maint-merge.7.pod:252
msgid "Then make new upstream tags available:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:229 ../dgit-maint-debrebase.7.pod:240
+#: ../dgit-maint-merge.7.pod:256 ../dgit-maint-debrebase.7.pod:268
#, no-wrap
msgid ""
" % git remote add -f upstream https://some.upstream/foo.git\n"
msgstr ""
#. type: =for
-#: ../dgit-maint-merge.7.pod:233
+#: ../dgit-maint-merge.7.pod:260
msgid "dgit-test dpkg-source-ignores begin"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:235
+#: ../dgit-maint-merge.7.pod:262
msgid ""
"Now you simply need to ensure that your git HEAD is dgit-compatible, i.e., "
"it is exactly what you would get if you ran B<dpkg-buildpackage -i'(?:^|/)\\."
msgstr ""
#. type: =for
-#: ../dgit-maint-merge.7.pod:240
+#: ../dgit-maint-merge.7.pod:267
msgid "dgit-test dpkg-source-ignores end"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:242 ../dgit-maint-debrebase.7.pod:289
+#: ../dgit-maint-merge.7.pod:269 ../dgit-maint-debrebase.7.pod:322
msgid ""
"To achieve this, you might need to delete I<debian/source/local-options>. "
"One way to have dgit check your progress is to run B<dgit build-source>."
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:246
+#: ../dgit-maint-merge.7.pod:273
msgid ""
"The first dgit push will require I<--overwrite>. If this is the first ever "
"dgit push of the package, consider passing I<--deliberately-not-fast-"
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:253
+#: ../dgit-maint-merge.7.pod:280
msgid "SOURCE PACKAGE CONFIGURATION"
msgstr ""
#. type: =head2
-#: ../dgit-maint-merge.7.pod:255
+#: ../dgit-maint-merge.7.pod:282
msgid "debian/source/options"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:257
+#: ../dgit-maint-merge.7.pod:284
msgid ""
"We set some source package options such that dgit can transparently handle "
"the \"dropping\" and \"refreshing\" of changes to the upstream source:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:263
+#: ../dgit-maint-merge.7.pod:290
#, no-wrap
msgid ""
" single-debian-patch\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:268
+#: ../dgit-maint-merge.7.pod:295
msgid ""
"You don't need to create this file if you are using the version 1.0 source "
"package format."
msgstr ""
#. type: =head2
-#: ../dgit-maint-merge.7.pod:271
+#: ../dgit-maint-merge.7.pod:298
msgid "Sample text for debian/source/patch-header"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:273
+#: ../dgit-maint-merge.7.pod:300
msgid ""
"It is a good idea to explain how a user can obtain a breakdown of the "
"changes to the upstream source:"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:278
+#: ../dgit-maint-merge.7.pod:305
msgid ""
"The Debian packaging of foo is maintained in git, using the merging workflow "
"described in dgit-maint-merge(7). There isn't a patch queue that can be "
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:282
+#: ../dgit-maint-merge.7.pod:309
msgid ""
"A detailed breakdown of the changes is available from their canonical "
"representation - git commits in the packaging repository. For example, to "
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:290
+#: ../dgit-maint-merge.7.pod:317
#, no-wrap
msgid ""
" % git clone https://git.dgit.debian.org/foo\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:296
+#: ../dgit-maint-merge.7.pod:323
msgid ""
"(If you have dgit, use `dgit clone foo`, rather than plain `git clone`.)"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:299
+#: ../dgit-maint-merge.7.pod:326
msgid "A single combined diff, containing all the changes, follows."
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:303
+#: ../dgit-maint-merge.7.pod:330
msgid ""
"If you are using the version 1.0 source package format, this text should be "
"added to README.source instead. The version 1.0 source package format "
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:307
+#: ../dgit-maint-merge.7.pod:334
msgid ""
"If you're using the version 3.0 (quilt) source package format, you could add "
"this text to README.source instead of debian/source/patch-header, but this "
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:312 ../dgit-maint-debrebase.7.pod:436
+#: ../dgit-maint-merge.7.pod:339 ../dgit-maint-debrebase.7.pod:476
msgid "BUILDING AND UPLOADING"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:314
+#: ../dgit-maint-merge.7.pod:341
msgid ""
"Use B<dgit build>, B<dgit sbuild>, B<dgit pbuilder>, B<dgit cowbuilder>, "
"B<dgit push-source>, and B<dgit push> as detailed in dgit(1). If any "
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:320
+#: ../dgit-maint-merge.7.pod:347
msgid ""
"As an alternative to B<dgit build> and friends, you can use a tool like "
"gitpkg(1). This works because like dgit, gitpkg(1) enforces that HEAD has "
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:327
+#: ../dgit-maint-merge.7.pod:354
msgid ""
"If you want to skip dgit's checks while iterating on a problem with the "
"package build (for example, you don't want to commit your changes to git), "
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:331
+#: ../dgit-maint-merge.7.pod:358
msgid "NEW UPSTREAM RELEASES"
msgstr ""
#. type: =head2
-#: ../dgit-maint-merge.7.pod:333 ../dgit-maint-debrebase.7.pod:319
+#: ../dgit-maint-merge.7.pod:360 ../dgit-maint-debrebase.7.pod:352
msgid "Obtaining the release"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:339 ../dgit-maint-debrebase.7.pod:325
+#: ../dgit-maint-merge.7.pod:366 ../dgit-maint-debrebase.7.pod:358
#, no-wrap
msgid ""
-" % git remote update\n"
+" % git fetch --tags upstream\n"
"\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:345 ../dgit-maint-debrebase.7.pod:331
+#: ../dgit-maint-merge.7.pod:370 ../dgit-maint-debrebase.7.pod:362
+msgid ""
+"If you want to package an untagged upstream commit (because upstream does "
+"not tag releases or because you want to package an upstream development "
+"snapshot), see \"Using untagged upstream commits\" above."
+msgstr ""
+
+#. type: textblock
+#: ../dgit-maint-merge.7.pod:376 ../dgit-maint-debrebase.7.pod:368
msgid ""
"You will need the I<debian/gbp.conf> from \"When upstream releases only "
"tarballs\", above. You will also need your upstream branch. Above, we "
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:350 ../dgit-maint-debrebase.7.pod:336
+#: ../dgit-maint-merge.7.pod:381 ../dgit-maint-debrebase.7.pod:373
msgid "Then, either"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:354 ../dgit-maint-debrebase.7.pod:340
+#: ../dgit-maint-merge.7.pod:385 ../dgit-maint-debrebase.7.pod:377
#, no-wrap
msgid ""
-" % gbp import-orig --no-merge ../foo_1.2.3.orig.tar.xz\n"
+" % gbp import-orig ../foo_1.2.3.orig.tar.xz\n"
"\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:358 ../dgit-maint-debrebase.7.pod:344
+#: ../dgit-maint-merge.7.pod:389 ../dgit-maint-debrebase.7.pod:381
msgid "or if you have a working watch file"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:362 ../dgit-maint-debrebase.7.pod:348
+#: ../dgit-maint-merge.7.pod:393 ../dgit-maint-debrebase.7.pod:385
#, no-wrap
msgid ""
-" % gbp import-orig --no-merge --uscan\n"
+" % gbp import-orig --uscan\n"
"\n"
msgstr ""
+#. type: textblock
+#: ../dgit-maint-merge.7.pod:397
+msgid "In the following, replace I<1.2.3> with I<upstream/1.2.3>."
+msgstr ""
+
#. type: =head2
-#: ../dgit-maint-merge.7.pod:366
+#: ../dgit-maint-merge.7.pod:399
msgid "Reviewing & merging the release"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:368
+#: ../dgit-maint-merge.7.pod:401
msgid ""
"It's a good idea to preview the merge of the new upstream release. First, "
"just check for any new or deleted files that may need accounting for in your "
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:374
+#: ../dgit-maint-merge.7.pod:407
#, no-wrap
msgid ""
-" % git diff --stat master..1.2.3 -- . ':!debian'\n"
+" % git diff --name-status --diff-filter=ADR master..1.2.3 -- . ':!debian'\n"
"\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:378
+#: ../dgit-maint-merge.7.pod:411
msgid "You can then review the full merge diff:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:382
+#: ../dgit-maint-merge.7.pod:415
#, no-wrap
msgid ""
" % git merge-tree `git merge-base master 1.2.3` master 1.2.3 | $PAGER\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:386
+#: ../dgit-maint-merge.7.pod:419
msgid "Once you're satisfied with what will be merged, update your package:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:390
+#: ../dgit-maint-merge.7.pod:423
#, no-wrap
msgid ""
" % git merge 1.2.3\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:396 ../dgit-maint-debrebase.7.pod:377
+#: ../dgit-maint-merge.7.pod:429 ../dgit-maint-debrebase.7.pod:417
msgid ""
"If you obtained a tarball from upstream, you are ready to try a build. If "
"you merged a git tag from upstream, you will first need to generate a "
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:406 ../dgit-maint-debrebase.7.pod:461
+#: ../dgit-maint-merge.7.pod:439 ../dgit-maint-debrebase.7.pod:507
msgid "HANDLING DFSG-NON-FREE MATERIAL"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:410
+#: ../dgit-maint-merge.7.pod:443
msgid "We create a DFSG-clean tag to merge to master:"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:414
+#: ../dgit-maint-merge.7.pod:447
#, no-wrap
msgid ""
" % git checkout -b pre-dfsg 1.2.3\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:423
+#: ../dgit-maint-merge.7.pod:456
msgid ""
"Before merging the new 1.2.3+dfsg tag to master, you should first determine "
"whether it would be legally dangerous for the non-free material to be "
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:428
+#: ../dgit-maint-merge.7.pod:461
msgid ""
"If it would be dangerous, there is a big problem; in this case please "
"consult your archive administrators (for Debian this is the dgit "
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:435 ../dgit-maint-debrebase.7.pod:521
+#: ../dgit-maint-merge.7.pod:468 ../dgit-maint-debrebase.7.pod:581
msgid ""
"The easiest way to handle this is to add a B<Files-Excluded> field to "
"I<debian/copyright>, and a B<uversionmangle> setting in I<debian/watch>. "
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:440
+#: ../dgit-maint-merge.7.pod:473
msgid "FORWARDING PATCHES UPSTREAM"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:442
+#: ../dgit-maint-merge.7.pod:475
msgid "The basic steps are:"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:448
+#: ../dgit-maint-merge.7.pod:481
msgid "Create a new branch based off upstream's master branch."
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:452
+#: ../dgit-maint-merge.7.pod:485
msgid ""
"git-cherry-pick(1) commits from your master branch onto your new branch."
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:457
+#: ../dgit-maint-merge.7.pod:490
msgid ""
"Push the branch somewhere and ask upstream to merge it, or use git-format-"
"patch(1) or git-request-pull(1)."
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:462
+#: ../dgit-maint-merge.7.pod:495
msgid "For example (and it is only an example):"
msgstr ""
#. type: verbatim
-#: ../dgit-maint-merge.7.pod:466
+#: ../dgit-maint-merge.7.pod:499
#, no-wrap
msgid ""
" % # fork foo.git on GitHub\n"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:476
+#: ../dgit-maint-merge.7.pod:509
msgid ""
"Note that when you merge an upstream release containing your forwarded "
"patches, git and dgit will transparently handle \"dropping\" the patches "
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:480 ../dgit-maint-gbp.7.pod:130
-#: ../dgit-maint-debrebase.7.pod:526
+#: ../dgit-maint-merge.7.pod:513 ../dgit-maint-gbp.7.pod:130
+#: ../dgit-maint-debrebase.7.pod:586
msgid "INCORPORATING NMUS"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:488
+#: ../dgit-maint-merge.7.pod:521
msgid ""
"Alternatively, you can apply the NMU diff to your repository. The next push "
"will then require I<--overwrite>."
msgstr ""
#. type: =head1
-#: ../dgit-maint-merge.7.pod:495 ../dgit-maint-gbp.7.pod:140
-#: ../dgit-maint-debrebase.7.pod:726
+#: ../dgit-maint-merge.7.pod:528 ../dgit-maint-gbp.7.pod:140
+#: ../dgit-maint-debrebase.7.pod:786 ../dgit-maint-bpo.7.pod:144
+#: ../git-debpush.1.pod:266
msgid "AUTHOR"
msgstr ""
#. type: textblock
-#: ../dgit-maint-merge.7.pod:497 ../dgit-maint-debrebase.7.pod:728
+#: ../dgit-maint-merge.7.pod:530 ../dgit-maint-debrebase.7.pod:788
msgid ""
"This tutorial was written and is maintained by Sean Whitton "
"<spwhitton@spwhitton.name>. It contains contributions from other dgit "
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2019-03-01 16:59+0000\n"
+"POT-Creation-Date: 2020-02-02 16:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: ../dgit-maint-native.7.pod:1 ../dgit-maint-merge.7.pod:1
#: ../dgit-maint-gbp.7.pod:1 ../dgit-maint-debrebase.7.pod:1
#: ../dgit-downstream-dsc.7.pod:1 ../dgit-sponsorship.7.pod:1
-#: ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../dgit-maint-bpo.7.pod:1 ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../git-debpush.1.pod:1
#, no-wrap
msgid "NAME"
msgstr ""
msgid "dgit - git integration with the Debian archive"
msgstr ""
-#. type: SH
-#: ../dgit.1:6
+#. type: =head1
+#: ../dgit.1:6 ../git-debpush.1.pod:5
#, no-wrap
msgid "SYNOPSIS"
msgstr ""
msgid "B<dgit> [I<dgit-opts>] I<action> ..."
msgstr ""
-#. type: SH
-#: ../dgit.1:33
+#. type: =head1
+#: ../dgit.1:33 ../git-debpush.1.pod:9
#, no-wrap
msgid "DESCRIPTION"
msgstr ""
msgstr ""
#. type: Plain text
-#: ../dgit.1:185 ../dgit.1:1192
+#: ../dgit.1:185 ../dgit.1:1278
msgid "Print a usage summary."
msgstr ""
msgstr ""
#. type: =item
-#: ../dgit.1:286 ../dgit-maint-merge.7.pod:446
+#: ../dgit.1:286 ../dgit-maint-merge.7.pod:479
#, no-wrap
msgid "1."
msgstr ""
msgstr ""
#. type: =item
-#: ../dgit.1:287 ../dgit-maint-merge.7.pod:450
+#: ../dgit.1:287 ../dgit-maint-merge.7.pod:483
#, no-wrap
msgid "2."
msgstr ""
msgstr ""
#. type: =item
-#: ../dgit.1:288 ../dgit-maint-merge.7.pod:455
+#: ../dgit.1:288 ../dgit-maint-merge.7.pod:488
#, no-wrap
msgid "3."
msgstr ""
msgstr ""
#. type: =head1
-#: ../dgit.1:496 ../git-debrebase.1.pod:462
+#: ../dgit.1:496 ../git-debrebase.1.pod:477
#, no-wrap
msgid "OPTIONS"
msgstr ""
msgstr ""
#. type: Plain text
-#: ../dgit.1:637
+#: ../dgit.1:638
msgid ""
"The package is or may be new in this suite. Without this, dgit will refuse "
"to push. It may (for Debian, will) be unable to access the git history for "
msgstr ""
#. type: TP
-#: ../dgit.1:637
+#: ../dgit.1:638
#, no-wrap
msgid "B<--include-dirty>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:645
+#: ../dgit.1:646
msgid ""
"Do not complain if the working tree does not match your git HEAD, and when "
"building, include the changes from your working tree. This can be useful "
"won't make broken pushes.)"
msgstr ""
+#. type: Plain text
+#: ../dgit.1:658
+msgid ""
+"Note that this does B<not> prevent dgit from cleaning your tree, so if the "
+"changes in your working tree are in the form of untracked files, those might "
+"still be deleted, especially with --clean=git. If you want to include "
+"untracked files in the build, you can use --clean=none or --clean=dpkg-"
+"source[-d] in addition to --include-dirty. Note that this combination can "
+"fail if the untracked files are under I<debian/patches/>."
+msgstr ""
+
#. type: TP
-#: ../dgit.1:645
+#: ../dgit.1:658
#, no-wrap
msgid "B<--ignore-dirty>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:648
+#: ../dgit.1:661
msgid "Deprecated alias for --include-dirty."
msgstr ""
#. type: TP
-#: ../dgit.1:648
+#: ../dgit.1:661
#, no-wrap
msgid "B<--overwrite>[=I<previous-version>]"
msgstr ""
#. type: Plain text
-#: ../dgit.1:659
+#: ../dgit.1:672
msgid ""
"Declare that your HEAD really does contain all the (wanted) changes from all "
"versions listed in its changelog; or, all (wanted) changes from I<previous-"
msgstr ""
#. type: Plain text
-#: ../dgit.1:666
+#: ../dgit.1:679
msgid ""
"It is safer not to specify I<previous-version>, and usually it's not "
"needed. Just say B<--overwrite>, unless you know what you are doing."
msgstr ""
#. type: Plain text
-#: ../dgit.1:670
+#: ../dgit.1:685
msgid ""
"This option is useful if you are the maintainer, and you have incorporated "
"NMU changes into your own git workflow in a way that doesn't make your "
-"branch a fast forward from the NMU."
+"branch a fast forward from the NMU. It can also be useful when there was an "
+"upload made without dgit since the most recent upload made with dgit."
msgstr ""
#. type: Plain text
-#: ../dgit.1:676
+#: ../dgit.1:691
msgid ""
"This option is also usually necessary the first time a package is pushed "
"with dgit push to a particular suite. See B<dgit-maint->I<*>B<(7)>."
msgstr ""
#. type: Plain text
-#: ../dgit.1:690
+#: ../dgit.1:705
msgid ""
"If I<previous-version> is not specified, dgit will check that the version in "
"the archive is mentioned in your debian/changelog. (This will avoid losing "
msgstr ""
#. type: Plain text
-#: ../dgit.1:696
+#: ../dgit.1:711
msgid ""
"dgit push --overwrite will, if necessary, make a pseudo-merge (that is, "
"something that looks like the result of git merge -s ours) to stitch the "
msgstr ""
#. type: Plain text
-#: ../dgit.1:701
+#: ../dgit.1:716
msgid ""
-"(In quilt mode B<gbp>, B<dpm> or B<unpatched>, implying a split between the "
-"dgit view and the maintainer view, the pseudo-merge will appear only in the "
-"dgit view.)"
+"(In quilt mode B<gbp>, B<dpm>, B<unpatched> or B<baredebian>*, implying a "
+"split between the dgit view and the maintainer view, the pseudo-merge will "
+"appear only in the dgit view.)"
msgstr ""
#. type: TP
-#: ../dgit.1:701
+#: ../dgit.1:716
#, no-wrap
msgid "B<--delayed>=I<days>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:704
+#: ../dgit.1:719
msgid "Upload to a DELAYED queue."
msgstr ""
#. type: Plain text
-#: ../dgit.1:714
+#: ../dgit.1:729
msgid ""
"B<WARNING:> If the maintainer responds by cancelling your upload from the "
"queue, and does not make an upload of their own, this will not rewind the "
msgstr ""
#. type: Plain text
-#: ../dgit.1:719
+#: ../dgit.1:734
msgid ""
"If this situation arises, someone should make a suitable dgit push to update "
"the contents of dgit-repos to a version without the controversial changes."
msgstr ""
#. type: TP
-#: ../dgit.1:719
+#: ../dgit.1:734
#, no-wrap
msgid "B<--no-chase-dsc-distro>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:725
+#: ../dgit.1:740
msgid ""
"Tells dgit not to look online for additional git repositories containing "
"information about a particular .dsc being imported. Chasing is the default."
msgstr ""
#. type: Plain text
-#: ../dgit.1:735
+#: ../dgit.1:750
msgid ""
"For most operations (such as fetch and pull), disabling chasing means dgit "
"will access only the git server for the distro you are directly working "
msgstr ""
#. type: Plain text
-#: ../dgit.1:743
+#: ../dgit.1:758
msgid ""
"Disabling chasing can be hazardous: if the .dsc names a git commit which has "
"been rewritten by those in charge of the distro, this option may prevent "
msgstr ""
#. type: TP
-#: ../dgit.1:743
+#: ../dgit.1:758
#, no-wrap
msgid "B<--save-dgit-view=>I<branch>|I<ref>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:753
+#: ../dgit.1:768
msgid ""
-"Specifies that when a split view quilt mode is in operation, and dgit "
-"calculates (or looks up in its cache) a dgit view corresponding to your "
-"HEAD, the dgit view will be left in I<ref>. The specified ref is "
-"unconditionally overwritten, so don't specify a branch you want to keep."
+"Specifies that when split view is in operation, and dgit calculates (or "
+"looks up in its cache) a dgit view corresponding to your HEAD, the dgit "
+"view will be left in I<ref>. The specified ref is unconditionally "
+"overwritten, so don't specify a branch you want to keep."
msgstr ""
#. type: Plain text
-#: ../dgit.1:760
+#: ../dgit.1:772
msgid ""
"This option is effective only with the following operations: quilt-fixup; "
-"push; all builds. And it is only effective with --[quilt=]gbp, --"
-"[quilt=]dpm, --quilt=unpatched."
+"push; all builds. And it is only effective when split view is actually in "
+"operation."
msgstr ""
#. type: Plain text
-#: ../dgit.1:764
+#: ../dgit.1:776
msgid ""
"If ref does not start with refs/ it is taken to be a branch - i.e. refs/"
"heads/ is prepended."
msgstr ""
#. type: Plain text
-#: ../dgit.1:768
+#: ../dgit.1:780
msgid "B<--dgit-view-save> is a deprecated alias for --save-dgit-view."
msgstr ""
#. type: TP
-#: ../dgit.1:768
+#: ../dgit.1:780
#, no-wrap
msgid "B<--deliberately->I<something>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:782
+#: ../dgit.1:794
msgid ""
"Declare that you are deliberately doing I<something>. This can be used to "
"override safety catches, including safety catches which relate to distro-"
msgstr ""
#. type: TP
-#: ../dgit.1:782
+#: ../dgit.1:794
#, no-wrap
msgid "B<--deliberately-not-fast-forward>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:788
+#: ../dgit.1:800
msgid ""
-"Declare that you are deliberately rewinding history. When pushing to "
-"Debian, use this when you are making a renewed upload of an entirely new "
-"source package whose previous version was not accepted for release from NEW "
-"because of problems with copyright or redistributibility."
+"Declare that you are deliberately rewriting history. This could be because "
+"your branch is not fast forward from the dgit server history, or not fast "
+"forward from a locally-synthesised dsc import."
msgstr ""
#. type: Plain text
-#: ../dgit.1:799
+#: ../dgit.1:806
msgid ""
-"In split view quilt modes, this also prevents the construction by dgit of a "
-"pseudomerge to make the dgit view fast forwarding. Normally only one of --"
-"overwrite (which creates a suitable pseudomerge) and --deliberately-not-"
-"fast-forward (which suppresses the pseudomerge and the fast forward checks) "
-"should be needed; --overwrite is usually better."
+"When pushing to Debian, use this only when you are making a renewed upload "
+"of an entirely new source package whose previous version was not accepted "
+"for release from NEW because of problems with copyright or "
+"redistributibility; or, exceptionally, for the very first upload with dgit."
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:817
+msgid ""
+"When split view is in operation, this also prevents the construction by dgit "
+"of a pseudomerge to make the dgit view fast forwarding. Normally only one "
+"of --overwrite (which creates a suitable pseudomerge) and --deliberately-"
+"not-fast-forward (which suppresses the pseudomerge and the fast forward "
+"checks) should be needed; --overwrite is usually better."
msgstr ""
#. type: TP
-#: ../dgit.1:799
+#: ../dgit.1:817
#, no-wrap
msgid "B<--deliberately-include-questionable-history>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:808
+#: ../dgit.1:826
msgid ""
"Declare that you are deliberately including, in the git history of your "
"current push, history which contains a previously-submitted version of this "
msgstr ""
#. type: TP
-#: ../dgit.1:808
+#: ../dgit.1:826
#, no-wrap
msgid "B<--deliberately-fresh-repo>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:813
+#: ../dgit.1:831
msgid ""
-"Declare that you are deliberately rewinding history and want to throw away "
+"Declare that you are deliberately rewriting history and want to throw away "
"the existing repo. Not relevant when pushing to Debian, as the Debian "
"server will do this automatically when necessary."
msgstr ""
-#. type: TP
-#: ../dgit.1:813
+#. type: =item
+#: ../dgit.1:831 ../git-debpush.1.pod:114
#, no-wrap
msgid "B<--quilt=linear>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:820
+#: ../dgit.1:838
msgid ""
"When fixing up source format `3.0 (quilt)' metadata, insist on generating a "
"linear patch stack: one new patch for each relevant commit. If such a stack "
msgstr ""
#. type: Plain text
-#: ../dgit.1:825
+#: ../dgit.1:843
msgid ""
"HEAD should be a series of plain commits (not touching debian/patches/), and "
"pseudomerges, with as ancestor a patches-applied branch."
msgstr ""
-#. type: TP
-#: ../dgit.1:825
+#. type: =item
+#: ../dgit.1:843 ../git-debpush.1.pod:126
#, no-wrap
msgid "B<--quilt=auto>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:834
+#: ../dgit.1:852
msgid ""
"When fixing up source format `3.0 (quilt)' metadata, prefer to generate a "
-"linear patch stack (as with --quilt=auto) but if that doesn't seem "
+"linear patch stack (as with --quilt=linear) but if that doesn't seem "
"possible, try to generate a single squashed patch for all the changes made "
"in git (as with --quilt=smash). This is not a good idea for an NMU in "
"Debian."
msgstr ""
-#. type: TP
-#: ../dgit.1:834
+#. type: =item
+#: ../dgit.1:852 ../git-debpush.1.pod:120
#, no-wrap
msgid "B<--quilt=smash>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:839
+#: ../dgit.1:857
msgid ""
"When fixing up source format `3.0 (quilt)' metadata, generate a single "
"additional patch for all the changes made in git. This is not a good idea "
msgstr ""
#. type: Plain text
-#: ../dgit.1:845
+#: ../dgit.1:863
msgid ""
"(If HEAD has any in-tree patches already, they must apply cleanly. This "
"will be the case for any trees produced by dgit fetch or clone; if you do "
"remain true.)"
msgstr ""
-#. type: TP
-#: ../dgit.1:845
+#. type: =item
+#: ../dgit.1:863 ../git-debpush.1.pod:131
#, no-wrap
msgid "B<--quilt=nofix>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:853
+#: ../dgit.1:871
msgid ""
"Check whether source format `3.0 (quilt)' metadata would need fixing up, "
"but, if it does, fail. You must then fix the metadata yourself somehow "
msgstr ""
#. type: TP
-#: ../dgit.1:853
+#: ../dgit.1:871
#, no-wrap
msgid "B<--quilt=nocheck> | B<--no-quilt-fixup>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:858
+#: ../dgit.1:876
msgid ""
"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 "
msgstr ""
#. type: TP
-#: ../dgit.1:858
+#: ../dgit.1:876
#, no-wrap
-msgid "B<-->[B<quilt=>]B<gbp> | B<-->[B<quilt=>]B<dpm> | B<--quilt=unapplied>"
+msgid "B<-->[B<quilt=>]B<gbp> | B<-->[B<quilt=>]B<dpm> | B<--quilt=unapplied> | B<-->[B<quilt=>]B<baredebian>[B<+git>|B<+tarball>]"
msgstr ""
#. type: Plain text
-#: ../dgit.1:865
+#: ../dgit.1:883
msgid ""
"Tell dgit that you are using a nearly-dgit-compatible git branch, aka a "
"B<maintainer view>, and do not want your branch changed by dgit."
msgstr ""
#. type: Plain text
-#: ../dgit.1:873
+#: ../dgit.1:887
+msgid ""
+"These quilt modes are known as B<splitting quilt modes>. See --split-view, "
+"below."
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:895
msgid ""
"B<--gbp> (short for B<--quilt=gbp>) is for use with git-buildpackage. Your "
"HEAD is expected to be a patches-unapplied git branch, except that it might "
msgstr ""
#. type: Plain text
-#: ../dgit.1:881
+#: ../dgit.1:903
msgid ""
"B<--dpm> (short for B<--quilt=dpm>) is for use with git-dpm. Your HEAD is "
"expected to be a patches-applied git branch, except that it might contain "
msgstr ""
#. type: Plain text
-#: ../dgit.1:886
+#: ../dgit.1:908
msgid ""
"B<--quilt=unapplied> specifies that your HEAD is a patches-unapplied git "
"branch (and that any changes to upstream .gitignore files are represented as "
msgstr ""
#. type: Plain text
-#: ../dgit.1:904
+#: ../dgit.1:922
msgid ""
-"With --quilt=gbp|dpm|unapplied, dgit push (or precursors like quilt-fixup "
-"and build) will automatically generate a conversion of your git branch into "
-"the right form. dgit push will push the dgit-compatible form (the B<dgit "
-"view>) to the dgit git server. The dgit view will be visible to you in the "
-"dgit remote tracking branches, but your own branch will not be modified. "
-"dgit push will create a tag B<debian/>I<version> for the maintainer view, "
-"and the dgit tag B<archive/debian/>I<version> for the dgit view. dgit quilt-"
-"fixup will merely do some checks, and cache the maintainer view."
+"B<--quilt=baredebian> (or its alias B<--quilt=baredebian+git>) specifies "
+"that your HEAD contains only a debian/ directory, with any changes to "
+"upstream files represented as patches in debian/patches. The upstream "
+"source must be available in git, by default, in a suitably named git tag; "
+"see --upstream-commitish. In this mode, dgit cannot check that all edited "
+"upstream files are properly represented as patches: dgit relies on debian/"
+"patches being correct."
msgstr ""
#. type: Plain text
-#: ../dgit.1:913
+#: ../dgit.1:933
+msgid ""
+"B<--quilt=baredebian+tarball> is like --quilt=baredebian, but is used when "
+"there is no appropriate upstream git history. To construct the dgit view, "
+"dgit will import your orig tarballs' contents into git. In this mode, dgit "
+"cannot check that the upstream parts of your upload correspond to what you "
+"intend: dgit relies on the right orig tarball(s) existing, and debian/"
+"patches being correct."
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:951
+msgid ""
+"With --quilt=gbp|dpm|unapplied|baredebian*, dgit push (or precursors like "
+"quilt-fixup and build) will automatically generate a conversion of your git "
+"branch into the right form. dgit push will push the dgit-compatible form "
+"(the B<dgit view>) to the dgit git server. The dgit view will be visible "
+"to you in the dgit remote tracking branches, but your own branch will not be "
+"modified. dgit push will create a tag B<debian/>I<version> for the "
+"maintainer view, and the dgit tag B<archive/debian/>I<version> for the dgit "
+"view. dgit quilt-fixup will merely do some checks, and cache the maintainer "
+"view."
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:960
msgid ""
"B<If you have a branch like this it is essential to specify the appropriate "
"--quilt= option!> This is because it is not always possible to tell: a "
msgstr ""
#. type: TP
-#: ../dgit.1:913
+#: ../dgit.1:960
#, no-wrap
msgid "B<-d>I<distro> | B<--distro=>I<distro>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:922
+#: ../dgit.1:969
msgid ""
"Specifies that the suite to be operated on is part of distro I<distro>. "
"This overrides the default value found from the git config option B<dgit-"
msgstr ""
#. type: Plain text
-#: ../dgit.1:928
+#: ../dgit.1:975
msgid ""
"If your suite is part of a distro that dgit already knows about, you can use "
"this option to make dgit work even if your dgit doesn't know about the "
msgstr ""
#. type: Plain text
-#: ../dgit.1:933
+#: ../dgit.1:980
msgid ""
"To define a new distro it is necessary to define methods and URLs for "
"fetching (and, for dgit push, altering) a variety of information both in the "
msgstr ""
#. type: TP
-#: ../dgit.1:933
+#: ../dgit.1:980
+#, no-wrap
+msgid "B<--split-view=auto>|B<always>|B<never>"
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:985
+msgid ""
+"Controls whether dgit operates a split view, separating your own branch (as "
+"Debian maintainer) from that shown to users of dgit clone and dgit fetch."
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:993
+msgid ""
+"When split view is in operation dgit will not make or merge any commits onto "
+"your own branch. Specifically, only the dgit view will contain dgit's "
+"pseudomerges, which bring into the git history previous uploads made with "
+"dgit push, and any commits in debian/patches required to make a correct `3.0 "
+"(quilt)' source package."
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:999
+msgid ""
+"B<auto> is the default, and splits the view only when needed: i.e., when you "
+"are working with a `3.0 (quilt)' source package and a splitting quilt mode: "
+"--[quilt=]gbp, dpm, unpatched or baredebian*."
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:1002
+msgid ""
+"B<always> splits the view regardless of the source format and the quilt mode."
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:1005
+msgid "B<never> will cause dgit to fail if split view is needed."
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:1013
+msgid ""
+"When split view is in operation, the dgit view is visible in your local git "
+"clone, but only in refs specific to dgit: notably B<remotes/dgit/dgit/"
+">I<suite> and B<archive/>I<distro>B</>I<version>."
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:1016
+msgid ""
+"Note that split view does not affect dgit fetch, and is not compatible with "
+"dgit pull."
+msgstr ""
+
+#. type: TP
+#: ../dgit.1:1016
#, no-wrap
msgid "B<-C>I<changesfile>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:938
+#: ../dgit.1:1021
msgid ""
"Specifies the .changes file which is to be uploaded. By default dgit push "
"looks for a single .changes file in the parent directory whose filename "
msgstr ""
#. type: Plain text
-#: ../dgit.1:947
+#: ../dgit.1:1030
msgid ""
"If the specified I<changesfile> pathname contains slashes, the directory "
"part is also used as the value for B<--build-products-dir>; otherwise, the "
msgstr ""
#. type: TP
-#: ../dgit.1:947
+#: ../dgit.1:1030
+#, no-wrap
+msgid "B<--upstream-commitish=>I<upstream>"
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:1038
+msgid ""
+"For use with --quilt=baredebian only. Specifies the commit containing the "
+"upstream source. This commit must be identical to your .orig tarball. The "
+"default is to look for one of the git tags I<U>B< v>I<U>B< upstream/>I<U> "
+"(in that order), where U is the upstream version."
+msgstr ""
+
+#. type: TP
+#: ../dgit.1:1038
#, no-wrap
msgid "B<--rm-old-changes>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:959
+#: ../dgit.1:1050
msgid ""
"When doing a build, delete any changes files matching "
"I<package>B<_>I<version>B<_*.changes> before starting. This ensures that "
msgstr ""
#. type: Plain text
-#: ../dgit.1:962
+#: ../dgit.1:1053
msgid ""
"Note that B<dgit push-source> will always find the right .changes, "
"regardless of this option."
msgstr ""
#. type: TP
-#: ../dgit.1:962
+#: ../dgit.1:1053
#, no-wrap
msgid "B<--build-products-dir=>I<directory>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:966
+#: ../dgit.1:1057
msgid ""
"Specifies where to find and create tarballs, binary packages, source "
"packages, .changes files, and so on."
msgstr ""
#. type: Plain text
-#: ../dgit.1:969
+#: ../dgit.1:1060
msgid "By default, dgit uses the parent directory (B<..>)."
msgstr ""
#. type: Plain text
-#: ../dgit.1:978
+#: ../dgit.1:1069
msgid ""
"Changing this setting may necessitate moving .orig tarballs to the new "
"directory, so it is probably best to use the B<dgit.default.build-products-"
msgstr ""
#. type: TP
-#: ../dgit.1:978
+#: ../dgit.1:1069
#, no-wrap
msgid "B<--no-rm-on-error>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:981
+#: ../dgit.1:1072
msgid "Do not delete the destination directory if clone fails."
msgstr ""
#. type: TP
-#: ../dgit.1:981
+#: ../dgit.1:1072
#, no-wrap
msgid "B<--dep14tag>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:988
+#: ../dgit.1:1079
msgid ""
"Generates a DEP-14 tag (eg B<debian/>I<version>) as well as a dgit tag (eg "
-"B<archive/debian/>I<version>) where possible. This is the default."
+"B<archive/debian/>I<version>). This is the default."
msgstr ""
#. type: TP
-#: ../dgit.1:988
+#: ../dgit.1:1079
#, no-wrap
msgid "B<--no-dep14tag>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:994
-msgid ""
-"Do not generate a DEP-14 tag, except in split quilt view mode. (On servers "
-"where only the old tag format is supported, the dgit tag will have the "
-"DEP-14 name. This option does not prevent that.)"
+#: ../dgit.1:1082
+msgid "Do not generate a DEP-14 tag, except when split view is in operation."
msgstr ""
#. type: TP
-#: ../dgit.1:994
+#: ../dgit.1:1082
#, no-wrap
-msgid "B<--dep14tag-always>"
+msgid "B<--always-dep14tag>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:999
-msgid ""
-"Insist on generating a DEP-14 tag as well as a dgit tag. If the server does "
-"not support that, dgit push will fail."
+#: ../dgit.1:1085
+msgid "Obsolete alias for --dep14tag, retained for compatibility."
msgstr ""
#. type: TP
-#: ../dgit.1:999
+#: ../dgit.1:1085
#, no-wrap
msgid "B<-D>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1003
+#: ../dgit.1:1089
msgid ""
"Prints debugging information to stderr. Repeating the option produces more "
"output (currently, up to -DDDD is meaningfully different)."
msgstr ""
#. type: TP
-#: ../dgit.1:1003
+#: ../dgit.1:1089
#, no-wrap
msgid "B<-c>I<name>B<=>I<value>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1007
+#: ../dgit.1:1093
msgid ""
"Specifies a git configuration option, to be used for this run. dgit itself "
"is also controlled by git configuration options."
msgstr ""
#. type: TP
-#: ../dgit.1:1007
+#: ../dgit.1:1093
#, no-wrap
msgid "B<-v>I<version>|B<_> | B<--since-version=>versionI<|>B<_>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1016
+#: ../dgit.1:1102
msgid ""
"Specifies the B<-v>I<version> option to pass to dpkg-genchanges, during "
"builds. Changes (from debian/changelog) since this version will be included "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1022
+#: ../dgit.1:1108
msgid ""
"Specifying B<_> inhibits this, so that no -v option will be passed to dpkg-"
"genchanges (and as a result, only the last stanza from debian/changelog will "
msgstr ""
#. type: TP
-#: ../dgit.1:1022
+#: ../dgit.1:1108
#, no-wrap
msgid "B<-m>I<maintaineraddress>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1025
+#: ../dgit.1:1111
msgid "Passed to dpkg-genchanges (eventually)."
msgstr ""
#. type: TP
-#: ../dgit.1:1025
+#: ../dgit.1:1111
#, no-wrap
msgid "B<--ch:>I<option>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1029
+#: ../dgit.1:1115
msgid ""
"Specifies a single additional option to pass, eventually, to dpkg-genchanges."
msgstr ""
#. type: Plain text
-#: ../dgit.1:1036
+#: ../dgit.1:1122
msgid ""
"Options which are safe to pass include B<-C> (and also B<-si -sa -sd> "
"although these should never be necessary with Debian since dgit "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1038
+#: ../dgit.1:1124
msgid "For other options the caveat below applies."
msgstr ""
#. type: TP
-#: ../dgit.1:1038
+#: ../dgit.1:1124
#, no-wrap
msgid "B<--curl:>I<option> | B<--dput:>I<option> |..."
msgstr ""
#. type: Plain text
-#: ../dgit.1:1060
+#: ../dgit.1:1146
msgid ""
"Specifies a single additional option to pass to B<curl>, B<dput>, "
"B<debsign>, B<dpkg-source>, B<dpkg-buildpackage>, B<dpkg-genchanges>, "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1068
+#: ../dgit.1:1154
msgid ""
"Use of this ability should not normally be necessary. It is provided for "
"working around bugs, or other unusual situations. If you use these options, "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1073
+#: ../dgit.1:1159
msgid ""
"For dpkg-buildpackage, dpkg-genchanges, mergechanges and sbuild, the option "
"applies only when the program is invoked directly by dgit. Usually, for "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1077
+#: ../dgit.1:1163
msgid ""
"Specifying --git is not effective for some lower-level read-only git "
"operations performed by dgit, and also not when git is invoked by another "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1079
+#: ../dgit.1:1165
msgid "See notes below regarding ssh and dgit."
msgstr ""
#. type: Plain text
-#: ../dgit.1:1087
+#: ../dgit.1:1173
msgid ""
"NB that --gpg:option is not supported (because debsign does not have that "
"facility). But see B<-k> and the B<keyid> distro config setting."
msgstr ""
#. type: TP
-#: ../dgit.1:1087
+#: ../dgit.1:1173
#, no-wrap
msgid "B<--curl!:>I<option> | B<--dput!:>I<option> |..."
msgstr ""
#. type: Plain text
-#: ../dgit.1:1093
+#: ../dgit.1:1179
msgid ""
"Specifies an option to remove from the command line for a program called by "
"dgit, as for B<-->I<program>B<:>I<option> (and the same caveats apply)."
msgstr ""
#. type: Plain text
-#: ../dgit.1:1098
+#: ../dgit.1:1184
msgid ""
"Any options or arguments exactly identical to I<option> are removed. (It is "
"not an error if there were none.)"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1105
+#: ../dgit.1:1191
msgid ""
"This can only be used to delete options which are always passed by default "
"by dgit, or to undo a previous B<-->I<program>B<:>I<option>. It cannot be "
msgstr ""
#. type: TP
-#: ../dgit.1:1105
+#: ../dgit.1:1191
#, no-wrap
msgid "B<--curl=>I<program> | B<--dput=>I<program> |..."
msgstr ""
#. type: Plain text
-#: ../dgit.1:1128
+#: ../dgit.1:1214
msgid ""
"Specifies alternative programs to use instead of B<curl>, B<dput>, "
"B<debsign>, B<dpkg-source>, B<dpkg-buildpackage>, B<dpkg-genchanges>, "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1136
+#: ../dgit.1:1222
msgid ""
"For B<dpkg-buildpackage>, B<dpkg-genchanges>, B<mergechanges> and B<sbuild>, "
"this applies only when the program is invoked directly by dgit."
msgstr ""
#. type: Plain text
-#: ../dgit.1:1143
+#: ../dgit.1:1229
msgid ""
"For B<dgit>, specifies the command to run on the remote host when dgit rpush "
"needs to invoke a remote copy of itself. (dgit also reinvokes itself as the "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1154
+#: ../dgit.1:1240
msgid ""
"B<gbp-build>'s value is used instead of gbp build or git-buildpackage. (The "
"default is the latter unless the former exists on PATH.) B<gbp-pq>'s value "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1162
+#: ../dgit.1:1248
msgid ""
"For pbuilder and cowbuilder, the defaults are B<sudo -E pbuilder> and B<sudo "
"-E cowbuilder> respectively. Like with gbp-build and gbp pq, the specified "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1179
+#: ../dgit.1:1265
msgid ""
"For B<ssh>, the default value is taken from the B<DGIT_SSH> or B<GIT_SSH> "
"environment variables, if set (see below). And, for ssh, when accessing the "
msgstr ""
#. type: TP
-#: ../dgit.1:1179
+#: ../dgit.1:1265
#, no-wrap
msgid "B<--existing-package=>I<package>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1189
+#: ../dgit.1:1275
msgid ""
"dgit push needs to canonicalise the suite name. Sometimes, dgit lacks a way "
"to ask the archive to do this without knowing the name of an existing "
msgstr ""
#. type: TP
-#: ../dgit.1:1189
+#: ../dgit.1:1275
#, no-wrap
msgid "B<-h>|B<--help>"
msgstr ""
#. type: TP
-#: ../dgit.1:1192
+#: ../dgit.1:1278
#, no-wrap
msgid "B<--initiator-tempdir=>I<directory>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1201
+#: ../dgit.1:1287
msgid ""
"dgit rpush uses a temporary directory on the invoking (signing) host. This "
"option causes dgit to use I<directory> instead. Furthermore, the specified "
msgstr ""
#. type: TP
-#: ../dgit.1:1201
+#: ../dgit.1:1287
#, no-wrap
msgid "B<--force->I<something>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1209
+#: ../dgit.1:1295
msgid ""
"Instructs dgit to try to proceed despite detecting what it thinks is going "
"to be a fatal problem. B<This is probably not going to work.> These options "
msgstr ""
#. type: TP
-#: ../dgit.1:1209
+#: ../dgit.1:1295
#, no-wrap
msgid "B<--force-import-dsc-with-dgit-field>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1216
+#: ../dgit.1:1302
msgid ""
"Tell dgit import-dsc to treat a .dsc with a Dgit field like one without it. "
"The result is a fresh import, discarding the git history that the person who "
msgstr ""
#. type: TP
-#: ../dgit.1:1216
+#: ../dgit.1:1302
+#, no-wrap
+msgid "B<--force-reusing-version>"
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:1309
+msgid ""
+"Carry on even though this involves reusing a version number of a previous "
+"push or upload. It is normally best to give different versions different "
+"numbers. Some servers (including, usually, the Debian server) will reject "
+"attempts to reuse or replace already-pushed versions."
+msgstr ""
+
+#. type: TP
+#: ../dgit.1:1309
#, no-wrap
msgid "B<--force-uploading-binaries>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1221
+#: ../dgit.1:1314
msgid ""
"Carry on and upload binaries even though dgit thinks your distro does not "
"permit that."
msgstr ""
#. type: TP
-#: ../dgit.1:1221
+#: ../dgit.1:1314
#, no-wrap
msgid "B<--force-uploading-source-only>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1227
+#: ../dgit.1:1320
msgid ""
"Carry on and do a source-only upload, without any binaries, even though dgit "
"thinks your distro does not permit that, or does not permit that in this "
msgstr ""
#. type: TP
-#: ../dgit.1:1227
+#: ../dgit.1:1320
#, no-wrap
msgid "B<--force-unrepresentable>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1234
+#: ../dgit.1:1327
msgid ""
"Carry on even if dgit thinks that your git tree contains changes (relative "
"to your .orig tarballs) which dpkg-source is not able to represent. Your "
msgstr ""
#. type: TP
-#: ../dgit.1:1234
+#: ../dgit.1:1327
#, no-wrap
msgid "B<--force-changes-origs-exactly>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1239
+#: ../dgit.1:1332
msgid ""
"Use the set of .origs specified in your .changes, exactly, without regard to "
"what is in the archive already. The archive may well reject your upload."
msgstr ""
#. type: TP
-#: ../dgit.1:1239
+#: ../dgit.1:1332
#, no-wrap
msgid "B<--force-unsupported-source-format>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1243
+#: ../dgit.1:1336
msgid ""
"Carry on despite dgit not understanding your source package format. dgit "
"will probably mishandle it."
msgstr ""
#. type: TP
-#: ../dgit.1:1243
+#: ../dgit.1:1336
#, no-wrap
msgid "B<--force-dsc-changes-mismatch>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1247
+#: ../dgit.1:1340
msgid ""
"Do not check whether .dsc and .changes match. The archive will probably "
"reject your upload."
msgstr ""
#. type: TP
-#: ../dgit.1:1247
+#: ../dgit.1:1340
#, no-wrap
msgid "B<--force-import-gitapply-absurd> | B<--force-import-gitapply-no-absurd>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1253
+#: ../dgit.1:1346
msgid ""
"Force on or off the use of the absurd git-apply emulation when running gbp "
"pq import when importing a package from a .dsc. See Debian bug #841867."
msgstr ""
+#. type: TP
+#: ../dgit.1:1346
+#, no-wrap
+msgid "B<--for-push>"
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.1:1352
+msgid ""
+"Override the dgit-distro.distro.readonly configuration setting, to specify "
+"that we have read/write access and should use the corresponding git and "
+"achieve access approach even if the operation is a read-only one."
+msgstr ""
+
#. type: =head1
-#: ../dgit.1:1253 ../dgit-downstream-dsc.7.pod:150
+#: ../dgit.1:1352 ../dgit-downstream-dsc.7.pod:150
#, no-wrap
msgid "CONFIGURATION"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1259
+#: ../dgit.1:1358
msgid ""
"dgit can be configured via the git config system. You may set keys with git-"
"config (either in system-global or per-tree configuration), or provide B<-"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1261
+#: ../dgit.1:1360
msgid "Settings likely to be useful for an end user include:"
msgstr ""
#. type: TP
-#: ../dgit.1:1261
+#: ../dgit.1:1360
#, no-wrap
msgid "B<dgit.default.build-products-dir>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1267
+#: ../dgit.1:1366
msgid ""
"Specifies where to find the built files to be uploaded, when --build-"
"products-dir is not specified. The default is the parent directory (B<..>)."
msgstr ""
#. type: =item
-#: ../dgit.1:1267 ../dgit-downstream-dsc.7.pod:286
+#: ../dgit.1:1366 ../dgit-downstream-dsc.7.pod:286
#, no-wrap
msgid "B<dgit-suite.>I<suite>B<.distro> I<distro>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1272
+#: ../dgit.1:1371
msgid ""
"Specifies the distro for a suite. dgit keys off the suite name (which "
"appears in changelogs etc.), and uses that to determine the distro which is "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1275
+#: ../dgit.1:1374
msgid "I<suite> may be a glob pattern."
msgstr ""
#. type: TP
-#: ../dgit.1:1275
+#: ../dgit.1:1374
#, no-wrap
msgid "B<dgit.default.distro>I< distro>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1278
+#: ../dgit.1:1377
msgid "The default distro for an unknown suite."
msgstr ""
+#. type: Plain text
+#: ../dgit.1:1381
+msgid ""
+"This is only used if no B</usr/share/distro-info/>I<somedistro>B<.csv> "
+"mentions the specified suite."
+msgstr ""
+
#. type: TP
-#: ../dgit.1:1278
+#: ../dgit.1:1381
#, no-wrap
msgid "B<dgit.default.default-suite>I< suite>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1281
+#: ../dgit.1:1384
msgid "The default suite (eg for clone)."
msgstr ""
#. type: TP
-#: ../dgit.1:1281
+#: ../dgit.1:1384
#, no-wrap
msgid "B<dgit.default.>*"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1286
+#: ../dgit.1:1389
msgid ""
"for each B<dgit-distro.>I<distro>B<.>*, the default value used if there is "
"no distro-specific setting."
msgstr ""
#. type: TP
-#: ../dgit.1:1286
+#: ../dgit.1:1389
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.clean-mode>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1290
+#: ../dgit.1:1393
msgid ""
"One of the values for the command line --clean= option; used if --clean is "
"not specified."
msgstr ""
#. type: TP
-#: ../dgit.1:1290
+#: ../dgit.1:1393
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.clean-mode-newer>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1296
+#: ../dgit.1:1399
msgid ""
"Like .clean-mode, 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 "
msgstr ""
#. type: TP
-#: ../dgit.1:1296
+#: ../dgit.1:1399
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.quilt-mode>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1300
+#: ../dgit.1:1403
msgid ""
"One of the values for the command line --quilt= option; used if --quilt is "
"not specified."
msgstr ""
#. type: TP
-#: ../dgit.1:1300
+#: ../dgit.1:1403
+#, no-wrap
+msgid "B<dgit-distro.>I<distro>B<.split-view>"
+msgstr ""
+
+#. type: TP
+#: ../dgit.1:1405
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.rm-old-changes>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1304
+#: ../dgit.1:1409
msgid ""
"Boolean, used if neither --rm-old-changes nor --no-rm-old-changes is "
"specified. The default is not to remove."
msgstr ""
#. type: TP
-#: ../dgit.1:1304
+#: ../dgit.1:1409
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.readonly> B<auto>|B<a> | B<true>|B<t>|B<y>|B<1> | B<false>|B<f>|B<n>|B<0>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1311
+#: ../dgit.1:1416
msgid ""
"Whether you have push access to the distro. For Debian, it is OK to use "
"auto, which uses readonly mode if you are not pushing right now; but, "
msgstr ""
#. type: TP
-#: ../dgit.1:1311
+#: ../dgit.1:1416
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.keyid>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1315
+#: ../dgit.1:1420
msgid "See also B<-k>."
msgstr ""
#. type: TP
-#: ../dgit.1:1315
+#: ../dgit.1:1420
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.mirror>I< url>"
msgstr ""
#. type: TP
-#: ../dgit.1:1317
+#: ../dgit.1:1422
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.username>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1320
+#: ../dgit.1:1425
msgid "Not relevant for Debian."
msgstr ""
#. type: =item
-#: ../dgit.1:1320 ../dgit-downstream-dsc.7.pod:242
+#: ../dgit.1:1425 ../dgit-downstream-dsc.7.pod:242
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.upload-host>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1323
+#: ../dgit.1:1428
msgid "Might be useful if you have an intermediate queue server."
msgstr ""
#. type: TP
-#: ../dgit.1:1323
+#: ../dgit.1:1428
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.user-name>I< >B<dgit-distro.>I<distro>B<.user-email>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1328
+#: ../dgit.1:1433
msgid ""
"Values to configure for user.name and user.email in new git trees. If not "
"specified, the DEBFULLNAME and DEBEMAIL environment variables are used, "
msgstr ""
#. type: TP
-#: ../dgit.1:1328
+#: ../dgit.1:1433
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.setup-useremail>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1332
+#: ../dgit.1:1437
msgid ""
"Whether to set user.name and user.email in new git trees. True by default. "
"Ignored for dgit setup-useremail, which does it anyway."
msgstr ""
#. type: TP
-#: ../dgit.1:1332
+#: ../dgit.1:1437
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.setup-mergechangelogs>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1337
+#: ../dgit.1:1442
msgid ""
"Whether to set up a merge driver which uses dpkg-mergechangelogs for debian/"
"changelog. True by default. Ignored for dgit setup-mergechangelogs, which "
msgstr ""
#. type: TP
-#: ../dgit.1:1337
+#: ../dgit.1:1442
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.setup-gitattributes>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1343
+#: ../dgit.1:1448
msgid ""
"Whether to configure .git/info/attributes to suppress checkin/checkout file "
"content transformations in new git trees. True by default. Ignored for "
msgstr ""
#. type: TP
-#: ../dgit.1:1343
+#: ../dgit.1:1448
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.cmd->I<cmd>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1349
+#: ../dgit.1:1454
msgid "Program to use instead of I<cmd>. Works like B<-->I<cmd>B<=>... ."
msgstr ""
#. type: TP
-#: ../dgit.1:1349
+#: ../dgit.1:1454
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.opts->I<cmd>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1361
+#: ../dgit.1:1466
msgid ""
"Extra options to pass to I<cmd>. Works like B<-->I<cmd>B<:>... . To pass "
"several options, configure multiple values in git config (with git config --"
msgstr ""
#. type: SH
-#: ../dgit.1:1361
+#: ../dgit.1:1466
#, no-wrap
msgid "ACCESS CONFIGURATION"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1366
+#: ../dgit.1:1471
msgid ""
"There are many other settings which specify how a particular distro's "
"services (archive and git) are provided. These should not normally be "
msgstr ""
#. type: TP
-#: ../dgit.1:1366
+#: ../dgit.1:1471
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.nominal-distro>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1369
+#: ../dgit.1:1474
msgid "Shown in git tags, Dgit fields, and so on."
msgstr ""
#. type: TP
-#: ../dgit.1:1369
+#: ../dgit.1:1474
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.alias-canon>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1372
+#: ../dgit.1:1477
msgid "Used for all access configuration lookup."
msgstr ""
#. type: TP
-#: ../dgit.1:1372
+#: ../dgit.1:1477
#, no-wrap
msgid "B<dgit-distro.>I<distro>B</push.>*"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1378
+#: ../dgit.1:1483
msgid ""
"If set, overrides corresponding non B</push> config when B<readonly=false>, "
"or when pushing and B<readonly=auto>."
msgstr ""
#. type: TP
-#: ../dgit.1:1378
+#: ../dgit.1:1483
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.git-url>"
msgstr ""
#. type: TP
-#: ../dgit.1:1380
+#: ../dgit.1:1485
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.git-url>[B<-suffix>]"
msgstr ""
#. type: TP
-#: ../dgit.1:1382
+#: ../dgit.1:1487
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.git-proto>"
msgstr ""
#. type: TP
-#: ../dgit.1:1384
+#: ../dgit.1:1489
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.git-path>"
msgstr ""
#. type: TP
-#: ../dgit.1:1386
+#: ../dgit.1:1491
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.git-check> B<true>|B<false>|B<url>|B<ssh-cmd>"
msgstr ""
#. type: TP
-#: ../dgit.1:1388
+#: ../dgit.1:1493
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.git-check-suffix>"
msgstr ""
#. type: TP
-#: ../dgit.1:1390
+#: ../dgit.1:1495
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.diverts.divert> B<new-distro>|B</>I<distro-suffix>"
msgstr ""
#. type: TP
-#: ../dgit.1:1392
+#: ../dgit.1:1497
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.git-create>I< >B<ssh-cmd>I<|>B<true>"
msgstr ""
#. type: TP
-#: ../dgit.1:1394
+#: ../dgit.1:1499
#, no-wrap
-msgid "B<dgit-distro.>I<distro>B<.archive-query> B<ftpmasterapi:> | B<madison:>I<distro> | B<dummycat:>I</path> | B<sshpsql:>I<user>B<@>I<host>B<:>I<dbname>"
+msgid "B<dgit-distro.>I<distro>B<.archive-query> B<ftpmasterapi:> | B<madison:>I<distro> | B<dummycat:>I</path> | B<sshpsql:>I<user>B<@>I<host>B<:>I<dbname>B< >|B< aptget:>"
msgstr ""
#. type: TP
-#: ../dgit.1:1396
+#: ../dgit.1:1501
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.archive-query->(B<url>|B<tls-key>|B<curl-ca-args>)"
msgstr ""
#. type: TP
-#: ../dgit.1:1398
+#: ../dgit.1:1503
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.madison-distro>"
msgstr ""
#. type: TP
-#: ../dgit.1:1400
+#: ../dgit.1:1505
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.archive-query-default-component>"
msgstr ""
#. type: TP
-#: ../dgit.1:1402
+#: ../dgit.1:1507
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.dgit-tag-format>"
msgstr ""
#. type: TP
-#: ../dgit.1:1404
+#: ../dgit.1:1509
#, no-wrap
-msgid "B<dgit-distro.>I<distro>B<.dep14tag> B<want>|B<no>|B<always>"
+msgid "B<dgit-distro.>I<distro>B<.dep14tag> B<want>|B<no>[|B<always>]"
msgstr ""
#. type: TP
-#: ../dgit.1:1406
+#: ../dgit.1:1511
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.ssh>"
msgstr ""
#. type: TP
-#: ../dgit.1:1408
+#: ../dgit.1:1513
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.sshpsql-dbname>"
msgstr ""
#. type: TP
-#: ../dgit.1:1410
+#: ../dgit.1:1515
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.>(B<git>|B<sshpsql>)B<->(B<user>|B<host>|B<user-force>)"
msgstr ""
#. type: TP
-#: ../dgit.1:1412
+#: ../dgit.1:1517
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.backports-quirk>"
msgstr ""
#. type: TP
-#: ../dgit.1:1414
+#: ../dgit.1:1519
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.rewrite-map-enable>"
msgstr ""
#. type: TP
-#: ../dgit.1:1416
+#: ../dgit.1:1521
#, no-wrap
msgid "B<dgit-distro.>I<distro>B<.source-only-uploads> B<ok>|B<always>|B<never>|B<not-wholly-new>"
msgstr ""
#. type: TP
-#: ../dgit.1:1418
+#: ../dgit.1:1523
#, no-wrap
msgid "B<dgit.default.old-dsc-distro>"
msgstr ""
#. type: TP
-#: ../dgit.1:1420
+#: ../dgit.1:1525
#, no-wrap
msgid "B<dgit.dsc-url-proto-ok.>I<protocol>"
msgstr ""
#. type: TP
-#: ../dgit.1:1422
+#: ../dgit.1:1527
#, no-wrap
msgid "B<dgit.dsc-url-proto-ok.bad-syntax>"
msgstr ""
#. type: TP
-#: ../dgit.1:1424
+#: ../dgit.1:1529
#, no-wrap
msgid "B<dgit.default.dsc-url-proto-ok>"
msgstr ""
#. type: TP
-#: ../dgit.1:1426
+#: ../dgit.1:1531
#, no-wrap
msgid "B<dgit.vcs-git.suites> I<suite>[B<;>...]"
msgstr ""
#. type: SH
-#: ../dgit.1:1428
+#: ../dgit.1:1533
#, no-wrap
msgid "ENVIRONMENT VARIABLES"
msgstr ""
#. type: TP
-#: ../dgit.1:1429
+#: ../dgit.1:1534
#, no-wrap
msgid "B<DGIT_SSH>, B<GIT_SSH>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1438
+#: ../dgit.1:1543
msgid ""
"specify an alternative default program (and perhaps arguments) to use "
"instead of ssh. DGIT_SSH is consulted first and may contain arguments; if "
msgstr ""
#. type: TP
-#: ../dgit.1:1438
+#: ../dgit.1:1543
#, no-wrap
msgid "B<DEBEMAIL>, B<DEBFULLNAME>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1442
+#: ../dgit.1:1547
msgid ""
"Default git user.email and user.name for new trees. See B<dgit setup-new-"
"tree>."
msgstr ""
#. type: TP
-#: ../dgit.1:1442
+#: ../dgit.1:1547
#, no-wrap
-msgid "B<gpg>, B<dpkg->..., B<debsign>, B<git>, B<curl>, B<dput>, B<LWP::UserAgent>"
+msgid "B<gpg>, B<dpkg->..., B<debsign>, B<git>, [B<lib>]B<curl>, B<dput>"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1447
+#: ../dgit.1:1552
msgid ""
"and other subprograms and modules used by dgit are affected by various "
"environment variables. Consult the documentation for those programs for "
msgstr ""
#. type: SH
-#: ../dgit.1:1447
+#: ../dgit.1:1552
#, no-wrap
msgid "BUGS"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1454
+#: ../dgit.1:1559
msgid ""
"There should be a `dgit rebase-prep' command or some such to turn a fast-"
"forwarding branch containing pseudo-merges back into a rebasing patch "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1460
+#: ../dgit.1:1565
msgid ""
"If the dgit push fails halfway through, it is not necessarily restartable "
"and idempotent. It would be good to check that the proposed signing key is "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1465
+#: ../dgit.1:1570
msgid ""
"dgit's build functions, and dgit push, may make changes to your current "
"HEAD. Sadly this is necessary for packages in the `3.0 (quilt)' source "
msgstr ""
#. type: Plain text
-#: ../dgit.1:1470
+#: ../dgit.1:1575
msgid ""
"--dry-run does not always work properly, as not doing some of the git "
"fetches may result in subsequent actions being different. Doing a non-dry-"
msgstr ""
#. type: =head1
-#: ../dgit.1:1470 ../dgit.7:23 ../dgit-user.7.pod:447
+#: ../dgit.1:1575 ../dgit.7:23 ../dgit-user.7.pod:447
#: ../dgit-nmu-simple.7.pod:137 ../dgit-maint-native.7.pod:126
-#: ../dgit-maint-merge.7.pod:491 ../dgit-maint-gbp.7.pod:136
-#: ../dgit-maint-debrebase.7.pod:747 ../dgit-downstream-dsc.7.pod:352
-#: ../dgit-sponsorship.7.pod:321 ../git-debrebase.1.pod:619
-#: ../git-debrebase.5.pod:678
+#: ../dgit-maint-merge.7.pod:524 ../dgit-maint-gbp.7.pod:136
+#: ../dgit-maint-debrebase.7.pod:782 ../dgit-downstream-dsc.7.pod:352
+#: ../dgit-sponsorship.7.pod:321 ../dgit-maint-bpo.7.pod:140
+#: ../git-debrebase.1.pod:634 ../git-debrebase.5.pod:678
+#: ../git-debpush.1.pod:261
#, no-wrap
msgid "SEE ALSO"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1479
+#: ../dgit.1:1584
msgid ""
"B<dgit>(7), B<dgit-*>(7), B<curl>(1), B<dput>(1), B<debsign>(1), B<git-"
"config>(1), B<git-buildpackage>(1), B<dpkg-buildpackage>(1),"
msgstr ""
#. type: Plain text
-#: ../dgit.1:1480
+#: ../dgit.1:1585
msgid "https://browse.dgit.debian.org/"
msgstr ""
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2019-03-01 16:59+0000\n"
+"POT-Creation-Date: 2019-07-21 01:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: ../dgit-maint-native.7.pod:1 ../dgit-maint-merge.7.pod:1
#: ../dgit-maint-gbp.7.pod:1 ../dgit-maint-debrebase.7.pod:1
#: ../dgit-downstream-dsc.7.pod:1 ../dgit-sponsorship.7.pod:1
-#: ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../dgit-maint-bpo.7.pod:1 ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../git-debpush.1.pod:1
#, no-wrap
msgid "NAME"
msgstr ""
#. type: =head1
-#: ../dgit.1:1470 ../dgit.7:23 ../dgit-user.7.pod:447
+#: ../dgit.1:1549 ../dgit.7:23 ../dgit-user.7.pod:447
#: ../dgit-nmu-simple.7.pod:137 ../dgit-maint-native.7.pod:126
-#: ../dgit-maint-merge.7.pod:491 ../dgit-maint-gbp.7.pod:136
-#: ../dgit-maint-debrebase.7.pod:747 ../dgit-downstream-dsc.7.pod:352
-#: ../dgit-sponsorship.7.pod:321 ../git-debrebase.1.pod:619
-#: ../git-debrebase.5.pod:678
+#: ../dgit-maint-merge.7.pod:521 ../dgit-maint-gbp.7.pod:136
+#: ../dgit-maint-debrebase.7.pod:778 ../dgit-downstream-dsc.7.pod:352
+#: ../dgit-sponsorship.7.pod:321 ../dgit-maint-bpo.7.pod:134
+#: ../git-debrebase.1.pod:619 ../git-debrebase.5.pod:678
+#: ../git-debpush.1.pod:223
#, no-wrap
msgid "SEE ALSO"
msgstr ""
#. type: SH
#: ../dgit.7:396
#, no-wrap
-msgid "SPLIT VIEW QUILT MODE"
+msgid "SPLIT VIEW AND SPLITTING QUILT MODES"
msgstr ""
#. type: Plain text
#. type: Plain text
#: ../dgit.7:410
msgid ""
-"When a split view mode is engaged dgit build commands and dgit push will, on "
-"each invocation, convert the user's HEAD into the dgit view, so that it can "
-"be built and/or uploaded."
+"When a splitting quilt mode is selected dgit build commands and dgit push "
+"will, on each invocation, convert the user's HEAD into the dgit view, so "
+"that it can be built and/or uploaded."
msgstr ""
#. type: Plain text
-#: ../dgit.7:417
+#: ../dgit.7:416
msgid ""
-"dgit push in split view mode will push the dgit view to the dgit git "
-"server. The dgit view is always a descendant of the maintainer view. dgit "
-"push will also make a maintainer view tag according to DEP-14 and push that "
-"to the dgit git server."
+"Split view mode can also be enabled explicitly with the --split-view command "
+"line option and the .split-view access configuration key."
msgstr ""
#. type: Plain text
-#: ../dgit.7:425
+#: ../dgit.7:429
msgid ""
-"Split view mode must be enabled explicitly (by the use of the applicable "
-"command line options, subcommands, or configuration). This is because it is "
-"not possible to reliably tell (for example) whether a git tree for a dpkg-"
-"source `3.0 (quilt)' package is a patches-applied or patches-unapplied tree."
+"When split view is in operation, regardless of the quilt mode, any dgit-"
+"generated pseudomerges and any quilt fixup commits will appear only in the "
+"dgit view. dgit push will push the dgit view to the dgit git server. The "
+"dgit view is always a descendant of the maintainer view. dgit push will "
+"also make a maintainer view tag according to DEP-14 and push that to the "
+"dgit git server."
msgstr ""
#. type: Plain text
-#: ../dgit.7:429
+#: ../dgit.7:437
+msgid ""
+"Splitting quilt modes must be enabled explicitly (by the use of the "
+"applicable command line options, subcommands, or configuration). This is "
+"because it is not possible to reliably tell (for example) whether a git "
+"tree for a dpkg-source `3.0 (quilt)' package is a patches-applied or patches-"
+"unapplied tree."
+msgstr ""
+
+#. type: Plain text
+#: ../dgit.7:441
msgid ""
"Split view conversions are cached in the ref dgit-intern/quilt-cache. This "
"should not be manipulated directly."
msgstr ""
#. type: SH
-#: ../dgit.7:429
+#: ../dgit.7:441
#, no-wrap
msgid "FILES IN THE ORIG TARBALL BUT NOT IN GIT - AUTOTOOLS ETC."
msgstr ""
#. type: Plain text
-#: ../dgit.7:432
+#: ../dgit.7:444
msgid ""
"This section is mainly of interest to maintainers who want to use dgit with "
"their existing git history for the Debian package."
msgstr ""
#. type: Plain text
-#: ../dgit.7:438
+#: ../dgit.7:450
msgid ""
"Some developers like to have an extra-clean git tree which lacks files which "
"are normally found in source tarballs and therefore in Debian source "
msgstr ""
#. type: Plain text
-#: ../dgit.7:443
+#: ../dgit.7:455
msgid ""
"dgit requires that the source package unpacks to exactly the same files as "
"are in the git commit on which dgit push operates. So if you just try to "
msgstr ""
#. type: Plain text
-#: ../dgit.7:445
+#: ../dgit.7:457
msgid "As the maintainer you therefore have the following options:"
msgstr ""
#. type: TP
-#: ../dgit.7:445 ../dgit.7:456 ../dgit.7:505 ../dgit.7:513
+#: ../dgit.7:457 ../dgit.7:468 ../dgit.7:517 ../dgit.7:525
#, no-wrap
msgid "\\(bu"
msgstr ""
#. type: Plain text
-#: ../dgit.7:456
+#: ../dgit.7:468
msgid ""
"Delete the files from your git branches, and your Debian source packages, "
"and carry the deletion as a delta from upstream. (With `3.0 (quilt)' this "
msgstr ""
#. type: Plain text
-#: ../dgit.7:462
+#: ../dgit.7:474
msgid ""
"Persuade upstream that the source code in their git history and the source "
"they ship as tarballs should be identical. Of course simply removing the "
msgstr ""
#. type: Plain text
-#: ../dgit.7:468
+#: ../dgit.7:480
msgid ""
"One answer is to commit the (maybe autogenerated) files, perhaps with some "
"simple automation to deal with conflicts and spurious changes. This has the "
msgstr ""
#. type: Plain text
-#: ../dgit.7:473
+#: ../dgit.7:485
msgid ""
"Of course it may also be that the differences are due to build system bugs, "
"which cause unintended files to end up in the source package. dgit will "
msgstr ""
#. type: SH
-#: ../dgit.7:474
+#: ../dgit.7:486
#, no-wrap
msgid "FILES IN THE SOURCE PACKAGE BUT NOT IN GIT - DOCS, BINARIES ETC."
msgstr ""
#. type: Plain text
-#: ../dgit.7:478
+#: ../dgit.7:490
msgid ""
"Some upstream tarballs contain build artifacts which upstream expects some "
"users not to want to rebuild (or indeed to find hard to rebuild), but which "
msgstr ""
#. type: Plain text
-#: ../dgit.7:488
+#: ../dgit.7:500
msgid ""
"Examples sometimes include crossbuild firmware binaries and documentation. "
"To avoid problems when building updated source packages (in particular, to "
msgstr ""
#. type: Plain text
-#: ../dgit.7:496
+#: ../dgit.7:508
msgid ""
"dpkg-source does not (with any of the commonly used source formats) "
"represent deletion of binaries (outside debian/) present in upstream. Thus "
msgstr ""
#. type: Plain text
-#: ../dgit.7:502
+#: ../dgit.7:514
msgid ""
"However, git does always properly record file deletion. Since dgit's "
"principle is that the dgit git tree is the same of dpkg-source -x, that "
msgstr ""
#. type: Plain text
-#: ../dgit.7:505
+#: ../dgit.7:517
msgid ""
"For the non-maintainer, this can be observed in the following suboptimal "
"occurrences:"
msgstr ""
#. type: Plain text
-#: ../dgit.7:513
+#: ../dgit.7:525
msgid ""
"The package clean target often deletes these files, making the git tree "
"dirty trying to build the source package, etc. This can be fixed by using "
msgstr ""
#. type: Plain text
-#: ../dgit.7:520
+#: ../dgit.7:532
msgid ""
"The package build modifies these files, so that builds make the git tree "
"dirty. This can be worked around by using `git reset --hard' after each "
msgstr ""
#. type: Plain text
-#: ../dgit.7:530
+#: ../dgit.7:542
msgid ""
"From the maintainer's point of view, the main consequence is that to make a "
"dgit-compatible git branch it is necessary to commit these files to git. "
msgstr ""
#. type: SH
-#: ../dgit.7:530
+#: ../dgit.7:542
#, no-wrap
msgid "PROBLEMS WITH PACKAGE CLEAN TARGETS ETC."
msgstr ""
#. type: Plain text
-#: ../dgit.7:538
+#: ../dgit.7:550
msgid ""
"A related problem is other unexpected behaviour by a package's B<clean> "
"target. If a package's rules modify files which are distributed in the "
msgstr ""
#. type: Plain text
-#: ../dgit.7:546
+#: ../dgit.7:558
msgid ""
"Again, the solution is to use B<dgit -wg> aka B<--clean=git>, which "
"instructs dgit to use git clean instead of the package's build target, along "
msgstr ""
#. type: Plain text
-#: ../dgit.7:550
+#: ../dgit.7:562
msgid ""
"This is 100% reliable, but has the downside that if you forget to git add or "
"to commit, and then use B<dgit -wg> or B<git reset --hard>, your changes may "
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2019-03-01 16:59+0000\n"
+"POT-Creation-Date: 2020-02-02 16:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: ../dgit-maint-native.7.pod:1 ../dgit-maint-merge.7.pod:1
#: ../dgit-maint-gbp.7.pod:1 ../dgit-maint-debrebase.7.pod:1
#: ../dgit-downstream-dsc.7.pod:1 ../dgit-sponsorship.7.pod:1
-#: ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../dgit-maint-bpo.7.pod:1 ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../git-debpush.1.pod:1
#, no-wrap
msgid "NAME"
msgstr ""
#. type: =head1
-#: ../dgit.1:496 ../git-debrebase.1.pod:462
+#: ../dgit.1:496 ../git-debrebase.1.pod:477
#, no-wrap
msgid "OPTIONS"
msgstr ""
#. type: =head1
-#: ../dgit.1:1470 ../dgit.7:23 ../dgit-user.7.pod:447
+#: ../dgit.1:1575 ../dgit.7:23 ../dgit-user.7.pod:447
#: ../dgit-nmu-simple.7.pod:137 ../dgit-maint-native.7.pod:126
-#: ../dgit-maint-merge.7.pod:491 ../dgit-maint-gbp.7.pod:136
-#: ../dgit-maint-debrebase.7.pod:747 ../dgit-downstream-dsc.7.pod:352
-#: ../dgit-sponsorship.7.pod:321 ../git-debrebase.1.pod:619
-#: ../git-debrebase.5.pod:678
+#: ../dgit-maint-merge.7.pod:524 ../dgit-maint-gbp.7.pod:136
+#: ../dgit-maint-debrebase.7.pod:782 ../dgit-downstream-dsc.7.pod:352
+#: ../dgit-sponsorship.7.pod:321 ../dgit-maint-bpo.7.pod:140
+#: ../git-debrebase.1.pod:634 ../git-debrebase.5.pod:678
+#: ../git-debpush.1.pod:261
#, no-wrap
msgid "SEE ALSO"
msgstr ""
-#. type: =head1
-#: ../dgit-user.7.pod:5 ../dgit-maint-native.7.pod:5
-#: ../dgit-maint-merge.7.pod:5 ../dgit-maint-gbp.7.pod:5
-#: ../dgit-maint-debrebase.7.pod:5 ../dgit-downstream-dsc.7.pod:5
-#: ../git-debrebase.1.pod:10 ../git-debrebase.5.pod:5
-msgid "INTRODUCTION"
-msgstr ""
-
#. type: textblock
#: ../git-debrebase.1.pod:3
-msgid "git-debrebase - delta queue rebase tool for Debian packaging"
+msgid ""
+"git-debrebase - tool to maintain series of Debian changes to upstream source"
msgstr ""
#. type: =head1
"\n"
msgstr ""
+#. type: =head1
+#: ../git-debrebase.1.pod:10
+msgid "QUICK REFERENCE"
+msgstr ""
+
#. type: textblock
-#: ../git-debrebase.1.pod:12 ../git-debrebase.5.pod:7
+#: ../git-debrebase.1.pod:12
+msgid "These are most of the commands you will regularly need:"
+msgstr ""
+
+#. type: verbatim
+#: ../git-debrebase.1.pod:14
+#, no-wrap
msgid ""
-"git-debrebase is a tool for representing in git, and manpulating, Debian "
-"packages based on upstream source code."
+" git debrebase -i # edit the patch queue\n"
+" git debrebase conclude && git push # push to eg salsa\n"
+" git debrebase conclude && dgit push-source # source-only upload\n"
+" git debrebase [-i] new-upstream 1.2.3-1 # uses tag, eg \"v1.2.3\"\n"
+" dpkg-buildpackage -uc -b # get test debs, at any time\n"
+"\n"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:16
+#: ../git-debrebase.1.pod:20
msgid ""
-"This is the command line reference. Please read the tutorial L<dgit-maint-"
-"debrebase(7)>. For background, theory of operation, and definitions see "
+"To add patches, or edit the packaging, just make git commits. Ignore "
+"anything that may appear in debian/patches. Avoid using \"git pull\" and "
+"\"git merge\" without \"--ff-only\"."
+msgstr ""
+
+#. type: textblock
+#: ../git-debrebase.1.pod:24
+msgid ""
+"git-debrebase has a special branch format, so see \"CONVERTING AN EXISTING "
+"PACKAGE\" in L<dgit-maint-debrebase(7)>."
+msgstr ""
+
+#. type: =head1
+#: ../git-debrebase.1.pod:27
+msgid "GUIDE TO DOCUMENTATION"
+msgstr ""
+
+#. type: textblock
+#: ../git-debrebase.1.pod:29
+msgid ""
+"This is the command line reference. There is also a detailed workflow "
+"tutorial at L<dgit-maint-debrebase(7)> (on which the above \"QUICK REFERENCE"
+"\" is based). For background, theory of operation, and definitions see "
"L<git-debrebase(5)>."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:22
+#: ../git-debrebase.1.pod:36
msgid ""
"You should read this manpage in conjunction with L<git-debrebase(5)/"
"TERMINOLOGY>, which defines many important terms used here."
msgstr ""
#. type: =head1
-#: ../git-debrebase.1.pod:26
+#: ../git-debrebase.1.pod:40
msgid "PRINCIPAL OPERATIONS"
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:30
+#: ../git-debrebase.1.pod:44
msgid "git-debrebase [-- <git-rebase options...>]"
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:32
+#: ../git-debrebase.1.pod:46
msgid "git-debrebase [-i <further git-rebase options...>]"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:34
+#: ../git-debrebase.1.pod:48
msgid ""
"Unstitches and launders the branch. (See L</UNSTITCHING AND LAUNDERING> "
"below.)"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:37
+#: ../git-debrebase.1.pod:51
msgid ""
"Then, if any git-rebase options were supplied, edits the Debian delta queue, "
"using git-rebase, by running"
msgstr ""
#. type: verbatim
-#: ../git-debrebase.1.pod:41
+#: ../git-debrebase.1.pod:55
#, no-wrap
msgid ""
" git rebase <git-rebase options> <breakwater-tip>\n"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:43
+#: ../git-debrebase.1.pod:57
msgid ""
"Do not pass a base branch argument: git-debrebase will supply that. Do not "
"use --onto, or --fork-point. Useful git-rebase options include -i and --"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:48
+#: ../git-debrebase.1.pod:62
msgid ""
"If git-rebase stops for any reason, you may git-rebase --abort, --continue, "
"or --skip, as usual. If you abort the git-rebase, the branch will still "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:54
+#: ../git-debrebase.1.pod:68
msgid ""
"The options for git-rebase must either start with C<-i>, or be prececded by "
"C<-->, to distinguish them from options for git-debrebase."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:58
+#: ../git-debrebase.1.pod:72
msgid ""
"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 "
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:64
+#: ../git-debrebase.1.pod:78
msgid "git-debrebase status"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:66
+#: ../git-debrebase.1.pod:80
msgid ""
"Analyses the current branch, both in terms of its contents, and the refs "
"which are relevant to git-debrebase, and prints a human-readable summary."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:71
+#: ../git-debrebase.1.pod:85
msgid ""
"Please do not attempt to parse the output; it may be reformatted or "
"reorganised in the future. Instead, use one of the L<UNDERLYING AND "
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:77
+#: ../git-debrebase.1.pod:91
msgid "git-debrebase conclude"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:79
+#: ../git-debrebase.1.pod:93
msgid ""
"Finishes a git-debrebase session, tidying up the branch and making it fast "
"forward again."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:82
+#: ../git-debrebase.1.pod:96
msgid ""
"Specifically: if the branch is unstitched, launders and restitches it, "
"making a new pseudomerge. Otherwise, it is an error, unless --noop-ok."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:88
+#: ../git-debrebase.1.pod:102
msgid "git-debrebase quick"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:90
+#: ../git-debrebase.1.pod:104
msgid ""
"Unconditionally launders and restitches the branch, consuming any ffq-prev "
"and making a new pseudomerge."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:94
+#: ../git-debrebase.1.pod:108
msgid "If the branch is already laundered and stitched, does nothing."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:96
+#: ../git-debrebase.1.pod:110
msgid "git-debrebase prepush [--prose=<for commit message>]"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:98
+#: ../git-debrebase.1.pod:112
msgid "If the branch is unstitched, stitches it, consuming ffq-prev."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:102
+#: ../git-debrebase.1.pod:116
msgid ""
"This is a good command to run before pushing to a git server. You should "
"consider using B<conclude> instead, because that launders the branch too."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:106
+#: ../git-debrebase.1.pod:120
msgid "git-debrebase stitch [--prose=<for commit message>]"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:108
+#: ../git-debrebase.1.pod:122
msgid "Stitches the branch, consuming ffq-prev."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:111
+#: ../git-debrebase.1.pod:125
msgid "If there is no ffq-prev, it is an error, unless --noop-ok."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:113
+#: ../git-debrebase.1.pod:127
msgid "You should consider using B<prepush> or B<conclude> instead."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:115
+#: ../git-debrebase.1.pod:129
msgid "git-debrebase scrap"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:117
+#: ../git-debrebase.1.pod:131
msgid ""
"Throws away all the work since the branch was last stitched. This is done "
-"by rewinding you to ffq-prev."
+"by resetting you to ffq-prev and discarding all working tree changes."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:120
+#: ../git-debrebase.1.pod:135
msgid "If you are in the middle of a git-rebase, will abort that too."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:122
+#: ../git-debrebase.1.pod:137
msgid "git-debrebase new-upstream <new-version> [<upstream-details>...]"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:124
+#: ../git-debrebase.1.pod:139
msgid "Rebases the delta queue onto a new upstream version. In detail:"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:127
+#: ../git-debrebase.1.pod:142
msgid ""
"Firstly, checks that the proposed rebase seems to make sense: It is a snag "
"unless the new upstream(s) are fast forward from the previous upstream(s) "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:135
+#: ../git-debrebase.1.pod:150
msgid "If all seems well, unstitches and launders the branch."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:137
+#: ../git-debrebase.1.pod:152
msgid ""
"Then, generates (in a private working area) a new anchor merge commit, on "
"top of the breakwater tip, and on top of that a commit to update the version "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:145
+#: ../git-debrebase.1.pod:160
msgid "Finally, starts a git-rebase of the delta queue onto these new commits."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:149
+#: ../git-debrebase.1.pod:164
msgid ""
"That git-rebase may complete successfully, or it may require your "
"assistance, just like a normal git-rebase."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:153
+#: ../git-debrebase.1.pod:168
msgid ""
"If you git-rebase --abort, the whole new upstream operation is aborted, "
"except for the laundering."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:157
+#: ../git-debrebase.1.pod:172
msgid ""
"<new-version> 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 "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:163
+#: ../git-debrebase.1.pod:178
msgid "The <upstream-details> are, optionally, in order:"
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:167
+#: ../git-debrebase.1.pod:182
msgid "<upstream-commit-ish>"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:169
+#: ../git-debrebase.1.pod:184
msgid ""
"The new upstream branch (or commit-ish). The default is to look for one of "
"these tags, in this order: U vU upstream/U; where U is the new upstream "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:175
+#: ../git-debrebase.1.pod:190
msgid ""
"It is a snag if the upstream contains a debian/ directory; if forced to "
"proceed, git-debrebase will disregard the upstream's debian/ and take (only) "
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:180
+#: ../git-debrebase.1.pod:195
msgid "<piece-name> <piece-upstream-commit-ish>"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:182
+#: ../git-debrebase.1.pod:197
msgid "Specifies that this is a multi-piece upstream. May be repeated."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:185
+#: ../git-debrebase.1.pod:200
msgid ""
"When such a pair is specified, git-debrebase will first combine the pieces "
"of the upstream together, and then use the result as the combined new "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:190
+#: ../git-debrebase.1.pod:205
msgid ""
"For each <piece-name>, the tree of the <piece-upstream-commit-ish> becomes "
"the subdirectory <piece-name> in the combined new upstream (supplanting any "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:197
+#: ../git-debrebase.1.pod:212
msgid ""
"<piece-name> has a restricted syntax: it may contain only ASCII "
"alphanumerics and hyphens."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:200
+#: ../git-debrebase.1.pod:215
msgid ""
"The combined upstream is itself recorded as a commit, with each of the "
"upstream pieces' commits as parents. The combined commit contains an "
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:206
+#: ../git-debrebase.1.pod:221
msgid "<git-rebase options>"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:208
+#: ../git-debrebase.1.pod:223
msgid "These will be passed to git rebase."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:210
+#: ../git-debrebase.1.pod:225
msgid ""
"If the upstream rebase is troublesome, -i may be helpful. As with plain git-"
"debrebase, do not specify a base, or --onto, or --fork-point."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:216
+#: ../git-debrebase.1.pod:231
msgid ""
"If you are planning to generate a .dsc, you will also need to have, or "
"generate, actual orig tarball(s), which must be identical to the rev-"
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:227
+#: ../git-debrebase.1.pod:242
msgid "git-debrebase make-patches [--quiet-would-amend]"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:229
+#: ../git-debrebase.1.pod:244
msgid ""
"Generate patches in debian/patches/ representing the changes made to "
"upstream files."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:232
+#: ../git-debrebase.1.pod:247
msgid ""
"It is not normally necessary to run this command explicitly. When uploading "
"to Debian, dgit and git-debrebase will cooperate to regenerate patches as "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:239
+#: ../git-debrebase.1.pod:254
msgid ""
"Normally git-debrebase make-patches will require a laundered branch. (A "
"laundered branch does not contain any patches.) But if there are already "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:248
+#: ../git-debrebase.1.pod:263
msgid ""
"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, "
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:257
+#: ../git-debrebase.1.pod:272
msgid "git-debrebase convert-from-unapplied [<upstream-commit-ish>]"
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:259
+#: ../git-debrebase.1.pod:274
msgid "git-debrebase convert-from-gbp [<upstream-commit-ish>]"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:261
+#: ../git-debrebase.1.pod:276
msgid "Converts any of the following into a git-debrebase interchange branch:"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:267
+#: ../git-debrebase.1.pod:282
msgid "a gbp patches-unapplied branch (but not a gbp pq patch-queue branch)"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:271
+#: ../git-debrebase.1.pod:286
msgid ""
"a patches-unapplied git packaging branch containing debian/patches, as used "
"with quilt"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:276
+#: ../git-debrebase.1.pod:291
msgid ""
"a git branch for a package which has no Debian delta - ie where upstream "
"files are have not been modified in Debian, so there are no patches"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:282
+#: ../git-debrebase.1.pod:297
msgid "(These two commands operate identically and are simply aliases.)"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:284
+#: ../git-debrebase.1.pod:299
msgid ""
"The conversion is done by generating a new anchor merge, converting any "
"quilt patches as a delta queue, and dropping the patches from the tree."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:288
+#: ../git-debrebase.1.pod:303
msgid ""
"The upstream commit-ish should correspond to the upstream branch or tag, if "
"there is one. It is a snag if it is not an ancestor of HEAD, or if the "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:296
+#: ../git-debrebase.1.pod:311
msgid ""
"It is also a snag if the specified upstream has a debian/ subdirectory. "
"This check exists to detect certain likely user errors, but if this "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:302
+#: ../git-debrebase.1.pod:317
msgid ""
"git-debrebase will try to look for the dgit archive view of the most recent "
"release, and if it finds it will make a pseduomerge so that your new git-"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:307
+#: ../git-debrebase.1.pod:322
msgid ""
"The result is a well-formed git-debrebase interchange branch. The result is "
"also fast-forward from the original branch."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:310
+#: ../git-debrebase.1.pod:325
msgid ""
"It is a snag if the new branch looks like it will have diverged, just as for "
"a laundering/unstitching call to git-debrebase; See L</Establish the current "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:314
+#: ../git-debrebase.1.pod:329
msgid ""
"Note that it is dangerous not to know whether you are dealing with a (gbp) "
"patches-unapplied branch containing quilt patches, or a git-debrebase "
msgstr ""
#. type: =head1
-#: ../git-debrebase.1.pod:323
+#: ../git-debrebase.1.pod:338
msgid "UNDERLYING AND SUPPLEMENTARY OPERATIONS"
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:327
+#: ../git-debrebase.1.pod:342
msgid "git-debrebase breakwater"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:329
+#: ../git-debrebase.1.pod:344
msgid ""
"Prints the breakwater tip commitid. If your HEAD branch is not fully "
"laundered, prints the tip of the so-far-laundered breakwater."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:333
+#: ../git-debrebase.1.pod:348
msgid "git-debrebase anchor"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:335
+#: ../git-debrebase.1.pod:350
msgid "Prints the breakwater anchor commitid."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:337
+#: ../git-debrebase.1.pod:352
msgid "git-debrebase analyse"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:339
+#: ../git-debrebase.1.pod:354
msgid ""
"Walks the history of the current branch, most recent commit first, back "
"until the most recent anchor, printing the commit object id, and commit type "
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:347
+#: ../git-debrebase.1.pod:362
msgid "git-debrebase record-ffq-prev"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:349
+#: ../git-debrebase.1.pod:364
msgid ""
"Establishes the current branch's ffq-prev, as discussed in L</UNSTITCHING "
"AND LAUNDERING>, but does not launder the branch or move HEAD."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:353
+#: ../git-debrebase.1.pod:368
msgid ""
"It is an error if the ffq-prev could not be recorded. It is also an error "
"if an ffq-prev has already been recorded, unless --noop-ok."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:357
+#: ../git-debrebase.1.pod:372
msgid "git-debrebase launder-v0"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:359
+#: ../git-debrebase.1.pod:374
msgid ""
"Launders the branch without recording anything in ffq-prev. Then prints "
"some information about the current branch. Do not use this operation; it "
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:364
+#: ../git-debrebase.1.pod:379
msgid "git-debrebase convert-to-gbp"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:366
+#: ../git-debrebase.1.pod:381
msgid ""
"Converts a laundered branch into a gbp patches-unapplied branch containing "
"quilt patches. The result is not fast forward from the interchange branch, "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:371
+#: ../git-debrebase.1.pod:386
msgid ""
"This is provided mostly for the test suite and for unusual situations. It "
"should only be used with care and with a proper understanding of the "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:376
+#: ../git-debrebase.1.pod:391
msgid ""
"Be sure to not accidentally treat the result as a git-debrebase branch, or "
"you will drop all the patches!"
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:380
+#: ../git-debrebase.1.pod:395
msgid "git-debrebase convert-from-dgit-view [<convert-options>] [upstream]"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:382
+#: ../git-debrebase.1.pod:397
msgid ""
"Converts any dgit-compatible git branch corresponding to a (possibly "
"hypothetical) 3.0 quilt dsc source package into a git-debrebase-compatible "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:386
+#: ../git-debrebase.1.pod:401
msgid ""
"This operation should not be used if the branch is already in git-debrebase "
"form. Normally git-debrebase will refuse to continue in this case (or "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:391
+#: ../git-debrebase.1.pod:406
msgid ""
"Some representation of the original upstream source code will be needed. If "
"I<upstream> is supplied, that must be a suitable upstream commit. By "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:397
+#: ../git-debrebase.1.pod:412
msgid ""
"The upstream source must be exactly right and all the patches in debian/"
"patches must be up to date. Applying the patches from debian/patches to the "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:402
+#: ../git-debrebase.1.pod:417
msgid ""
"The output is laundered and stitched. The resulting history is not "
"particularly pretty, especially if orig tarball(s) were imported to produce "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:407
+#: ../git-debrebase.1.pod:422
msgid ""
"The available convert-options are as follows. (These must come after "
"convert-from-dgit-view.)"
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:412
+#: ../git-debrebase.1.pod:427
msgid "--[no-]diagnose"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:414
+#: ../git-debrebase.1.pod:429
msgid ""
"Print additional error messages to help diagnose failure to find an "
"appropriate upstream. --no-diagnose is the default."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:418
+#: ../git-debrebase.1.pod:433
msgid "--build-products-dir"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:420
+#: ../git-debrebase.1.pod:435
msgid ""
"Directory to look in for orig tarballs. The default is the git config "
"option dgit.default.build-products-dir or failing that, C<..>. Passed on to "
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:426
+#: ../git-debrebase.1.pod:441
msgid "--[no-]origs"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:428
+#: ../git-debrebase.1.pod:443
msgid ""
"Whether to try to look for or use any orig tarballs. --origs is the default."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:431
+#: ../git-debrebase.1.pod:446
msgid "--[no-]tags"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:433
+#: ../git-debrebase.1.pod:448
msgid ""
"Whether to try to look for or use any upstream git tags. --tags is the "
"default."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:436
+#: ../git-debrebase.1.pod:451
msgid "--always-convert-anyway"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:438
+#: ../git-debrebase.1.pod:453
msgid ""
"Perform the conversion operation, producing unpleasant extra history, even "
"if the branch seems to be in git-debrebase form already. This should not be "
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:446
+#: ../git-debrebase.1.pod:461
msgid "git-debrebase forget-was-ever-debrebase"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:448
+#: ../git-debrebase.1.pod:463
msgid ""
"Deletes the ffq-prev and debrebase-last refs associated with this branch, "
"that git-debrebase and dgit use to determine whether this branch is managed "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:454
+#: ../git-debrebase.1.pod:469
msgid ""
"This can be useful if you were just playing with git-debrebase, and have "
"used git-reset --hard to go back to a commit before your experiments."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:458
+#: ../git-debrebase.1.pod:473
msgid "Do not use this if you expect to run git-debrebase on the branch again."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:464
+#: ../git-debrebase.1.pod:479
msgid ""
"This section documents the general options to git-debrebase (ie, the ones "
"which immediately follow git-debrebase or git debrebase on the command "
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:476
+#: ../git-debrebase.1.pod:491
msgid "-f<snag-id>"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:478
+#: ../git-debrebase.1.pod:493
msgid "Turns snag(s) with id <snag-id> into warnings."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:480
+#: ../git-debrebase.1.pod:495
msgid ""
"Some troublesome things which git-debrebase encounters are B<snag>s. (The "
"specific instances are discussed in the text for the relevant operation.)"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:485
+#: ../git-debrebase.1.pod:500
msgid ""
"When a snag is detected, a message is printed to stderr containing the snag "
"id (in the form C<-f<snag-idE<gt>>), along with some prose."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:490
+#: ../git-debrebase.1.pod:505
msgid ""
"If snags are detected, git-debrebase does not continue, unless the relevant -"
"f<snag-id> is specified, or --force is specified."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:494
+#: ../git-debrebase.1.pod:509
msgid "--force"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:496
+#: ../git-debrebase.1.pod:511
msgid "Turns all snags into warnings. See the -f<snag-id> option."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:499
+#: ../git-debrebase.1.pod:514
msgid ""
"Do not invoke git-debrebase --force in scripts and aliases; instead, specify "
"the particular -f<snag-id> for expected snags."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:502
+#: ../git-debrebase.1.pod:517
msgid "--noop-ok"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:504
+#: ../git-debrebase.1.pod:519
msgid ""
"Suppresses the error in some situations where git-debrebase does nothing, "
"because there is nothing to do."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:508
+#: ../git-debrebase.1.pod:523
msgid ""
"The specific instances are discussed in the text for the relvant operation."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:511
+#: ../git-debrebase.1.pod:526
msgid "--anchor=<commit-ish>"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:513
+#: ../git-debrebase.1.pod:528
msgid ""
"Treats <commit-ish> as an anchor. This overrides the usual logic which "
"automatically classifies commits as anchors, pseudomerges, delta queue "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:517
+#: ../git-debrebase.1.pod:532
msgid ""
"It also disables some coherency checks which depend on metadata extracted "
"from its commit message, so it is a snag if <commit-ish> is the anchor for "
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:524
+#: ../git-debrebase.1.pod:539
msgid "--dgit=<program>"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:526
+#: ../git-debrebase.1.pod:541
msgid ""
"Run <program>, instead of dgit from PATH, when invocation of dgit is "
"necessary. This is provided mostly for the benefit of the test suite."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:530
+#: ../git-debrebase.1.pod:545
msgid "-D"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:532
+#: ../git-debrebase.1.pod:547
msgid "Requests (more) debugging. May be repeated."
msgstr ""
#. type: =item
-#: ../git-debrebase.1.pod:534
-msgid "--experimntal-merge-resolution"
+#: ../git-debrebase.1.pod:549
+msgid "--experimental-merge-resolution"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:536
+#: ../git-debrebase.1.pod:551
msgid ""
"Enable experimental code for handling general merges (see L<git-debrebase(5)/"
"General merges>)."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:539
+#: ../git-debrebase.1.pod:554
msgid ""
"This option may generate lossage of various kinds, including misleading "
"error messages, references to nonexistent documentation, and you being "
msgstr ""
#. type: =head1
-#: ../git-debrebase.1.pod:547
+#: ../git-debrebase.1.pod:562
msgid "UNSTITCHING AND LAUNDERING"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:549
+#: ../git-debrebase.1.pod:564
msgid ""
"Several operations unstitch and launder the branch first. In detail this "
"means:"
msgstr ""
#. type: =head2
-#: ../git-debrebase.1.pod:552
+#: ../git-debrebase.1.pod:567
msgid "Establish the current branch's ffq-prev"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:554
+#: ../git-debrebase.1.pod:569
msgid ""
"If ffq-prev is not yet recorded, git-debrebase checks that the current "
"branch is ahead of relevant remote tracking branches. The relevant branches "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:566
+#: ../git-debrebase.1.pod:581
msgid ""
"The branch that git would merge from (remote.<branch>.merge, remote.<branch>."
"remote);"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:571
+#: ../git-debrebase.1.pod:586
msgid ""
"The branch git would push to, if different (remote.<branch>.pushRemote etc.);"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:576
+#: ../git-debrebase.1.pod:591
msgid "For local dgit suite branches, the corresponding tracking remote;"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:581
+#: ../git-debrebase.1.pod:596
msgid "If you are on C<master>, remotes/dgit/dgit/sid."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:586
+#: ../git-debrebase.1.pod:601
msgid ""
"The apparently relevant ref names to check are filtered through branch."
"<branch>.ffq-ffrefs, which is a semicolon-separated list of glob patterns, "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:591
+#: ../git-debrebase.1.pod:606
msgid ""
"In each case it is a snag if the local HEAD is behind the checked remote, or "
"if local HEAD has diverged from it. All the checks are done locally using "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:597
+#: ../git-debrebase.1.pod:612
msgid ""
"If these checks pass, or are forced, git-debrebse then records the current "
"tip as ffq-prev."
msgstr ""
#. type: =head2
-#: ../git-debrebase.1.pod:601
+#: ../git-debrebase.1.pod:616
msgid "Examine the branch"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:603
+#: ../git-debrebase.1.pod:618
msgid ""
"git-debrebase analyses the current HEAD's history to find the anchor in its "
"breakwater, and the most recent breakwater tip."
msgstr ""
#. type: =head2
-#: ../git-debrebase.1.pod:608
+#: ../git-debrebase.1.pod:623
msgid "Rewrite the commits into laundered form"
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:610
+#: ../git-debrebase.1.pod:625
msgid ""
"Mixed debian+upstream commits are split into two commits each. Delta queue "
"(upstream files) commits bubble to the top. Pseudomerges, and quilt patch "
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:616
+#: ../git-debrebase.1.pod:631
msgid ""
"This rewrite will always succeed, by construction. The result is the "
"laundered branch."
msgstr ""
#. type: textblock
-#: ../git-debrebase.1.pod:621
-msgid "git-debrebase(1), dgit-maint-rebase(7), dgit(1), gitglossary(7)"
+#: ../git-debrebase.1.pod:636
+msgid "git-debrebase(1), dgit-maint-debrebase(7), dgit(1), gitglossary(7)"
msgstr ""
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2019-03-01 16:59+0000\n"
+"POT-Creation-Date: 2019-09-06 23:47+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: ../dgit-maint-native.7.pod:1 ../dgit-maint-merge.7.pod:1
#: ../dgit-maint-gbp.7.pod:1 ../dgit-maint-debrebase.7.pod:1
#: ../dgit-downstream-dsc.7.pod:1 ../dgit-sponsorship.7.pod:1
-#: ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../dgit-maint-bpo.7.pod:1 ../git-debrebase.1.pod:1 ../git-debrebase.5.pod:1
+#: ../git-debpush.1.pod:1
#, no-wrap
msgid "NAME"
msgstr ""
#. type: =head1
-#: ../dgit.1:1470 ../dgit.7:23 ../dgit-user.7.pod:447
+#: ../dgit.1:1568 ../dgit.7:23 ../dgit-user.7.pod:447
#: ../dgit-nmu-simple.7.pod:137 ../dgit-maint-native.7.pod:126
-#: ../dgit-maint-merge.7.pod:491 ../dgit-maint-gbp.7.pod:136
-#: ../dgit-maint-debrebase.7.pod:747 ../dgit-downstream-dsc.7.pod:352
-#: ../dgit-sponsorship.7.pod:321 ../git-debrebase.1.pod:619
-#: ../git-debrebase.5.pod:678
+#: ../dgit-maint-merge.7.pod:521 ../dgit-maint-gbp.7.pod:136
+#: ../dgit-maint-debrebase.7.pod:778 ../dgit-downstream-dsc.7.pod:352
+#: ../dgit-sponsorship.7.pod:321 ../dgit-maint-bpo.7.pod:134
+#: ../git-debrebase.1.pod:633 ../git-debrebase.5.pod:678
+#: ../git-debpush.1.pod:254
#, no-wrap
msgid "SEE ALSO"
msgstr ""
#: ../dgit-user.7.pod:5 ../dgit-maint-native.7.pod:5
#: ../dgit-maint-merge.7.pod:5 ../dgit-maint-gbp.7.pod:5
#: ../dgit-maint-debrebase.7.pod:5 ../dgit-downstream-dsc.7.pod:5
-#: ../git-debrebase.1.pod:10 ../git-debrebase.5.pod:5
+#: ../dgit-maint-bpo.7.pod:5 ../git-debrebase.5.pod:5
msgid "INTRODUCTION"
msgstr ""
-#. type: textblock
-#: ../git-debrebase.1.pod:12 ../git-debrebase.5.pod:7
-msgid ""
-"git-debrebase is a tool for representing in git, and manpulating, Debian "
-"packages based on upstream source code."
+#. type: =head1
+#: ../dgit-maint-bpo.7.pod:11 ../git-debrebase.5.pod:37
+msgid "TERMINOLOGY"
msgstr ""
#. type: textblock
msgid "git-debrebase - git data model for Debian packaging"
msgstr ""
+#. type: textblock
+#: ../git-debrebase.5.pod:7
+msgid ""
+"git-debrebase is a tool for representing in git, and manpulating, Debian "
+"packages based on upstream source code."
+msgstr ""
+
#. type: textblock
#: ../git-debrebase.5.pod:11
msgid ""
"output than the default."
msgstr ""
-#. type: =head1
-#: ../git-debrebase.5.pod:37
-msgid "TERMINOLOGY"
-msgstr ""
-
#. type: =item
#: ../git-debrebase.5.pod:41
msgid "Pseudomerge"
#. type: textblock
#: ../git-debrebase.5.pod:394
msgid ""
-"See dgit-maint-rebase(7) for a discussion of what kinds of behaviours "
+"See dgit-maint-debrebase(7) for a discussion of what kinds of behaviours "
"should be be avoided because they might generate such merges."
msgstr ""
"The full set of annotations is:\n"
" [git-debrebase split: mixed commit, debian part]\n"
" [git-debrebase split: mixed commit, upstream-part]\n"
-" [git-debrebase onvert dgit import: debian changes]\n"
+" [git-debrebase convert dgit import: debian changes]\n"
" [git-debrebase anchor: convert dgit import, upstream changes]\n"
"\n"
msgstr ""
[type: pod] ../dgit-maint-debrebase.7.pod $lang:translated/man/$lang/man7/dgit-maint-debrebase.7.pod master:file=dgit-maint-debrebase_7
[type: pod] ../dgit-downstream-dsc.7.pod $lang:translated/man/$lang/man7/dgit-downstream-dsc.7.pod master:file=dgit-downstream-dsc_7
[type: pod] ../dgit-sponsorship.7.pod $lang:translated/man/$lang/man7/dgit-sponsorship.7.pod master:file=dgit-sponsorship_7
+[type: pod] ../dgit-maint-bpo.7.pod $lang:translated/man/$lang/man7/dgit-maint-bpo.7.pod master:file=dgit-maint-bpo_7
[type: pod] ../git-debrebase.1.pod $lang:translated/man/$lang/man1/git-debrebase.1.pod master:file=git-debrebase_1
[type: pod] ../git-debrebase.5.pod $lang:translated/man/$lang/man5/git-debrebase.5.pod master:file=git-debrebase_5
+[type: pod] ../git-debpush.1.pod $lang:translated/man/$lang/man1/git-debpush.1.pod master:file=git-debpush_1
test-dummy $tmp/distro=test-dummy \
$tmp/dd.gpg,a:$tmp/dm.gpg,m$tmp/dm.txt \
--repos=$tmp/git --suites=$tmp/suites \
- --ssh
+ --${DGIT_DRS_MODE-ssh}
: '))))))))))))))))))))))))))))))))))))))))'
test-begin-gencontrol () {
restrictions=''
- dependencies='dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime'
+ dependencies='dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl'
+}
+
+gencontrol-add-things () {
+ local varname=$1; shift
+ local delim=$1; shift
+ local thing
+ eval '
+ for thing in "$@"; do
+ case " $'$varname$delim '" in
+ *" "$thing"'$delim' "*) continue ;;
+ esac
+ '$varname'+="${'$varname':+'$delim' }$thing"
+ done
+ '
}
restriction-gencontrol () {
if [ $r = x-dgit-out-of-tree-only ]; then return; fi
- restrictions+=" $r"
+ gencontrol-add-things restrictions '' "$r"
}
gencontrol-add-deps () {
- for dep in "$@"; do
- dependencies+="${dependencies:+, }$dep"
- done
+ gencontrol-add-things dependencies , "$@"
}
dependencies-gencontrol () {
GDR) gencontrol-add-deps \
git-debrebase git-buildpackage
;;
+ DEBORIG) gencontrol-add-deps \
+ devscripts libdpkg-perl \
+ libgit-wrapper-perl liblist-compare-perl \
+ libstring-shellquote-perl libtry-tiny-perl \
+ # NB git-deborig is not compatible with
+ # t-tstunt-parsechangelog
+ ;;
*) gencontrol-add-deps "$dep" ;;
esac
done
}
'
case "$restrictions" in
- ?*) echo "Restrictions:$restrictions" ;;
+ ?*) echo "Restrictions: $restrictions" ;;
esac
)
key=$(printf "%s" "$stanza" | sha256sum)
seddery () {
local seddery=$1
- sed <$t -n '
+ sed <$tf -n '
20q;
/^: t-enumerate-tests-end$/q;
'"$seddery"'
'
}
-for t in $(run-parts --list tests/tests); do
- test-begin-$mode
+allsedderies () {
+ local tf=$1
for r in $(seddery 's/^t-restrict //p'); do
restriction-$mode
done
for deps in $(seddery 's/^t-dependencies //p'); do
dependencies-$mode
done
+ for import in $(seddery 's/^t-setup-import //p'); do
+ allsedderies tests/setup/$import
+ done
+ if egrep -q '^t-alt-test *$' <$tf; then
+ local leaf=${tf#tests/tests/}
+ allsedderies tests/tests/"${leaf#*-}"
+ fi
+}
+
+for t in $(run-parts --list tests/tests); do
+ test-begin-$mode
+ allsedderies $t
test-done-$mode
done
--- /dev/null
+#!/usr/bin/perl -w
+#
+# This file is part of the dgit test suite.
+#
+# Copyright (C)2004-2015 Best Practical Solutions, LLC
+# Copyright (C)2019 Ian Jackson
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+#
+# invocation protocol:
+#
+# http-static-server >port-file tests/tmp/$thing/aq
+#
+# Will write the allocated port number to port-file.
+# Then we fork and the parent exits 0.
+# If port-file is unlinked, we exit.
+
+use strict;
+use IO::Handle;
+
+our ($webroot) = @ARGV;
+our $port = '';
+
+# HTTP::Server::Simple handles requests in the main process so it
+# must redirect and close STDOUT. So transplant STDOUT to CHECK.
+open CHECK, ">& STDOUT" or die $!;
+open STDOUT, ">/dev/null" or die $!;
+
+sub stat_type_check () {
+ die "[$port, $webroot] stdout not ta plain file"
+ unless -f _;
+}
+
+stat CHECK or die $!;
+stat_type_check();
+
+sub start_polling_fstat () {
+ our $polling_pid = $$;
+ $SIG{ALRM} = sub {
+ return unless $$ = $polling_pid;
+ stat CHECK or die $!;
+ my $nlink = (stat _)[3];
+ exit 0 unless $nlink;
+ stat_type_check(); # doesn't seem possible to fail but check anyway
+ alarm(1);
+ };
+ alarm(1);
+}
+
+package ServerClass;
+
+use strict;
+use Socket qw(AF_INET SOCK_STREAM);
+use Socket qw(AF_INET SOCK_STREAM unpack_sockaddr_in);
+use IO::Handle;
+
+use base qw(HTTP::Server::Simple::CGI);
+use HTTP::Server::Simple::Static;
+
+sub handle_request {
+ my ($self, $cgi) = @_;
+
+ if (!$self->serve_static($cgi, $::webroot)) {
+ print "HTTP/1.0 404 Not found\r\n";
+ print $cgi->header,
+ $cgi->start_html('Not found'),
+ $cgi->h1('Not found'),
+ $cgi->end_html;
+ }
+}
+
+sub port () { return 0; }
+
+sub after_setup_listener () {
+ my $sn = getsockname HTTP::Server::Simple::HTTPDaemon or die $!;
+ ($main::port,) = unpack_sockaddr_in $sn;
+ print main::CHECK $port, "\n" or die $!;
+ flush main::CHECK or die $!;
+ my $c = fork // die $!;
+ exit 0 if $c;
+ ::main::start_polling_fstat();
+}
+
+package main;
+
+our $server = ServerClass->new();
+$server->run();
exit 16
}
-trap 'test $? = 0 || t-report-failure' EXIT
+trap '
+ rc=$?
+ set +x
+ test $rc = 0 || echo "
+%%%%%%%%%%%%%%%%%%%% EXITING $rc %%%%%%%%%%%%%%%%%%%%
+
+ Most relevant logs are just before assignment rc=$rc
+ Will now do cleanup etc.
+"
+ set -x
+ set +e
+ pwd
+ [ "x$DGIT_TEST_KEEP_MUSTCLEAN" != x ] || \
+ [ "x$DGIT_TEST_TMP" = x ] || rm -rf $DGIT_TEST_TMP/must-clean
+ set -e
+ test $rc = 0 || t-report-failure
+' EXIT
t-filter-out-git-hyphen-dir
: ${DGIT_TEST_DEBUG=-D}
export DGIT_TEST_DEBUG
+: ${DGIT_TEST_DEBPUSH_DEBUG=x}
+export DGIT_TEST_DEBPUSH_DEBUG
+
: ${DGIT_TEST_DISTRO+ ${distro=${DGIT_TEST_DISTRO}}}
export GIT_COMMITTER_DATE='1530000000 +0100'
export GIT_AUTHOR_DATE='1530000000 +0100'
export LC_CTYPE=C.UTF-8
+unset CDPATH
root=`pwd`
troot=$root/tests
unset VISUAL
unset GIT_EDITOR
+mkdir -p $tmp/must-clean
+# must-clean is usually removed after each test, on success or failure.
+# But this must not be relied on for correctness, only for garbage
+# collection etc.
+
mkdir -p $tmp/incoming
cat <<END >$tmp/dput.cf
[test-dummy]
v=$2
local dscf=${p}_$2.dsc
rm -f $tmp/mirror/pool/main/${p}_*
- ln -s $troot/pkg-srcs/${p}_${2%-*}* $tmp/mirror/pool/main/
+ ${t_archive_ln_s-ln -s} \
+ $troot/pkg-srcs/${p}_${2%-*}* $tmp/mirror/pool/main/
t-archive-query $suite
rm -rf $tmp/extract
mkdir $tmp/extract
'
}
+t-non-dgit-upload () {
+ t-dgit -wgf build-source
+
+ cd ..
+ c=${p}_${v}_source.changes
+ debsign -kBCD22CD83243B79D3DFAC33EA3DBCBC039B13D8A $c
+ dput -c $tmp/dput.cf test-dummy $c
+
+ t-archive-process-incoming sid
+ t-git-next-date
+ cd $p
+}
+
t-dgit-manpage () {
local section=$1
local page=$2
' $vn "$(eval "printf '%s\n' \"\$$vn\"")"
done
+ perl >&4 -"I$root" -MDebian::Dgit -we '
+ foreach my $vn (grep m/^DGIT_TEST_REAL_/, keys %ENV) {
+ print STDERR "saving-exporting $vn\n";
+ printf "export %s=%s\n", $vn, shellquote $ENV{$vn}
+ or die $!;
+ }
+ '
+
(set -e; cd $tmp; tar cf $import.tar $savedirs)
printf >&4 "\n%s\n" "$importeval"
(set -e; cd $tmp; tar xf "$simport.tar")
fi
+ mkdir -p $tmp/must-clean
+
. "$simport"
}
ln -s $tmp/incoming/*.orig*.tar* . ||:
ln -s $incoming_dsc .
ln -s ${incoming_dsc/.dsc/.debian.tar}* .
+ ln -s ${incoming_dsc/.dsc/.tar}* . ||:
dpkg-source "$@" -x *.dsc
cd */.
git init
t-refs-same-start
t-ref-same refs/heads/split.p
- case "$(t-git-get-ref refs/heads/split.b)" in
+ local split_b=$(t-git-get-ref refs/heads/split.b)
+ case "$split_b" in
"$t_ref_val") ;;
"$(git rev-parse refs/heads/split.p^0)") ;;
"$(git rev-parse refs/heads/split.p^1)") ;;
- *) fail 'bad b/p' ;;
+ *) fail "bad b/p (b=$split_b)" ;;
esac
t-pushed-good-core
cd $tmp/$p
}
-t-splitbrain-rm-gitignore-patch () {
+t-splitbrain-rm-1-patch () {
+ local patchname=$1
perl -i -pe '
- next unless $_ eq "auto-gitignore\n";
+ next unless $_ eq "'"$patchname"'\n";
die if $counter++;
chomp;
- rename "debian/patches/$_", "../t-auto-gitignore" or die $!;
+ rename "debian/patches/$_", "../t-'"$patchname"'" or die $!;
$_ = "";
' debian/patches/series
}
+t-splitbrain-rm-gitignore-patch () {
+ t-splitbrain-rm-1-patch auto-gitignore
+}
+
t-gbp-pushed-good () {
local suite=${1:-sid}
t-splitbrain-pushed-good-start
}
t-unapplied-pushed-good () {
+ local suite=${1:-sid}
t-splitbrain-pushed-good-start
t-splitbrain-pushed-good--unpack --skip-patches
t-splitbrain-pushed-good-end-made-dep14
}
t-dpm-pushed-good () {
+ local suite=${1:-sid}
t-splitbrain-pushed-good-start
t-splitbrain-pushed-good--unpack
t-splitbrain-rm-gitignore-patch
t-splitbrain-pushed-good-end-made-dep14
}
+t-split-unchanged-pushed-good () {
+ local suite=${1:-sid}
+ t-splitbrain-pushed-good-start
+ t-splitbrain-pushed-good--unpack
+ t-splitbrain-pushed-good-end-made-dep14
+}
+
t-commit-build-push-expect-log () {
local msg=$1
local mpat=$2
}
t-gbp-example-prep-no-ff () {
- t-tstunt-parsechangelog
t-archive example 1.0-1
t-git-none
t-worktree 1.0
t-git-config dgit-distro.test-dummy.git-url "ext::$troot/drs-git-ext %S "
t-git-config dgit-distro.test-dummy.git-check true
t-git-config dgit-distro.test-dummy.git-create true
- t-git-config dgit-distro.test-dummy.dgit-tag-format new,old,maint
cp $troot/gnupg/{dd.gpg,dm.gpg,dm.txt} $tmp/.
cp $troot/suites $tmp/.
cp $troot/suites $tmp/suites-master
ln -sf /bin/true $drs_dispatch/policy-hook
}
-t-newtag () {
- export tagpfx=archive/test-dummy
- t-git-config dgit-distro.test-dummy.dgit-tag-format new,maint
-}
-t-oldtag () {
- export tagpfx=test-dummy
- t-git-config dgit-distro.test-dummy.dgit-tag-format old
-}
-
t-dsd () {
t-drs
t-git-config dgit-distro.test-dummy.ssh "$troot/dsd-ssh"
t-dsd
t-policy dgit-repos-policy-debian
- mkdir $tmp/git
+ mkdir -p $tmp/git
t-policy-admin create-db
}
: '))))))))))))))))))))))))))))))))))))))))'
}
+t-tagupl-settings () {
+ export DGIT_DRS_EMAIL_NOREPLY=noreply@example.org
+ export DGIT_DRS_SENDMAIL=$troot/tstunt/sendmail
+ export DGIT_DRS_DGIT=$troot/tstunt/dgit
+ t-chain-test-somehow
+
+ mkdir ../pretend-salsa
+ (set -e; cd ../pretend-salsa; git init --bare)
+ git remote add salsa $tmp/pretend-salsa
+ # git branch --set-upstream-to complains, so
+ git config branch.master.remote salsa
+ git config branch.master.merge refs/heads/master
+}
+
+t-tagupl-run-drs () {
+ local source=$1
+ cd ..
+ cd tagupl
+
+ DGIT_DRS_ANY_URL=1 \
+ DGIT_DRS_MODE="tag2upload $source $tagname" \
+ $troot/drs-git-ext
+
+ cd $tmp/$p
+}
+
+t-tagupl-test () {
+ ${DGIT_DEBPUSH_TEST-git debpush} \
+ --distro=test-dummy -u Senatus "$@"
+
+ mkdir ../tagupl
+ t-tagupl-run-drs $tmp/pretend-salsa
+
+ cd ../pretend-salsa
+ t-refs-same refs/heads/master
+ cd ../$p
+
+ t-dgit fetch
+}
+
t-buildproductsdir-config () {
bpd=$tmp/bpd
t-git-config dgit.default.build-products-dir $bpd
: "Hopefully installed: $*"
}
+t-chain-test-somehow () {
+ export DGIT_TEST_TESTNAME="$testname"
+ export DGIT_TEST_TMPBASE="$tmpbase"
+ export ADTTMP=$tmp
+}
+
t-chain-test () {
+ t-chain-test-somehow
local ct=$1
local d=${0%/*}
cd $root
- export DGIT_TEST_TESTNAME="$testname"
- export DGIT_TEST_TMPBASE="$tmpbase"
- export ADTTMP=$tmp
exec "$d/$ct"
}
--- /dev/null
+#
+
+baredebian-test-vars () {
+ quiltmode=baredebian
+ v=1.0-1
+ suite=sid
+ uv=${v%-*}
+ uvtag=v$uv
+ origbase=${p}_${uv}.orig
+ xorigcomps=''
+}
+
+baredebian-tarball-mode () {
+ git tag -d $uvtag
+ uvtag=''
+ quiltmode=baredebian+tarball
+}
+
+baredebian-test-minimum () {
+ t-expect-fail 'contradicts clean mode git-ff' \
+ t-dgit -wgf --dgit-view-save=split.f1 --$quiltmode quilt-fixup
+
+ t-dgit -wn --dgit-view-save=split.f1 --$quiltmode quilt-fixup
+}
+
+baredebian-test-core-prepush () {
+ tar --strip-components=1 -axf ../$origbase.tar.*
+ for comp in $xorigcomps; do
+ mkdir $comp
+ cd $comp
+ tar --strip-components=1 -axf ../../$origbase-$comp.tar.*
+ cd ..
+ done
+
+ cd debian
+ git clean -xdff
+ git checkout HEAD -- .
+ cd ..
+
+ # Now we are in this insane state that people seem to expect
+
+ export QUILT_PATCHES=debian/patches
+ quilt push -a
+
+ git add -Af .
+ git reset .pc
+ git diff --cached --exit-code split.f1 -- :/ :!/debian
+ git diff --exit-code HEAD..split.f1 -- :/debian
+ git reset
+
+ quilt new made-with-quilt
+ quilt add src.c
+ echo //omg >>src.c
+ quilt refresh
+
+ git add debian/patches/.
+ t-commit 'extra patch made with quilt' 1.0-2
+
+ t-refs-same-start
+ t-ref-head
+ t-dgit -wn --quilt=$quiltmode --dgit-view-save=split.b quilt-fixup
+ t-ref-head
+}
+
+baredebian-test-core-push () {
+ dpkg-buildpackage -uc -us --build=source
+ # ^ Do this by hand here not because we expect users to do this
+ # (rather than dgit build), but so that we can check that our
+ # output is the same as users are used to.
+
+ t-dgit -wn --quilt=$quiltmode --dgit-view-save=split.p --new push
+}
+
+baredebian-test-core-postpush () {
+ git merge-base --is-ancestor HEAD split.p
+ if [ "$uvtag" ]; then
+ git merge-base --is-ancestor $uvtag split.p
+ set +e; git merge-base HEAD $uvtag; rc=$?; set -e; [ $rc = 1 ]
+ fi
+
+ git clean -xdff
+ # t-pushed-good-* wants a clean tree to start with, but this
+ # workflow expects a mess
+
+ t-splitbrain-pushed-good-start
+ t-splitbrain-pushed-good--unpack
+
+ find . -mindepth 1 -maxdepth 1 \
+ \! -path ./debian \
+ \! -path ./.git \
+ -print0 \
+ | xargs -0r rm -rf --
+
+ t-splitbrain-pushed-good-end-made-dep14
+}
+
+baredebian-test-core () {
+ baredebian-test-core-prepush
+ baredebian-test-core-push
+ baredebian-test-core-postpush
+}
+
+baredebian-test () {
+ baredebian-test-vars
+ baredebian-test-minimum
+ baredebian-test-core
+}
bm-gbp-example-acts () {
t-gbp-example-prep
+ t-tstunt-parsechangelog
git checkout -b for-build-modes qc/quilt-tip-2
# build-modes cannot cope with branches containing /
: ${DGIT_BADCOMMIT_FIXUP:=$DGIT_TEST_INTREE/dgit-badcommit-fixup}
: ${DGIT_REPOS_SERVER_TEST:=$DGIT_TEST_INTREE/infra/dgit-repos-server}
: ${DGIT_SSH_DISPATCH_TEST:=$DGIT_TEST_INTREE/infra/dgit-ssh-dispatch}
+: ${DGIT_MIRROR_SSH_WRAP_TEST:=$DGIT_TEST_INTREE/infra/dgit-mirror-ssh-wrap}
+ : ${DGIT_DEBPUSH_TEST:=$DGIT_TEST_INTREE/git-debpush}
: ${DGIT_INFRA_PFX:=$DGIT_TEST_INTREE${DGIT_TEST_INTREE:+/infra/}}
: ${DGIT_GITDEBREBASE_TEST:=$DGIT_TEST_INTREE/git-debrebase}
: ${DGIT_MANPAGES_SOURCE_DIR:=$DGIT_TEST_INTREE}
+ : ${DEBPUSH_GIT_PLAYTREE_SETUP:=$DGIT_TEST_INTREE/git-playtree-setup}
export DGIT_TEST DGIT_BADCOMMIT_FIXUP
export DGIT_REPOS_SERVER_TEST DGIT_SSH_DISPATCH_TEST
- export DGIT_MANPAGES_SOURCE_DIR
+ export DGIT_MIRROR_SSH_WRAP_TEST
+ export DGIT_MANPAGES_SOURCE_DIR DEBPUSH_GIT_PLAYTREE_SETUP
export PERLLIB="$DGIT_TEST_INTREE${PERLLIB:+:}${PERLLIB}"
}
t-nmu-upload-3 () {
t-dch-commit-r
-
- t-dgit -wgf build-source
-
- cd ..
- c=${p}_${v}_source.changes
- debsign -kBCD22CD83243B79D3DFAC33EA3DBCBC039B13D8A $c
- dput -c $tmp/dput.cf test-dummy $c
-
- t-archive-process-incoming sid
- t-git-next-date
- cd $p
+ t-non-dgit-upload
git checkout master
}
--- /dev/null
+Format: 3.0 (quilt)
+Source: example
+Binary: example
+Architecture: all
+Version: 1.0-1+brokenmeta
+Maintainer: Ian Jackson <ijackson@chiark.greenend.org.uk>
+Standards-Version: 3.9.4.0
+Build-Depends: debhelper (>= 8)
+Package-List:
+ example deb devel extra arch=all
+Checksums-Sha1:
+ 2bc730f941db49de57e9678fb0b07bd95507bb44 236 example_1.0.orig-docs.tar.gz
+ 4bff9170ce9b10cb59937195c5ae2c73719fe150 373 example_1.0.orig.tar.gz
+ 68e0e1e3ec092409652d047e62bd3f0dba5a51f3 1304 example_1.0-1+brokenmeta.debian.tar.xz
+Checksums-Sha256:
+ ad9671f6b25cdd9f0573f803f702448a45a45183db1d79701aa760bccbeed29c 236 example_1.0.orig-docs.tar.gz
+ a3ef7c951152f3ec754f96fd483457aa88ba06df3084e6f1cc7c25b669567c17 373 example_1.0.orig.tar.gz
+ 3ef0a50e3c0e025d0facada85d4508469c88150504c079698ae329c0c18bf315 1304 example_1.0-1+brokenmeta.debian.tar.xz
+Files:
+ cb0cb5487b1e5bcb82547396b4fe93e5 236 example_1.0.orig-docs.tar.gz
+ 599f47808a7754c66aea3cda1b3208d6 373 example_1.0.orig.tar.gz
+ 2ed3f4310bdda12b58b1b412d1c88dd9 1304 example_1.0-1+brokenmeta.debian.tar.xz
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+. $troot/lib-gdr
+
+t-dependencies GDR DEBORIG quilt
+
+t-archive-none example
+t-git-none
+
+t-gdr-gbp-import-core-with-queue
+
+git-deborig
+
+for b in \
+ patch-queue/quilt-tip \
+ gitish-only \
+ quilt-tip-1.1 \
+ quilt-tip-2 \
+ indep-arch \
+; do
+ git branch -D $b
+done
+
+git rm -rf . # yikes
+git checkout HEAD -- debian
+t=$(git write-tree)
+t=$(git commit-tree -m 'Convert to bare debian' $t)
+git reset --hard $t
+
+t-setup-done '' "$(echo $p*) git mirror aq" '
+ t-select-package example
+ t-git-next-date
+'
git clean -xdff
-t-setup-done 'p v suitespecs majorv revision' "aq git mirror $p"
+t-setup-done 'v suitespecs majorv revision' "aq git mirror $p" "
+ t-select-package $p
+"
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+
+t-archive-none example
+t-git-none
+t-worktree 1.0
+
+cd $p
+
+: '----- construct an unpatched branch with patches -----'
+
+git checkout patch-queue/quilt-tip
+gbp pq export
+: 'now on quilt-tip'
+git add debian/patches
+git commit -m 'Commit patch queue'
+
+: '----- construct an upstream branch -----'
+
+git checkout --orphan upstream
+git reset --hard
+git clean -xdf
+
+tar --strip-components=1 -xf $troot/pkg-srcs/${p}_1.0.orig.tar.gz
+
+mkdir docs
+cd docs
+tar --strip-components=1 -xf $troot/pkg-srcs/${p}_1.0.orig-docs.tar.gz
+cd ..
+
+git add -Af .
+git commit -m 'Import 1.0'
+git tag upstream/1.0
+
+git checkout quilt-tip
+t-git-pseudo-merge -m 'gbp-orig pseudomerge' upstream
+
+v=1.0-1
+
+git checkout -B master
+
+cd ..
+
+t-setup-done 'v' "$(echo $p*) git mirror aq" '
+ t-select-package example
+ t-git-next-date
+'
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+
+t-dependencies libhttp-server-simple-static-perl
+
+t-setup-done '' --files-from=/dev/null '
+ $troot/http-static-server >$tmp/must-clean/git-check.port $tmp/git
+ read <$tmp/must-clean/git-check.port git_check_port
+
+ t-git-config --global dgit-distro.test-dummy.git-check url
+ t-git-config --global dgit-distro.test-dummy.git-check-suffix .git/HEAD
+ t-git-config --global dgit-distro.test-dummy.git-check-url \
+ http://127.0.0.1:$git_check_port
+'
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+
+t-setup-import examplegit
+t-setup-import http-git-check
+
+cd $p
+
+git checkout -b nondgit
+t-commit 'non-dgit upload'
+t-non-dgit-upload
+
+cd ..
+
+t-dgit clone $p ./$p.2
+cd $p.2
+
+t-commit 'now a dgit upload again'
+
+t-dgit -wgf push-source
+t-refs-same-start
+t-pushed-good dgit/sid
+
+t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+. $troot/lib-baredebian
+
+t-dependencies quilt
+
+t-setup-import baredebian
+t-tstunt-parsechangelog
+
+cd $p
+baredebian-test-vars
+baredebian-tarball-mode
+
+rm -f ../example_1.0.orig.tar.*
+cp $troot/pkg-srcs/${p}_${uv}.orig*.tar.* ..
+xorigcomps=docs
+
+git tag -d $uvtag
+
+baredebian-test-minimum
+baredebian-test-core
+
+combine=$(
+ git log --pretty=format:%H \
+ --grep "Combine orig tarballs for example $uv" split.p
+)
+
+parentnum=0
+for comp in '' $xorigcomps; do
+ parentnum=$(( $parentnum + 1 ))
+ fn=${origbase}${comp:+-}${comp}.tar.gz
+
+ git checkout --orphan imp$parentnum
+ git rm -rf .
+ tar --strip-components=1 -axf ../$fn
+ git add -Af .
+
+ git commit -m P$parentnum
+ git diff --stat --exit-code $combine^$parentnum
+
+ count=$(git log $combine^$parentnum | grep -Fc $fn)
+ [ $count = 2 ]
+done
+
+t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+. $troot/lib-baredebian
+
+t-dependencies quilt
+
+t-setup-import baredebian
+t-tstunt-parsechangelog
+
+cd $p
+baredebian-test-vars
+quiltmode=baredebian+git
+
+baredebian-test-minimum
+
+t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+. $troot/lib-baredebian
+
+t-dependencies quilt
+
+t-setup-import baredebian
+t-tstunt-parsechangelog
+
+cd $p
+baredebian-test
+
+t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+. $troot/lib-baredebian
+
+t-dependencies quilt
+
+t-setup-import baredebian
+t-tstunt-parsechangelog
+
+cd $p
+baredebian-test-vars
+baredebian-tarball-mode
+
+t-expect-fail 'Could not determine appropriate upstream commitish' \
+t-dgit -wn --dgit-view-save=split.g --baredebian quilt-fixup
+
+baredebian-test-minimum
+baredebian-test-core
+
+t-ok
set -e
. tests/lib
+t-setup-import http-git-check
+
t-archive pari-extra 3-1
t-git-none
cp -a $tmp/git/_template $dgitrepo
set -e
. tests/lib
+t-setup-import http-git-check
+
t-archive pari-extra 3-1
t-git-none
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+
+t-dependencies libhttp-server-simple-static-perl
+
+$troot/http-static-server >$tmp/must-clean/mirror.port $tmp/mirror
+read <$tmp/must-clean/mirror.port mirror_port
+
+t-git-config --global dgit-distro.test-dummy.mirror \
+ http://127.0.0.1:$mirror_port/
+
+t_archive_ln_s=cp
+
+t-archive example 1.0-1
+t-git-none
+
+perl -i -ne '
+ print or die $!;
+ s/1.0-1/1.0-1+0.1/g;
+ s/ \w/ sprintf " %x", $& ^ 1 /e;
+ print or die $!;
+' $tmp/aq/package.sid.$p
+t-aq-archive-updated sid $p
+
+LC_MESSAGES=C \
+t-dgit clone $p 2>&1 |tee got.message
+
+grep 'Warning: archive skew detected.' got.message
+egrep 'We were able to obtain only *1.0-1$' got.message
+
+cd $p
+t-cloned-fetched-good
+
+t-ok
vanished=$v
-t-dgit push --new --deliberately-include-questionable-history
+t-dgit push --new --deliberately-include-questionable-history \
+ --force-reusing-version
t-git-dir-check secret
t-policy-periodic
"Package is in NEW and has not been accepted or rejected yet" \
t-dgit --deliberately-TEST-dgit-only-not-fast-forward push
-t-dgit --deliberately-not-fast-forward push
+t-dgit --deliberately-not-fast-forward --force-reusing-version push
cd $dgitrepo
t-expect-push-fail "Not a valid object name" \
"Package is in NEW and has not been accepted or rejected yet" \
t-dgit push
-t-dgit push --deliberately-include-questionable-history
+t-dgit push --deliberately-include-questionable-history \
+ --force-reusing-version
t-archive-process-incoming sid
t-dgit build
t-expect-push-fail \
'Reason: rewound suite sid; --deliberately-not-fast-forward specified' \
-t-dgit push
+t-dgit --force-reusing-version push
t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+
+t-tstunt-parsechangelog
+
+t-debpolicy
+t-prep-newpackage example 1.0
+
+cd $p
+revision=1
+git tag start
+t-dgit setup-mergechangelogs
+
+
+: upload
+
+t-dgit push-source --new
+
+: cut
+
+rm $tmp/incoming/*
+t-archive-none example
+
+touch -d 'now -1 day' $tmp/git/example*
+
+t-policy-periodic # xxx maybe want test both with and without this
+
+: edit
+t-commit 'edit after cut'
+
+: push, needs --deliberately
+
+t-expect-push-fail \
+ 'all previously pushed versions were found to have been removed from NEW' \
+t-dgit push-source --new
+
+t-dgit push-source --new --deliberately-include-questionable-history \
+ --force-reusing-version
+
+t-archive-process-incoming new
+
+# : t-policy-periodic # maybe want test with this
+
+: accept
+
+mv -f $tmp/aq/package.{new,sid}.$p
+t-aq-archive-updated sid $p
+
+# : t-policy-periodic # maybe want test with this
+
+t-git-dir-time-passes
+
+: 3rd push, no deliberately
+
+t-commit 'edit after accept'
+t-dgit push-source
+
+t-ok
mustfail 'push is missing head ref update' +$push_spec2
mustfail 'pushing unexpected ref' $push_spec HEAD:refs/wombat
mustfail 'pushing multiple heads' $push_spec HEAD:refs/dgit/wombat
-mustfail E:'pushing multiple tags|pushing too many similar tags' \
+mustfail E:'pushing multiple tags|pushing too many similar tags|need exactly one archive' \
$push_spec HEAD:refs/tags/$tagpfx/wombat
prep unstable sid
mktag
mustfail 'not replacing previously-pushed version' +$push_spec1 +$push_spec2
-t-newtag
re-prep
mktag
mustfail 'not replacing previously-pushed version' +$push_spec1 +$push_spec2
cd $p
t-cloned-fetched-good
-t-has-ancestor debian/3-1
+t-has-ancestor test-dummy/3-1
t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+
+t-tstunt-parsechangelog
+t-buildproductsdir-config
+
+t-archive example 1.0-1
+t-select-package example
+t-git-none
+
+t-dgit clone $p
+cd $p
+
+echo '/* More patch */' >>src.c
+git add src.c
+
+t-commit 'More patch' 1.0-2
+
+t-refs-same-start
+t-ref-head
+t-dgit --split-view push-source
+t-ref-head
+
+
+t-commit 'More more patch' 1.0-3
+
+t-dgit --split-view --save-dgit-view=split.b quilt-fixup
+
+git reflog expire --expire=all refs/dgit-intern/quilt-cache
+test "x$(git reflog refs/dgit-intern/quilt-cache)" = x
+
+t-refs-same-start
+t-ref-head
+t-dgit --split-view --save-dgit-view=split.p push-source
+t-ref-head
+
+suite=sid
+
+t-splitbrain-pushed-good-start
+t-splitbrain-pushed-good--unpack
+t-splitbrain-rm-1-patch more-patch.patch
+t-splitbrain-pushed-good-end-made-dep14
+
+t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+
+# This tests a native package with split view, including that the
+# pseudomerges end up in the right place.
+
+t-setup-import examplegit
+
+cd $p
+
+suite=stable
+
+t-commit 'No changes, just send to stable' '' stable
+
+t-refs-same-start
+t-ref-head
+
+try () {
+ t-dgit -wgf --split-view "$@" --dgit-view-save=split.p \
+ push-source stable
+}
+
+t-expect-fail E:'maintainer view tag.*not fast forward' \
+try
+
+t-expect-fail F:'debian/changelog does not mention 1.2' \
+try --overwrite
+
+try --overwrite=1.2
+git branch -f split.b split.p
+
+t-ref-head
+t-split-unchanged-pushed-good $suite
+
+t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+
+t-archive-none example
+
+t-dependencies libhttp-server-simple-static-perl
+
+$troot/http-static-server >$tmp/must-clean/api.port $tmp/aq
+
+read <$tmp/must-clean/api.port api_port
+
+t-git-config --global dgit-distro.test-dummy.archive-query ftpmasterapi:
+t-git-config --global dgit-distro.test-dummy.archive-query-url \
+ http://127.0.0.1:$api_port/
+
+t-dgit archive-api-query suites
+
+t-ok
set -e
. tests/lib
-t-tstunt-parsechangelog
-t-tstunt-debuild
-t-tstunt-lintian
-
-t-archive-none example
-t-git-none
-t-worktree 1.0
+t-setup-import gbp
cd $p
-: '----- construct an unpatched branch with patches -----'
-
-git checkout patch-queue/quilt-tip
-gbp pq export
-: 'now on quilt-tip'
-git add debian/patches
-git commit -m 'Commit patch queue'
-
-: '----- construct an upstream branch -----'
-
-git checkout --orphan upstream
-git reset --hard
-git clean -xdf
-
-tar --strip-components=1 -xf $troot/pkg-srcs/${p}_1.0.orig.tar.gz
-
-mkdir docs
-cd docs
-tar --strip-components=1 -xf $troot/pkg-srcs/${p}_1.0.orig-docs.tar.gz
-cd ..
-
-git add -Af .
-git commit -m 'Import 1.0'
-git tag upstream/1.0
-
-git checkout quilt-tip
-t-git-pseudo-merge -m 'gbp-orig pseudomerge' upstream
-
-v=1.0-1
+t-tstunt-parsechangelog
+t-tstunt-debuild
+t-tstunt-lintian
: '----- let gbp build a .orig for comparison -----'
-gbp buildpackage --git-ignore-branch --git-no-sign-tags -us -uc
+gbp buildpackage --git-no-sign-tags -us -uc
mkdir ../gbp-output
mv ../*1.0* ../gbp-output/.
t-dgit push-source
t-gdr-good pushed-interop
+t-expect-fail E:'add a new changelog stanza.*and try again' \
+t-dgit push-source
+
git branch before-noop
t-git-next-date
t-tstunt-parsechangelog
t-setup-import gdr-convert-gbp
+t-setup-import http-git-check
cd $p
t-dgit import-dsc $dsc2 +$branch
check-imported $dsc2
+dsc3=$troot/pkg-srcs/example_1.0-1+brokenmeta.dsc
+t-dgit import-dsc $dsc3 +$branch
+check-imported $dsc3
+
cd ..
mkdir $p.2
cd $p.2
autoimport=
. tests/lib
-t-dependencies man-db make groff git-debrebase
+t-dependencies man-db make groff git-debrebase git-debpush
cd $root
eval "$cmd 2>&1 >/dev/null |tee $errs"
}
+cat >$tmp/always-expected <<'END'
+ERROR.*
+END
+
for roff in $manpages; do
for fmt in txt ps; do
- >$tmp/$roff.$fmt-expected
+ cat $tmp/always-expected >$tmp/$roff.$fmt-expected
done
done
expected () {
- cat >$tmp/$2.$1-expected
+ cat >>$tmp/$2.$1-expected
}
not_egrep_vxPf () {
: $sentinel
cat >&2 $sentinel
shift # eat HOST
-sh -c "\$*"
+export SSH_ORIGINAL_COMMAND="\$*"
+exec \${DGIT_MIRROR_SSH_WRAP_TEST-dgit-mirror-ssh-wrap} \
+ '$tmp/git-mirror/' .git --
END
chmod +x $tmp/stunt-ssh
+++ /dev/null
-#!/bin/bash
-set -e
-. tests/lib
-t-alt-test
+++ /dev/null
-#!/bin/bash
-set -e
-. tests/lib
-
-t-setup-import examplegit
-t-tstunt-parsechangelog
-
-cd $p
-
-test-push () {
- t-commit "$1"
- t-dgit -wgf build-source
- t-dgit push
-}
-
-for count in 1 2; do
- t-oldtag
- test-push "oldtag $count"
-
- t-newtag
- test-push "newtag $count"
-done
-
-t-ok
-
+++ /dev/null
-#!/bin/bash
-set -e
-. tests/lib
-t-alt-test
t-tstunt-parsechangelog
t-gbp-example-prep-no-ff
-t-newtag
t-dgit --quilt=gbp --dgit-view-save=split.b build-source
t-dgit -cdgit-distro.test-dummy.git-url=file:///dev/enoent/fail \
push --new
-t-dgit push --new
+t-dgit push --new --force-reusing-version
t-ok
t-expect-fail 'quilt fixup cannot be linear' \
t-dgit build-source
-t-git-config dgit-distro.test-dummy.dgit-tag-format new
-t-expect-fail 'requires split view so server needs to support' \
-t-dgit -wgf --quilt=gbp build-source
-t-newtag
-
t-dgit --quilt=gbp --dgit-view-save=split.b1 build-source
git rev-parse split.b1
git commit -a -m 'go back to plain upstream'
t-dgit -wgf build-source
-t-dgit --damp-run push
+t-dgit --damp-run --force-reusing-version push
t-ok
t-tstunt-parsechangelog
-t-newtag
-
# Easiest way to make a patches-unapplied but not-gbp tree is
# to take the patches-unapplied tree and by-hand commit the .gitignore
# changes as a debian patch.
t-dgit "$@" --quilt=$qmode --dgit-view-save=split.b build-source
t-dgit "$@" --quilt=$qmode --dgit-view-save=split.p push
- t-$qmode-pushed-good
+ t-$qmode-pushed-good $suite
}
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+
+t-tstunt-parsechangelog
+
+t-gbp-example-prep
+
+t-dgit -wgf --quilt=gbp --dgit-view-save=split.b build-source
+
+mkdir $tmp/empty
+cd $tmp/empty
+t-dgit --quilt=gbp --dgit-view-save=split.p \
+ --ssh=$troot/ssh rpush somehost:$tmp/$p
+
+cd $tmp/$p
+t-gbp-pushed-good
+
+t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+
+t-dependencies DEBORIG git-debpush
+
+t-debpolicy
+
+t-archive-none example
+t-git-none
+t-worktree 1.0
+
+v=1.0-1
+
+cd $p
+git checkout -b native
+
+git checkout --orphan upstream quilt-tip-2
+git rm -rf debian
+git commit -m 'pseudo-upstream'
+upstreamtag=UPSTREAM/RELEASE/1.0
+git tag $upstreamtag
+
+git checkout -B master quilt-tip-2
+
+echo foo >bar
+git add bar
+git commit -m"corrupt the upstream source to test upstream-nonidentical check"
+
+t-tagupl-settings
+
+tagname=test-dummy/$v
+
+t-expect-fail "the upstream source in tag $upstreamtag is not identical to the upstream source in refs/heads/master" \
+t-tagupl-test --quilt=gbp --upstream=$upstreamtag
+
+git reset --hard HEAD~1
+
+t-expect-fail "upstream tag $upstreamtag is not an ancestor of refs/heads/master" \
+t-tagupl-test --quilt=gbp --upstream=$upstreamtag
+
+t-expect-fail "upstream tag $upstreamtag is not an ancestor of refs/heads/master" \
+t-tagupl-test --quilt=gbp --force=suite --force=no-such-force-option --upstream=$upstreamtag
+
+t-tagupl-test --quilt=gbp --force=suite --force=no-such-force-option-1 \
+ --force=upstream-nonancestor,no-such-force-option-2 \
+ --upstream=$upstreamtag
+t-pushed-good master
+
+# todo: test each miss/rejection
+
+ident=ok
+
+git cat-file tag $tagname >../basetag
+v=1.0-2
+tagname=test-dummy/$v
+
+perl -i -ne '
+ next if $.==1../^$/;
+ next if m/^----/..0;
+ s/\b1\.0-1\b/1.0-2/g;
+ print or die $!;
+' ../basetag
+
+mv-ident () {
+ local f=$tmp/$1
+ if test -e $f; then
+ mv $f $f--$ident
+ fi
+}
+
+next-mangle () {
+ mv-ident tagupl/overall.log
+ mv-ident sendmail.log
+ ident=$1
+}
+
+with-mangled () {
+ local perl=$1
+ perl <../basetag >../badtag-$ident -pe "$perl"
+ git tag -u Senatus -f -s -m "$(cat ../badtag-$ident)" "$tagname"
+
+ LC_MESSAGES=C \
+ t-tagupl-run-drs $tmp/$p
+}
+
+expect-quit () {
+ next-mangle "$1"
+ local perl=$2
+ local mregexp=$3
+ with-mangled "$perl"
+ egrep ": $mregexp" ../tagupl/overall.log
+}
+
+expect-email () {
+ next-mangle "$1"
+ local perl=$2
+ local mregexp=$3
+ with-mangled "$perl"
+ egrep 'Was not successful' ../sendmail.log
+ egrep "$mregexp" ../sendmail.log
+ egrep ": failed, emailed" ../tagupl/overall.log
+}
+
+raw-mangled () {
+ git update-ref refs/tags/$tagname \
+ $(git hash-object -w -t tag ../tagobj-$ident)
+ t-tagupl-run-drs $tmp/$p
+}
+
+tagname=test-dummy/1.2
+t-expect-fail E:'failed command: git fetch' \
+t-tagupl-run-drs $tmp/$p
+
+tagname=splorf/$v ; expect-quit baddistro '' 'tag name not for us'
+tagname=test-dummy/1,2; expect-quit badver '' 'tag name not for us'
+tagname=test-dummy/$v
+
+expect-quit noplease s/please-upload/plunk/ 'tag missing please-upload'
+
+expect-email vermatch 's/^example release /$&3/' 'reject: version mismatch'
+
+expect-email unkinfo 's/^\[dgit please-upload/$& Rejectme/' \
+ 'unknown dgit info in tag'
+
+expect-quit unkdistro 's/test-dummy/ubuntu/ if m/^\[dgit/' \
+ 'not for this distro'
+
+expect-email notsplit 's/ split / no-split /' 'reject: missing "split"'
+
+expect-email upsnot1 's/ upstream=/ uxstream=/' \
+ 'reject: upstream tag and not commitish'
+
+expect-email upsnot2 's/ upstream-tag=/ uxstream-tag=/' \
+ 'reject: upstream tag and not commitish'
+
+expect-email bupstag1 's/ upstream-tag=/$&:/' \
+ "failed command: git check-ref-format"
+
+expect-email bupstag2 's/ upstream-tag=/$&x/' \
+ "[Cc]ouldn't find remote ref refs/tags/xUPSTREAM"
+
+expect-email wrongver '' 'mismatch: changelog Version'
+
+v=1.0-2
+
+t-dch-commit -v $v -m bump
+
+expect-email upsmism 's/ upstream=/$&3/' \
+ "but tag refers to"
+
+expect-email wrongpkg 's/^example /explosive /' 'mismatch: changelog Source'
+
+# we are going to trash $p because it will contain corrupted objects
+# which makes our end-of-test fsck fail
+cp -al ../$p ../$p.save
+cd ../$p
+
+git cat-file tag $tagname >../raw-base
+
+next-mangle sigfail
+perl -pe <../raw-base >../tagobj-$ident 's/ split / split ignoreme /'
+raw-mangled
+grep 'gpgv: BAD signature' ../sendmail.log
+
+next-mangle nosig
+perl -ne <../raw-base >../tagobj-$ident 'print unless m/^-----/..0'
+raw-mangled
+grep 'missing signature' ../sendmail.log
+
+git cat-file tag test-dummy/1.0-1 >../raw-base
+
+next-mangle badtagger
+perl -pe <../raw-base '
+ s/\+\d+$/xyz/ if m/^tagger /;
+ exit 0 if m/^$/;
+' >../tagobj-$ident
+echo >>../tagobj-$ident
+cat ../basetag >>../tagobj-$ident
+raw-mangled
+grep 'failed to fish tagger out of tag' ../tagupl/overall.log
+
+cd ..
+rm -rf $p
+mv $p.save $p
+
+t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+. $troot/lib-baredebian
+
+t-dependencies quilt git-debpush
+
+t-debpolicy
+
+t-setup-import baredebian
+
+cd $p
+
+baredebian-test-vars
+t-tagupl-settings
+
+baredebian-test-minimum
+baredebian-test-core-prepush
+
+
+sed -i '15icorruption' debian/patches/0002-Edit-the-.c-file.patch
+git add debian/patches/0002-Edit-the-.c-file.patch
+git commit -m"corrupt a quilt patch to test the patches-applicable check"
+
+tagname=test-dummy/$v
+
+t-expect-fail "'git apply' failed to apply patch 0002-Edit-the-.c-file.patch ('patches-applicable' check)" \
+t-tagupl-test --baredebian
+
+git reset --hard HEAD~1
+
+t-tagupl-test --baredebian
+
+git branch split.p dgit/dgit/sid # we didn't generate this here
+
+baredebian-test-core-postpush
+
+t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+. $troot/lib-baredebian
+
+t-dependencies git-debpush DEBORIG
+
+t-setup-import gbp
+
+t-debpolicy
+
+cd $p
+
+git deborig
+
+t-dgit -wgf --quilt=gbp --dgit-view-save=split.b quilt-fixup
+
+t-tagupl-settings
+
+tagname=test-dummy/$v
+
+t-tagupl-test --gbp
+
+git branch split.p dgit/dgit/sid # we didn't generate this here
+
+t-gbp-pushed-good sid
+
+t-ok
--- /dev/null
+#!/bin/bash
+set -e
+. tests/lib
+
+t-dependencies git-debpush
+
+t-debpolicy
+
+t-archive-none example
+t-git-none
+t-worktree 1.1
+
+v=1.0-1
+
+cd $p
+git checkout -B master
+
+t-tagupl-settings
+
+printf '%s\n' -sn >debian/source/options
+git add debian/source/options
+git rm -f debian/source/format
+git commit -m 'convert to 1.0 native'
+
+tagname=test-dummy/$v
+
+t-tagupl-test
+t-pushed-good master
+
+t-ok
git checkout $tagpfx/1.0
t-dgit build
-t-dgit push --deliberately-fresh-repo
+t-dgit push --deliberately-fresh-repo --force-reusing-version
remote="`git config dgit-distro.test-dummy.git-url`/$p.git"
--- /dev/null
+#!/bin/bash
+# NB This requires use of t-chain-test-somehow.
+set -ex
+oldpwd=$(pwd)
+cd "$DGIT_TEST_TROOT/.."
+. tests/lib
+cd "$oldpwd"
+trap '' EXIT # preserves our exit status
+t-dgit "$@"
--- /dev/null
+#!/bin/sh
+set -e
+exec >>"$DGIT_TEST_TMP/sendmail.log"
+echo '----------------------------------------------------------------'
+date
+printf "sendmail %s\n" "$*"
+cat
+echo