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

[PATCH v3 1/2] object.h: centralize object flag allocation

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Mar 20, 2014, 05:44 UTC
Message-ID
<1395294254-941-1-git-send-email-pclouds@gmail.com>
In-Reply-To
<1395060676-23144-1-git-send-email-pclouds@gmail.com>

While the field "flags" is mainly used by the revision walker, it is also used in many other places. Centralize the whole flag allocation to one place for a better overview (and easier to move flags if we have too).

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 The next step could be define (instead of document) all of them in
 a single place. But that may result in naming conflicts and stuff
 for little gain.
 bisect.c        |  3 +--
 builtin/blame.c |  2 +-
 bundle.c        |  1 +
 commit.c        |  2 +-
 fetch-pack.c    |  1 +
 http-push.c     |  3 +--
 object.h        | 13 +++++++++++++
 revision.h      |  1 +
 sha1_name.c     |  2 ++
 upload-pack.c   |  2 +-
 walker.c        |  1 +
 11 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/bisect.c b/bisect.c
index 8448d27..d6e851d 100644
--- a/bisect.c
+++ b/bisect.c
@@ -21,8 +21,7 @@ static const char *argv_checkout[] = {"checkout", "-q", NULL, "--", NULL};
 static const char *argv_show_branch[] = {"show-branch", NULL, NULL};
 static const char *argv_update_ref[] = {"update-ref", "--no-deref", "BISECT_HEAD", NULL, NULL};
 
-/* bits #0-15 in revision.h */
-
+/* Remember to update object flag allocation in object.h */
 #define COUNTED		(1u<<16)
 
 /*
diff --git a/builtin/blame.c b/builtin/blame.c
index e5b5d71..88cb799 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -74,7 +74,7 @@ static unsigned blame_copy_score;
 #define BLAME_DEFAULT_MOVE_SCORE	20
 #define BLAME_DEFAULT_COPY_SCORE	40
 
-/* bits #0..7 in revision.h, #8..11 used for merge_bases() in commit.c */
+/* Remember to update object flag allocation in object.h */
 #define METAINFO_SHOWN		(1u<<12)
 #define MORE_THAN_ONE_PATH	(1u<<13)
 
diff --git a/bundle.c b/bundle.c
index a85e0e4..1222952 100644
--- a/bundle.c
+++ b/bundle.c
@@ -120,6 +120,7 @@ static int list_refs(struct ref_list *r, int argc, const char **argv)
 	return 0;
 }
 
+/* Remember to update object flag allocation in object.h */
 #define PREREQ_MARK (1u<<16)
 
 int verify_bundle(struct bundle_header *header, int verbose)
