public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: Johannes Schindelin <Johannes.Schindelin@gmx•de>
To: Junio C Hamano <gitster@pobox•com>
Cc: Johannes Schindelin via GitGitGadget <gitgitgadget@gmail•com>,
	 git@vger•kernel.org
Subject: Re: [PATCH 04/10] t0001: handle `diff --no-index` gracefully
Date: Mon, 1 Dec 2025 14:20:28 +0100 (CET)	[thread overview]
Message-ID: <07dd2e66-7cdc-7839-aaf7-274b116df51c@gmx.de> (raw)
In-Reply-To: <xmqqms44cb7p.fsf@gitster.g>

Hi Junio,

On Sat, 29 Nov 2025, Junio C Hamano wrote:

> "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail•com>
> writes:
> 
> > From: Johannes Schindelin <johannes.schindelin@gmx•de>
> >
> > The test case 're-init to move gitdir symlink' wants to compare the
> > contents of `newdir/.git`, which is a symbolic link pointing to a file.
> > However, `git diff --no-index`, which is used by `test_cmp` on Windows,
> > does not resolve symlinks; It shows the symlink _target_ instead (with a
> > file mode of 120000). That is totally unexpected by the test case, which
> > as a consequence fails, meaning that it's a bug in the test case itself.
> 
> It is dubious if it is a bug in this particular test case, or
> test_cmp implementation that uses "git diff --no-index", though.
> 
> Either way, when test_cmp here does not do "diff", the test would
> fail, so you are correct to notice that this piece of code needs to
> be patched in some way.  I do not think not comparing is the right
> solution, though.  Would there be a better option than completely
> punting on the comparison?  Something silly like:
> 
> > +	case "$GIT_TEST_CMP" in
> > +	# git diff --no-index does not resolve symlinks
> > +	*--no-index*) cmp expected newdir/.git ;;
> > +	*) test_cmp expected newdir/.git ;;
> > +	esac &&
> 
> perhaps?

Sure. It's not like this adds much confidence, though, as the tested-for
functionality isn't specific to Windows, so I'd expect this to fail on
Linux, too, if it was broken, and running that comparison on Windows does
not add much.

Since you spent time on this, I will change it, though.

Ciao,
Johannes

