threads / discuss / 10342

git update index question

Subject: git update index question

## tl;dr

4 messages between Oct 17, 2007 and Oct 17, 2007.

replies: 3people: 2as markdown or json

Gonzalo Garramuno· Oct 17, 2007, 10:23 UTC · lore

Hi. I'm new to git but have been using it successfully for about three months now and love it.

I've run into my first problem (or, more specifically) lack of understanding.

I'm currently working on linux.

After some modifications of my source code with a script and doing a commit with qgit, it seems some spaces at the end of those changed lines got added.

Now, whenever I try to do a commit, the result is that git aborts with
* trailing whitespace (line XXX).
That is, it fails due to git's pre-commit perl hook.

Now, I've modified and changed the offending lines, but redoing the commit the problem persists.

After loooking into it, I realized the issue is git's index file. If git-diff-index is called without --cached, the diff matches what's on disk and works as I expect. However, the pre-commit hook calls it with --cached which leads to the problem.

Thus, since I don't want to modify the pre-commit hook, the question is what's the proper way to rebuild git's index file for all the files that were to be committed but weren't due to the abort.

I've tried git-update-index with most of the flags with no success. I only got it to update the index properly when I specifically specified a filename with the problem, but I have a lot of files with the issue and git already knows about them so I was hoping for a better method.

-- 
Gonzalo Garramuño

Film Aura
A New Dawn in Media Companies

gga@filmaura.com
http://www.filmaura.com
Lars Hjemli· Oct 17, 2007, 12:49 UTC · re: Gonzalo Garramuno · lore

Re: git update index question

On 10/17/07, Gonzalo Garramuno <gga@filmaura.com> wrote:
> what's the proper way to rebuild git's index file for all the files that
> were to be committed but weren't due to the abort.

Have you tried 'git commit -a'? It will run update-index on all modified files prior to executing the hook.

Btw: If you want to inspect your changes for offending whitespace,
'git diff --color' and  'git diff --cached --color' are your friends.
And if you give up, there is also 'git commit -a --no-verify'.

-- larsh

Gonzalo Garramuno· Oct 17, 2007, 12:58 UTC · re: Lars Hjemli · lore

Re: git update index question

Lars Hjemli wrote:
Show 11 quoted lines
> On 10/17/07, Gonzalo Garramuno <gga@filmaura.com> wrote:
>> what's the proper way to rebuild git's index file for all the files that
>> were to be committed but weren't due to the abort.
> 
> Have you tried 'git commit -a'? It will run update-index on all
> modified files prior to executing the hook.
> 
> Btw: If you want to inspect your changes for offending whitespace,
> 'git diff --color' and  'git diff --cached --color' are your friends.
> And if you give up, there is also 'git commit -a --no-verify'.
> 
Thanks.  I found out the root of my problem was actually something else. 
  I had incorrectly done a chmod a+x on the pre-commit hook when all my 
previous commits had not been using it, so I think the pre-commit was 
actually catching not my new fix but what was already in the repository.
git-commit -a had no effect due to that.
But it's good to know about the --no-verify option, thou.
-- 
Gonzalo Garramuño

Film Aura
A New Dawn in Media Companies

gga@filmaura.com
http://www.filmaura.com
Lars Hjemli· Oct 17, 2007, 13:30 UTC · re: Gonzalo Garramuno · lore

Re: git update index question

On 10/17/07, Gonzalo Garramuno <gga@filmaura.com> wrote:
> I had incorrectly done a chmod a+x on the pre-commit hook when all my
> previous commits had not been using it, so I think the pre-commit was
> actually catching not my new fix but what was already in the repository.

That sounds wrong: the (default) pre-commit hook only verifies the _new_ content, not the content in HEAD. Is there any chance your .git/hooks/pre-commit script has been tampered with?

-- larsh

← back to recent threads