All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Peter J. Weisberg" <pj@irregularexpressions.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] Demonstrate failure of 'core.ignorecase = true'
Date: Wed, 21 Mar 2012 16:58:13 -0700	[thread overview]
Message-ID: <7vmx79zeui.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <1332370222-5123-1-git-send-email-pj@irregularexpressions.net> (Peter J. Weisberg's message of "Wed, 21 Mar 2012 15:50:22 -0700")

"Peter J. Weisberg" <pj@irregularexpressions.net> writes:

> From: "Peter J. Weisberg" <pj@irregularexpressions.net>
>
> On a filesystem that *is* case-sensitive, renaming a file to a name
> that would be equivalent on a case-insensitive filesystem makes Git
> think the original file was deleted.  Add a test that demonstrates
> this as a known error.
> ---

Thanks, Needs sign-off.

> I have a repository that contains files that I sync from a place where
> names are case-insensitive.  When I sync a file that has a change in
> the case of the file name, I want Git to ignore that non-change.  I
> would think core.ignorecase would accomplish this, but it does not.
> ---

No need for the second "---"

>  t/t2000-ignorecase-config.sh |   21 +++++++++++++++++++++

We'd rather not waste a new test number for a single test like this.

>  1 files changed, 21 insertions(+), 0 deletions(-)
>  create mode 100755 t/t2000-ignorecase-config.sh
>
> diff --git a/t/t2000-ignorecase-config.sh b/t/t2000-ignorecase-config.sh
> new file mode 100755
> index 0000000..9d05cee
> --- /dev/null
> +++ b/t/t2000-ignorecase-config.sh
> @@ -0,0 +1,21 @@
> +#!/bin/sh
> +#
> +# Copyright (c) 2012 Peter J Weisberg
> +#
> +
> +test_description='core.ignorecase'
> +
> +. ./test-lib.sh
> +
> +test_expect_failure "diff-files doesn't show case change when ignorecase=true" '

This needs to be protected by test prerequisite to make sure that the test
is run on a case insensitive filesystem.  Even if you declare that the
filesystem is case insensitive by setting core.ignorecase to true, the
underlying system calls like open("foo") will *not* magically start
returning a file descriptor opened for "FOO" if your filesystem is not
case insensitive.

Perhaps something as simple as the following would do:

	# on case insensitive filesystems, "mv" would fail
        if >testfile && ! mv testfile TESTFILE >/dev/null 2>/dev/null
        then
                test_set_prereq CASE_INSENSITIVE_FS
        fi
        rm -f testfile TESTFILE

	test_expect_failure CASE_INSENSITIVE_FS "diff-files doesn't..." '
        	... test body comes here ...


> +	git config core.ignorecase true &&
> +
> +	touch foo &&
> +	git add foo &&
> +	git commit -m "foo" &&
> +	mv foo FOO &&
> +
> +	test -z "$(git diff-files)"
> +'
> +
> +test_done

  reply	other threads:[~2012-03-21 23:58 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-21 22:50 [PATCH] Demonstrate failure of 'core.ignorecase = true' Peter J. Weisberg
2012-03-21 23:58 ` Junio C Hamano [this message]
2012-03-22 20:40   ` PJ Weisberg
2012-03-22 21:08     ` Junio C Hamano
2012-03-23 10:20       ` Thomas Rast
2012-03-23 17:47         ` Junio C Hamano
2012-03-23 18:48           ` Jeff King
2012-03-23 18:57             ` Jeff King
2012-03-22  6:49 ` Johannes Sixt
2012-03-22 11:25   ` Zbigniew Jędrzejewski-Szmek
2012-03-22 14:12     ` Jeff King
2012-03-22 16:57       ` Junio C Hamano
2012-03-22 17:37         ` Jeff King
2012-03-22 18:44           ` Junio C Hamano
2012-03-22 19:07             ` Jeff King
2012-03-22 20:33               ` Junio C Hamano
2012-03-22 20:00             ` Zbigniew Jędrzejewski-Szmek
2012-03-22 20:37               ` Junio C Hamano
2012-03-22 20:53                 ` Zbigniew Jędrzejewski-Szmek
2012-03-22 20:55                 ` PJ Weisberg
2012-03-22 21:09                   ` Junio C Hamano
2012-03-22 23:00               ` Jeff King
2012-03-22 23:24                 ` 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=7vmx79zeui.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=pj@irregularexpressions.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.