Re: [PATCH] git-gui: Perform rescan on window focus-in

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux