Merge branch 'nd/checkout-noisy'

"git checkout [<tree-ish>] path..." learned to report the number of
paths that have been checked out of the index or the tree-ish,
which gives it the same degree of noisy-ness as the case in which
the command checks out a branch.

* nd/checkout-noisy:
  t0027: squelch checkout path run outside test_expect_* block
  checkout: print something when checking out paths
This commit is contained in:
Junio C Hamano
2019-01-14 15:29:28 -08:00
8 changed files with 51 additions and 23 deletions

10
entry.c
View File

@ -161,7 +161,7 @@ static int remove_available_paths(struct string_list_item *item, void *cb_data)
return !available;
}
int finish_delayed_checkout(struct checkout *state)
int finish_delayed_checkout(struct checkout *state, int *nr_checkouts)
{
int errs = 0;
unsigned delayed_object_count;
@ -226,7 +226,7 @@ int finish_delayed_checkout(struct checkout *state)
ce = index_file_exists(state->istate, path->string,
strlen(path->string), 0);
if (ce) {
errs |= checkout_entry(ce, state, NULL);
errs |= checkout_entry(ce, state, NULL, nr_checkouts);
filtered_bytes += ce->ce_stat_data.sd_size;
display_throughput(progress, filtered_bytes);
} else
@ -435,8 +435,8 @@ static void mark_colliding_entries(const struct checkout *state,
* its name is returned in topath[], which must be able to hold at
* least TEMPORARY_FILENAME_LENGTH bytes long.
*/
int checkout_entry(struct cache_entry *ce,
const struct checkout *state, char *topath)
int checkout_entry(struct cache_entry *ce, const struct checkout *state,
char *topath, int *nr_checkouts)
{
static struct strbuf path = STRBUF_INIT;
struct stat st;
@ -506,5 +506,7 @@ int checkout_entry(struct cache_entry *ce,
return 0;
create_directories(path.buf, path.len, state);
if (nr_checkouts)
(*nr_checkouts)++;
return write_entry(ce, path.buf, state, 0);
}