> 
> > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx•de>
> > ---
> >  t/t0001-init.sh | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/t/t0001-init.sh b/t/t0001-init.sh
> > index 618da080dc..2f38e09b58 100755
> > --- a/t/t0001-init.sh
> > +++ b/t/t0001-init.sh
> > @@ -425,7 +425,10 @@ test_expect_success SYMLINKS 're-init to move gitdir symlink' '
> >  	git init --separate-git-dir ../realgitdir
> >  	) &&
> >  	echo "gitdir: $(pwd)/realgitdir" >expected &&
> > -	test_cmp expected newdir/.git &&
> > +	case "$GIT_TEST_CMP" in
> > +	*--no-index*) ;; # git diff --no-index does not resolve symlinks
> > +	*) test_cmp expected newdir/.git;;
> > +	esac &&
> >  	test_cmp expected newdir/here &&
> >  	test_path_is_dir realgitdir/refs
> >  '
> 

  reply	other threads:[~2025-12-01 13:20 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-29 18:28 [PATCH 00/10] Prepare Git's test suite for symbolic link support on Windows Johannes Schindelin via GitGitGadget
2025-11-29 18:28 ` [PATCH 01/10] t9700: accommodate for Windows paths Johannes Schindelin via GitGitGadget
2025-11-29 18:28 ` [PATCH 02/10] apply: symbolic links lack a "trustable executable bit" Johannes Schindelin via GitGitGadget
2025-11-29 18:28 ` [PATCH 03/10] mingw: special-case `open(symlink, O_CREAT | O_EXCL)` Johannes Schindelin via GitGitGadget
2025-11-30  6:49   ` Junio C Hamano
2025-12-01 13:18     ` Johannes Schindelin
2025-12-06  2:17       ` Junio C Hamano
2025-11-29 18:28 ` [PATCH 04/10] t0001: handle `diff --no-index` gracefully Johannes Schindelin via GitGitGadget
2025-11-30  5:59   ` Junio C Hamano
2025-12-01 13:20     ` Johannes Schindelin [this message]
2025-12-02  8:15       ` Junio C Hamano
2025-11-29 18:28 ` [PATCH 05/10] t0301: another fix for Windows compatibility Johannes Schindelin via GitGitGadget
2025-11-30  6:09   ` Junio C Hamano
2025-12-01 13:25     ` Johannes Schindelin
2025-12-02  8:15       ` Junio C Hamano
2025-12-02 11:14         ` Johannes Schindelin
2025-12-06  1:05           ` Junio C Hamano
2025-11-29 18:28 ` [PATCH 06/10] t0600: fix incomplete prerequisite for a test case Johannes Schindelin via GitGitGadget
2025-12-01  9:46   ` Patrick Steinhardt
2025-12-01 13:27     ` Johannes Schindelin
2025-11-29 18:28 ` [PATCH 07/10] t1006: accommodate for symlink support in MSYS2 Johannes Schindelin via GitGitGadget
2025-12-01  9:47   ` Patrick Steinhardt
2025-12-01 13:29     ` Johannes Schindelin
2025-12-01 13:34       ` Patrick Steinhardt
2025-11-29 18:28 ` [PATCH 08/10] t1305: skip symlink tests that do not apply to Windows Johannes Schindelin via GitGitGadget
2025-11-29 18:28 ` [PATCH 09/10] t6423: introduce Windows-specific handling for symlinking to /dev/null Johannes Schindelin via GitGitGadget
2025-11-29 18:28 ` [PATCH 10/10] t7800: work around the MSYS path conversion on Windows Johannes Schindelin via GitGitGadget
2025-11-30  6:49   ` Junio C Hamano
2025-11-30  6:57   ` Eric Sunshine
2025-12-01 13:30     ` Johannes Schindelin
2025-12-05 15:02 ` [PATCH v2 00/10] Prepare Git's test suite for symbolic link support " Johannes Schindelin via GitGitGadget
2025-12-05 15:02   ` [PATCH v2 01/10] t9700: accommodate for Windows paths Johannes Schindelin via GitGitGadget
2025-12-05 15:02   ` [PATCH v2 02/10] apply: symbolic links lack a "trustable executable bit" Johannes Schindelin via GitGitGadget
2025-12-05 15:02   ` [PATCH v2 03/10] mingw: special-case `open(symlink, O_CREAT | O_EXCL)` Johannes Schindelin via GitGitGadget
2025-12-05 15:02   ` [PATCH v2 04/10] t0001: handle `diff --no-index` gracefully Johannes Schindelin via GitGitGadget
2025-12-05 15:02   ` [PATCH v2 05/10] t0301: another fix for Windows compatibility Johannes Schindelin via GitGitGadget
2025-12-05 15:02   ` [PATCH v2 06/10] t0600: fix incomplete prerequisite for a test case Johannes Schindelin via GitGitGadget
2025-12-05 15:02   ` [PATCH v2 07/10] t1006: accommodate for symlink support in MSYS2 Johannes Schindelin via GitGitGadget
2025-12-05 15:02   ` [PATCH v2 08/10] t1305: skip symlink tests that do not apply to Windows Johannes Schindelin via GitGitGadget
2025-12-05 15:02   ` [PATCH v2 09/10] t6423: introduce Windows-specific handling for symlinking to /dev/null Johannes Schindelin via GitGitGadget
2025-12-05 15:02   ` [PATCH v2 10/10] t7800: work around the MSYS path conversion on Windows Johannes Schindelin via GitGitGadget
2025-12-09  8:04   ` [PATCH v2 00/10] Prepare Git's test suite for symbolic link support " Patrick Steinhardt
2025-12-09 22:18     ` Junio C Hamano
2025-12-16 11:46   ` [PATCH v3 " Johannes Schindelin via GitGitGadget
2025-12-16 11:46     ` [PATCH v3 01/10] t9700: accommodate for Windows paths Johannes Schindelin via GitGitGadget
2025-12-16 11:46     ` [PATCH v3 02/10] apply: symbolic links lack a "trustable executable bit" Johannes Schindelin via GitGitGadget
2025-12-16 11:46     ` [PATCH v3 03/10] mingw: special-case `open(symlink, O_CREAT | O_EXCL)` Johannes Schindelin via GitGitGadget
2025-12-16 11:46     ` [PATCH v3 04/10] t0001: handle `diff --no-index` gracefully Johannes Schindelin via GitGitGadget
2025-12-16 11:46     ` [PATCH v3 05/10] t0301: another fix for Windows compatibility Johannes Schindelin via GitGitGadget
2025-12-16 11:46     ` [PATCH v3 07/10] t1006: accommodate for symlink support in MSYS2 Johannes Schindelin via GitGitGadget
2025-12-16 11:46     ` [PATCH v3 08/10] t1305: skip symlink tests that do not apply to Windows Johannes Schindelin via GitGitGadget
2025-12-16 11:46     ` [PATCH v3 09/10] t6423: introduce Windows-specific handling for symlinking to /dev/null Johannes Schindelin via GitGitGadget
2025-12-16 11:46     ` [PATCH v3 10/10] t7800: work around the MSYS path conversion on Windows Johannes Schindelin via GitGitGadget
2025-12-16 18:42     ` [PATCH v3 00/10] Prepare Git's test suite for symbolic link support " Junio C Hamano
2025-12-16 19:35       ` Johannes Schindelin
2025-12-17  4:31         ` Junio C Hamano
2025-12-17 14:18     ` [PATCH v4 " Johannes Schindelin via GitGitGadget
2025-12-17 14:18       ` [PATCH v4 01/10] t9700: accommodate for Windows paths Johannes Schindelin via GitGitGadget
2025-12-17 14:18       ` [PATCH v4 02/10] apply: symbolic links lack a "trustable executable bit" Johannes Schindelin via GitGitGadget
2025-12-17 14:18       ` [PATCH v4 03/10] mingw: special-case `open(symlink, O_CREAT | O_EXCL)` Johannes Schindelin via GitGitGadget
2025-12-17 14:18       ` [PATCH v4 04/10] t0001: handle `diff --no-index` gracefully Johannes Schindelin via GitGitGadget
2025-12-17 14:18       ` [PATCH v4 05/10] t0301: another fix for Windows compatibility Johannes Schindelin via GitGitGadget
2025-12-17 14:18       ` [PATCH v4 06/10] t0600: fix incomplete prerequisite for a test case Johannes Schindelin via GitGitGadget
2025-12-17 14:18       ` [PATCH v4 07/10] t1006: accommodate for symlink support in MSYS2 Johannes Schindelin via GitGitGadget
2025-12-17 14:18       ` [PATCH v4 08/10] t1305: skip symlink tests that do not apply to Windows Johannes Schindelin via GitGitGadget
2025-12-17 14:18       ` [PATCH v4 09/10] t6423: introduce Windows-specific handling for symlinking to /dev/null Johannes Schindelin via GitGitGadget
2025-12-17 14:18       ` [PATCH v4 10/10] t7800: work around the MSYS path conversion on Windows Johannes Schindelin via GitGitGadget
2025-12-17 23:19       ` [PATCH v4 00/10] Prepare Git's test suite for symbolic link support " Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=07dd2e66-7cdc-7839-aaf7-274b116df51c@gmx.de \
    --to=johannes.schindelin@gmx$(echo .)de \
    --cc=git@vger$(echo .)kernel.org \
    --cc=gitgitgadget@gmail$(echo .)com \
    --cc=gitster@pobox$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox