Commit a591ed3ea9e46771510628f1f677f2f3791078d6

Jeff King 2013-05-02T12:06:46

refdb_fs: respect PEELING_STANDARD We only set our negative flag for PEELING_FULL; we can fall back to the lesser PEELING_STANDARD if our ref is in the refs/tags/ hierarchy.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
diff --git a/src/refdb_fs.c b/src/refdb_fs.c
index 2c45eab..c0a32ba 100644
--- a/src/refdb_fs.c
+++ b/src/refdb_fs.c
@@ -252,7 +252,9 @@ static int packed_load(refdb_fs_backend *backend)
 		if (buffer_start[0] == '^') {
 			if (packed_parse_peel(ref, &buffer_start, buffer_end) < 0)
 				goto parse_failed;
-		} else if (backend->peeling_mode == PEELING_FULL) {
+		} else if (backend->peeling_mode == PEELING_FULL ||
+                           (backend->peeling_mode == PEELING_STANDARD &&
+                            git__prefixcmp(ref->name, GIT_REFS_TAGS_DIR) == 0)) {
 			ref->flags |= PACKREF_CANNOT_PEEL;
 		}