From 9acb31a971d4f653836bbcf07410f51d3f80dbdd Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 16 Aug 2015 13:30:01 +0100 Subject: 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). --- Debian/Dgit.pm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'Debian/Dgit.pm') 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"; } -- cgit v1.2.3