fsmonitor: simplify determining the git worktree under Windows
authorBen Peart <benpeart@microsoft.com>
Fri, 10 Nov 2017 21:03:11 +0000 (16:03 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 Nov 2017 01:02:20 +0000 (10:02 +0900)
Simplify and speed up the process of finding the git worktree when
running on Windows by keeping it in perl and avoiding spawning helper
processes.

Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7519/fsmonitor-watchman
templates/hooks--fsmonitor-watchman.sample
index 5fe72cefaf89da7bc8d592fa264353ae992f1ed7..5514edcf68be8020ca94e8c51b9c9f2b3102bd09 100755 (executable)
@@ -29,17 +29,10 @@ if ($version == 1) {
            "Falling back to scanning...\n";
 }
 
-# Convert unix style paths to escaped Windows style paths when running
-# in Windows command prompt
-
-my $system = `uname -s`;
-$system =~ s/[\r\n]+//g;
 my $git_work_tree;
-
-if ($system =~ m/^MSYS_NT/ || $system =~ m/^MINGW/) {
-       $git_work_tree = `cygpath -aw "\$PWD"`;
-       $git_work_tree =~ s/[\r\n]+//g;
-       $git_work_tree =~ s,\\,/,g;
+if ($^O =~ 'msys' || $^O =~ 'cygwin') {
+       $git_work_tree = Win32::GetCwd();
+       $git_work_tree =~ tr/\\/\//;
 } else {
        require Cwd;
        $git_work_tree = Cwd::cwd();
index ba6d88c5f8c46f51b4655364a936dc60a71fec12..e673bb3980f3c286291809e05f80873852bc3e9c 100755 (executable)
@@ -28,17 +28,10 @@ if ($version == 1) {
            "Falling back to scanning...\n";
 }
 
-# Convert unix style paths to escaped Windows style paths when running
-# in Windows command prompt
-
-my $system = `uname -s`;
-$system =~ s/[\r\n]+//g;
 my $git_work_tree;
-
-if ($system =~ m/^MSYS_NT/ || $system =~ m/^MINGW/) {
-       $git_work_tree = `cygpath -aw "\$PWD"`;
-       $git_work_tree =~ s/[\r\n]+//g;
-       $git_work_tree =~ s,\\,/,g;
+if ($^O =~ 'msys' || $^O =~ 'cygwin') {
+       $git_work_tree = Win32::GetCwd();
+       $git_work_tree =~ tr/\\/\//;
 } else {
        require Cwd;
        $git_work_tree = Cwd::cwd();