X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=Debian%2FDgit.pm;h=df6dbfb3272b894965c32fa55ac9238e9c9a2c7f;hb=fa1467e5d28412c0ca7fdd8c6d4a9548677e27e2;hp=787e50655487ec1e672a0c06aeb642f28e17a3b9;hpb=dcdaf7a166dbf5599eefb8174a2445ed90560e23;p=dgit.git diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 787e5065..df6dbfb3 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -43,6 +43,7 @@ BEGIN { dep14_version_mangle debiantags debiantag_old debiantag_new debiantag_maintview + upstreamversion stripepoch source_file_leafname is_orig_file_of_p_v server_branch server_ref stat_exists link_ltarget @@ -65,6 +66,7 @@ BEGIN { $ffq_refprefix $gdrlast_refprefix initdebug enabledebug enabledebuglevel printdebug debugcmd + $printdebug_when_debuglevel $debugcmd_when_debuglevel $debugprefix *debuglevel *DEBUG shellquote printcmd messagequote $negate_harmful_gitattrs @@ -99,6 +101,8 @@ our $orig_f_tail_re = "$orig_f_comp_re\\.tar(?:\\.\\w+)?(?:$orig_f_sig_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; # policy hook exit status bits # see dgit-repos-server head comment for documentation @@ -155,7 +159,8 @@ sub enabledebuglevel ($) { } sub printdebug { - print DEBUG $debugprefix, @_ or die $! if $debuglevel>0; + print DEBUG $debugprefix, @_ or die $! + if $debuglevel >= $printdebug_when_debuglevel; } sub messagequote ($) { @@ -194,7 +199,8 @@ sub printcmd { sub debugcmd { my $extraprefix = shift @_; - printcmd(\*DEBUG,$debugprefix.$extraprefix,@_) if $debuglevel>0; + printcmd(\*DEBUG,$debugprefix.$extraprefix,@_) + if $debuglevel >= $debugcmd_when_debuglevel; } sub dep14_version_mangle ($) { @@ -231,6 +237,12 @@ sub stripepoch ($) { return $vsn; } +sub upstreamversion ($) { + my ($vsn) = @_; + $vsn =~ s/-[^-]+$//; + return $vsn; +} + sub source_file_leafname ($$$) { my ($package,$vsn,$sfx) = @_; return "${package}_".(stripepoch $vsn).$sfx @@ -355,6 +367,7 @@ sub shell_cmd { sub cmdoutput_errok { confess Dumper(\@_)." ?" if grep { !defined } @_; + local $printdebug_when_debuglevel = $debugcmd_when_debuglevel; debugcmd "|",@_; open P, "-|", @_ or die "$_[0] $!"; my $d; @@ -407,6 +420,7 @@ sub git_cat_file ($;$) { # in scalar context, just the data # if $etype defined, dies unless type is $etype or in @$etype our ($gcf_pid, $gcf_i, $gcf_o); + local $printdebug_when_debuglevel = $debugcmd_when_debuglevel; my $chk = sub { my ($gtype, $data) = @_; if ($etype) {