Skip to content

Commit

Permalink
fix pushing to //server/share/dir on Windows
Browse files Browse the repository at this point in the history
normalize_path_copy() is not prepared to keep the double-slash of a
//server/share/dir kind of path, but treats it like a regular POSIX
style path and transforms it to /server/share/dir.

The bug manifests when 'git push //server/share/dir master' is run,
because tmp_objdir_add_as_alternate() uses the path in normalized
form when it registers the quarantine object database via
link_alt_odb_entries(). Needless to say that the directory cannot be
accessed using the wrongly normalized path.

Fix it by skipping all of the root part, not just a potential drive
prefix. offset_1st_component takes care of this, see the
implementation in compat/mingw.c::mingw_offset_1st_component().

This fixes #979

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
  • Loading branch information
j6t authored and Git for Windows Build Agent committed Jan 18, 2017
1 parent 30643de commit eb6785f
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion t/t5580-clone-push-unc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ test_expect_success clone '
git clone "file://$UNCPATH" clone
'

test_expect_failure push '
test_expect_success push '
(
cd clone &&
git checkout -b to-push &&
Expand Down

0 comments on commit eb6785f

Please sign in to comment.