diff --git a/commit.c b/commit.c
index 0f28902..f479331 100644
--- a/commit.c
+++ b/commit.c
@@ -721,7 +721,7 @@ void sort_in_topological_order(struct commit_list **list, enum rev_sort_order so
 
 /* merge-base stuff */
 
-/* bits #0..15 in revision.h */
+/* Remember to update object flag allocation in object.h */
 #define PARENT1		(1u<<16)
 #define PARENT2		(1u<<17)
 #define STALE		(1u<<18)
diff --git a/fetch-pack.c b/fetch-pack.c
index f061f1f..fd470e7 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -26,6 +26,7 @@ static int agent_supported;
 static struct lock_file shallow_lock;
 static const char *alternate_shallow_file;
 
+/* Remember to update object flag allocation in object.h */
 #define COMPLETE	(1U << 0)
 #define COMMON		(1U << 1)
 #define COMMON_REF	(1U << 2)
diff --git a/http-push.c b/http-push.c
index d4b40c9..f2c56c8 100644
--- a/http-push.c
+++ b/http-push.c
@@ -64,8 +64,7 @@ enum XML_Status {
 #define LOCK_TIME 600
 #define LOCK_REFRESH 30
 
-/* bits #0-15 in revision.h */
-
+/* Remember to update object flag allocation in object.h */
 #define LOCAL    (1u<<16)
 #define REMOTE   (1u<<17)
 #define FETCHING (1u<<18)
diff --git a/object.h b/object.h
index 732bf4d..768490b 100644
--- a/object.h
+++ b/object.h
@@ -26,6 +26,19 @@ struct object_array {
 #define OBJECT_ARRAY_INIT { 0, 0, NULL }
 
 #define TYPE_BITS   3
+/*
+ * object flag allocation:
+ * revision.h:      0------10
+ * fetch-pack.c:    0---4
+ * walker.c:        0-2
+ * upload-pack.c:             11---------19
+ * builtin/blame.c:              12-13
+ * bisect.c:                          16
+ * bundle.c:                          16
+ * http-push.c:                       16-19
+ * commit.c:                          16-19
+ * sha1_name.c:                            20
+ */
 #define FLAG_BITS  27
 
 /*
diff --git a/revision.h b/revision.h
index 1eb94c1..0262bbd 100644
--- a/revision.h
+++ b/revision.h
@@ -7,6 +7,7 @@
 #include "commit.h"
 #include "diff.h"
 
+/* Remember to update object flag allocation in object.h */
 #define SEEN		(1u<<0)
 #define UNINTERESTING   (1u<<1)
 #define TREESAME	(1u<<2)
diff --git a/sha1_name.c b/sha1_name.c
index 6fca869..2b6322f 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -819,6 +819,8 @@ static int get_sha1_1(const char *name, int len, unsigned char *sha1, unsigned l
  * For future extension, ':/!' is reserved. If you want to match a message
  * beginning with a '!', you have to repeat the exclamation mark.
  */
+
+/* Remember to update object flag allocation in object.h */
 #define ONELINE_SEEN (1u<<20)
 
 static int handle_one_ref(const char *path,
diff --git a/upload-pack.c b/upload-pack.c
index 9314c25..27df12f 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -17,7 +17,7 @@
 
 static const char upload_pack_usage[] = "git upload-pack [--strict] [--timeout=<n>] <dir>";
 
-/* bits #0..7 in revision.h, #8..10 in commit.c */
+/* Remember to update object flag allocation in object.h */
 #define THEY_HAVE	(1u << 11)
 #define OUR_REF		(1u << 12)
 #define WANTED		(1u << 13)
diff --git a/walker.c b/walker.c
index 633596e..1dd86b8 100644
--- a/walker.c
+++ b/walker.c
@@ -60,6 +60,7 @@ static int process_tree(struct walker *walker, struct tree *tree)
 	return 0;
 }
 
+/* Remember to update object flag allocation in object.h */
 #define COMPLETE	(1U << 0)
 #define SEEN		(1U << 1)
 #define TO_SCAN		(1U << 2)
-- 
1.9.0.201.g13d9d8b
Previous: Junio C HamanoNext: Nguyễn Thái Ngọc Duy
Message 13 of 19 in “Confusing git log --- First time bug submission please advise on best practices”
  1. Francis StephensFeb 6, 2014
  2. Vincent van RavesteijnFeb 6, 2014
  3. David KastrupFeb 6, 2014
  4. Francis StephensFeb 7, 2014
  5. Duy NguyenFeb 7, 2014
  6. demerphqFeb 7, 2014
  7. log: add --show-linear-break to help see non-linear historyNguyễn Thái Ngọc Duy, Feb 8, 2014
  8. log: add --nonlinear-barrier to help see non-linear historyNguyễn Thái Ngọc Duy, Mar 17, 2014
  9. Eric SunshineMar 17, 2014
  10. Junio C HamanoMar 17, 2014
  11. Duy NguyenMar 18, 2014
  12. Junio C HamanoMar 18, 2014
  13. 1/2 object.h: centralize object flag allocationNguyễn Thái Ngọc Duy, Mar 20, 2014
  14. 2/2 log: add --show-linear-break to help see non-linear historyNguyễn Thái Ngọc Duy, Mar 20, 2014
  15. Junio C HamanoMar 20, 2014
  16. Duy NguyenMar 21, 2014
  17. 1/2 object.h: centralize object flag allocationNguyễn Thái Ngọc Duy, Mar 25, 2014
  18. 2/2 log: add --show-linear-break to help see non-linear historyNguyễn Thái Ngọc Duy, Mar 25, 2014
  19. Junio C HamanoMar 25, 2014

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.