Dieter Plaetinck <dieter@xxxxxxxxxxxx> writes: > So basically, if this tool needs to check which files still/no-longer > exist before calling git-add, that's vulnerable to race conditions. I do not think you are solving the real problem in your script even if you allowed "add --ignore-missing". I suspect you are making things even worse by using "--ignore-missing" in your script. If a user is actively updating the files in the filesystem, at least "git add" without "--ignore-missing" would catch the case where you _thought_ the user modified but still has the file, but in reality the further updates in the working tree removed the file, which is a clear indication that the rate you are processing the notify stream is slower than the activity generated by the user and allows you to notice that you may be better off waiting a bit until things calm down before running your automated commit. Also, with or without "--ignore-missing", I think we have safety valves to cause "git add" fail if the file being added is updated while git is working on it (i.e. we read and compute the object name, and then store it compressed, and check the hash of what is stored matches the object name we computed earlier, which would fail if the file is updated in the middle at the right time). This means that the "--ignore-missing" option will _not_ eliminate all cases where "git add" may detect an error and fails. In other words, your script needs to deal with error return from "git add" anyway even if we applied your patch and you used "--ignore-missing" in your script. I have to say that the basic premise of your script is simply broken, and I am afraid that it is unfixable without an atomic snapshot support from the underlying filesystem (i.e. take a snapshot, run 'git add' on it, and then release the snapshot). Having said all that, I do agree to the view that it is OK to let it happen if the user explicitly asks a typo'ed pathspec on the command line to be ignored for interactive use cases, and for that reason alone, I am not fundamentally opposed to allowing the use of --ignore-missing outside the --dry-run context. Thanks. -- 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