Re: [PATCH] t/perf: handle worktrees as test repos

2 messages, 2 authors, 2021-02-16 · open the first message on its own page

Re: [PATCH] t/perf: handle worktrees as test repos

From: Junio C Hamano <hidden>
Date: 2021-02-16 22:53:47

Jeff King [off-list ref] writes:
quoted hunk
On Tue, Feb 16, 2021 at 03:12:45PM -0500, Jeff King wrote:
quoted
Having written that, it occurs to me that an even simpler solution is to
just always use the commondir as the source of the scratch repo. It does
not produce the same outcome, but the point is generally just to find a
suitable starting point for a repository. Grabbing the main repo instead
of one of its worktrees is probably OK for most tests.
The patch there is delightfully simple:
diff --git a/t/perf/perf-lib.sh b/t/perf/perf-lib.sh
index e385c6896f..7018256cd4 100644
--- a/t/perf/perf-lib.sh
+++ b/t/perf/perf-lib.sh
@@ -75,7 +75,7 @@ test_perf_create_repo_from () {
 	BUG "not 2 parameters to test-create-repo"
 	repo="$1"
 	source="$2"
-	source_git="$("$MODERN_GIT" -C "$source" rev-parse --git-dir)"
+	source_git="$("$MODERN_GIT" -C "$source" rev-parse --git-common-dir)"
 	objects_dir="$("$MODERN_GIT" -C "$source" rev-parse --git-path objects)"
 	mkdir -p "$repo/.git"
 	(
but I do wonder if somebody would find it confusing.
That does look quite a lot simpler.

What are the possible downsides?  Per-worktree references may not be
pointing at the same objects?

Re: [PATCH] t/perf: handle worktrees as test repos

From: Jeff King <hidden>
Date: 2021-02-16 22:57:31

On Tue, Feb 16, 2021 at 02:52:57PM -0800, Junio C Hamano wrote:
Jeff King [off-list ref] writes:
quoted
On Tue, Feb 16, 2021 at 03:12:45PM -0500, Jeff King wrote:
quoted
Having written that, it occurs to me that an even simpler solution is to
just always use the commondir as the source of the scratch repo. It does
not produce the same outcome, but the point is generally just to find a
suitable starting point for a repository. Grabbing the main repo instead
of one of its worktrees is probably OK for most tests.
The patch there is delightfully simple:
diff --git a/t/perf/perf-lib.sh b/t/perf/perf-lib.sh
index e385c6896f..7018256cd4 100644
--- a/t/perf/perf-lib.sh
+++ b/t/perf/perf-lib.sh
@@ -75,7 +75,7 @@ test_perf_create_repo_from () {
 	BUG "not 2 parameters to test-create-repo"
 	repo="$1"
 	source="$2"
-	source_git="$("$MODERN_GIT" -C "$source" rev-parse --git-dir)"
+	source_git="$("$MODERN_GIT" -C "$source" rev-parse --git-common-dir)"
 	objects_dir="$("$MODERN_GIT" -C "$source" rev-parse --git-path objects)"
 	mkdir -p "$repo/.git"
 	(
but I do wonder if somebody would find it confusing.
That does look quite a lot simpler.

What are the possible downsides?  Per-worktree references may not be
pointing at the same objects?
The main one IMHO is that HEAD would not be pointing where the user
might expect it to be.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help