Re: [PATCH v2 2/3] help: introduce option --exclude-guides

2 messages, 2 authors, 2016-08-26 · open the first message on its own page

Re: [PATCH v2 2/3] help: introduce option --exclude-guides

From: Junio C Hamano <hidden>
Date: 2016-08-26 20:24:57

Ralf Thielow [off-list ref] writes:
quoted
quoted
As we pass a URL, Git won't check if the given path looks like
a documentation directory.  Another solution would be to create
a directory, add a file "git.html" to it and just use this path.
I think this is OK; with s|As we pass a URL|As we pass a string with
:// in it|, the first sentence can be a in-code comment in the test
that does this and will help readers of the code in the future.
Hmm. The "://" is really a URL thing.
Perhaps you thought so, but no, "mailto:ralf.thielow@gmail.com" is a
perfectly valid URL.

Because you are explaining why test://html was chosen, and the real
reason is any path that is !strstr(path, "://") is subject to an
additional "This must be a local path" check and you wanted to avoid
it, "As we pass a URL" is unnecessarily vague (and incorrect--we
cannot use a mailto: URL to sidestep the check).
quoted
*1* Can you immediately tell why this test is broken?

test_expect_success "two commits do not have the same ID" "
        git commit --allow-empty -m first &&
        one=$(git rev-parse --verify HEAD) &&
        test_tick &&
        git commit --allow-empty -m second &&
        two=$(git rev-parse --verify HEAD) &&
        test $one != $two
"
I'm afraid I can't.
The reason becomes clear if you put your feet into shell's shues.
Before being ablt to call test_expect_success, you would need to
figure out what strings you give as its parameters.  $1 is clear in
this case, a simple string "two commits do not have the same ID"
(without double quotes).

But what goes in $2?  Especially the part around "one=..."?

Because the whole thing is inside a double-quote pair, $() and $name
are all interpolated even before test_expect_success is called.
So the above becomes equivalent to
quoted
test_expect_success "two commits do not have the same ID" '
        git commit --allow-empty -m first &&
        one=5cb0d5ad05e027cbddcb0a3c7518ddeea0f7c286 &&
        test_tick &&
        git commit --allow-empty -m second &&
        two=5cb0d5ad05e027cbddcb0a3c7518ddeea0f7c286 &&
        test !=
'
(using whatever commit HEAD was pointing at before this test starts
to run), which obviously is not what we expected to see.

Re: [PATCH v2 2/3] help: introduce option --exclude-guides

From: Ralf Thielow <hidden>
Date: 2016-08-26 20:39:57

2016-08-26 22:20 GMT+02:00 Junio C Hamano [off-list ref]:
Because the whole thing is inside a double-quote pair, $() and $name
are all interpolated even before test_expect_success is called.
So the above becomes equivalent to
quoted
quoted
test_expect_success "two commits do not have the same ID" '
        git commit --allow-empty -m first &&
        one=5cb0d5ad05e027cbddcb0a3c7518ddeea0f7c286 &&
        test_tick &&
        git commit --allow-empty -m second &&
        two=5cb0d5ad05e027cbddcb0a3c7518ddeea0f7c286 &&
        test !=
'
I got it, thanks.  My understanding in when a part is being interpreted
was obviously very wrong.  Thanks again!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help