git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 5/7] everything_local(): mark alternate refs as complete

From
mhagger@alum.mit.edu <mhagger@alum.mit.edu>
Date
Feb 11, 2012, 06:20 UTC
Message-ID
<1328941261-29746-6-git-send-email-mhagger@alum.mit.edu>
In-Reply-To
<1328941261-29746-1-git-send-email-mhagger@alum.mit.edu>
From: Michael Haggerty <mhagger@alum.mit.edu>

Objects in an alternate object database are already available to the local repository and therefore don't need to be fetched. So mark them as complete in everything_local().

This fixes a test in t5700.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
---
 builtin/fetch-pack.c       |    6 ++++++
 t/t5700-clone-reference.sh |    2 +-
 2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c
index dbe9acb..0e8560f 100644
--- a/builtin/fetch-pack.c
+++ b/builtin/fetch-pack.c
@@ -581,6 +581,11 @@ static void filter_refs(struct ref **refs, int nr_match, char **match)
 	*refs = newlist;
 }
 
+static void mark_alternate_complete(const struct ref *ref, void *unused)
+{
+	mark_complete(NULL, ref->old_sha1, 0, NULL);
+}
+
 static int everything_local(struct ref **refs, int nr_match, char **match)
 {
 	struct ref *ref;
@@ -609,6 +614,7 @@ static int everything_local(struct ref **refs, int nr_match, char **match)
 
 	if (!args.depth) {
 		for_each_ref(mark_complete, NULL);
+		for_each_alternate_ref(mark_alternate_complete, NULL);
 		if (cutoff)
 			mark_recent_complete_commits(cutoff);
 	}
diff --git a/t/t5700-clone-reference.sh b/t/t5700-clone-reference.sh
index 2dafee8..783f988 100755
--- a/t/t5700-clone-reference.sh
+++ b/t/t5700-clone-reference.sh
@@ -167,7 +167,7 @@ test_expect_success 'prepare branched repository' '
 
 rm -f "$U.K"
 
-test_expect_failure 'fetch with incomplete alternates' '
+test_expect_success 'fetch with incomplete alternates' '
 	git init K &&
 	echo "$base_dir/A/.git/objects" >K/.git/objects/info/alternates &&
 	(
-- 
1.7.9
Previous: mhagger@alum.mit.eduNext: mhagger@alum.mit.edu
Message 10 of 14 in “Make alternates affect fetch behavior”
  1. 0/7 Make alternates affect fetch behaviormhagger@alum.mit.edu, Feb 11, 2012
  2. 1/7 t5700: document a failure of alternates to affect fetchmhagger@alum.mit.edu, Feb 11, 2012
  3. Junio C HamanoFeb 13, 2012
  4. Michael HaggertyFeb 13, 2012
  5. 2/7 clone.c: move more code into the "if (refs)" conditionalmhagger@alum.mit.edu, Feb 11, 2012
  6. Junio C HamanoFeb 13, 2012
  7. 3/7 fetch-pack.c: rename some parameters from "path" to "refname"mhagger@alum.mit.edu, Feb 11, 2012
  8. Junio C HamanoFeb 13, 2012
  9. 4/7 fetch-pack.c: inline insert_alternate_refs()mhagger@alum.mit.edu, Feb 11, 2012
  10. 5/7 everything_local(): mark alternate refs as completemhagger@alum.mit.edu, Feb 11, 2012
  11. 6/7 clone: do not add alternate references to extra_refsmhagger@alum.mit.edu, Feb 11, 2012
  12. Junio C HamanoFeb 13, 2012
  13. 7/7 refs: remove the extra_refs APImhagger@alum.mit.edu, Feb 11, 2012
  14. Jeff KingFeb 14, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.