gitolite を試す
gitolite のがgitosis より簡単らしい.
branch とかへのアクセス制限もできるようだ(2010/12/30 追記)
Personal なブランチの名前空間をサポートもしてるようだ(2010/12/30 追記)
git$ mkdir -p $HOME/gitolite/bin $HOME/gitolite/conf $HOME/gitolite/hooks git$ cd modules git$ git clone git://github.com/sitaramc/gitolite gitolite-source git$ cd gitolite-source git$ src/gl-system-install $HOME/gitolite/bin $HOME/gitolite/conf $HOME/gitolite/hooks git$ cd $HOME git$ export PATH=$HOME/gitolite/bin:$PATH git$ gl-setup $HOME/.ssh/clairvy.pub git$ vi .bashrc <$HOME/gitolite/bin をPATH に追加>
PATH の件を追記 (2011/01/05 追記)
これで,アクセスできるようになるみたい.
試す
$ ssh git@remote-host.domain PTY allocation request failed on channel 0 hello clairvy, the gitolite version here is v1.5.8-1 the gitolite config gives you the following access: R W gitolite-admin @R_ @W_ testing Connection to localhost closed. $ git clone git@remote-host.domain:gitolite-admin.git
gitosis と同じように,管理はgitolite-admin リポジトリを触るみたい.
あと,conf を書くと空repository を作ってくれるみたい.
これは来年試そう.*1
ご参考
- http://webos-goodies.jp/archives/access_control_to_git_repositories_with_gitlite.html
- http://progit.org/book/ja/ch4-7.html
ということで追記.(2010/12/30)
gitolite/gitosis 共に .ssh/authorized_keys にログインユーザ設定をすると考えればいいみたい.
ssh git@rmote-host.domain したときに,コマンドが動く設定をしてるのかな?
なので,それを無効にしたかったら,その辺をなんとかすればいい.*2
あと,各リポジトリの hooks は,絶対パスで シンボリックリンクされるので,
$HOME/gitolite/hooks 的な場所に位置が変更になったらその辺に注意.
なんかこう.$HOME/gitolite 配下で色々クローズする方が移動できて楽かもしれないけど,
$HOME/.gitolite.rc で $HOME/repositories の位置を制御したりすればできるのかな?
あと,多分 $HOME/.gitolite/{keydir,conf} が現在の設定なので,その辺を直接イジることもできる.
普通はプッシュするだろうけど,設定ミスったときとかに.*3
gitosis を試す
メモ的に
まず git ユーザを作り終わっているとします.
$ sudo su - git git$ git clone git://eagain.net/gitosis.git git$ easy_install-2.6 --user gitosis git$ cd ~/local/bin git$ ln -s ~/.local/bin/* . git$ rehash git$ cd git$ ssh clairvy@localhost cat .ssh/id_rsa.pub | gitosis-init
試す.
$ git clone git@localhost:gitosis-admin.git
とりあえず,できたみたいだけど,リモートから触ってないので,
まだわかんない感じ.
別の場所に設置して試します.
ご参考
運用としては,gitosis-admin リポジトリを編集+手 or スクリプトなんかなー.
新リポジトリ作るのとか.その辺はおいおい試します.
github みたいに楽にするにはまだ補助が要るんかなー?
MacOSX でのユーザの作り方(dscl)
メモ的に
全然知らなかったんだけど,MacOSX では,DirectoryService でユーザとかのリソースを管理してるみたい.
ということでユーザを作ってみた.
$ sudo dscl . -create /Groups/git gid 601 $ sudo dscl . -create /Users/git $ sudo dscl . -create /Users/git RealName 'git version control' $ sudo dscl . -create /Users/git UniqueID 601 $ sudo dscl . -create /Users/git PrimaryGroupID 601 $ sudo dscl . -create /Users/git NFSHomeDirectory /Users/git $ sudo dscl . -create /Users/git UserShell /opt/local/bin/zsh $ sudo dscl . -create /Users/git uid 601 $ sudo dscl . -create /Users/git gid 601 $ sudo passwd git ← パスワード設定 $ sudo createhomedir -b -u git
確認
$ sudo dscl . -read /Groups/git $ sudo dscl . -read /Users/git $ id git uid=601(git) gid=601(git) ....
第一引数の"."(ドット) は,ローカルのdatasource らしい.
最初 /etc/{passwd,group} を直編集して,何でできないか不思議だったよ.
追記(2010/12/26 16:29)
uid/gid を,指定していなかったらそもそも createhomedir できなかったよ.
ご参考
YAPC::Asia 2010 にいってきた
今回で二回目の参加になります
前回は,@issm さんと一緒に参加したんですけど,
今回は,@hatyuki さんも居て三人で回ったりもした感じでした.
それも ゆるくPerl を語る会 が出会いの場になったからですね.*1
ゆる Perl を開始してくれた id:trinity777 ++
時刻的にも,最後のまとめ的な位置付けということもあると思うのだけど,
最後のkeynote が一番心に残っているのですよ.
やっぱりid:miyagawa さんかっけー(miyagawa rocks) と思った訳です.
とあいえ,id:miyagawa さんのスライドにもあったけど,
Perl is glue language. なんすよ.
ちょっと話が飛びますが,id:nekokak さんの発表であったんだけど,
id:kazuhooku が書いてるから安心みたいな話があって,
普通に納得したりしてた.*2
一定の信頼があって,繋りがあるってことかなー.と思うんですよ.
その辺がglue なんかなー.とか.
つまりはPerl は最初から他のものの力を借りるように
デザインされていたんだよ.(Ω ΩΩ<な,なんだってー)
オブジェクト指向って,メッセージパッシング,疎結合みたいな独立したオブジェクトがあって,
それがいっぱい集まって有機的に何かを形成しているみたいなイメージ*3
があるんで,そういうモデルなんかなー.とか.*4
Larry も言ってたんだけど,
"楽しまなければならない"
好きなことをやればいいと思うのですよ.
やりたいことをやればいい.
コードを書いたり,いろいろすればいいと思うのです.
それで join するみたいなイメージを自分は持ちました.
ということで,萌えもポロリも涙も笑いもSQLインジェクションもある.
YAPC::Asia 2011 に,みなさんも行ってみませんか?*5
今後の話
そういう訳で,ゆる Perl も何回か続けてみたけど,
どうやら継続できそうに思えたので,
今度は Nagoya.pm にバージョンアップしてみて,
ゆるPerl 自体の活動が変わる訳じゃないんだけど,
だんだん,みんなが楽しめるようなことをやるように変化していきたいな.と思っています.*6
そんで,rocks と思われる存在になるのもいいんだけど,
自分なんかはそんなにスゴイ人じゃないし,コミュニティにコミットしてないので,できてないので駄目じゃん.じゃなくても.
まずは rocks と言われてる人を見て欲しい.
その空気みたいなものを Nagoya.pm の人と一緒に感じたいなー.とは思いました.
よせがき?
あ,かってに後夜祭の中で,いっぱいサインしてもらいました.
提案してくれた id:nipotan さん,id:yappo さん,他サインしてもらったみなさんありがとうございましたー.
本当,旧なお願いで申し訳ありませんでした.*7
脱線話1
JavaScript をテストするJSTAPd の話とか,
mod_rewrite をテストする話とか,
省サーバ運用の話でid:nekokak さんが自分が決めたところまでは自分で見たいみたいな話があって,
そういう感覚って,完全に TDD の安心に繋がってるのかなー.とか思ったりもしてみた.
というか,Perl 界隈でテスト書かないとか無いですよね.みたいな*8
ということで,TDD 的な思想が当たり前過ぎてグリーンバンドをしてたけど,誰も触れてくれなかったYO!
脱線話2
Perl の人(主にd の付く人)は PHP をあまりイジめないでください,とか
Perl の人怖いとかいう話もあって,*9
うーん.評価とイジメは違うんだけどなー.
とか,PHP をHack するみたいな発想が,そもそもないのかなー.とかは思ったりした.
Ruby 界隈はそういうのも充分懐が広い気が(勝手に)してる.*10
あー,これもPHP DIS ってる,とか言われちゃうかなー?
リンク
- サインしてもらいました
個性豊かな言語設計者の考え方がわかる
- とりあえず
古典的な「Smalltalk-80」の子孫であるVisualWorksの入門書として
オブジェクト指向で1冊目じゃなきゃ
ちょっとこれは・・・
“純正”Smalltalk-80の流れを受け継ぐVisualWorksの入門書として
- たまたま思い出した
並ではあるが若手(のみに)読ませたい
社会人のみならず、学生にも是非読んで欲しい一冊
*1:途中一緒に昼食したとき,PHP のライブラリのポーティングの話をずーっとしてたのは秘密だ.
*2:誤解して欲しくないんだけど,無条件に受け入れるという話ではなく,理由があってやっているだろうから聞けばわかるだろうな.という予想みたいな話
*3:Smalltalk で学ぶオブジェクト指向プログラミングの本質
*4:逆か?自分にはそういう心理モデルがあるから,そう理解してしまうだけ?そう認識するだけ?Naming is hard
*5:あり?Hokkaido.pm だっけ?
*7:してもらったサインは,スタッフが美味しくいただきました.後で上げる?
*8:id:yappo さんのセッションのときでもテスト書いてない型?と訊かれて誰も(?)手を上げてなかったような
*9:主に id:tokuhirom の人だけじゃね?という意見があったり無かったり
*10:OOP 界隈と密結合で,ファシリテーションとかあるから?メタプログラミングが関係するとか?そういえば PHP のメタプログラミングの話もしたなー(閑話休題)
Eclipse で Android のソースが見たい
Android で UnitTest を書こうと思ったんだけど,
ドキュメントを見てもよくわからんかった.
困ったらソースを見れということで,Eclipse から追えるようにしてみた.
ソース自体は,以下から落とせる.
今回は platform/frameworks/base ら辺しか使わない.
以下のスクリプトをframeworks/base にcd してから使うと,
ANDROID_SDK_ROOT のplatform/*/sources ディレクトリ配下にごっそりファイルが
コピーされるようになっている.
最初は,シンボリックリンクでなんとかならんか?と思ったんだけど,
ファイルの重複とかあって,チェックするのが面倒になったので,
コピーするようにしました.
本当は,git co してバージョン毎にコピーしようと思ったけど,
そこまではやってません.
あと,微妙なところで tools を除外していますが,
同名ファイルでファイルサイズが違うことに気付いたので,
除外してみました.詳細は知らないです.
これで,Eclipse を再起動すれば,ソースが見られると思います.*1
参考
NagoyaHackathon に行ってきた
NagoyaHackathon 01 に行ってきました.
余裕で遅刻したので,チームに入らずに色々調べてました.
が成果です.
一人で黙々とやるのもいいけど,誰か聞く人が居る環境もアリだなー.
と思いました.使い分けかな?
Git-Http をやってみた
ようするに,以下が必要らしい.
- WebDAV
- Git --bare 的なもの
- git server-update
Apache 側は
- ロケーションに対して DAV on する
- passwd (Auth)
$ cd /etc/apache2 $ vi httpd.conf $ git diff httpd.conf -#Include /private/etc/apache2/extra/httpd-dav.conf +Include /private/etc/apache2/extra/httpd-dav.conf
repository 側は,
- hooks/post-update - update-server-info
$ mkdir ~/Sites/my-new-repo.git $ cd !$ $ git init --bare $ cp hooks/post-update.sample hooks/post-update # 最初から update-server-info の設定になってる! $ vi .htaccess $ cat !$ AuthType Basic AuthName "Git" AuthUserFile /Users/clairvy/Sites/my-new-repo.git/passwd Require valid-user
最初 info/refs が無くてなんでやねん.
と思っていたら.単に typo していただけだったという.
参考
- http://d.hatena.ne.jp/aki-yam/20091203/1259809797
- http://www.fraction.jp/log/archives/2008/05/15/setup-git-server-over-http
*1:なんかコマンドで a2e 的な有効にしたりするのかなぁ?