summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: ff00b68)
raw | patch | inline | side by side (parent: ff00b68)
author | Junio C Hamano <gitster@pobox.com> | |
Thu, 14 Jul 2011 01:42:32 +0000 (18:42 -0700) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Thu, 14 Jul 2011 04:58:15 +0000 (21:58 -0700) |
Since 34110cd (Make 'unpack_trees()' have a separate source and
destination index, 2008-03-06), we can run unpack_trees() without munging
the index at all, but do_diff_cache() tried ever so carefully to work
around the old behaviour of the function.
We can just tell unpack_trees() not to touch the original index and there
is no need to clean-up whatever the previous round has done.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
destination index, 2008-03-06), we can run unpack_trees() without munging
the index at all, but do_diff_cache() tried ever so carefully to work
around the old behaviour of the function.
We can just tell unpack_trees() not to touch the original index and there
is no need to clean-up whatever the previous round has done.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff-lib.c | patch | blob | history |
diff --git a/diff-lib.c b/diff-lib.c
index fd61acbdce8c65f5146b15af0ab322501f271794..b5bb58d1832db97fc87addbc19f2234424e52dd6 100644 (file)
--- a/diff-lib.c
+++ b/diff-lib.c
{
struct tree *tree;
struct rev_info revs;
- int i;
- struct cache_entry **dst;
- struct cache_entry *last = NULL;
struct unpack_trees_options opts;
struct tree_desc t;
- /*
- * This is used by git-blame to run diff-cache internally;
- * it potentially needs to repeatedly run this, so we will
- * start by removing the higher order entries the last round
- * left behind.
- */
- dst = active_cache;
- for (i = 0; i < active_nr; i++) {
- struct cache_entry *ce = active_cache[i];
- if (ce_stage(ce)) {
- if (last && !strcmp(ce->name, last->name))
- continue;
- cache_tree_invalidate_path(active_cache_tree,
- ce->name);
- last = ce;
- ce->ce_flags |= CE_REMOVE;
- }
- *dst++ = ce;
- }
- active_nr = dst - active_cache;
-
init_revisions(&revs, NULL);
init_pathspec(&revs.prune_data, opt->pathspec.raw);
tree = parse_tree_indirect(tree_sha1);
opts.fn = oneway_diff;
opts.unpack_data = &revs;
opts.src_index = &the_index;
- opts.dst_index = &the_index;
+ opts.dst_index = NULL;
init_tree_desc(&t, tree->buffer, tree->size);
if (unpack_trees(1, &t, &opts))