summaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2013-05-11 16:15:59 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-05-12 22:23:48 (GMT)
commit900f2814b8da951a450f5762dabb1b248dd77abc (patch)
tree936ac5bd34c4d7ba6d879a209db80a2065364862 /cache.h
parent4ab90e7a5c46ce929ae8b3b7bbb5b276f2f60e0d (diff)
downloadgit-900f2814b8da951a450f5762dabb1b248dd77abc.zip
git-900f2814b8da951a450f5762dabb1b248dd77abc.tar.gz
git-900f2814b8da951a450f5762dabb1b248dd77abc.tar.bz2
refactor "ref->merge" flag
Each "struct ref" has a boolean flag that is set by the fetch code to determine whether the ref should be marked as "not-for-merge" or not when we write it out to FETCH_HEAD. It would be useful to turn this boolean into a tri-state, with the third state meaning "do not bother writing it out to FETCH_HEAD at all". That would let us add extra refs to the set of refs to be stored (e.g., to store copies of things we fetched) without impacting FETCH_HEAD. This patch turns it into an enum that covers the tri-state case, and hopefully makes the code more explicit and easier to read. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'cache.h')
-rw-r--r--cache.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/cache.h b/cache.h
index 94ca1ac..9670d99 100644
--- a/cache.h
+++ b/cache.h
@@ -1024,9 +1024,21 @@ struct ref {
unsigned int
force:1,
forced_update:1,
- merge:1,
deletion:1,
matched:1;
+
+ /*
+ * Order is important here, as we write to FETCH_HEAD
+ * in numeric order. And the default NOT_FOR_MERGE
+ * should be 0, so that xcalloc'd structures get it
+ * by default.
+ */
+ enum {
+ FETCH_HEAD_MERGE = -1,
+ FETCH_HEAD_NOT_FOR_MERGE = 0,
+ FETCH_HEAD_IGNORE = 1
+ } fetch_head_status;
+
enum {
REF_STATUS_NONE = 0,
REF_STATUS_OK,