Browse Source

midx: use start_delayed_progress()

Now that the multi-pack-index may be written as part of auto maintenance
at the end of a command, reduce the progress output when the operations
are quick. Use start_delayed_progress() instead of start_progress().

Update t5319-multi-pack-index.sh to use GIT_PROGRESS_DELAY=0 now that
the progress indicators are conditional.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Derrick Stolee 4 years ago committed by Junio C Hamano
parent
commit
efdd2f0d4c
  1. 10
      midx.c
  2. 14
      t/t5319-multi-pack-index.sh

10
midx.c

@ -832,7 +832,7 @@ static int write_midx_internal(const char *object_dir, struct multi_pack_index *


packs.pack_paths_checked = 0; packs.pack_paths_checked = 0;
if (flags & MIDX_PROGRESS) if (flags & MIDX_PROGRESS)
packs.progress = start_progress(_("Adding packfiles to multi-pack-index"), 0); packs.progress = start_delayed_progress(_("Adding packfiles to multi-pack-index"), 0);
else else
packs.progress = NULL; packs.progress = NULL;


@ -969,7 +969,7 @@ static int write_midx_internal(const char *object_dir, struct multi_pack_index *
} }


if (flags & MIDX_PROGRESS) if (flags & MIDX_PROGRESS)
progress = start_progress(_("Writing chunks to multi-pack-index"), progress = start_delayed_progress(_("Writing chunks to multi-pack-index"),
num_chunks); num_chunks);
for (i = 0; i < num_chunks; i++) { for (i = 0; i < num_chunks; i++) {
if (written != chunk_offsets[i]) if (written != chunk_offsets[i])
@ -1104,7 +1104,7 @@ int verify_midx_file(struct repository *r, const char *object_dir, unsigned flag
return 0; return 0;


if (flags & MIDX_PROGRESS) if (flags & MIDX_PROGRESS)
progress = start_progress(_("Looking for referenced packfiles"), progress = start_delayed_progress(_("Looking for referenced packfiles"),
m->num_packs); m->num_packs);
for (i = 0; i < m->num_packs; i++) { for (i = 0; i < m->num_packs; i++) {
if (prepare_midx_pack(r, m, i)) if (prepare_midx_pack(r, m, i))
@ -1225,7 +1225,7 @@ int expire_midx_packs(struct repository *r, const char *object_dir, unsigned fla
count = xcalloc(m->num_packs, sizeof(uint32_t)); count = xcalloc(m->num_packs, sizeof(uint32_t));


if (flags & MIDX_PROGRESS) if (flags & MIDX_PROGRESS)
progress = start_progress(_("Counting referenced objects"), progress = start_delayed_progress(_("Counting referenced objects"),
m->num_objects); m->num_objects);
for (i = 0; i < m->num_objects; i++) { for (i = 0; i < m->num_objects; i++) {
int pack_int_id = nth_midxed_pack_int_id(m, i); int pack_int_id = nth_midxed_pack_int_id(m, i);
@ -1235,7 +1235,7 @@ int expire_midx_packs(struct repository *r, const char *object_dir, unsigned fla
stop_progress(&progress); stop_progress(&progress);


if (flags & MIDX_PROGRESS) if (flags & MIDX_PROGRESS)
progress = start_progress(_("Finding and deleting unreferenced packfiles"), progress = start_delayed_progress(_("Finding and deleting unreferenced packfiles"),
m->num_packs); m->num_packs);
for (i = 0; i < m->num_packs; i++) { for (i = 0; i < m->num_packs; i++) {
char *pack_name; char *pack_name;

14
t/t5319-multi-pack-index.sh

@ -171,12 +171,12 @@ test_expect_success 'write progress off for redirected stderr' '
' '


test_expect_success 'write force progress on for stderr' ' test_expect_success 'write force progress on for stderr' '
git multi-pack-index --object-dir=$objdir --progress write 2>err && GIT_PROGRESS_DELAY=0 git multi-pack-index --object-dir=$objdir --progress write 2>err &&
test_file_not_empty err test_file_not_empty err
' '


test_expect_success 'write with the --no-progress option' ' test_expect_success 'write with the --no-progress option' '
git multi-pack-index --object-dir=$objdir --no-progress write 2>err && GIT_PROGRESS_DELAY=0 git multi-pack-index --object-dir=$objdir --no-progress write 2>err &&
test_line_count = 0 err test_line_count = 0 err
' '


@ -333,17 +333,17 @@ test_expect_success 'git-fsck incorrect offset' '
' '


test_expect_success 'repack progress off for redirected stderr' ' test_expect_success 'repack progress off for redirected stderr' '
git multi-pack-index --object-dir=$objdir repack 2>err && GIT_PROGRESS_DELAY=0 git multi-pack-index --object-dir=$objdir repack 2>err &&
test_line_count = 0 err test_line_count = 0 err
' '


test_expect_success 'repack force progress on for stderr' ' test_expect_success 'repack force progress on for stderr' '
git multi-pack-index --object-dir=$objdir --progress repack 2>err && GIT_PROGRESS_DELAY=0 git multi-pack-index --object-dir=$objdir --progress repack 2>err &&
test_file_not_empty err test_file_not_empty err
' '


test_expect_success 'repack with the --no-progress option' ' test_expect_success 'repack with the --no-progress option' '
git multi-pack-index --object-dir=$objdir --no-progress repack 2>err && GIT_PROGRESS_DELAY=0 git multi-pack-index --object-dir=$objdir --no-progress repack 2>err &&
test_line_count = 0 err test_line_count = 0 err
' '


@ -487,7 +487,7 @@ test_expect_success 'expire progress off for redirected stderr' '
test_expect_success 'expire force progress on for stderr' ' test_expect_success 'expire force progress on for stderr' '
( (
cd dup && cd dup &&
git multi-pack-index --progress expire 2>err && GIT_PROGRESS_DELAY=0 git multi-pack-index --progress expire 2>err &&
test_file_not_empty err test_file_not_empty err
) )
' '
@ -495,7 +495,7 @@ test_expect_success 'expire force progress on for stderr' '
test_expect_success 'expire with the --no-progress option' ' test_expect_success 'expire with the --no-progress option' '
( (
cd dup && cd dup &&
git multi-pack-index --no-progress expire 2>err && GIT_PROGRESS_DELAY=0 git multi-pack-index --no-progress expire 2>err &&
test_line_count = 0 err test_line_count = 0 err
) )
' '

Loading…
Cancel
Save