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;
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
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 {
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", $!;
}
$used = $tried[-1];
$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);
# 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 "$!";