Skip to content

Commit

Permalink
Git.pm: stop assuming that absolute paths start with a slash
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Johannes Schindelin authored and Junio C Hamano committed Jan 26, 2016
1 parent b640b77 commit 888ab71
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion perl/Git.pm
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit 888ab71

Please sign in to comment.