chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
If a .orig in .. is a symlink, hardlink the link target into our private unpack direc...
[dgit.git]
/
Debian
/
Dgit.pm
diff --git
a/Debian/Dgit.pm
b/Debian/Dgit.pm
index ac44b9ab4c529f712a0c9322d2c1e2b146702250..fa85374150288cc53a1ef363042262315b76ab52 100644
(file)
--- 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
@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
waitstatusmsg failedcmd
cmdoutput cmdoutput_errok
git_rev_parse git_get_ref git_for_each_ref
@@
-219,6
+220,15
@@
sub cmdoutput {
return $d;
}
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";
}
sub git_rev_parse ($) {
return cmdoutput qw(git rev-parse), "$_[0]~0";
}