summaryrefslogtreecommitdiff
path: root/perl/Git.pm
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2016-01-26 15:34:35 +0100
committerJunio C Hamano <gitster@pobox.com>2016-01-26 13:42:59 -0800
commit888ab716adff5babae718e4e4cb83b3c3a5f1bc5 (patch)
tree59f22c2b5c9b67283428ff738cac612ac2aabe57 /perl/Git.pm
parentb640b77fea7db4c6eb667abf8e9a2b21cf0e72f5 (diff)
downloadgit-888ab716adff5babae718e4e4cb83b3c3a5f1bc5.tar.gz
Git.pm: stop assuming that absolute paths start with a slash
On Windows, absolute paths never start with a slash, unless a POSIX emulation layer is used. The latter is the case for MSYS2's Perl that Git for Windows leverages. However, in the tests we also go through plain `git.exe`, which does *not* leverage the POSIX emulation layer, and therefore the paths we pass to Perl may actually be DOS-style paths such as C:/Program Files/Git. So let's just use Perl's own way to test whether a given path is absolute or not instead of home-brewing our own. This patch partially fixes t7800 and t9700 when running in Git for Windows' SDK. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'perl/Git.pm')
-rw-r--r--perl/Git.pm3
1 files changed, 2 insertions, 1 deletions
diff --git a/perl/Git.pm b/perl/Git.pm
index 19ef081103..49eb88af8d 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -188,7 +188,8 @@ sub repository {
};
if ($dir) {
- $dir =~ m#^/# or $dir = $opts{Directory} . '/' . $dir;
+ _verify_require();
+ File::Spec->file_name_is_absolute($dir) or $dir = $opts{Directory} . '/' . $dir;
$opts{Repository} = abs_path($dir);
# If --git-dir went ok, this shouldn't die either.