Thanks for your consideration Junio, Peff has already helped me to figure out the root cause of this error is a possible bad practice on collaboration work. Here I attached the previous mail. >>>>>> Thanks Peff, I've checked the permission of .git/objects/16, it's created by another user and thus I have no permission to remove it. In fact, this is coming from a previous bad practice on setting up a collaboration repository on a SSH server, here is what I've done so far: 1. I have a server tomato, which has two users: "git" and "johnny" 2. User "git" has cloned a repository from elsewhere as ~git/golf/.git 3. User "johnny" has cloned this repository from git on another machine, using command: git clone johnny@tomato:~git/golf/.git localgit 4. It works fine, and user "johnny" has made some local commits and wants to push the changes to git's repository, so he uses: git push 5. But it's reported some errors about permissions, like: error: Unable to append to logs/refs/heads/cupcake: Permission denied error: Unable to append to logs/refs/remotes/origin/cupcake: Permission denied error: Unable to append to logs/refs/remotes/origin/cupcake: Permission denied ng refs/heads/cupcake failed to write ng refs/remotes/origin/HEAD failed to write ng refs/remotes/origin/cupcake failed to write error: failed to push to 'johnny@tomato:~git/golf/.git' 6. That's normal, since the ~git/golf/.git is created by user "git", and user "johnny" can't write it. 7. Then the user "git" has changed mode for all the files under .git to writable. 8. This time, user "johnny" can push successfully. 9. But as you can see here, some files are created by user "johnny", and thus user "git" can't write them. It seems not a good practice for collaboration work, would you please share your experiences with us? Thanks very much and regards, Johnny On Tue, Jan 6, 2009 at 4:59 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > "Johnny Lee" <johnnylee194@xxxxxxxxx> writes: > >> While I'm looking at these "unable to unlink" files, it seems they are >> read only: >> git@tomato:~/golf$ ls -l .git/objects/16/ >> total 4 >> -r--r--r-- 1 johnny johnny 26 2009-01-05 09:25 >> b14f5da9e2fcd6f3f38cc9e584cef2f3c90ebe > > > Check "ls -ld .git/objects/16" and see if it is owned by you and writable > by you. > > In sane POSIX filesystem semantics, it should not pose with problem with > respect to removal that a file is unwritable. > > What counts is the writability of the parent directory. > -- we all have our crosses to bear -- 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