From: Junio C Hamano <hidden> Date: 2016-06-15 22:46:03
Brian Gernhardt [off-list ref] writes:
quoted hunk
The call to "git reset --hard B1" failed on case-insensitive file
systems (such as the default settings for HFS+) because there was both
a tag "B1" and a file "b1". Adding "--" to the command makes it
clear that we mean commit B1.
Signed-off-by: Brian Gernhardt <redacted>
---
t/t3411-rebase-preserve-around-merges.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
It is not just B1 that is ambiguous, even though that is the only
ambiguous one this particular test uses.
If we really wanted to care about case-folding file systems, shouldn't we
make test_commit shell function a bit more than the downcasing? How about
this patch instead?
t/test-lib.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
@@ -201,7 +201,7 @@ test_tick () {# Both <file> and <contents> default to <message>. test_commit(){-file=${2:-$(echo"$1"|tr'A-Z''a-z')}+file=${2:-$(echo"$1"|tr'A-Z''a-z').t}echo"${3-$1}">"$file"&&gitadd"$file"&&test_tick&&
From: Johannes Schindelin <hidden> Date: 2016-06-15 22:46:03
Hi,
On Thu, 29 Jan 2009, Junio C Hamano wrote:
quoted hunk
Brian Gernhardt [off-list ref] writes:
quoted
The call to "git reset --hard B1" failed on case-insensitive file
systems (such as the default settings for HFS+) because there was both
a tag "B1" and a file "b1". Adding "--" to the command makes it
clear that we mean commit B1.
Signed-off-by: Brian Gernhardt <redacted>
---
t/t3411-rebase-preserve-around-merges.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
It is not just B1 that is ambiguous, even though that is the only
ambiguous one this particular test uses.
If we really wanted to care about case-folding file systems, shouldn't we
make test_commit shell function a bit more than the downcasing? How about
this patch instead?
t/test-lib.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
@@ -201,7 +201,7 @@ test_tick () {# Both <file> and <contents> default to <message>. test_commit(){-file=${2:-$(echo"$1"|tr'A-Z''a-z')}+file=${2:-$(echo"$1"|tr'A-Z''a-z').t}
Or
file=${2:-$1.file}
but I was not quite sure about the impact; I might have checked for
specific filenames.
Brian, if you would have the time to go through the tests if an automatic
filename was used, that would be smashing! (We cannot just run the tests
and look at the failures, as absence of files could be tested; I don't
remember, debugging zlib/valgrind currently turns my brain into tatties.)
Ciao,
Dscho
From: Brian Gernhardt <hidden> Date: 2016-06-15 22:46:03
On Jan 29, 2009, at 12:19 PM, Junio C Hamano wrote:
If we really wanted to care about case-folding file systems,
shouldn't we
make test_commit shell function a bit more than the downcasing? How
about
this patch instead?
That's a good point. Always good to prevent future issues.
From: Brian Gernhardt <hidden> Date: 2016-06-15 22:46:05
This change appears to have been forgotten, but does fix the problems
I was having. Junio, can this make it into the official repo instead
of floating around in my local? I'd send in a patch, but it was your
code and I don't want to take credit for it.
~~ Brian
On Jan 29, 2009, at 2:10 PM, Brian Gernhardt wrote:
On Jan 29, 2009, at 12:19 PM, Junio C Hamano wrote:
quoted
If we really wanted to care about case-folding file systems,
shouldn't we
make test_commit shell function a bit more than the downcasing?
How about
this patch instead?
That's a good point. Always good to prevent future issues.
From: Johannes Schindelin <hidden> Date: 2016-06-15 22:46:05
Hi,
On Tue, 3 Feb 2009, Brian Gernhardt wrote:
This change appears to have been forgotten, but does fix the problems I
was having. Junio, can this make it into the official repo instead of
floating around in my local? I'd send in a patch, but it was your code
and I don't want to take credit for it.
Top-poster!
Besides, I think that my latest comment still stands there: testing is not
good enough, code inspection is required if something expects the file
names as they used to be.
Ciao,
Dscho
From: Brian Gernhardt <hidden> Date: 2016-06-15 22:46:05
On Feb 3, 2009, at 11:53 AM, Johannes Schindelin wrote:
On Tue, 3 Feb 2009, Brian Gernhardt wrote:
quoted
This change appears to have been forgotten, but does fix the
problems I
was having. Junio, can this make it into the official repo instead
of
floating around in my local? I'd send in a patch, but it was your
code
and I don't want to take credit for it.
Top-poster!
Well, yes. I wasn't replying to anything in the e-mail, I just wanted
to bring it back to attention.
Besides, I think that my latest comment still stands there: testing
is not
good enough, code inspection is required if something expects the file
names as they used to be.
As far as I can tell, no test relies on the auto-generated name of the
test file. In fact, only t3411 uses that feature at all and it only
performs operations on commits. All other uses of test_commit give a
filename (even though many of them don't appear to use the file).
~~ Brian
From: Johannes Schindelin <hidden> Date: 2016-06-15 22:46:05
Hi,
On Tue, 3 Feb 2009, Brian Gernhardt wrote:
On Feb 3, 2009, at 11:53 AM, Johannes Schindelin wrote:
quoted
On Tue, 3 Feb 2009, Brian Gernhardt wrote:
quoted
This change appears to have been forgotten, but does fix the problems
I was having. Junio, can this make it into the official repo instead
of floating around in my local? I'd send in a patch, but it was your
code and I don't want to take credit for it.
Top-poster!
Well, yes. I wasn't replying to anything in the e-mail, I just wanted to
bring it back to attention.
You did, in fact, refer a little bit to the content of the thread you were
replying to.
quoted
Besides, I think that my latest comment still stands there: testing is not
good enough, code inspection is required if something expects the file
names as they used to be.
As far as I can tell, no test relies on the auto-generated name of the test
file. In fact, only t3411 uses that feature at all and it only performs
operations on commits. All other uses of test_commit give a filename (even
though many of them don't appear to use the file).
From: Brian Gernhardt <hidden> Date: 2016-06-15 22:46:05
On Feb 3, 2009, at 12:18 PM, Johannes Schindelin wrote:
On Tue, 3 Feb 2009, Brian Gernhardt wrote:
quoted
On Feb 3, 2009, at 11:53 AM, Johannes Schindelin wrote:
quoted
Besides, I think that my latest comment still stands there:
testing is not
good enough, code inspection is required if something expects the
file
names as they used to be.
As far as I can tell, no test relies on the auto-generated name of
the test
file. In fact, only t3411 uses that feature at all and it only
performs
operations on commits. All other uses of test_commit give a
filename (even
though many of them don't appear to use the file).
You did not look far.
If there's something I missed, could you perhaps say what it is
instead of being cryptic? I have a day job and am attempting to
squeeze in searching for this between tasks. This fix (or similar)
needs to make it into master so that the tests can run on case-
insensitive file systems.
I used git grep to find uses of test_commit in next, and the only uses
that did not provide a file name argument were in t3411. I read
through every test in the file, and the only operations I saw were
test_commit, test_merge, checkout -b, reset without filenames, rebase,
and rev-parse. All operations on commits, not files.
The tests all run properly, and I've run t3411 individually (since
it's apparently the only one using this feature) using -v to ensure
that it was actually performing work and it seems to be.
So, based on the above, every usage of test_commit either provides a
file name or does not care about the names of the files. Unless you
have something that says it isn't, I'd like to see the fix Junio gave
applied (repeated here as a reminder):
On Jan 29, 2009, at 12:19 PM, Junio C Hamano wrote:
From: Johannes Schindelin <hidden> Date: 2016-06-15 22:46:05
Hi,
On Tue, 3 Feb 2009, Brian Gernhardt wrote:
On Feb 3, 2009, at 12:18 PM, Johannes Schindelin wrote:
quoted
You did not look far.
If there's something I missed, could you perhaps say what it is instead
of being cryptic?
$ git grep -l test_commit junio/next -- t/
junio/next:t/README
junio/next:t/t1450-fsck.sh
junio/next:t/t3410-rebase-preserve-dropped-merges.sh
junio/next:t/t3411-rebase-preserve-around-merges.sh
junio/next:t/t3412-rebase-root.sh
junio/next:t/test-lib.sh
But I understood. I will audit the code myself later this evening.
Ciao,
Dscho
I examined all of those files. I looked at every line that calls
test_commit. All of those files except for t34110-rebase-preserve-
around-merges.sh provide a filename of their own and are therefore
unaffected by the change
On Jan 29, 2009, at 12:19 PM, Junio C Hamano wrote:
Use "git grep" without the -l and you will see that all uses outside
of t3411 are of the form "test_commit <commit> <filename>". Only
t3411 uses the form "test_commit <commit>" (without filename), which
is when this change would matter. And t3411 does not use the
generated filename, only the resultant commits.
I was irritated by your statement that I "did not look far" because _I
read all those files_. I gave you the result of reading them which
you seem to have completely ignored, as it was the part of my last e-
mail that you did not quote.
If you want to double-check me, fine. But do not claim I did not do
the work.
~~ Brian