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

[PATCH 3/4] Prepare testsuite for a "git clone" that packs refs

From
Johan Herland <johan@herland.net>
Date
Jun 15, 2008, 14:05 UTC
Message-ID
<200806151605.47214.johan@herland.net>
In-Reply-To
<200806151602.03445.johan@herland.net>

t5515-fetch-merge-logic removes many, but not all, refs between each test. This is done by removing the corresponding refs/foo/* files in the .git/refs hierarchy. However, once "git clone" starts producing packed refs, these refs will no longer be in the .git/refs hierarchy, but rather listed in .git/packed-refs. This patch therefore teaches t5515-fetch-merge-logic to also remove the refs in question from the packed-refs file.

Signed-off-by: Johan Herland <johan@herland.net>
---
 t/t5515-fetch-merge-logic.sh |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/t/t5515-fetch-merge-logic.sh b/t/t5515-fetch-merge-logic.sh
index 3def75e..b3e1b97 100755
--- a/t/t5515-fetch-merge-logic.sh
+++ b/t/t5515-fetch-merge-logic.sh
@@ -145,6 +145,25 @@ do
 			rm -f .git/refs/heads/*
 			rm -f .git/refs/remotes/rem/*
 			rm -f .git/refs/tags/*
+			cat .git/packed-refs | \
+			while read sha1 refname
+			do
+				case "$sha1" in
+				^*) # remove peeled tags
+					;;
+				*)
+					case "$refname" in
+					refs/heads/*|\
+					refs/remotes/rem/*|\
+					refs/tags/*) # remove same as above
+						;;
+					*) # keep everything else
+						echo "$sha1 $refname"
+						;;
+					esac
+				esac
+			done > .git/packed-refs.new
+			mv .git/packed-refs.new .git/packed-refs
 			git fetch "$@" >/dev/null
 			cat .git/FETCH_HEAD
 		} >"$actual_f" &&
-- 
1.5.6.rc2.128.gf64ae
Previous: Johan HerlandNext: Jeff King
Message 6 of 13 in “Teach "git clone" to pack refs”
  1. 0/4 Teach "git clone" to pack refsJohan Herland, Jun 15, 2008
  2. 1/4 Incorporate fetched packs in future object traversalJohan Herland, Jun 15, 2008
  3. 2/4 Move pack_refs() and friends into libgitJohan Herland, Jun 15, 2008
  4. Jeff KingJun 15, 2008
  5. 2/4 Move pack_refs() and friends into libgitJohan Herland, Jun 15, 2008
  6. 3/4 Prepare testsuite for a "git clone" that packs refsJohan Herland, Jun 15, 2008
  7. Jeff KingJun 15, 2008
  8. Jakub NarebskiJun 15, 2008
  9. 3/4 Prepare testsuite for a "git clone" that packs refsJohan Herland, Jun 15, 2008
  10. 4/4 Teach "git clone" to pack refsJohan Herland, Jun 15, 2008
  11. Jeff KingJun 15, 2008
  12. Johan HerlandJun 15, 2008
  13. Jeff KingJun 16, 2008

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.