Revision 865406bc5426d5196935e37a3a5fde9c843c3e96 authored by Philip Oakley on 29 July 2019, 20:08:03 UTC, committed by Junio C Hamano on 29 July 2019, 21:51:42 UTC
Since 4b623d8 (MSVC: link in invalidcontinue.obj for better POSIX
compatibility, 2014-03-29), invalidcontinue.obj is linked in the MSVC
build, but it was not parsed correctly by the buildsystem. Ignore it, as
it is known to Visual Studio and will be handled elsewhere.

Also only substitute filenames ending with .o when generating the
source .c filename, otherwise we would start to expect .cbj files to
generate .obj files (which are not generated by our build)...

In the future there may be source files that produce .obj files
so keep the two issues (.obj files with & without source files)
separate.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Duncan Smart <duncan.smart@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 158471d
Raw File
t5522-pull-symlink.sh
#!/bin/sh

test_description='pulling from symlinked subdir'

. ./test-lib.sh

# The scenario we are building:
#
#   trash\ directory/
#     clone-repo/
#       subdir/
#         bar
#     subdir-link -> clone-repo/subdir/
#
# The working directory is subdir-link.

test_expect_success SYMLINKS setup '
	mkdir subdir &&
	echo file >subdir/file &&
	git add subdir/file &&
	git commit -q -m file &&
	git clone -q . clone-repo &&
	ln -s clone-repo/subdir/ subdir-link &&
	(
		cd clone-repo &&
		git config receive.denyCurrentBranch warn
	) &&
	git config receive.denyCurrentBranch warn
'

# Demonstrate that things work if we just avoid the symlink
#
test_expect_success SYMLINKS 'pulling from real subdir' '
	(
		echo real >subdir/file &&
		git commit -m real subdir/file &&
		cd clone-repo/subdir/ &&
		git pull &&
		test real = $(cat file)
	)
'

# From subdir-link, pulling should work as it does from
# clone-repo/subdir/.
#
# Instead, the error pull gave was:
#
#   fatal: 'origin': unable to chdir or not a git archive
#   fatal: The remote end hung up unexpectedly
#
# because git would find the .git/config for the "trash directory"
# repo, not for the clone-repo repo.  The "trash directory" repo
# had no entry for origin.  Git found the wrong .git because
# git rev-parse --show-cdup printed a path relative to
# clone-repo/subdir/, not subdir-link/.  Git rev-parse --show-cdup
# used the correct .git, but when the git pull shell script did
# "cd $(git rev-parse --show-cdup)", it ended up in the wrong
# directory.  A POSIX shell's "cd" works a little differently
# than chdir() in C; "cd -P" is much closer to chdir().
#
test_expect_success SYMLINKS 'pulling from symlinked subdir' '
	(
		echo link >subdir/file &&
		git commit -m link subdir/file &&
		cd subdir-link/ &&
		git pull &&
		test link = $(cat file)
	)
'

# Prove that the remote end really is a repo, and other commands
# work fine in this context.  It's just that "git pull" breaks.
#
test_expect_success SYMLINKS 'pushing from symlinked subdir' '
	(
		cd subdir-link/ &&
		echo push >file &&
		git commit -m push ./file &&
		git push
	) &&
	test push = $(git show HEAD:subdir/file)
'

test_done
back to top