Re: Some information that git diff saves and that git status does not

4 messages, 4 authors, 2016-06-15 · open the first message on its own page

Re: Some information that git diff saves and that git status does not

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:48:24

I didn't fully read what you wrote but after you copy a repository from
one to another outside git (be it done with unison or rsync), you should
run "update-index --refresh".

Re: Some information that git diff saves and that git status does not

From: Dmitry Potapov <hidden>
Date: 2016-06-15 22:48:24

On Tue, Mar 09, 2010 at 07:58:11AM +0100, Sergio Callegari wrote:
I actually did not know about the

update-index --refresh
This is a plumbing commmand, which normally users should not use
directly, but when you copy your repo by hands or do something like
that, you may need it (or use "git diff").
but now I have the relevant information its name sounds obvious.
And I suspected something like inode data entering the game.

As a matter of fact, I was obtaining the same effect with git diff.
Because "git diff" refreshes the cached stat information internally,
in the same way as "update-index --refresh". Junio wrote about this
recently:
http://article.gmane.org/gmane.comp.version-control.git/141708
What was appearing to me as a quirk is that:

1) If you do not refresh the index, git works perfectly all the
same.  For instance, git status shows the right info. Only it is not
that fast anymore, since everytime it needs to runs the filters on
all the files.
2) git status does not refresh the index, while other commands like
git diff do.
Historically, "git status" was just the dry-run mode of "git commit". I
do not think that "git commit" should refresh the index. But in Git 1.7,
"git status" is no longer the dry-run mode of "git commit", so I see no
reason why it does not refresh the cached stat info internally...


Dmitry

Re: Some information that git diff saves and that git status does not

From: Sergio Callegari <hidden>
Date: 2016-06-15 22:48:24

Johannes Sixt wrote:
Junio C Hamano schrieb:
  
quoted
I didn't fully read what you wrote but after you copy a repository from
one to another outside git (be it done with unison or rsync), you should
run "update-index --refresh".
    
And the reason for this is that git also looks at the inode numbers, and I
guess that unison does not go as far as to preserve them between machines...

-- Hannes

  
Thanks for all the info...  and sorry for the too verbose post at the 
beginning.

I actually did not know about the

update-index --refresh

but now I have the relevant information its name sounds obvious.  And I 
suspected something like inode data entering the game.

As a matter of fact, I was obtaining the same effect with git diff.

What was appearing to me as a quirk is that:

1) If you do not refresh the index, git works perfectly all the same.  
For instance, git status shows the right info. Only it is not that fast 
anymore, since everytime it needs to runs the filters on all the files.
2) git status does not refresh the index, while other commands like git 
diff do.

I was wandering whether git status could refresh the index 
automatically, at least about those files on which expensive actions, 
such as running filters had already been performed anyway.

Sergio

Sergio

Re: Some information that git diff saves and that git status does not

From: Johannes Sixt <hidden>
Date: 2016-06-15 22:48:24

Junio C Hamano schrieb:
I didn't fully read what you wrote but after you copy a repository from
one to another outside git (be it done with unison or rsync), you should
run "update-index --refresh".
And the reason for this is that git also looks at the inode numbers, and I
guess that unison does not go as far as to preserve them between machines...

-- Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help