Skip to content

Commit

Permalink
Merge branch 'gb/filter-branch-progress'
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Junio C Hamano committed Oct 7, 2015
2 parents 506d8f1 + 71400d9 commit a23d263
Showing 1 changed file with 31 additions and 1 deletion.
32 changes: 31 additions & 1 deletion git-filter-branch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
"")
Expand Down

0 comments on commit a23d263

Please sign in to comment.