gitのgitによるgit(ユーザ)のためのリポジトリ管理
Eclipseでgit使いたいなぁ〜と思ったけど、githubなどのサービスは公開リポジトリ以外は有料。 レンタルサーバーもあるし、gitサーバーでも用意するか。
ところで、サーバー側ってどうやって構築するんだろう? 調べてみたらgitosisというツールが見つかった。 今のところこれがお手軽そう。 gitosis自体はPythonで書かれているらしい。
■gitosis - Git リポジトリ群の管理とアクセス制御 vol.0 - openbooth http://openbooth.org/archives/60.html
以下、上記ページを参考にしつつ、やったこと。
サーバー側のコンソールは "server" で、クライアント側は "local" で表します。
まずはgitosisのインストール。 コマンド見てすぐわかると思うけど、サーバーはUbuntuです。
続いて、gitリポジトリ管理ユーザを作成する。
&;
ユーザのホームディレクトリを "--home /repos/git" で指定してます。 /home/gitでもいいんだけど、パーティションなどの都合で違うところにする場合の例としてgitユーザのホームディレクトリの位置を変えてます。 id_rsa.pubはSSHの公開鍵。 実行権限を与えるためにchmod 755しとかないと動かないので要注意。
次はgitリポジトリ管理のためのリポジトリ作成。
gitosis-admin/
|-- gitosis.conf
`-- keydir
`-- ken@macbook.local.pub
次は権限情報の編集。
- gitosis.confを編集して権限管理
- keydirに公開鍵を入れてアクセス制限
ということらしい。
とりあえず、自分の使いたいリポジトリの権限を付与するため、次の3行を追記。
group名はお好きなように。 writableはリポジトリ名。パスを含んだ "lib/new-lib" なんて書き方も出来ます。 membersは接続を許可するユーザ。接続ユーザを追加した場合、公開鍵をkeydirに格納すること。
ここでは権限を設定しただけであって、リポジトリ自体は作成されないので、自分で作成する必要がある。
これでサーバー側にもリポジトリが出来た。
肝心のEclipse連携、これは参考になるサイトが無く、試行錯誤。 結果的には次の手順で出来た。
- ローカルでリポジトリ作成
- サーバーにpush
- Eclipseにgitプラグインを追加(http://www.jgit.org/update-site)
- Eclipse:File → Import → Git Repository
サーバー側でリポジトリを作成してしまえばEclipseでImportするだけなんだけど、gitosisによるお手軽管理かつ、サーバーにログインしなくても設定出来る手順でした。
ファイルを編集するとEclipseのPackage Explorerには "> ファイル名" って表示になるんだけど、commitしても、pushしても ">" が消えてくれず、そのままのファイルがある。 commitしたら消えてくれるんじゃないのか!? テストケースも動作したし、gitを使うということに関してはこれで大丈夫なんじゃないかな。
gitしてgitして、gitしたら管理出来るのか!!と思ったら、妙なタイトルになった🙄