Thread (2 messages) flat view 2 messages, 2 authors, 2016-08-26

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help