#define cache_entry_size(len) ((offsetof(struct cache_entry,name) + (len) + 8) & ~7)
-struct cache_entry **active_cache;
-unsigned int active_nr, active_alloc, active_cache_changed;
+extern struct cache_entry **active_cache;
+extern unsigned int active_nr, active_alloc, active_cache_changed;
- #define DB_ENVIRONMENT "SHA1_FILE_DIRECTORY"
- #define DEFAULT_DB_ENVIRONMENT ".git/objects"
-
- #define get_object_directory() (getenv(DB_ENVIRONMENT) ? : DEFAULT_DB_ENVIRONMENT)
-
+ #define GIT_DIR_ENVIRONMENT "GIT_DIR"
+ #define DEFAULT_GIT_DIR_ENVIRONMENT ".git"
+ #define DB_ENVIRONMENT "GIT_OBJECT_DIRECTORY"
#define INDEX_ENVIRONMENT "GIT_INDEX_FILE"
- #define DEFAULT_INDEX_ENVIRONMENT ".git/index"
- #define get_index_file() (getenv(INDEX_ENVIRONMENT) ? : DEFAULT_INDEX_ENVIRONMENT)
+ extern char *get_object_directory(void);
+ extern char *get_index_file(void);
+
+ #define ALTERNATE_DB_ENVIRONMENT "GIT_ALTERNATE_OBJECT_DIRECTORIES"
#define alloc_nr(x) (((x)+16)*3/2)
int entries = read_cache();
unsigned char sha1[20];
- if (entries <= 0)
- die("write-tree: no cache contents to write");
+ if (entries < 0)
+ die("write-tree: error reading cache");
/* Verify that the tree is merged */
- unmerged = 0;
+ funny = 0;
for (i = 0; i < entries; i++) {
struct cache_entry *ce = active_cache[i];
if (ntohs(ce->ce_flags) & ~CE_NAMEMASK) {