diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-10-07 13:38:18 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-10-07 13:38:18 -0700 |
commit | a23d263b69d353e6945281cd1a19fa6f1d0aaeee (patch) | |
tree | 91fac2d6ef2bfd1b611d5ce383ac603795b665ce /git-filter-branch.sh | |
parent | Merge branch 'nd/ignore-then-not-ignore' (diff) | |
parent | filter-branch: make report-progress more readable (diff) | |
download | tgif-a23d263b69d353e6945281cd1a19fa6f1d0aaeee.tar.xz |
Merge branch 'gb/filter-branch-progress'
Give progress meter to "git filter-branch".
* gb/filter-branch-progress:
filter-branch: make report-progress more readable
filter-branch: add passed/remaining seconds on progress
Diffstat (limited to 'git-filter-branch.sh')
-rwxr-xr-x | git-filter-branch.sh | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/git-filter-branch.sh b/git-filter-branch.sh index 5b3f63d8bb..5777947a5d 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -275,11 +275,41 @@ commits=$(wc -l <../revs | tr -d " ") test $commits -eq 0 && die "Found nothing to rewrite" # Rewrite the commits +report_progress () +{ + if test -n "$progress" && + test $git_filter_branch__commit_count -gt $next_sample_at + then + count=$git_filter_branch__commit_count + + now=$(date +%s) + elapsed=$(($now - $start_timestamp)) + remaining=$(( ($commits - $count) * $elapsed / $count )) + if test $elapsed -gt 0 + then + next_sample_at=$(( ($elapsed + 1) * $count / $elapsed )) + else + next_sample_at=$(($next_sample_at + 1)) + fi + progress=" ($elapsed seconds passed, remaining $remaining predicted)" + fi + printf "\rRewrite $commit ($count/$commits)$progress " +} git_filter_branch__commit_count=0 + +progress= start_timestamp= +if date '+%s' 2>/dev/null | grep -q '^[0-9][0-9]*$' +then + next_sample_at=0 + progress="dummy to ensure this is not empty" + start_timestamp=$(date '+%s') +fi + while read commit parents; do git_filter_branch__commit_count=$(($git_filter_branch__commit_count+1)) - printf "\rRewrite $commit ($git_filter_branch__commit_count/$commits)" + + report_progress case "$filter_subdir" in "") |