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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano, Tue, May 13, 2008 00:19:42 +0200:
> Alex Riesen <raa.lkml@xxxxxxxxx> writes:
> 
> >> 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.
> 
> I would understand there can be some files that cannot be read.  But when
> there is such a file, why is it Ok to ignore an error to update the
> contents from that file if/when the user asks to index the current
> contents, provided if the contents of that file is to be tracked?  Isn't
> it the true cause of the problem that the file is being tracked but it
> shouldn't?

No, I don't think so. Consider "git add dir/". It is _not_ 1 (one)
operation. It is many operations (add every file in the "dir/"). Why
should all of them be considered failed just because the third file
from the bottom could not be read (and the user may have not even seen
it, because it wasn't there before, like a temporary file from Excel).
And for a user (for me, at least) "git add" is an intermediate
operation anyway: there'll be a review in form "git status" or "git
commit" afterwards. And there was a clear (sadly invisible with
--verbose) warning regarding some file having problems.

> >> 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...
> 
> Not checking the return code from this function that now diagnoses and
> returns error code is a bug as you said, and the codebase after your patch
> may not have that bug.
> 
> But mistakes happen.
> 
> That is why I am asking why it is Ok to sometimes ignore the error to
> begin with.  If we do not need to ignore this condition, then new callers
> have one less thing to worry about, and we would have one less cause of an
> unnecessary bug.

For the reasons outlined? Where the user is in a situation when he has
to override the safety checks. Just because it is more convenient to
type --ignore-errors than edit .gitignore and add there a whimsical
patterns like "~*.xls", which one day have to be overridden because
that project got an excel file which begins with "~"?

I am not suggesting making it default. And actually, the last patch,
with a config for add.ignore-errors option, better be ignored - it was
just too simple to code up. I never used the option. I had cases for
--ignore-errors, sadly.

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux