summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 13e897e)
raw | patch | inline | side by side (parent: 13e897e)
author | Linus Torvalds <torvalds@ppc970.osdl.org> | |
Sat, 16 Apr 2005 04:45:38 +0000 (21:45 -0700) | ||
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | |
Sat, 16 Apr 2005 04:45:38 +0000 (21:45 -0700) |
This will allow us to have the same name in different "states" in the
index at the same time. Which in turn seems to be a very simple way to
merge.
index at the same time. Which in turn seems to be a very simple way to
merge.
cache.h | patch | blob | history | |
read-tree.c | patch | blob | history | |
update-cache.c | patch | blob | history |
index 5b3cd95aa19e8028a9a5b921135356f30b83a02e..bce48b00df855fdd4adf83ca875a17d16b359f54 100644 (file)
--- a/cache.h
+++ b/cache.h
unsigned int ce_gid;
unsigned int ce_size;
unsigned char sha1[20];
- unsigned short ce_namelen;
+ unsigned short ce_flags;
char name[0];
};
+#define CE_NAMEMASK (0x0fff)
+#define CE_STAGE1 (0x1000)
+#define CE_STAGE2 (0x2000)
+
const char *sha1_file_directory;
struct cache_entry **active_cache;
unsigned int active_nr, active_alloc;
#define DEFAULT_DB_ENVIRONMENT ".git/objects"
#define cache_entry_size(len) ((offsetof(struct cache_entry,name) + (len) + 8) & ~7)
-#define ce_namelen(ce) ntohs((ce)->ce_namelen)
+#define ce_namelen(ce) (CE_NAMEMASK & ntohs((ce)->ce_flags))
#define ce_size(ce) cache_entry_size(ce_namelen(ce))
#define alloc_nr(x) (((x)+16)*3/2)
diff --git a/read-tree.c b/read-tree.c
index 5c6588da4fc95c39e8f5ec8209780509903e56e4..7ee1275b0c603626b9af1103627be070275ed97e 100644 (file)
--- a/read-tree.c
+++ b/read-tree.c
memset(ce, 0, size);
ce->ce_mode = htonl(mode);
- ce->ce_namelen = htons(baselen + len);
+ ce->ce_flags = htons(baselen + len);
memcpy(ce->name, base, baselen);
memcpy(ce->name + baselen, pathname, len+1);
memcpy(ce->sha1, sha1, 20);
diff --git a/update-cache.c b/update-cache.c
index 065705a9b4350a907ce7e9ac4e661de894f9fd6a..134ba7439891d698c4b82223a9e872d3a77e5edb 100644 (file)
--- a/update-cache.c
+++ b/update-cache.c
memcpy(ce->name, path, namelen);
fill_stat_cache_info(ce, &st);
ce->ce_mode = htonl(st.st_mode);
- ce->ce_namelen = htons(namelen);
+ ce->ce_flags = htons(namelen);
if (index_fd(path, namelen, ce, fd, &st) < 0)
return -1;
memcpy(ce->sha1, sha1, 20);
memcpy(ce->name, arg3, len);
- ce->ce_namelen = htons(len);
+ ce->ce_flags = htons(len);
ce->ce_mode = htonl(mode);
return add_cache_entry(ce, allow_add);
}