projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
git-format-patch: add --output-directory long option again
[git.git]
/
builtin-read-tree.c
diff --git
a/builtin-read-tree.c
b/builtin-read-tree.c
index
10afd46
..
8d1a22d
100644
(file)
--- a/
builtin-read-tree.c
+++ b/
builtin-read-tree.c
@@
-376,6
+376,7
@@
static void check_updates(struct cache_entry **src, int nr)
fprintf(stderr, "%4u%% (%u/%u) done\r",
percent, cnt, total);
last_percent = percent;
fprintf(stderr, "%4u%% (%u/%u) done\r",
percent, cnt, total);
last_percent = percent;
+ progress_update = 0;
}
}
}
}
}
}
@@
-791,25
+792,26
@@
static int oneway_merge(struct cache_entry **src)
static int read_cache_unmerged(void)
{
static int read_cache_unmerged(void)
{
- int i
, deleted
;
+ int i;
struct cache_entry **dst;
struct cache_entry **dst;
+ struct cache_entry *last = NULL;
read_cache();
dst = active_cache;
read_cache();
dst = active_cache;
- deleted = 0;
for (i = 0; i < active_nr; i++) {
struct cache_entry *ce = active_cache[i];
if (ce_stage(ce)) {
for (i = 0; i < active_nr; i++) {
struct cache_entry *ce = active_cache[i];
if (ce_stage(ce)) {
- deleted++;
+ if (last && !strcmp(ce->name, last->name))
+ continue;
invalidate_ce_path(ce);
invalidate_ce_path(ce);
- continue;
+ last = ce;
+ ce->ce_mode = 0;
+ ce->ce_flags &= ~htons(CE_STAGEMASK);
}
}
- if (deleted)
- *dst = ce;
- dst++;
+ *dst++ = ce;
}
}
- active_nr
-= deleted
;
- return
deleted
;
+ active_nr
= dst - active_cache
;
+ return
!!last
;
}
static void prime_cache_tree_rec(struct cache_tree *it, struct tree *tree)
}
static void prime_cache_tree_rec(struct cache_tree *it, struct tree *tree)
@@
-894,7
+896,10
@@
int cmd_read_tree(int argc, const char **argv, char **envp)
continue;
}
continue;
}
- /* This differs from "-m" in that we'll silently ignore unmerged entries */
+ /* This differs from "-m" in that we'll silently ignore
+ * unmerged entries and overwrite working tree files that
+ * correspond to them.
+ */
if (!strcmp(arg, "--reset")) {
if (stage || merge)
usage(read_tree_usage);
if (!strcmp(arg, "--reset")) {
if (stage || merge)
usage(read_tree_usage);