git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Make the exit code of add_file_to_index actually useful

From
Alex Riesen <raa.lkml@gmail.com>
Date
May 12, 2008, 20:54 UTC
Message-ID
<20080512205414.GH3128@steel.home>
In-Reply-To
<7vzlqvxt1p.fsf@gitster.siamese.dyndns.org>
Junio C Hamano, Mon, May 12, 2008 20:42:58 +0200:
Show 6 quoted lines
> >
> > I corrected the series to use die() again and rebased it off current
> > master (65ea3b8c). So it is more compatible with libification (does
> > not hinder it more than previos code) and keep the exit code.
> 
> But you did not answer my question in the part you did not quote, did you?
I believe I did:
Date:	Sun, 2 Mar 2008 22:42:41 +0100
Subject: Re: [PATCH] Make the exit code of add_file_to_index actually useful
Message-ID: <20080302214241.GB13954@steel.home>
Junio C Hamano, Sun, Mar 02, 2008 17:59:13 +0100:
Show 5 quoted lines
> Why is this even needed to begin with?  I am aware of Dirk's original
> issue discussed elsewhere, but we try fairly hard to be A-O-N when we can
> afford to, and this option deliberately breaks it.  What is the real
> reason why such an unreadable (either for privilege or for I/O error)
> file should not live in .gitignore?

Another program keeps the file open. There is an exclusive mode for opening files, which locks the files for everyone. I believe it is even default mode, unless selected otherwise.

> Now when somebody either forgets to check the return value from this
> function, or deliberately ignores it, the resulting index will not match
> what the code is told to update it with.
I think I got them all in the current code:
    $git grep -E 'add_(file_)?to_(index|cache)'
    Documentation/technical/api-in-core-index.txt:* add_file_to_index()
    builtin-add.c:                  if (add_file_to_cache(path, data->flags
    builtin-add.c:          if (add_file_to_cache(dir.entries[i]->name, ver
    builtin-commit.c:                       if (add_to_cache(p->path, &st,
    builtin-mv.c:                   if (add_file_to_cache(path, verbose))
    cache.h:#define add_to_cache(path, st, verbose) add_to_index(&the_index
    cache.h:#define add_file_to_cache(path, verbose) add_file_to_index(&the
    cache.h:extern int add_to_index(struct index_state *, const char *path,
    cache.h:extern int add_file_to_index(struct index_state *, const char *
    read-cache.c:int add_to_index(struct index_state *istate, const char *p
    read-cache.c:int add_file_to_index(struct index_state *istate, const ch
    read-cache.c:   return add_to_index(istate, path, &st, verbose);

Regarding the return value: isn't it very often a bug to ignore them? Or do you mean to say I should have renamed the function so that old interface cannot be used accidentally by someone how just knows it never returns in case of an error?

Previous: Junio C HamanoNext: Junio C Hamano
Message 27 of 32 in “How to "git add ." when some files are not accessible (permission denied)?”
  1. Dirk SüsserottMar 1, 2008
  2. Jeff KingMar 2, 2008
  3. Dirk SüsserottMar 3, 2008
  4. Junio C HamanoMar 3, 2008
  5. Dirk SüsserottMar 3, 2008
  6. Alex RiesenMar 2, 2008
  7. Make the exit code of add_file_to_index actually usefulAlex Riesen, Mar 2, 2008
  8. Extend interface of add_files_to_cache to allow ignore indexing errorsAlex Riesen, Mar 2, 2008
  9. Add --ignore-errors to git-add to allow it to skip files with read errorsAlex Riesen, Mar 2, 2008
  10. Add a test for git-add --ignore-errorsAlex Riesen, Mar 2, 2008
  11. Johannes SchindelinMar 2, 2008
  12. Junio C HamanoMar 2, 2008
  13. Alex RiesenMar 2, 2008
  14. Joachim B HagaMar 2, 2008
  15. Alex RiesenMar 3, 2008
  16. Alex RiesenMay 12, 2008
  17. Make the exit code of add_file_to_index actually usefulAlex Riesen, May 12, 2008
  18. Extend interface of add_files_to_cache to allow ignore indexing errorsAlex Riesen, May 12, 2008
  19. Add --ignore-errors to git-add to allow it to skip files with read errorsAlex Riesen, May 12, 2008
  20. Add a test for git-add --ignore-errorsAlex Riesen, May 12, 2008
  21. Add a config option to ignore errors for git-addAlex Riesen, May 12, 2008
  22. Junio C HamanoMay 13, 2008
  23. Alex RiesenMay 13, 2008
  24. Junio C HamanoMay 13, 2008
  25. Alex RiesenMay 13, 2008
  26. Junio C HamanoMay 12, 2008
  27. Alex RiesenMay 12, 2008
  28. Junio C HamanoMay 12, 2008
  29. Alex RiesenMay 12, 2008
  30. Junio C HamanoMay 12, 2008
  31. Alex RiesenMay 13, 2008
  32. Daniel BarkalowMar 3, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.