git: Unable to index file - permission denied
Only for one file, I am getting the following error:
error: unable to write sha1 filename /opt/www/.git/objects/3f/ce3587c54a8be14c69b08c6b01f94949b11b47: Permission denied error: wp/wp-admin/css/theme-install.dev.css: failed to insert into database fatal: unable to index file wp/wp-admin/css/theme-install.dev.css
I checked my permissions on the file in question, the .git objects directory in question, and .git itself. I can add any other files except for this one. I could
stat/r/w/touch the file, and touching did not help. The permissions are all correct.
Is this some crazy bug?
Looking at the Git source code (
move_temp_to_file()) it looks like Git is failing to rename a temporary file named
XXXXXX is six random characters) to
/opt/www/.git/objects/3f/ce3587c54a8be14c69b08c6b01f94949b11b47. This can happen if you don't have permission to delete files in
Some things to try:
- If multiple users accessing the Git repository, you may need to run something like
git config core.sharedRepository 0664(see
git help configfor details) to ensure that newly created directories and files have proper permissions for all users of the repository.
- Try running
rm -f /opt/www/.git/objects/3f/tmp_obj_*and see if that makes the problem go away.
See if you can reproduce the problem outside of Git by doing the following:
mkdir -p /opt/www/.git/objects/3f cd /opt/www/.git/objects/3f rm -f tmp_obj_* ce3587c54a8be14c69b08c6b01f94949b11b47 echo "testing" >tmp_obj_abcdefg mv tmp_obj_abcdef ce3587c54a8be14c69b08c6b01f94949b11b47 rm -f tmp_obj_abcdefg
Be sure to run the above commands the same user that experienced the error.
- Try recursively
chmoding the objects directory.