From: Steffen Daode Nurpmeso <sdaoden@xxxxxxxxx> The progress shown by check_updates() yet always printed "Checking out files", even if basically files were only unlinked. This commit diverts that into "Updating working tree:" plus the actual action which currently is performed (i.e. "removing files" or "checking out files"). Inspired-by: Junio C Hamano <gitster@xxxxxxxxx> Signed-off-by: Steffen Daode Nurpmeso <sdaoden@xxxxxxxxx> --- unpack-trees.c | 30 +++++++++++++++++++++++------- 1 files changed, 23 insertions(+), 7 deletions(-) diff --git a/unpack-trees.c b/unpack-trees.c index cc616c3..95cd8a6 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -178,26 +178,34 @@ static void unlink_entry(struct cache_entry *ce) static struct checkout state; static int check_updates(struct unpack_trees_options *o) { - unsigned cnt = 0, total = 0; + unsigned rm_cnt, co_cnt, cnt; struct progress *progress = NULL; struct index_state *index = &o->result; int i; int errs = 0; if (o->update && o->verbose_update) { - for (total = cnt = 0; cnt < index->cache_nr; cnt++) { + rm_cnt = co_cnt = 0; + for (cnt = 0; cnt < index->cache_nr; cnt++) { struct cache_entry *ce = index->cache[cnt]; - if (ce->ce_flags & (CE_UPDATE | CE_WT_REMOVE)) - total++; + switch (ce->ce_flags & (CE_UPDATE | CE_WT_REMOVE)) { + case CE_UPDATE: + co_cnt++; + break; + default: + rm_cnt++; + break; + } } - progress = start_progress_delay("Checking out files", - total, 50, 1); + progress = start_progress_delay("Updating work tree: " + "removing files", + rm_cnt, 64, 1); cnt = 0; } - if (o->update) git_attr_set_direction(GIT_ATTR_CHECKOUT, &o->result); + for (i = 0; i < index->cache_nr; i++) { struct cache_entry *ce = index->cache[i]; @@ -211,6 +219,13 @@ static int check_updates(struct unpack_trees_options *o) remove_marked_cache_entries(&o->result); remove_scheduled_dirs(); + if (co_cnt > 0) { + update_progress(progress, + "Updating work tree: checking out files", + co_cnt); + cnt = 0; + } + for (i = 0; i < index->cache_nr; i++) { struct cache_entry *ce = index->cache[i]; @@ -222,6 +237,7 @@ static int check_updates(struct unpack_trees_options *o) } } } + stop_progress(&progress); if (o->update) git_attr_set_direction(GIT_ATTR_CHECKIN, NULL); -- 1.7.7.rc0.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html