[v3,0/5] rebase/progress: add and use term_clear_line()
mbox series

Message ID 20190624181318.17388-1-szeder.dev@gmail.com
Headers show
Series
  • rebase/progress: add and use term_clear_line()
Related show

Message

SZEDER Gábor June 24, 2019, 6:13 p.m. UTC
This series fixes some garbled progress display in 'git rebase' and
simplifies clearing up the progress display in general.

Only slight updates since the previous version to remove one of the
"Yuck"s by making the offending test in t3404 more focused, making
the first patch of the previous version pointless.  There is also a 
a preparatory cleanup patch 't3404: modernize here doc style'.


v2: https://public-inbox.org/git/20190611130320.18499-1-szeder.dev@gmail.com/T/#u


SZEDER Gábor (5):
  t3404: modernize here doc style
  t3404: make the 'rebase.missingCommitsCheck=ignore' test more focused
  pager: add a helper function to clear the last line in the terminal
  rebase: fix garbled progress display with '-x'
  progress: use term_clear_line()

 cache.h                       |   1 +
 editor.c                      |   6 +-
 pager.c                       |  20 ++++++
 progress.c                    |  28 ++++----
 sequencer.c                   |  17 ++++-
 t/t3404-rebase-interactive.sh | 120 ++++++++++++++--------------------
 t/t3420-rebase-autostash.sh   |   4 +-
 t/t5541-http-push-smart.sh    |   6 +-
 8 files changed, 104 insertions(+), 98 deletions(-)

Range-diff:
1:  b392128604 < -:  ---------- t3404-rebase-interactive: use the 'q_to_cr' helper
-:  ---------- > 1:  4372a3cde4 t3404: modernize here doc style
-:  ---------- > 2:  5444f547c5 t3404: make the 'rebase.missingCommitsCheck=ignore' test more focused
2:  b48f49c114 = 3:  5ebf218cb9 pager: add a helper function to clear the last line in the terminal
3:  b25363c7c3 ! 4:  51cd5ccd46 rebase: fix garbled progress display with '-x'
    @@ -39,13 +39,13 @@
         "Stopped at <abbrev-oid>... <subject>" for the 'edit' or 'break'
         commands, or the "Successfully rebased and updated <full-ref>." at the
         very end.  These are so long that they practically always overwrite
    -    that "Rebasing (n/m)" progress line, but let's be prudent, and clear
    +    that "Rebasing (N/M)" progress line, but let's be prudent, and clear
         the last line before printing these, too.
     
    -    Three tests, one in 't3404-rebase-interactive.sh' and two in
    -    't3420-rebase-autostash.sh' check the full output of 'git rebase' and
    -    thus are affected by this change, so adjust their expectations to
    -    account for the new line clearing.
    +    In 't3420-rebase-autostash.sh' two helper functions prepare the
    +    expected output of four tests that check the full output of 'git
    +    rebase' and thus are affected by this change, so adjust their
    +    expectations to account for the new line clearing.
     
         Note that this patch doesn't completely eliminate the possibility of
         similar garbled outputs, e.g. some error messages from rebase or the
    @@ -116,19 +116,6 @@
      		strbuf_release(&buf);
      		strbuf_release(&head_ref);
     
    - diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
    - --- a/t/t3404-rebase-interactive.sh
    - +++ b/t/t3404-rebase-interactive.sh
    -@@
    - Use 'git config rebase.missingCommitsCheck' to change the level of warnings.
    - The possible behaviours are: ignore, warn, error.
    - 
    --Rebasing (1/4)QRebasing (2/4)QRebasing (3/4)QRebasing (4/4)QSuccessfully rebased and updated refs/heads/missing-commit.
    -+Rebasing (1/4)QRebasing (2/4)QRebasing (3/4)QRebasing (4/4)QQ                                                                                QSuccessfully rebased and updated refs/heads/missing-commit.
    - EOF
    - 
    - test_expect_success 'rebase -i respects rebase.missingCommitsCheck = warn' '
    -
      diff --git a/t/t3420-rebase-autostash.sh b/t/t3420-rebase-autostash.sh
      --- a/t/t3420-rebase-autostash.sh
      +++ b/t/t3420-rebase-autostash.sh
4:  ec85b386fd = 5:  09642a458e progress: use term_clear_line()