git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] filter-branch: add passed/remaining seconds on progress

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 8, 2015, 17:32 UTC
Message-ID
<xmqqsi6o95r7.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<CAPig+cRRMUhWwxAgVHKpMMne7XiOuYGTi_zgQMB=A+XNGUzLqQ@mail.gmail.com>
Eric Sunshine <sunshine@sunshineco.com> writes:
Show 9 quoted lines
> On Mon, Sep 7, 2015 at 9:52 AM, Gábor Bernát <bernat@primeranks.net> wrote:
>...
>>  # Rewrite the commits
>> +report_progress ()
>> +{
>> +if test -n "$progress"
>> +then
>
> Indent code within the function...

Also git_filter_branch__commit_count is now used only inside this function, so it is easier to follow to increment it here.

I suspect that the variable has this unwieldy name for historic reasons, perhaps an attempt to avoid name clashes with the end user script, but it has many variables (e.g. $commits, $ref, etc.) that are way too generic and that I can see no attempt of name clash avoidance, so renaming it to $total_commits or something _might_ make some sense.

Show 8 quoted lines
> ...
>> +printf "\rRewrite $commit ($git_filter_branch__commit_count/$commits)$progress"
>
> The "\r" causes this status line to be overwritten each time through,
> and since the processed commit count always increases, we know that
> the original (without ETA) will never leave junk at the end of the
> line. However, with estimated seconds also being displayed, does this
> still hold?
Good point.
Perhaps like this squashed in?
 git-filter-branch.sh | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 565144a..30ef513 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -277,27 +277,28 @@ 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
+	git_filter_branch__commit_count=$(($git_filter_branch__commit_count+1))
+
+	if test -n "$progress"
 	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
+		if test "$git_filter_branch__commit_count" -gt "$next_sample_at"
 		then
-			next_sample_at=$(( ($elapsed_seconds + 1) * $git_filter_branch__commit_count / $elapsed_seconds ))
-		else
-			next_sample_at=$(($next_sample_at + 1))
+			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=" ($elapsed_seconds seconds passed, remaining $remaining_second predicted)"
 	fi
-fi
-printf "\rRewrite $commit ($git_filter_branch__commit_count/$commits)$progress"
+	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
@@ -306,9 +307,8 @@ then
 		start_timestamp=$(date '+%s')
 fi
 
-while read commit parents; do
-	git_filter_branch__commit_count=$(($git_filter_branch__commit_count+1))
-
+while read commit parents
+do
 	report_progress
 
 	case "$filter_subdir" in
Previous: Eric SunshineNext: Eric Sunshine
Message 12 of 19 in “filter-branch: add passed/remaining seconds on progress”
  1. filter-branch: add passed/remaining seconds on progressGábor Bernát, Sep 4, 2015
  2. Junio C HamanoSep 4, 2015
  3. Eric SunshineSep 4, 2015
  4. Gabor BernatSep 6, 2015
  5. Eric SunshineSep 6, 2015
  6. filter-branch: add passed/remaining seconds on progressGábor Bernát, Sep 6, 2015
  7. Junio C HamanoSep 6, 2015
  8. filter-branch: add passed/remaining seconds on progressGábor Bernát, Sep 7, 2015
  9. Ramsay JonesSep 7, 2015
  10. filter-branch: add passed/remaining seconds on progressGábor Bernát, Sep 7, 2015
  11. Eric SunshineSep 7, 2015
  12. Junio C HamanoSep 8, 2015
  13. Eric SunshineSep 8, 2015
  14. Junio C HamanoSep 21, 2015
  15. Eric SunshineSep 21, 2015
  16. Jeff KingSep 8, 2015
  17. Gabor BernatSep 22, 2015
  18. Junio C HamanoSep 22, 2015
  19. Gabor BernatSep 23, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.