git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Philip Oakley <philipoakley@iee.org>
To: Jacob Kroon <jacob.kroon@gmail.com>, git@vger.kernel.org
Subject: Re: gitk shows local uncommit changes after touch file + reload
Date: Mon, 7 Jan 2019 17:41:02 +0000	[thread overview]
Message-ID: <2666a093-f9a5-782e-40b3-0cfbce8fe2a3@iee.org> (raw)
In-Reply-To: <CAPbeDCm5hjq06fbs=SUPR1rm3bD3GJvifZovP1d-Xd=01JfpYQ@mail.gmail.com>

On 06/01/2019 22:51, Jacob Kroon wrote:
> Hi,
>
> Not sure if this has already been reported, but I observe this odd
> behaviour in gitk from master:
>
> git status
> gitk # everything looks good
> touch <file-under-version-control>
> gitk # gitk shows "local uncomitted changes" on the file I touched
> git status
> gitk # gitk is back to normal again, showing no local uncommitted changes
>
> The issue has been discussed on stackoverflow here:
> https://stackoverflow.com/questions/49990403/after-tar-untar-of-git-repo-gitk-shows-local-uncommitted-changes-not-checked
>
> Any chance gitk could be changed to so that it doesn't display the
> "local uncommitted changes" blob in this case ?
>
> Regards Jacob

I believe this is doing the right thing (TM) at the level of 
investigation that gitk uses to determine the status of the files. In 
particular, Git uses the modified time stamp as a surrogate indication 
for detecting that the user has probably edited the file (it's been 
modified at time hhmmss, right?).

Now as I understand it, the full (without limiting options) git status 
command does go and check the content of anything that's potentially 
changed (but it can be costly), and at that point the status command 
simply updates its 'Index' record with the new mtime after noticing that 
nothing had really changed. Meanwhile, gitk, being a continuously 
running GUI avoids the overhead of the git status (though you can force 
it) and does report the mtime change as being a potential file modification.

There is a separate discussion on the git users forum regarding the 
compatibility with other tools that has a similar root cause in the use 
and abuse of mtime as a canary for modification, given that the Git repo 
storage does not record any file times, so will get a (moderately) 
arbitrary mtime & ctime when checked out.

-- 

Philip


  reply	other threads:[~2019-01-07 17:41 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-06 22:51 gitk shows local uncommit changes after touch file + reload Jacob Kroon
2019-01-07 17:41 ` Philip Oakley [this message]
2019-01-08  6:41   ` Jacob Kroon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2666a093-f9a5-782e-40b3-0cfbce8fe2a3@iee.org \
    --to=philipoakley@iee.org \
    --cc=git@vger.kernel.org \
    --cc=jacob.kroon@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).