 16615f0fbc
			
		
	
	16615f0fbc
	
	
	
		
			
			On Windows, there are "UNC paths" to access network (AKA shared)
folders, of the form \\server\sharename\directory. This provides a
convenient way for Windows developers to share their Git repositories
without having to have a dedicated server.
Git for Windows v2.11.0 introduced a regression where pushing to said
UNC paths no longer works, although fetching and cloning still does, as
reported here: https://github.com/git-for-windows/git/issues/979
This regression was fixed in 7814fbe3f1 (normalize_path_copy(): fix
pushing to //server/share/dir on Windows, 2016-12-14).
Let's make sure that it does not regress again, by introducing a test
that uses so-called "administrative shares": disk volumes are
automatically shared under certain circumstances, e.g.  the C: drive is
shared as \\localhost\c$. The test needs to be skipped if the current
directory is inaccessible via said administrative share, of course.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='various UNC path tests (Windows-only)'
 | |
| . ./test-lib.sh
 | |
| 
 | |
| if ! test_have_prereq MINGW; then
 | |
| 	skip_all='skipping UNC path tests, requires Windows'
 | |
| 	test_done
 | |
| fi
 | |
| 
 | |
| UNCPATH="$(pwd)"
 | |
| case "$UNCPATH" in
 | |
| [A-Z]:*)
 | |
| 	# Use administrative share e.g. \\localhost\C$\git-sdk-64\usr\src\git
 | |
| 	# (we use forward slashes here because MSYS2 and Git accept them, and
 | |
| 	# they are easier on the eyes)
 | |
| 	UNCPATH="//localhost/${UNCPATH%%:*}\$/${UNCPATH#?:}"
 | |
| 	test -d "$UNCPATH" || {
 | |
| 		skip_all='could not access administrative share; skipping'
 | |
| 		test_done
 | |
| 	}
 | |
| 	;;
 | |
| *)
 | |
| 	skip_all='skipping UNC path tests, cannot determine current path as UNC'
 | |
| 	test_done
 | |
| 	;;
 | |
| esac
 | |
| 
 | |
| test_expect_success setup '
 | |
| 	test_commit initial
 | |
| '
 | |
| 
 | |
| test_expect_success clone '
 | |
| 	git clone "file://$UNCPATH" clone
 | |
| '
 | |
| 
 | |
| test_expect_success push '
 | |
| 	(
 | |
| 		cd clone &&
 | |
| 		git checkout -b to-push &&
 | |
| 		test_commit to-push &&
 | |
| 		git push origin HEAD
 | |
| 	) &&
 | |
| 	rev="$(git -C clone rev-parse --verify refs/heads/to-push)" &&
 | |
| 	test "$rev" = "$(git rev-parse --verify refs/heads/to-push)"
 | |
| '
 | |
| 
 | |
| test_done
 |