chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dgit: Fix message about missing quilt cache entry
[dgit.git]
/
dgit
diff --git
a/dgit
b/dgit
index bc8274ff426f591b1a7d81a82e6a1b3c7b8769ca..3a9b46c13330bd9931ea46bb72cebf9175adf4eb 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-100,6
+100,8
@@
our $git_authline_re = '^([^<>]+) \<(\S+)\> (\d+ [-+]\d+)$';
our $splitbraincache = 'dgit-intern/quilt-cache';
our $rewritemap = 'dgit-rewrite/map';
our $splitbraincache = 'dgit-intern/quilt-cache';
our $rewritemap = 'dgit-rewrite/map';
+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 (@git) = qw(git);
our (@dget) = qw(dget);
our (@curl) = (qw(curl --proto-redir), '-all,http,https', qw(-L));
@@
-111,8
+113,8
@@
our (@ssh) = 'ssh';
our (@dgit) = qw(dgit);
our (@aptget) = qw(apt-get);
our (@aptcache) = qw(apt-cache);
our (@dgit) = qw(dgit);
our (@aptget) = qw(apt-get);
our (@aptcache) = qw(apt-cache);
-our (@dpkgbuildpackage) =
qw(dpkg-buildpackage -i\.git/ -I.git
);
-our (@dpkgsource) =
qw(dpkg-source -i\.git/ -I.git
);
+our (@dpkgbuildpackage) =
(qw(dpkg-buildpackage), @dpkg_source_ignores
);
+our (@dpkgsource) =
(qw(dpkg-source), @dpkg_source_ignores
);
our (@dpkggenchanges) = qw(dpkg-genchanges);
our (@mergechanges) = qw(mergechanges -f);
our (@gbp_build) = ('');
our (@dpkggenchanges) = qw(dpkg-genchanges);
our (@mergechanges) = qw(mergechanges -f);
our (@gbp_build) = ('');
@@
-277,6
+279,10
@@
sub gbp_pq {
return opts_opt_multi_cmd @gbp_pq;
}
return opts_opt_multi_cmd @gbp_pq;
}
+sub dgit_privdir () {
+ our $dgit_privdir_made //= ensure_a_playground 'dgit';
+}
+
#---------- remote protocol support, common ----------
# remote push initiator/responder protocol:
#---------- remote protocol support, common ----------
# remote push initiator/responder protocol:
@@
-980,8
+986,8
@@
sub commit_getclogp ($) {
our %commit_getclogp_memo;
my $memo = $commit_getclogp_memo{$objid};
return $memo if $memo;
our %commit_getclogp_memo;
my $memo = $commit_getclogp_memo{$objid};
return $memo if $memo;
- mkpath '.git/dgit';
- my $mclog =
".git/dgit/clog-$objid
";
+
+ my $mclog =
dgit_privdir()."clog
";
runcmd shell_cmd "exec >$mclog", @git, qw(cat-file blob),
"$objid:debian/changelog";
$commit_getclogp_memo{$objid} = parsechangelog("-l$mclog");
runcmd shell_cmd "exec >$mclog", @git, qw(cat-file blob),
"$objid:debian/changelog";
$commit_getclogp_memo{$objid} = parsechangelog("-l$mclog");
@@
-1672,6
+1678,7
@@
our ($dsc_distro, $dsc_hint_tag, $dsc_hint_url);
sub prep_ud () {
sub prep_ud () {
+ dgit_privdir(); # ensures that $dgit_privdir_made is based on $maindir
fresh_playground 'dgit/unpack';
}
fresh_playground 'dgit/unpack';
}
@@
-2376,7
+2383,7
@@
END
local $ENV{GIT_AUTHOR_DATE} = $authline[2];
my $path = $ENV{PATH} or die;
local $ENV{GIT_AUTHOR_DATE} = $authline[2];
my $path = $ENV{PATH} or die;
-
+
# we use ../../gbp-pq-output, which (given that we are in
# $playground/PLAYTREE, and $playground is .git/dgit/unpack,
# is .git/dgit.
# we use ../../gbp-pq-output, which (given that we are in
# $playground/PLAYTREE, and $playground is .git/dgit/unpack,
# is .git/dgit.
@@
-3163,7
+3170,7
@@
END
my $author = clogp_authline $useclogp;
my $cversion = getfield $useclogp, 'Version';
my $author = clogp_authline $useclogp;
my $cversion = getfield $useclogp, 'Version';
- my $mcf =
".git/dgit
/mergecommit";
+ my $mcf =
dgit_privdir()."
/mergecommit";
open MC, ">", $mcf or die "$mcf $!";
print MC <<END or die $!;
tree $tree
open MC, ">", $mcf or die "$mcf $!";
print MC <<END or die $!;
tree $tree
@@
-3223,7
+3230,6
@@
END
fetch_from_archive_record_1($hash);
if (defined $skew_warning_vsn) {
fetch_from_archive_record_1($hash);
if (defined $skew_warning_vsn) {
- mkpath '.git/dgit';
printdebug "SKEW CHECK WANT $skew_warning_vsn\n";
my $gotclogp = commit_getclogp($hash);
my $got_vsn = getfield $gotclogp, 'Version';
printdebug "SKEW CHECK WANT $skew_warning_vsn\n";
my $gotclogp = commit_getclogp($hash);
my $got_vsn = getfield $gotclogp, 'Version';
@@
-3262,8
+3268,9
@@
sub setup_mergechangelogs (;$) {
my $driver = 'dpkg-mergechangelogs';
my $cb = "merge.$driver";
my $driver = 'dpkg-mergechangelogs';
my $cb = "merge.$driver";
- my $attrs = '.git/info/attributes';
- ensuredir '.git/info';
+ confess unless defined $maindir;
+ my $attrs = "$maindir_gitcommon/info/attributes";
+ ensuredir "$maindir_gitcommon/info";
open NATTRS, ">", "$attrs.new" or die "$attrs.new $!";
if (!open ATTRS, "<", $attrs) {
open NATTRS, ">", "$attrs.new" or die "$attrs.new $!";
if (!open ATTRS, "<", $attrs) {
@@
-3308,15
+3315,16
@@
sub ensure_setup_existing_tree () {
set_local_git_config $k, 'true';
}
set_local_git_config $k, 'true';
}
-sub open_gitattrs () {
- my $gai = new IO::File ".git/info/attributes"
+sub open_main_gitattrs () {
+ confess 'internal error no maindir' unless defined $maindir;
+ my $gai = new IO::File "$maindir_gitcommon/info/attributes"
or $!==ENOENT
or $!==ENOENT
- or die "open
.git
/info/attributes: $!";
+ or die "open
$maindir_gitcommon
/info/attributes: $!";
return $gai;
}
sub is_gitattrs_setup () {
return $gai;
}
sub is_gitattrs_setup () {
- my $gai = open_gitattrs();
+ my $gai = open_
main_
gitattrs();
return 0 unless $gai;
while (<$gai>) {
return 1 if m{^\[attr\]dgit-defuse-attrs\s};
return 0 unless $gai;
while (<$gai>) {
return 1 if m{^\[attr\]dgit-defuse-attrs\s};
@@
-3336,15
+3344,15
@@
sub setup_gitattrs (;$) {
END
return;
}
END
return;
}
- my $af = "
.git
/info/attributes";
- ensuredir
'.git/info'
;
+ my $af = "
$maindir_gitcommon
/info/attributes";
+ ensuredir
"$maindir_gitcommon/info"
;
open GAO, "> $af.new" or die $!;
print GAO <<END or die $!;
* dgit-defuse-attrs
[attr]dgit-defuse-attrs $negate_harmful_gitattrs
# ^ see GITATTRIBUTES in dgit(7) and dgit setup-new-tree in dgit(1)
END
open GAO, "> $af.new" or die $!;
print GAO <<END or die $!;
* dgit-defuse-attrs
[attr]dgit-defuse-attrs $negate_harmful_gitattrs
# ^ see GITATTRIBUTES in dgit(7) and dgit setup-new-tree in dgit(1)
END
- my $gai = open_gitattrs();
+ my $gai = open_
main_
gitattrs();
if ($gai) {
while (<$gai>) {
chomp;
if ($gai) {
while (<$gai>) {
chomp;
@@
-3836,8
+3844,7
@@
sub pseudomerge_make_commit ($$$$ $$) {
: !length $overwrite_version ? " --overwrite"
: " --overwrite=".$overwrite_version;
: !length $overwrite_version ? " --overwrite"
: " --overwrite=".$overwrite_version;
- mkpath '.git/dgit';
- my $pmf = ".git/dgit/pseudomerge";
+ my $pmf = dgit_privdir()."/pseudomerge";
open MC, ">", $pmf or die "$pmf $!";
print MC <<END or die $!;
tree $tree
open MC, ">", $pmf or die "$pmf $!";
print MC <<END or die $!;
tree $tree
@@
-4145,7
+4152,7
@@
END
rpush_handle_protovsn_bothends() if $we_are_initiator;
select_tagformat();
rpush_handle_protovsn_bothends() if $we_are_initiator;
select_tagformat();
- my $clogpfn =
".git/dgit
/changelog.822.tmp";
+ my $clogpfn =
dgit_privdir()."
/changelog.822.tmp";
runcmd shell_cmd "exec >$clogpfn", qw(dpkg-parsechangelog);
responder_send_file('parsed-changelog', $clogpfn);
runcmd shell_cmd "exec >$clogpfn", qw(dpkg-parsechangelog);
responder_send_file('parsed-changelog', $clogpfn);
@@
-4181,7
+4188,7
@@
END
quilt_check_splitbrain_cache($actualhead, $upstreamversion);
$dgithead or fail
"--quilt=$quilt_mode but no cached dgit view:
quilt_check_splitbrain_cache($actualhead, $upstreamversion);
$dgithead or fail
"--quilt=$quilt_mode but no cached dgit view:
- perhaps
tree
changed since dgit build[-source] ?";
+ perhaps
HEAD
changed since dgit build[-source] ?";
$split_brain = 1;
$dgithead = splitbrain_pseudomerge($clogp,
$actualhead, $dgithead,
$split_brain = 1;
$dgithead = splitbrain_pseudomerge($clogp,
$actualhead, $dgithead,
@@
-4296,7
+4303,7
@@
END
}
my @tagwants = push_tagwants($cversion, $dgithead, $maintviewhead,
}
my @tagwants = push_tagwants($cversion, $dgithead, $maintviewhead,
-
".git/dgit
/tag");
+
dgit_privdir()."
/tag");
my @tagobjfns;
supplementary_message(<<'END');
my @tagobjfns;
supplementary_message(<<'END');
@@
-4820,7
+4827,7
@@
sub quiltify_dpkg_commit ($$$;$) {
my ($patchname,$author,$msg, $xinfo) = @_;
$xinfo //= '';
my ($patchname,$author,$msg, $xinfo) = @_;
$xinfo //= '';
- mkpath '.git/dgit';
+ mkpath '.git/dgit';
# we are in playtree
my $descfn = ".git/dgit/quilt-description.tmp";
open O, '>', $descfn or die "$descfn: $!";
$msg =~ s/\n+/\n\n/;
my $descfn = ".git/dgit/quilt-description.tmp";
open O, '>', $descfn or die "$descfn: $!";
$msg =~ s/\n+/\n\n/;
@@
-5016,8
+5023,8
@@
END
changedir $maindir;
# When we no longer need to support squeeze, use --create-reflog
# instead of this:
changedir $maindir;
# When we no longer need to support squeeze, use --create-reflog
# instead of this:
- ensuredir "
.git
/logs/refs/dgit-intern";
- my $makelogfh = new IO::File "
.git
/logs/refs/$splitbraincache", '>>'
+ ensuredir "
$maindir_gitcommon
/logs/refs/dgit-intern";
+ my $makelogfh = new IO::File "
$maindir_gitcommon
/logs/refs/$splitbraincache", '>>'
or die $!;
my $oldcache = git_get_ref "refs/$splitbraincache";
or die $!;
my $oldcache = git_get_ref "refs/$splitbraincache";
@@
-5351,7
+5358,7
@@
END
changedir $maindir;
runcmd_ordryrun_local
changedir $maindir;
runcmd_ordryrun_local
- @git, qw(pull --ff-only -q
.git/dgit/unpack/work
master);
+ @git, qw(pull --ff-only -q
), "$playground/work", qw(
master);
}
sub quilt_fixup_mkwork ($) {
}
sub quilt_fixup_mkwork ($) {
@@
-5495,7
+5502,7
@@
sub quilt_check_splitbrain_cache ($$) {
my $child = open GC, "-|"; defined $child or die $!;
if (!$child) {
chdir $maindir or die $!;
my $child = open GC, "-|"; defined $child or die $!;
if (!$child) {
chdir $maindir or die $!;
- if (!stat "
.git
/logs/refs/$splitbraincache") {
+ if (!stat "
$maindir_gitcommon
/logs/refs/$splitbraincache") {
$! == ENOENT or die $!;
printdebug ">(no reflog)\n";
exit 0;
$! == ENOENT or die $!;
printdebug ">(no reflog)\n";
exit 0;
@@
-6065,15
+6072,17
@@
sub cmd_gbp_build {
}
my @cmd = opts_opt_multi_cmd @gbp_build;
}
my @cmd = opts_opt_multi_cmd @gbp_build;
- push @cmd, (qw(-us -uc --git-no-sign-tags), "--git-builder=@dbp");
+ push @cmd, (qw(-us -uc --git-no-sign-tags),
+ "--git-builder=".(shellquote @dbp));
if ($gbp_make_orig) {
if ($gbp_make_orig) {
-
ensuredir '.git/dgit'
;
- my $ok =
'.git/dgit/origs-gen-ok'
;
+
my $priv = dgit_privdir()
;
+ my $ok =
"$priv/origs-gen-ok"
;
unlink $ok or $!==&ENOENT or die $!;
my @origs_cmd = @cmd;
push @origs_cmd, qw(--git-cleaner=true);
unlink $ok or $!==&ENOENT or die $!;
my @origs_cmd = @cmd;
push @origs_cmd, qw(--git-cleaner=true);
- push @origs_cmd, "--git-prebuild=touch $ok .git/dgit/no-such-dir/ok";
+ push @origs_cmd, "--git-prebuild=".
+ "touch ".(shellquote $ok)." ".(shellquote "$priv/no-such-dir/ok");
push @origs_cmd, @ARGV;
if (act_local()) {
debugcmd @origs_cmd;
push @origs_cmd, @ARGV;
if (act_local()) {
debugcmd @origs_cmd;
@@
-6417,6
+6426,15
@@
sub cmd_print_dgit_repos_server_source_url {
print $url, "\n" or die $!;
}
print $url, "\n" or die $!;
}
+sub pre_print_dpkg_source_ignores {
+ not_necessarily_a_tree();
+}
+sub cmd_print_dpkg_source_ignores {
+ badusage "no arguments allowed to dgit print-dpkg-source-ignores"
+ if @ARGV;
+ print "@dpkg_source_ignores\n" or die $!;
+}
+
sub cmd_setup_mergechangelogs {
badusage "no arguments allowed to dgit setup-mergechangelogs" if @ARGV;
local $isuite = 'DGIT-SETUP-TREE';
sub cmd_setup_mergechangelogs {
badusage "no arguments allowed to dgit setup-mergechangelogs" if @ARGV;
local $isuite = 'DGIT-SETUP-TREE';