summaryrefslogtreecommitdiff
path: root/include/git2/index.h
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@elego.de>2011-04-11 17:41:21 +0200
committerCarlos Martín Nieto <cmn@elego.de>2011-04-11 17:43:56 +0200
commit55c197cdd37b34c7b4877bc0434c297075e11222 (patch)
tree05dcc126d117b1753e07f0a173cf9498a38ac4f9 /include/git2/index.h
parentb075b9910c56c356d53439fd34486a905146211a (diff)
parentfdd0cc9e8948bb65c9a461c58e5094a3613bd975 (diff)
downloadlibgit2-55c197cdd37b34c7b4877bc0434c297075e11222.tar.gz
Merge upstream/development
Diffstat (limited to 'include/git2/index.h')
-rw-r--r--include/git2/index.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/git2/index.h b/include/git2/index.h
index 599512f8a..8a84f507b 100644
--- a/include/git2/index.h
+++ b/include/git2/index.h
@@ -44,6 +44,46 @@ GIT_BEGIN_DECL
#define GIT_IDXENTRY_VALID (0x8000)
#define GIT_IDXENTRY_STAGESHIFT 12
+/*
+ * Flags are divided into two parts: in-memory flags and
+ * on-disk ones. Flags in GIT_IDXENTRY_EXTENDED_FLAGS
+ * will get saved on-disk.
+ *
+ * In-memory only flags:
+ */
+#define GIT_IDXENTRY_UPDATE (1 << 16)
+#define GIT_IDXENTRY_REMOVE (1 << 17)
+#define GIT_IDXENTRY_UPTODATE (1 << 18)
+#define GIT_IDXENTRY_ADDED (1 << 19)
+
+#define GIT_IDXENTRY_HASHED (1 << 20)
+#define GIT_IDXENTRY_UNHASHED (1 << 21)
+#define GIT_IDXENTRY_WT_REMOVE (1 << 22) /* remove in work directory */
+#define GIT_IDXENTRY_CONFLICTED (1 << 23)
+
+#define GIT_IDXENTRY_UNPACKED (1 << 24)
+#define GIT_IDXENTRY_NEW_SKIP_WORKTREE (1 << 25)
+
+/*
+ * Extended on-disk flags:
+ */
+#define GIT_IDXENTRY_INTENT_TO_ADD (1 << 29)
+#define GIT_IDXENTRY_SKIP_WORKTREE (1 << 30)
+/* GIT_IDXENTRY_EXTENDED2 is for future extension */
+#define GIT_IDXENTRY_EXTENDED2 (1 << 31)
+
+#define GIT_IDXENTRY_EXTENDED_FLAGS (GIT_IDXENTRY_INTENT_TO_ADD | GIT_IDXENTRY_SKIP_WORKTREE)
+
+/*
+ * Safeguard to avoid saving wrong flags:
+ * - GIT_IDXENTRY_EXTENDED2 won't get saved until its semantic is known
+ * - Bits in 0x0000FFFF have been saved in flags already
+ * - Bits in 0x003F0000 are currently in-memory flags
+ */
+#if GIT_IDXENTRY_EXTENDED_FLAGS & 0x803FFFFF
+#error "GIT_IDXENTRY_EXTENDED_FLAGS out of range"
+#endif
+
/** Time used in a git index entry */
typedef struct {
git_time_t seconds;