Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Use cache-tree in update-index.
author
Junio C Hamano
<junkio@cox.net>
Mon, 24 Apr 2006 07:23:54 +0000
(
00:23
-0700)
committer
Junio C Hamano
<junkio@cox.net>
Mon, 24 Apr 2006 07:26:31 +0000
(
00:26
-0700)
Signed-off-by: Junio C Hamano <junkio@cox.net>
update-index.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
03ac6e6
)
diff --git
a/update-index.c
b/update-index.c
index 1efac27c6baf26ed881099e91a3cbd5dbb3c2289..86f53948fceaa93fb928323e6fba737510cec86a 100644
(file)
--- a/
update-index.c
+++ b/
update-index.c
@@
-6,6
+6,11
@@
#include "cache.h"
#include "strbuf.h"
#include "quote.h"
#include "cache.h"
#include "strbuf.h"
#include "quote.h"
+#include "tree.h"
+#include "cache-tree.h"
+
+static unsigned char active_cache_sha1[20];
+static struct cache_tree *active_cache_tree;
/*
* Default to not allowing changes to the list of files. The
/*
* Default to not allowing changes to the list of files. The
@@
-70,6
+75,7
@@
static int mark_valid(const char *path)
active_cache[pos]->ce_flags &= ~htons(CE_VALID);
break;
}
active_cache[pos]->ce_flags &= ~htons(CE_VALID);
break;
}
+ cache_tree_invalidate_path(active_cache_tree, path);
active_cache_changed = 1;
return 0;
}
active_cache_changed = 1;
return 0;
}
@@
-83,6
+89,12
@@
static int add_file_to_cache(const char *path)
struct stat st;
status = lstat(path, &st);
struct stat st;
status = lstat(path, &st);
+
+ /* We probably want to do this in remove_file_from_cache() and
+ * add_cache_entry() instead...
+ */
+ cache_tree_invalidate_path(active_cache_tree, path);
+
if (status < 0 || S_ISDIR(st.st_mode)) {
/* When we used to have "path" and now we want to add
* "path/file", we need a way to remove "path" before
if (status < 0 || S_ISDIR(st.st_mode)) {
/* When we used to have "path" and now we want to add
* "path/file", we need a way to remove "path" before
@@
-325,6
+337,7
@@
static int add_cacheinfo(unsigned int mode, const unsigned char *sha1,
return error("%s: cannot add to the index - missing --add option?",
path);
report("add '%s'", path);
return error("%s: cannot add to the index - missing --add option?",
path);
report("add '%s'", path);
+ cache_tree_invalidate_path(active_cache_tree, path);
return 0;
}
return 0;
}
@@
-349,6
+362,7
@@
static int chmod_path(int flip, const char *path)
default:
return -1;
}
default:
return -1;
}
+ cache_tree_invalidate_path(active_cache_tree, path);
active_cache_changed = 1;
return 0;
}
active_cache_changed = 1;
return 0;
}
@@
-367,6
+381,7
@@
static void update_one(const char *path, const char *prefix, int prefix_length)
die("Unable to mark file %s", path);
return;
}
die("Unable to mark file %s", path);
return;
}
+ cache_tree_invalidate_path(active_cache_tree, path);
if (force_remove) {
if (remove_file_from_cache(p))
if (force_remove) {
if (remove_file_from_cache(p))
@@
-442,6
+457,7
@@
static void read_index_info(int line_termination)
free(path_name);
continue;
}
free(path_name);
continue;
}
+ cache_tree_invalidate_path(active_cache_tree, path_name);
if (!mode) {
/* mode == 0 means there is no such path -- remove */
if (!mode) {
/* mode == 0 means there is no such path -- remove */
@@
-485,9
+501,10
@@
int main(int argc, const char **argv)
if (newfd < 0)
die("unable to create new cachefile");
if (newfd < 0)
die("unable to create new cachefile");
- entries = read_cache
(
);
+ entries = read_cache
_1(active_cache_sha1
);
if (entries < 0)
die("cache corrupted");
if (entries < 0)
die("cache corrupted");
+ active_cache_tree = read_cache_tree(active_cache_sha1);
for (i = 1 ; i < argc; i++) {
const char *path = argv[i];
for (i = 1 ; i < argc; i++) {
const char *path = argv[i];
@@
-613,9
+630,11
@@
int main(int argc, const char **argv)
}
}
if (active_cache_changed) {
}
}
if (active_cache_changed) {
- if (write_cache(newfd, active_cache, active_nr) ||
+ if (write_cache_1(newfd, active_cache, active_nr,
+ active_cache_sha1) ||
commit_index_file(&cache_file))
die("Unable to write new cachefile");
commit_index_file(&cache_file))
die("Unable to write new cachefile");
+ write_cache_tree(active_cache_sha1, active_cache_tree);
}
return has_errors ? 1 : 0;
}
return has_errors ? 1 : 0;