Only for one file, I am getting the following error:
error: unable to write sha1 filename /opt/www/.git/objects/3f/ce3587c54a8be14c69b08c6b01f94949b11b47: Pe
Looking at the Git source code (sha1_file.c
, function move_temp_to_file()
) it looks like Git is failing to rename a temporary file named /opt/www/.git/objects/3f/tmp_obj_XXXXXX
(where 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 /opt/www/.git/objects/3f
.
Some things to try:
git config core.sharedRepository 0664
(see git help config
for details) to ensure that newly created directories and files have proper permissions for all users of the repository.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.
chown
ing and chmod
ing the objects directory.