This combines the patches introduced via https://github.com/msys2/msys2-runtime/pull/181 and https://github.com/msys2/msys2-runtime/pull/182. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
63 lines
2.5 KiB
Diff
63 lines
2.5 KiB
Diff
From 9944652c41fb96f555d221865f4ed5d0c8b33514 Mon Sep 17 00:00:00 2001
|
|
From: Johannes Schindelin <johannes.schindelin@gmx.de>
|
|
Date: Wed, 18 Feb 2015 11:07:17 +0000
|
|
Subject: [PATCH 45/N] fixup! Add functionality for converting UNIX paths in
|
|
arguments and environment variables to Windows form for native Win32
|
|
applications.
|
|
|
|
With this commit, the POSIX-to-Windows conversion also leaves Git's
|
|
`<rev>:./<name>` syntax alone. Such a string would otherwise be mistaken
|
|
for indicating a path list, but path lists are expected to contain only
|
|
absolute paths, which would not be the case here.
|
|
|
|
This addresses the expectations of the following test cases in the test
|
|
suite of https://github.com/git/git/tree/v2.43.0:
|
|
|
|
-t1506.4 correct relative file objects (1)
|
|
-t1506.5 correct relative file objects (2)
|
|
-t1506.6 correct relative file objects (3)
|
|
-t1506.7 correct relative file objects (4)
|
|
-t1506.14 relative path not found
|
|
-t1506.15 relative path outside worktree
|
|
-t1506.16 relative path when cwd is outside worktree
|
|
-t1513.5 empty prefix HEAD:./path
|
|
-t1513.6 valid prefix HEAD:./path
|
|
-t1513.7 valid prefix HEAD:../path
|
|
-t2070.4 restore a file on worktree from another ref
|
|
-t2070.5 restore a file in the index from another ref
|
|
-t2070.6 restore a file in both the index and worktree from another ref
|
|
-t2070.8 restore --worktree --staged uses HEAD as source
|
|
-t7900.33 start and stop macOS maintenance
|
|
-t7900.34 use launchctl list to prevent extra work
|
|
-t7900.35 start and stop Windows maintenance
|
|
-t7900.36 start and stop Linux/systemd maintenance
|
|
-t7900.37 start and stop when several schedulers are available
|
|
-t9300.195 Y: rewrite submodules
|
|
-t9304.6 import with submodule mapping
|
|
-t9304.7 paths adjusted for relative subdir
|
|
|
|
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
|
|
---
|
|
winsup/cygwin/msys2_path_conv.cc | 8 ++++++++
|
|
1 file changed, 8 insertions(+)
|
|
|
|
diff --git a/winsup/cygwin/msys2_path_conv.cc b/winsup/cygwin/msys2_path_conv.cc
|
|
index 71c4735..0ac47f0 100644
|
|
--- a/winsup/cygwin/msys2_path_conv.cc
|
|
+++ b/winsup/cygwin/msys2_path_conv.cc
|
|
@@ -380,6 +380,14 @@ skip_p2w:
|
|
// Avoid mangling IPv6 addresses
|
|
if (it + 1 < end && it[1] == ':')
|
|
goto skip_p2w;
|
|
+
|
|
+ // Leave Git's <rev>:./name syntax alone
|
|
+ if (it + 1 < end && it[1] == '.') {
|
|
+ if (it + 2 < end && it[2] == '/')
|
|
+ goto skip_p2w;
|
|
+ if (it + 3 < end && it[2] == '.' && it[3] == '/')
|
|
+ goto skip_p2w;
|
|
+ }
|
|
break;
|
|
}
|
|
++it;
|