On 29/07/19 7:58 AM, Mark Levedahl wrote:
On 7/28/19 6:49 PM, brian m. carlson wrote:> On 2019-07-28 at 22:10:29, Pratyush Yadav wrote: >> The function is not documented, and I only started spelunking the code a >> couple days back, so I'll try to answer with what I know. It might not be
 >> the full picture.
 >>
 >> Running git-gui --trace, these commands are executed during a rescan:
 >>
 >> /usr/lib/git-core/git-rev-parse --verify HEAD
>> /usr/lib/git-core/git-update-index -q --unmerged --ignore-missing --refresh
 >>
 >
 > Great. This sounds like a well-reasoned change. I'll let other folks who
 > use git-gui more chime in to see what they think as well.
 >

I'm assuming this does what is currently done by F5.
A simple rescan from git-gui in the git repository takes about 8 seconds on my corporate laptop running Windows, making this happen on change of window focus is definitely not a friendly change from my view point.


This is a Windows problem maybe? On my Linux machine with an almost dead hard drive, it takes under 10ms to do a refresh on the git repository (which has about 56,000 commits).

Can you check what takes so long? I don't use Windows or I'd do this myself.

Go to git-gui.sh and add some prints to the rescan procedure (line 1450) to trace which operation takes time. It is not a shell script, but a tcl script, so you'd need to add "puts <your_string_here>" just to have an approximate idea of what takes so long.

Can someone else who uses git-gui comment on the time taken to rescan on the git repo (on Windows, Linux, or Mac)?

You can use this to see how long it takes to do a rescan. It will print the time taken to stdout:

-- >8 --
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index 8ca2033dc8..7f2962f060 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -2360,7 +2360,11 @@ proc do_rescan {} {
 }

 proc ui_do_rescan {} {
+       set t [clock milliseconds]
        rescan {force_first_diff ui_ready}
+       set t2 [clock milliseconds]
+
+       puts "Time elapsed in ui_do_rescan = [expr $t2 - $t]ms"
 }

 proc do_commit {} {
-- >8 --

--
Regards,
Pratyush Yadav

Reply via email to