Skip to content

Commit dc7a71a

Browse files
Merge pull request git-for-windows#164 from jeffhostetler/jh-vfs-222-unpack-trees-checkout-detail
trace2:gvfs:experiment Add addition unpack_trees() and report_tracking() data
2 parents e8fe4ef + 9967337 commit dc7a71a

File tree

4 files changed

+38
-13
lines changed

4 files changed

+38
-13
lines changed

builtin/checkout.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -924,12 +924,12 @@ static void update_refs_for_switch(const struct checkout_opts *opts,
924924
(new_branch_info->path || (!opts->force_detach && !strcmp(new_branch_info->name, "HEAD")))) {
925925
unsigned long nr_unpack_entry_at_start;
926926

927-
trace2_region_enter("exp", "report_tracking", the_repository);
927+
trace2_region_enter("tracking", "report_tracking", the_repository);
928928
nr_unpack_entry_at_start = get_nr_unpack_entry();
929929
report_tracking(new_branch_info);
930-
trace2_data_intmax("exp", NULL, "report_tracking/nr_unpack_entries",
930+
trace2_data_intmax("tracking", NULL, "report_tracking/nr_unpack_entries",
931931
(intmax_t)(get_nr_unpack_entry() - nr_unpack_entry_at_start));
932-
trace2_region_leave("exp", "report_tracking", the_repository);
932+
trace2_region_leave("tracking", "report_tracking", the_repository);
933933
}
934934
}
935935

remote.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2003,7 +2003,16 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb,
20032003
char *base;
20042004
int upstream_is_gone = 0;
20052005

