[PATCH] filter-branch: add passed/remaining seconds on progress
From: Gabor Bernat adds seconds progress and estimated seconds time if getting the current timestamp is supported by the date %+s command Signed-off-by: Gabor Bernat --- I've submitted this first to this list as a feature request, however in the meantime with the help of Jeff King , Junio C Hamano , Eric Sunshine and Mikael Magnusson came up with solution, so now I submit it as a revised patch. The current solution updates the progress for all commits until 1 second time is elapsed. Afterwards updates it at most once a second. --- git-filter-branch.sh | 36 +++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/git-filter-branch.sh b/git-filter-branch.sh index 5b3f63d..5e9ae0f 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -277,9 +277,43 @@ test $commits -eq 0 && die "Found nothing to rewrite" # Rewrite the commits git_filter_branch__commit_count=0 + +echo $(date +%s) | grep -q '^[0-9]+$'; 2>/dev/null && show_seconds=t +case "$show_seconds" in + t) + start_timestamp=$(date +%s) + next_sample_at=0 + ;; + '') + progress="" + ;; +esac + 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)" + + case "$show_seconds" in + t) + if test $git_filter_branch__commit_count -gt $next_sample_at + then + now_timestamp=$(date +%s) + elapsed_seconds=$(($now_timestamp - $start_timestamp)) + remaining_second=$(( ($commits - $git_filter_branch__commit_count) * $elapsed_seconds / $git_filter_branch__commit_count )) + if test $elapsed_seconds -gt 0 + then + next_sample_at=$(( ($elapsed_seconds + 1) * $git_filter_branch__commit_count / $elapsed_seconds )) + else + next_sample_at=$(($next_sample_at + 1)) + fi + progress=" ($elapsed_seconds seconds passed, remaining $remaining_second predicted)" + fi + ;; + '') + progress="" + ;; + esac + + printf "\rRewrite $commit ($git_filter_branch__commit_count/$commits)$progress" case "$filter_subdir" in "") -- 2.5.1.408.g431338e -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] filter-branch: add passed/remaining seconds on progress
From: Gabor Bernat adds seconds progress and estimated seconds time if getting the current timestamp is supported by the date %+s command Signed-off-by: Gabor Bernat --- I've submitted this first to this list as a feature request, however in the meantime with the help of Jeff King , Junio C Hamano , Eric Sunshine and Mikael Magnusson came up with solution, so now I submit it as a revised patch. The current solution updates the progress for all commits until 1 second time is elapsed. Afterwards updates it at most once a second. --- git-filter-branch.sh | 42 +- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/git-filter-branch.sh b/git-filter-branch.sh index 5b3f63d..924cf3d 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -277,9 +277,49 @@ test $commits -eq 0 && die "Found nothing to rewrite" # Rewrite the commits git_filter_branch__commit_count=0 + +if date '+%s' 2>/dev/null | grep -q '^[0-9][0-9]*$' +then + show_seconds=t +else + show_seconds= +fi + +case "$show_seconds" in +t) + start_timestamp=$(date +%s) + next_sample_at=0 + ;; +'') + progress="" + ;; +esac + 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)" + + case "$show_seconds" in + t) + if test $git_filter_branch__commit_count -gt $next_sample_at + then + now_timestamp=$(date +%s) + elapsed_seconds=$(($now_timestamp - $start_timestamp)) + remaining_second=$(( ($commits - $git_filter_branch__commit_count) * $elapsed_seconds / $git_filter_branch__commit_count )) + if test $elapsed_seconds -gt 0 + then + next_sample_at=$(( ($elapsed_seconds + 1) * $git_filter_branch__commit_count / $elapsed_seconds )) + else + next_sample_at=$(($next_sample_at + 1)) + fi + progress=" ($elapsed_seconds seconds passed, remaining $remaining_second predicted)" + fi + ;; + '') + progress="" + ;; + esac + + printf "\rRewrite $commit ($git_filter_branch__commit_count/$commits)$progress" case "$filter_subdir" in "") -- 2.6.0.rc0.3.gb3280a4 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] filter-branch: add passed/remaining seconds on progress
From: Gabor Bernat adds seconds progress and estimated seconds time if getting the current timestamp is supported by the date %+s command Signed-off-by: Gabor Bernat --- I've submitted this first to this list as a feature request, however in the meantime with the help of Jeff King , Junio C Hamano , Eric Sunshine and Mikael Magnusson came up with solution, so now I submit it as a revised patch. The current solution updates the progress for all commits until 1 second time is elapsed. Afterwards updates it at most once a second. Ammended build up as agreed at [1]. [1] http://thread.gmane.org/gmane.comp.version-control.git/277314 --- git-filter-branch.sh | 32 +++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/git-filter-branch.sh b/git-filter-branch.sh index 5b3f63d..565144a 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" +then + if test $git_filter_branch__commit_count -gt $next_sample_at + then + now_timestamp=$(date +%s) + elapsed_seconds=$(($now_timestamp - $start_timestamp)) + remaining_second=$(( ($commits - $git_filter_branch__commit_count) * $elapsed_seconds / $git_filter_branch__commit_count )) + if test $elapsed_seconds -gt 0 + then + next_sample_at=$(( ($elapsed_seconds + 1) * $git_filter_branch__commit_count / $elapsed_seconds )) + else + next_sample_at=$(($next_sample_at + 1)) + fi + progress=" ($elapsed_seconds seconds passed, remaining $remaining_second predicted)" + fi +fi +printf "\rRewrite $commit ($git_filter_branch__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 "") -- 2.6.0.rc0.3.gb3280a4 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] filter-branch: add passed/remaining seconds on progress
From: Gabor Bernat adds seconds progress and estimated seconds time if getting the current timestamp is supported by the date +%s command Signed-off-by: Gabor Bernat --- I've submitted this first to this list as a feature request, however in the meantime with the help of Jeff King , Junio C Hamano , Eric Sunshine and Mikael Magnusson came up with solution, so now I submit it as a revised patch. The current solution updates the progress for all commits until 1 second time is elapsed. Afterwards updates it at most once a second. Ammended build up as agreed at [1]. [1] http://thread.gmane.org/gmane.comp.version-control.git/277314 --- git-filter-branch.sh | 32 +++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/git-filter-branch.sh b/git-filter-branch.sh index 5b3f63d..565144a 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" +then + if test $git_filter_branch__commit_count -gt $next_sample_at + then + now_timestamp=$(date +%s) + elapsed_seconds=$(($now_timestamp - $start_timestamp)) + remaining_second=$(( ($commits - $git_filter_branch__commit_count) * $elapsed_seconds / $git_filter_branch__commit_count )) + if test $elapsed_seconds -gt 0 + then + next_sample_at=$(( ($elapsed_seconds + 1) * $git_filter_branch__commit_count / $elapsed_seconds )) + else + next_sample_at=$(($next_sample_at + 1)) + fi + progress=" ($elapsed_seconds seconds passed, remaining $remaining_second predicted)" + fi +fi +printf "\rRewrite $commit ($git_filter_branch__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 "") -- 2.6.0.rc0.3.gb3280a4 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html