はじめに
git使い始めたばかりでわからないことも多いのでとにかく対応内容をメモ
エラー内容
git pushしようとするとタイトルのエラーが出る。
こんな感じ
[hoge@hoge]# git push Enter passphrase for key '/home/hoge/.ssh/id_rsa': Counting objects: 24, done. Delta compression using up to 4 threads. Compressing objects: 100% (17/17), done. Writing objects: 100% (17/17), 1.54 KiB, done. Total 17 (delta 10), reused 0 (delta 0) error: insufficient permission for adding an object to repository database ./objects fatal: failed to write object error: unpack failed: unpack-objects abnormal exit To git:/x/hoge.git  ! [remote rejected] master -> master (n/a (unpacker error)) error: failed to push some refs to 'git:/x/hoge.git'
ぐぐってたらこんな感じのが出てきた
http://yaman256.blog47.fc2.com/blog-entry-1190.html
よくわからないなりに対応してみる
リポジトリのパーミッションが怪しいということでgitサーバに入っていろいろ確認
# cd test/hoge.git # ll drwxrwsr-x 7 hoge hoge 4096 Nov 12 11:26 ./ drwxrwxr-x 75 hoge hoge 4096 Nov 28 09:29 ../ -rwxrwxr-x 1 hoge hoge 23 Jul 30 19:28 HEAD* drwxrwxr-x 2 hoge hoge 4096 Jul 30 19:28 branches/ -rwxrwxr-x 1 hoge hoge 126 Jul 30 19:52 config* -rwxrwxr-x 1 hoge hoge 73 Jul 30 19:28 description* drwxrwxr-x 2 hoge hoge 4096 Jul 30 20:12 hooks/ drwxrwxr-x 2 hoge hoge 4096 Nov 12 11:26 info/ drwxrwxr-x 260 hoge hoge 4096 Nov 13 18:53 objects/ -rw-rw-r-- 1 hoge hoge 85 Nov 12 11:26 packed-refs drwxrwxr-x 4 hoge hoge 4096 Jul 30 19:28 refs/ # cd objects/ # ll drwxrwxrwx 107 hoge hoge 4096 Dec 6 21:32 ./ drwxr-xr-x 7 hoge hoge 4096 Dec 6 18:05 ../ drwxrwxrwx 2 hoge hoge 4096 Nov 26 22:19 01/ … drwxrwxrwx 2 hoge hoge 4096 Dec 3 22:59 f9/ drwxrwsr-x 2 root wheel 4096 Dec 6 21:05 fe/ drwxrwxrwx 2 hoge hoge 4096 Nov 6 19:15 info/ drwxrwxrwx 2 hoge hoge 4096 Nov 22 22:17 pack/
root権限でpushしちゃったやつが原因?と思ったので
とりあえずobjects以下をすべてchown hoge:hoge
次にpushしてみたら成功!
と、思いきや、他の人がpushできない。。。と
もう一度確認すると
# cd objects/ # ll drwxrwxrwx 107 hoge hoge 4096 Dec 6 21:32 ./ drwxr-xr-x 7 hoge hoge 4096 Dec 6 18:05 ../ drwxrwxrwx 2 hoge hoge 4096 Nov 26 22:19 01/ … drwxrwxrwx 2 hoge hoge 4096 Dec 3 22:59 f9/ drwxrwsr-x 2 hoge hoge 4096 Dec 6 21:05 fe/ drwxr-xr-x 2 geho geho 4096 Nov 6 19:15 info/ drwxrwxrwx 2 hoge hoge 4096 Nov 22 22:17 pack/
drwxr-xr-xのせい?と思ってchmod 777してみるも最初のpusuだけ成功して、他の人がやるとまたダメっぽい
さらにぐぐってみるとこんなのが出てきたので
今度はgit configを直してみることに
http://criticallog.thornet.net/2010/01/07/sharing-your-git-repository/
http://d.hatena.ne.jp/kuma8/20110115/1295100616
# cd cd test/hoge.git # vi config ----vi [core] repositoryformatversion = 0 filemode = true bare = true sharedrepository = group←追加(もともとなかった [receive] denyNonFastforwards = true←追加(もともとなかった ----vi
としてみると、push成功!denyNonFastforwards = trueについてはなぜか入れないとできなかったけどなぜか忘れました。
エラーからぐぐったらあまり出てこなかったけど、sharedrepositoryでぐぐると結構出てきますね。
http://d.hatena.ne.jp/kuma8/20110115/1295100616
http://d.hatena.ne.jp/suer/20090218
リポジトリをチーム(グループ)で共有する設定が必要ということのようです。