2006+
trace2_region_enter("tracking", "stat_tracking_info", NULL);
20062007
sti = stat_tracking_info(branch, &ours, &theirs, &full_base, 0, abf);
2008+
trace2_data_intmax("tracking", NULL, "stat_tracking_info/ab_flags", abf);
2009+
trace2_data_intmax("tracking", NULL, "stat_tracking_info/ab_result", sti);
2010+
if (abf == AHEAD_BEHIND_FULL) {
2011+
trace2_data_intmax("tracking", NULL, "stat_tracking_info/ab_ahead", ours);
2012+
trace2_data_intmax("tracking", NULL, "stat_tracking_info/ab_behind", theirs);
2013+
}
2014+
trace2_region_leave("tracking", "stat_tracking_info", NULL);
2015+
20072016
if (sti < 0) {
20082017
if (!full_base)
20092018
return 0;

trace2/tr2_tgt_event.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ static struct tr2_dst tr2dst_event = { TR2_SYSENV_EVENT, 0, 0, 0 };
3232
* event target. Use the TR2_SYSENV_EVENT_NESTING setting to increase
3333
* region details in the event target.
3434
*/
35-
static int tr2env_event_max_nesting_levels = 2;
35+
static int tr2env_event_max_nesting_levels = 4;
3636

3737
/*
3838
* Use the TR2_SYSENV_EVENT_BRIEF to omit the <time>, <file>, and

unpack-trees.c

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -369,8 +369,12 @@ static int check_updates(struct unpack_trees_options *o)
369369
struct index_state *index = &o->result;
370370
struct checkout state = CHECKOUT_INIT;
371371
int i;
372+
intmax_t sum_unlink = 0;
373+
intmax_t sum_prefetch = 0;
374+
intmax_t sum_checkout = 0;
372375

373376
trace_performance_enter();
377+
trace2_region_enter("unpack_trees", "check_updates", NULL);
374378
state.force = 1;
375379
state.quiet = 1;
376380
state.refresh_cache = 1;
@@ -392,8 +396,10 @@ static int check_updates(struct unpack_trees_options *o)
392396

393397
if (ce->ce_flags & CE_WT_REMOVE) {
394398
display_progress(progress, ++cnt);
395-
if (o->update && !o->dry_run)
399+
if (o->update && !o->dry_run) {
396400
unlink_entry(ce);
401+
sum_unlink++;
402+
}
397403
}
398404
}
399405
remove_marked_cache_entries(index, 0);
@@ -421,6 +427,7 @@ static int check_updates(struct unpack_trees_options *o)
421427
continue;
422428
oid_array_append(&to_fetch, &ce->oid);
423429
}
430+
sum_prefetch = to_fetch.nr;
424431
if (to_fetch.nr)
425432
fetch_objects(repository_format_partial_clone,
426433
to_fetch.oid, to_fetch.nr);
@@ -437,6 +444,7 @@ static int check_updates(struct unpack_trees_options *o)
437444
ce->ce_flags &= ~CE_UPDATE;
438445
if (o->update && !o->dry_run) {
439446
errs |= checkout_entry(ce, &state, NULL, NULL);
447+
sum_checkout++;
440448
}
441449
}
442450
}
@@ -448,6 +456,14 @@ static int check_updates(struct unpack_trees_options *o)
448456
if (o->clone)
449457
report_collided_checkout(index);
450458

459+
if (sum_unlink > 0)
460+
trace2_data_intmax("unpack_trees", NULL, "check_updates/nr_unlink", sum_unlink);
461+
if (sum_prefetch > 0)
462+
trace2_data_intmax("unpack_trees", NULL, "check_updates/nr_prefetch", sum_prefetch);
463+
if (sum_checkout > 0)
464+
trace2_data_intmax("unpack_trees", NULL, "check_updates/nr_write", sum_checkout);
465+
trace2_region_leave("unpack_trees", "check_updates", NULL);
466+
451467
trace_performance_leave("check_updates");
452468
return errs != 0;
453469
}
@@ -1415,16 +1431,16 @@ static int clear_ce_flags(struct index_state *istate,
14151431

14161432
strbuf_reset(&prefix);
14171433

1418-
xsnprintf(label, sizeof(label), "clear_ce_flags(0x%08lx,0x%08lx)",
1434+
xsnprintf(label, sizeof(label), "clear_ce_flags/0x%08lx_0x%08lx",
14191435
(unsigned long)select_mask, (unsigned long)clear_mask);
1420-
trace2_region_enter("exp", label, the_repository);
1436+
trace2_region_enter("unpack_trees", label, the_repository);
14211437
rval = clear_ce_flags_1(istate,
14221438
istate->cache,
14231439
istate->cache_nr,
14241440
&prefix,
14251441
select_mask, clear_mask,
14261442
el, 0);
1427-
trace2_region_leave("exp", label, the_repository);
1443+
trace2_region_leave("unpack_trees", label, the_repository);
14281444

14291445
return rval;
14301446
}
@@ -1480,7 +1496,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
14801496
if (len > MAX_UNPACK_TREES)
14811497
die("unpack_trees takes at most %d trees", MAX_UNPACK_TREES);
14821498

1483-
trace2_region_enter("exp", "unpack_trees", NULL);
1499+
trace2_region_enter("unpack_trees", "unpack_trees", NULL);
14841500
nr_unpack_entry_at_start = get_nr_unpack_entry();
14851501

14861502
trace_performance_enter();
@@ -1561,9 +1577,9 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
15611577
}
15621578

15631579
trace_performance_enter();
1564-
trace2_region_enter("exp", "traverse_trees", the_repository);
1580+
trace2_region_enter("unpack_trees", "traverse_trees", the_repository);
15651581
ret = traverse_trees(o->src_index, len, t, &info);
1566-
trace2_region_leave("exp", "traverse_trees", the_repository);
1582+
trace2_region_leave("unpack_trees", "traverse_trees", the_repository);
15671583
trace_performance_leave("traverse_trees");
15681584
if (ret < 0)
15691585
goto return_failed;
@@ -1663,9 +1679,9 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
16631679
done:
16641680
trace_performance_leave("unpack_trees");
16651681
clear_exclude_list(&el);
1666-
trace2_data_intmax("exp", NULL, "unpack_trees/nr_unpack_entries",
1682+
trace2_data_intmax("unpack_trees", NULL, "unpack_trees/nr_unpack_entries",
16671683
(intmax_t)(get_nr_unpack_entry() - nr_unpack_entry_at_start));
1668-
trace2_region_leave("exp", "unpack_trees", NULL);
1684+
trace2_region_leave("unpack_trees", "unpack_trees", NULL);
16691685
return ret;
16701686

16711687
return_failed:

0 commit comments

Comments
 (0)