login
Header Space

 
 

[FAQ?] Rationale for git's way to manage the index

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <git@...>
Date: Sunday, May 6, 2007 - 12:10 pm

Hi,

I've read the manual, and I belive I have a correct understanding of
how the index works, technically speaking. Still, I'm not clear about
the rational for such design.

Almost any other decent system has an equivalent to cache the stat
information (bzr calls this stat-cache, hg calls it dirstate IIRC).
That is, if your run "$vcs diff" twice, the second run will only need
to stat all files, never diff them.

But the fact that git actually remembers the _content_ of files in the
index, and that the default behavior for "commit" is to commit only
the content that is explicitely "git add"ed is something I've never
seen outside git.

At first, I find it rather annoying. My usual workflow is

<hack hack hack>
% $vcs status
% $vcs commit -m "describe whatever I did"
<hack hack hack>
...

With git, i'd do

<hack hack hack>
% git status
% git add X
% git add Y
% git status
% git commit

or

<hack hack hack>
% git satus -a
% git commit -a -m "..."

In the former case, I have more commands to type, and in the second
case, I loose part of the stat-cache benefit: If I run "git status -a"
twice, the second run will actually diff all the files touched since
the last run, since "git status -a" actually updated a temporary
index, and discarded it afterwards, so it doesn't update the stat
information in the index (while "git status" would have).

In both cases, I can't really see the benefit. I'm pretty sure this is
a FAQ, and I'm also pretty sure there are good arguments for it, but I
can't find it anywhere.

Thanks for your answers,

-- 
Matthieu
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[FAQ?] Rationale for git's way to manage the index, Matthieu Moy, (Sun May 6, 12:10 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Guilhem Bonnefille, (Mon May 7, 7:40 am)
Re: [FAQ?] Rationale for git's way to manage the index, Daniel Barkalow, (Mon May 7, 6:23 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Johannes Schindelin, (Mon May 7, 8:55 am)
Re: [FAQ?] Rationale for git's way to manage the index, Junio C Hamano, (Mon May 7, 3:31 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Linus Torvalds, (Sun May 6, 1:25 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Matthieu Moy, (Sun May 6, 2:23 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Matthieu Moy, (Wed May 9, 1:18 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Martin Langhoff, (Mon May 7, 11:16 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Johannes Schindelin, (Tue May 8, 7:07 am)
Re: [FAQ?] Rationale for git's way to manage the index, Linus Torvalds, (Tue May 8, 12:45 am)
Re: [FAQ?] Rationale for git's way to manage the index, Linus Torvalds, (Wed May 9, 11:52 am)
Re: [FAQ?] Rationale for git's way to manage the index, Junio C Hamano, (Wed May 9, 8:31 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Shawn O. Pearce, (Thu May 10, 6:06 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Petr Baudis, (Thu May 10, 6:51 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Steven Grimm, (Wed May 9, 10:27 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Linus Torvalds, (Wed May 9, 10:39 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Matthieu Moy, (Thu May 10, 4:00 am)
Re: [FAQ?] Rationale for git's way to manage the index, Daniel Barkalow, (Wed May 9, 1:39 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Linus Torvalds, (Wed May 9, 2:16 pm)
Re: [FAQ?] Rationale for git's way to manage the index, J. Bruce Fields, (Wed May 9, 1:18 pm)
Re: [FAQ?] Rationale for git's way to manage the index, J. Bruce Fields, (Wed May 9, 1:29 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Martin Langhoff, (Tue May 8, 1:35 am)
Re: [FAQ?] Rationale for git's way to manage the index, Johannes Schindelin, (Sun May 6, 7:51 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Matthieu Moy, (Mon May 7, 4:02 am)
Re: [FAQ?] Rationale for git's way to manage the index, Johannes Schindelin, (Mon May 7, 7:05 am)
Re: [FAQ?] Rationale for git's way to manage the index, Julian Phillips, (Sun May 6, 6:53 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Shawn O. Pearce, (Mon May 7, 9:41 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Shawn O. Pearce, (Tue May 8, 10:52 am)
Re: [FAQ?] Rationale for git's way to manage the index, Linus Torvalds, (Sun May 6, 3:54 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Johannes Schindelin, (Sun May 6, 12:51 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Matthieu Moy, (Sun May 6, 1:34 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Johannes Schindelin, (Sun May 6, 7:42 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Junio C Hamano, (Sun May 6, 1:43 pm)
Re: [FAQ?] Rationale for git's way to manage the index, Johannes Schindelin, (Wed May 9, 9:57 am)
Re: [PATCH] git-commit: Reformat log messages provided on co..., Johannes Schindelin, (Wed May 9, 11:01 am)
speck-geostationary