git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] doc-diff: always use oids inside worktree
@ 2018-08-30  8:12 Jeff King
  2018-08-30  9:12 ` Eric Sunshine
  2018-08-30 19:55 ` [PATCH] doc/Makefile: remove tmp-doc-diff on "make clean" Jeff King
  0 siblings, 2 replies; 25+ messages in thread
From: Jeff King @ 2018-08-30  8:12 UTC (permalink / raw)
  To: git; +Cc: Eric Sunshine, Junio C Hamano

The doc-diff script immediately resolves its two endpoints
to actual object ids, so that we can reuse cached results
even if they appear under a different name. But we still use
the original name the user fed us when running "git
checkout" in our temporary worktree. This can lead to
confusing results:

  - the namespace inside the worktree is different than the
    one outside. In particular, "./doc-diff origin HEAD"
    will resolve HEAD inside the worktree, whose detached
    HEAD will be pointing at origin! As a result, such a
    diff would always be empty.

  - worse, we will store this result under the oid we got by
    resolving HEAD in the main worktree, thus polluting our
    cache

  - we didn't pass --detach, which meant that using a branch
    name would cause us to actually check out that branch,
    making it unavailable to other worktrees.

We can solve this by feeding the already-resolved object id
to git-checkout. That naturally forces a detached HEAD, but
just to make clear our expectation, let's explicitly pass
--detach.

Signed-off-by: Jeff King <peff@peff.net>
---
Another fixup for jk/diff-rendered-docs, noticed when trying it out on
Eric's worktree series (which, btw, rendered as expected once I fixed
this bug ;) ).

 Documentation/doc-diff | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/Documentation/doc-diff b/Documentation/doc-diff
index 6e285e648c..c430fe7c99 100755
--- a/Documentation/doc-diff
+++ b/Documentation/doc-diff
@@ -82,7 +82,7 @@ generate_render_makefile () {
 	done
 }
 
-# render_tree <dirname> <committish>
+# render_tree <committish_oid>
 render_tree () {
 	# Skip install-man entirely if we already have an installed directory.
 	# We can't rely on make here, since "install-man" unconditionally
@@ -92,7 +92,7 @@ render_tree () {
 	# through.
 	if ! test -d "$tmp/installed/$1"
 	then
-		git -C "$tmp/worktree" checkout "$2" &&
+		git -C "$tmp/worktree" checkout --detach "$1" &&
 		make -j$parallel -C "$tmp/worktree" \
 			GIT_VERSION=omitted \
 			SOURCE_DATE_EPOCH=0 \
@@ -112,6 +112,6 @@ render_tree () {
 	fi
 }
 
-render_tree $from_oid "$from" &&
-render_tree $to_oid "$to" &&
+render_tree $from_oid &&
+render_tree $to_oid &&
 git -C $tmp/rendered diff --no-index "$@" $from_oid $to_oid
-- 
2.19.0.rc1.9.gf8a776330b

^ permalink raw reply related	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2018-09-18 17:38 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-30  8:12 [PATCH] doc-diff: always use oids inside worktree Jeff King
2018-08-30  9:12 ` Eric Sunshine
2018-08-30 19:55 ` [PATCH] doc/Makefile: remove tmp-doc-diff on "make clean" Jeff King
2018-08-30 20:34   ` Eric Sunshine
2018-08-30 20:36     ` Eric Sunshine
2018-08-30 20:52     ` Jeff King
2018-08-31  6:33   ` [PATCH 0/3] doc-diff: add "clean" mode & fix portability problem Eric Sunshine
2018-08-31  6:33     ` [PATCH 1/3] doc-diff: fix non-portable 'man' invocation Eric Sunshine
2018-08-31 19:49       ` Jeff King
2018-08-31  6:33     ` [PATCH 2/3] doc-diff: add --clean mode to remove temporary working gunk Eric Sunshine
2018-08-31 20:01       ` Jeff King
2018-08-31 21:24         ` Eric Sunshine
2018-08-31  6:33     ` [PATCH 3/3] doc/Makefile: drop doc-diff worktree and temporary files on "make clean" Eric Sunshine
2018-08-31 20:07       ` Jeff King
2018-08-31 21:37         ` Eric Sunshine
2018-09-17 18:32       ` Jonathan Nieder
2018-09-17 19:36         ` Junio C Hamano
2018-09-17 19:42           ` Jonathan Nieder
2018-09-17 19:48             ` Junio C Hamano
2018-09-17 19:55               ` Jonathan Nieder
2018-09-18 17:38               ` Jeff King
2018-09-17 20:43           ` Eric Sunshine
2018-09-17 20:52             ` Eric Sunshine
2018-08-31 18:49     ` [PATCH 0/3] doc-diff: add "clean" mode & fix portability problem Junio C Hamano
2018-08-31 20:08     ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).