2012年8月28日火曜日

Gitのリポジトリを後から共有設定する

さてさて、どうにかこうにかイカした開発環境を作れてホッとしていたのだが、実際に運用してみたところ、上手く動かないケースが出てきた。

hogeユーザが
git push origin master
とやって共有リポジトリにプッシュした後、tadasukeユーザが
git pull orgin master
で更新を落としてくることはできるのだけど、さらに修正して
git push origin master
とやると、パーミッションエラー的なメッセージが出てプッシュできない。

共有リポジトリの
/var/git_repos/game.git
のパーミッションは775に設定していて、hogeとtadasukeは同じグループなのに…

どうもpushしたタイミングでファイルのパーミッションが書き換わってしまうらしい。

pushする度にファイルのパーミッションを変更するのは面倒すぎるので色々調べてみたところ、リポジトリを作る際に
--shared=true
オプションを設定するとリポジトリが共有設定になって、同じグループのユーザであればpushしまくっても問題なくなるらしい。

ただ、すでにリポジトリは作成済みなわけで、新たに作り直すのはできることならご遠慮願いたい。

で、さらに調べたところ、
/var/git_repos/game.git/config
の[core]のところに
sharedrepository = 1
と書いてやれば、共有リポジトリになることが判明。

もしかすると
sharedrepository = true
のほうが、正しい書き方かもしれないけど・・・

というわけで、今度こそイカした開発環境ができましたー。

0 件のコメント:

コメントを投稿