Skip to content

Commit 1694591

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 c87ef84 commit 1694591

File tree

1 file changed

+35
-2
lines changed

1 file changed

+35
-2
lines changed

virtualfilesystem.c

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,11 @@ void apply_virtualfilesystem(struct index_state *istate)
254254
{
255255
char *buf, *entry;
256256
int i;
257+
int nr_unknown = 0;
258+
int nr_vfs_dirs = 0;
259+
int nr_vfs_rows = 0;
260+
int nr_bulk_skip = 0;
261+
int nr_explicit_skip = 0;
257262

258263
if (!git_config_get_virtualfilesystem())
259264
return;
@@ -271,35 +276,63 @@ void apply_virtualfilesystem(struct index_state *istate)
271276
if (buf[i] == '\0') {
272277
int pos, len;
273278

279+
nr_vfs_rows++;
280+
274281
len = buf + i - entry;
275282

276283
/* look for a directory wild card (ie "dir1/") */
277284
if (buf[i - 1] == '/') {
285+
nr_vfs_dirs++;
278286
if (ignore_case)
279287
adjust_dirname_case(istate, entry);
280288
pos = index_name_pos(istate, entry, len);
281289
if (pos < 0) {
282290
pos = -pos - 1;
283291
while (pos < istate->cache_nr && !fspathncmp(istate->cache[pos]->name, entry, len)) {
292+
if (istate->cache[pos]->ce_flags & CE_SKIP_WORKTREE)
293+
nr_bulk_skip++;
284294
istate->cache[pos]->ce_flags &= ~CE_SKIP_WORKTREE;
285295
pos++;
286296
}
287297
}
288298
} else {
289299
if (ignore_case) {
290300
struct cache_entry *ce = index_file_exists(istate, entry, len, ignore_case);
291-
if (ce)
301+
if (ce) {
302+
if (ce->ce_flags & CE_SKIP_WORKTREE)
303+
nr_explicit_skip++;
292304
ce->ce_flags &= ~CE_SKIP_WORKTREE;
305+
}
306+
else {
307+
nr_unknown++;
308+
}
293309
} else {
294310
int pos = index_name_pos(istate, entry, len);
295-
if (pos >= 0)
311+
if (pos >= 0) {
312+
if (istate->cache[pos]->ce_flags & CE_SKIP_WORKTREE)
313+
nr_explicit_skip++;
296314
istate->cache[pos]->ce_flags &= ~CE_SKIP_WORKTREE;
315+
}
316+
else {
317+
nr_unknown++;
318+
}
297319
}
298320
}
299321

300322
entry += len + 1;
301323
}
302324
}
325+
326+
if (nr_vfs_rows > 0) {
327+
trace2_data_intmax("vfs", the_repository, "apply/tracked", nr_bulk_skip + nr_explicit_skip);
328+
329+
trace2_data_intmax("vfs", the_repository, "apply/vfs_rows", nr_vfs_rows);
330+
trace2_data_intmax("vfs", the_repository, "apply/vfs_dirs", nr_vfs_dirs);
331+
332+
trace2_data_intmax("vfs", the_repository, "apply/nr_unknown", nr_unknown);
333+
trace2_data_intmax("vfs", the_repository, "apply/nr_bulk_skip", nr_bulk_skip);
334+
trace2_data_intmax("vfs", the_repository, "apply/nr_explicit_skip", nr_explicit_skip);
335+
}
303336
}
304337

305338
/*

0 commit comments

Comments
 (0)