diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-08-16 13:30:01 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-08-16 13:30:01 +0100 |
commit | 9acb31a971d4f653836bbcf07410f51d3f80dbdd (patch) | |
tree | e9ae76490fea1187410522c1a4974e3fda9f84ff /Debian | |
parent | ab500fe2332b6ad9af0baedd50440331c0b83492 (diff) |
If a .orig in .. is a symlink, hardlink the link target into our private unpack directory, rather than the link itself (since latter won't work if the symlink is relative).
Diffstat (limited to 'Debian')
-rw-r--r-- | Debian/Dgit.pm | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index ac44b9a..fa85374 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -17,7 +17,8 @@ BEGIN { @ISA = qw(Exporter); @EXPORT = qw(setup_sigwarn debiantag server_branch server_ref - stat_exists fail ensuredir executable_on_path + stat_exists link_ltarget + fail ensuredir executable_on_path waitstatusmsg failedcmd cmdoutput cmdoutput_errok git_rev_parse git_get_ref git_for_each_ref @@ -219,6 +220,15 @@ sub cmdoutput { return $d; } +sub link_ltarget ($$) { + my ($old,$new) = @_; + lstat $old or return undef; + if (-l _) { + $old = cmdoutput qw(realpath --), $old; + } + link $old, $new or die "link $old $new: $!"; +} + sub git_rev_parse ($) { return cmdoutput qw(git rev-parse), "$_[0]~0"; } |