Run 'git update-index --refresh' in order to get rid
of false positives about unstaged changes in files.

To reproduce:
1. git status # no local changes
2. touch <file-under-version-control>
3. gitk # file shows up as unstaged modified file
4. git update-index --refresh
5. gitk # file does not show up

See link below for more discussion.

https://public-inbox.org/git/[email protected]/T/#m121ab8bd38196a53a6d7ccb89034a99dcd3a703e

Signed-off-by: Jacob Kroon <[email protected]>
---
 gitk-git/gitk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gitk-git/gitk b/gitk-git/gitk
index a14d7a16b..016c1d7fe 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -5334,6 +5334,7 @@ proc readdiffindex {fd serial inst} {
     }
 
     # now see if there are any local changes not checked in to the index
+    catch { exec git update-index --refresh }
     set cmd "|git diff-files"
     if {$vfilelimit($curview) ne {}} {
        set cmd [concat $cmd -- $vfilelimit($curview)]
@@ -7829,6 +7830,7 @@ proc diffcmd {ids flags} {
            }
        } else {
            # comparing working directory with index
+           catch { exec git update-index --refresh }
            set cmd [concat | git diff-files $flags]
            if {$j == 1} {
                lappend cmd -R
-- 
2.11.0

Reply via email to