gitosis による git サーバーの管理 の履歴(No.3)
更新- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- プログラミング/gitosis による git サーバーの管理 へ行く。
gitosis について†
gitosis の説明は
あたりを。
Debian における gitosis リポジトリの作成†
と同様にやれば良いんだけれど、 はまるのは、git というユーザーではうまく行かない事。
gitosis というユーザーが自動的に作られるので、それを使う。
LANG:console
$ sudo aptitude install gitosis
以下の新規パッケージがインストールされます:
gitosis python-pkg-resources{a} python-setuptools{a}
更新: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。
284kB のアーカイブを取得する必要があります。展開後に 1217kB のディスク領域が新たに消費されます。
$ cp ~/.ssh/id_rsa.pub ~gitosis/osamu_id_rsa.pub
$ sudo su gitosis
gitosis$ cd
gitosis$ pwd
/srv/gitosis
gitosis$ gitosis-init < osamu_id_rsa.pub
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
gitosis$ rm osamu_id_rsa.pub
gitosis$ ls -a
.ssh gitosis repositories
gitosis$ exit
$ cd
$ ssh gitosis@localhost
PTY allocation request failed on channel 0
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
Connection to localhost closed.
$ git clone gitosis@localhost:gitosis-admin.git
Initialized empty Git repository in /home/osamu/gitosis-admin/.git/
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 5 (delta 0)
Receiving objects: 100% (5/5), done.
$ cd gitosis-admin/
管理作業†
を参考に、osamu@another-server を管理者として登録してみる。
LANG:console
$ pwd
~/gitosis-admin/
$ ls
gitosis.conf
keydir:
osamu@debian-server.pub
$ cat gitosis.conf
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = osamu@debian-server
$ jed gitosis.conf
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = osamu@debian-server, osamu@another-server
$ scp osamu@another-server:.ssh/id_rsa.pub keydir/osamu@another-server.pub
$ git add keydir/osamu@another-server.pub
$ git commit -a
Created commit d7e6afb: osamu@another-server.pub was added as admin
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 keydir/takeuchi@dora.pub
$ git status
# On branch master
nothing to commit (working directory clean)
$ git push
Counting objects: 6, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 730 bytes, done.
Total 4 (delta 0), reused 0 (delta 0)
To gitosis@localhost:gitosis-admin.git
31412ce..d7e6afb master -> master
これで追加されているはず。
LANG:console $ ssh osamu@another-server $$ git clone gitosis@gitosis.server:gitosis-admin.git Initialized empty Git repository in ~/gitosis-admin/.git/ remote: Counting objects: 10, done. remote: Compressing objects: 100% (9/9), done. remote: Total 10 (delta 1), reused 4 (delta 0) Receiving objects: 100% (10/10), done. Resolving deltas: 100% (1/1), done. $$ rm -r gitosis-admin
うまく行っている。
gitosis.conf の設定方法†
使い方は /usr/share/doc/gitosis/example/* を見る。
基本は、
[group グループ名] members = member1 member2 member3 ... writable = リポジトリ1 リポジトリ2 リポジトリ3 ... readonly = リポジトリ1 リポジトリ2 リポジトリ3 ...
という設定。
あとは、必要に応じてリポジトリごとの設定。
[repo foo] ## Allow gitweb to show this repository. gitweb = yes ## Oneline description of the project, mostly for gitweb. description = blah blah ## Owner of this repository. Used in gitweb list of projects. owner = John Doe ## Allow git-daemon to publish this repository. daemon = yes
gitosis でリポジトリへの書き込み権限を作ってから git push することになる。
設定は、書き換えたら
LANG:console git commit -a -m "message" git push
を忘れずに行う。
コメント†
自由にコメントを付けて下さい。
Counter: 49151 (from 2010/06/03),
today: 3,
yesterday: 6