Re: suppress fatal pathspec errors from "git add"?
- From
Jeff King <peff@peff.net>
- Date
- Jan 3, 2010, 07:40 UTC
- Message-ID
- <20100103074058.GB23031@sigill.intra.peff.net>
- In-Reply-To
- <d7ac1a680912311324i85b7a5anadaf2ac13f215873@mail.gmail.com>
On Thu, Dec 31, 2009 at 01:24:59PM -0800, aaron smith wrote:
> I'm looking through the add documentation, I don't see a way to > suppress fatal pathspec errors? For example, if I'm adding 5 files, > but one of them is mis-spelled, can I have git just supress the errors > and add the other four?
Hmm. I would have thought "git add --ignore-errors" would do what you want, but it only ignores errors in reading the file. If we can't stat it, we will always die. IMHO that is an oversight in how "--ignore-errors" works (why should this one particular error be treated as fatal, when others are not?).
However, I have to wonder what your workflow is to really want this. If you do:
$ ls foo bar baz $ git add foo bar bz fatal: pathspec 'bz' did not match any files
Then presumably your next command would be:
$ git add foo bar baz
Using ignore-errors (if it worked), you would probably do:
$ git add baz
Less typing, I suppose, but presumably you are using a shell that lets you just go back and edit the previous command line. I could see it if your workflow were something like "in a script, add these N files if they exist, but it is not an error if they don't". But I still don't think you would want to ignore all errors; you would want to do something like:
$ git add $(for i in foo bar baz; do test -e $i && echo $i; done)
instead. Am I missing something?
-Peff