Skip to content

Commit 091250b

Browse files
jeffhostetlerdscho
authored andcommitted
gvfs:trace2:data: add vfs stats
Report virtual filesystem summary data. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
1 parent 57ac491 commit 091250b

1 file changed

Lines changed: 35 additions & 2 deletions

File tree

virtualfilesystem.c

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,11 @@ void apply_virtualfilesystem(struct index_state *istate)
250250
{
251251
char *buf, *entry;
252252
int i;
253+
int nr_unknown = 0;
254+
int nr_vfs_dirs = 0;
255+
int nr_vfs_rows = 0;
256+
int nr_bulk_skip = 0;
257+
int nr_explicit_skip = 0;
253258

254259
if (!git_config_get_virtualfilesystem())
255260
return;
@@ -267,35 +272,63 @@ void apply_virtualfilesystem(struct index_state *istate)
267272
if (buf[i] == '\0') {
268273
int pos, len;
269274

275+
nr_vfs_rows++;
276+
270277
len = buf + i - entry;
271278

272279
/* look for a directory wild card (ie "dir1/") */
273280
if (buf[i - 1] == '/') {
281+
nr_vfs_dirs++;
274282
if (ignore_case)
275283
adjust_dirname_case(istate, entry);
276284
pos = index_name_pos(istate, entry, len);
277285
if (pos < 0) {
278286
pos = -pos - 1;
279287
while (pos < istate->cache_nr && !fspathncmp(istate->cache[pos]->name, entry, len)) {
288+
if (istate->cache[pos]->ce_flags & CE_SKIP_WORKTREE)
289+
nr_bulk_skip++;
280290
istate->cache[pos]->ce_flags &= ~CE_SKIP_WORKTREE;
281291
pos++;
282292
}
283293
}
284294
} else {
285295
if (ignore_case) {
286296
struct cache_entry *ce = index_file_exists(istate, entry, len, ignore_case);
287-
if (ce)
297+
if (ce) {
298+
if (ce->ce_flags & CE_SKIP_WORKTREE)
299+
nr_explicit_skip++;
288300
ce->ce_flags &= ~CE_SKIP_WORKTREE;
301+
}
302+
else {
303+
nr_unknown++;
304+
}
289305
} else {
290306
int pos = index_name_pos(istate, entry, len);
291-
if (pos >= 0)
307+
if (pos >= 0) {
308+
if (istate->cache[pos]->ce_flags & CE_SKIP_WORKTREE)
309+
nr_explicit_skip++;
292310
istate->cache[pos]->ce_flags &= ~CE_SKIP_WORKTREE;
311+
}
312+
else {
313+
nr_unknown++;
314+
}
293315
}
294316
}
295317

296318
entry += len + 1;
297319
}
298320
}
321+
322+
if (nr_vfs_rows > 0) {
323+
trace2_data_intmax("vfs", the_repository, "apply/tracked", nr_bulk_skip + nr_explicit_skip);
324+
325+
trace2_data_intmax("vfs", the_repository, "apply/vfs_rows", nr_vfs_rows);
326+
trace2_data_intmax("vfs", the_repository, "apply/vfs_dirs", nr_vfs_dirs);
327+
328+
trace2_data_intmax("vfs", the_repository, "apply/nr_unknown", nr_unknown);
329+
trace2_data_intmax("vfs", the_repository, "apply/nr_bulk_skip", nr_bulk_skip);
330+
trace2_data_intmax("vfs", the_repository, "apply/nr_explicit_skip", nr_explicit_skip);
331+
}
299332
}
300333

301334
/*

0 commit comments

Comments
 (0)