Yes, you're correct, it was a bug in my pre-commit hook. Thanks! For posterity, the issue is that I had the following line: git diff -z --cached --name-only | egrep -z '\.(pl|pm|t)$' | \ while read -d'' -r f; do ... In Bash, when `read` is passed the `-d` option with a zero-length string argument, read will split on null characters (`'\0'`). However, I did not put a space between the `-d` option and the argument, so it took the `-` in the next argument `-r` as the delimiter. My commit includes Perl files with `-` characters in the name, which I had not previously committed to this repo, which is why I only ran into the problem now. I fixed it by changing the read command to `read -r -d '' f`, which now has the crucial space between -d and its argument, making the zero-length string a separate argument. Robert Irelan | Server Systems | Epic | (608) 271-9000 -----Original Message----- From: Thomas Rast [mailto:trast@xxxxxxxxxxxxxxx] Sent: Monday, March 04, 2013 2:59 PM To: Robert Irelan Cc: git@xxxxxxxxxxxxxxx Subject: Re: "git commit" fails due to spurious file in index Robert Irelan <rirelan@xxxxxxxx> writes: > Now, when I run 'git add admin_script/setup' to add the new directory > to the repo and then try to commit, I receive the following message: > > $ git commit > mv: cannot stat `admin_scripts/setup/2012/setup': No such file or > directory > > The error message is correct in that `admin_scripts/setup/2012/setup` > does not exist, either as a file or as a directory. However, I'm not > attempting to add this path at all. Using grep, I've confirmed that > the only place this path appears in any of my files is in `.git/index`. To me that sounds like the message comes from a commit hook. Can you check if you have anything in .git/hooks/, especially pre-commit? There really isn't any other good reason why 'git commit' would call 'mv' (plain mv, not git!). -- Thomas Rast trast@{inf,student}.ethz.ch -- 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