Hatena::Groupsubtech

NaN days

ブログを移転しています。最新の記事は motemen.hatenablog.com へどうぞ

2011-06-28

Git のコミットログで会話できるリレーチャットシステム

| 21:09 | Git のコミットログで会話できるリレーチャットシステム - NaN days を含むブックマーク はてなブックマーク - Git のコミットログで会話できるリレーチャットシステム - NaN days

https://github.com/motemen/git-log-relay-chat

一つの Git リポジトリをフォークした人同士で語らえる、簡単チャットの登場です。

app.psgi があるだけですが、plackup する前に config.pl を以下のような感じで設定する必要があります。

  • 親は (例えば) gist を作ってローカルに clone し、ここへのパスを git_root として指定する
  • チャットの参加者にこの gist を fork してもらって、その Public Clone URL のリストを pull_remote として指定する
  • 他の参加者も同様に、自分のローカルリポジトリと他人のリモートを config.pl に書く

今回は この gist を使い、例えばこんな感じになります。

# config.pl
git_root => 'gist-1050889',
pull_remote => [
    'git://gist.github.com/1050895.git', # hakobe
    'git://gist.github.com/1050896.git', # cho45
    'git://gist.github.com/1050905.git', # shiba-yu36
],

この準備の上で plackup してブラウザで見るとチャット画面になっています。入力欄にメッセージを入れて送信すると発言が git commit; git push され、フォーム空送信するとすべてのリモートリポジトリから git pull されます。git pull の際にログがマージされ、参加者は各々独立しつついい感じにチャットができます。一人で喋り続けていても pull すれば会話に混ざれるのが便利です。

今回もこのように、楽しく語らえました。

f:id:motemen:20110628205636p:image

git log --graph をするとマージ地獄になっているのが分かります。

* 8f0a000a2d913380be30e536066811efbee3855d --graph
*   2b6b7cc7f30658d48adfd7293811004aad436d01 Merge branch 'master' of git://gist.github.com/1050896
|\  
| * 8352e5ac7fb177eb1942c5cdc0df6ea3e04fa368 ぽよぽよ〜
| *   2445980b73ffff9a534e6a60f578089b8e2c6408 Merge branch 'master' of git://gist.github.com/1050895
| |\  
| * \   c32aeea5601984db4576d0764baccc722a5a57d5 Merge branch 'master' of git://gist.github.com/1050889
| |\ \  
| * \ \   29fcc9aa7c4bbc8716e12a2f25838ac8b20432c2 Merge branch 'master' of git://gist.github.com/1050889
| |\ \ \  
* | \ \ \   938151941aff00f07b8631029682a1d5f885e740 Merge branch 'master' of git://gist.github.com/1050895
|\ \ \ \ \  
| |_|_|/ /  
|/| | | /   
| | |_|/    
| |/| |     
| * | | be0304fc464232627191fdb50e26ba100d28c64b こわい..
| * | |   5c0b2c0f1ec60a9d675067607e54ef159e672222 Merge branch 'master' of git://gist.github.com/1050896
| |\ \ \  
| | |/ /  
| * | |   8b0de3c0ae485a25c7144bec2b8dbe3ef4664992 Merge branch 'master' of git://gist.github.com/1050889
| |\ \ \  
| | | |/  
| | |/|   
| * | |   2bd181e44c18c39742480dddf8812b92043bd645 Merge branch 'master' of git://gist.github.com/1050896
| |\ \ \  
* | | | | b36d71a6d198abbe8969e73471d5949cec34f23a ぽよ〜
* | | | |   f65e2e2428409f171e7d5575bf5a74f8c3b52084 Merge branch 'master' of git://gist.github.com/1050896
|\ \ \ \ \  
| |_|_|/ /  
|/| | | /   
| | |_|/    
| |/| |     
| * | | 5006ae8e5eec2f040e729945d84d145347da0997 github つかえなくなったらこわい
| * | | 90a5bfee8201c3f3179d4298d5edde4658776f09 グラフかっこいい
| * | |   fce4490f92e117efa528527bde09e3db129c8bb9 Merge branch 'master' of git://gist.github.com/1050905
| |\ \ \  
* | | | | 0b1d5a3ebfa9319563356f93efd66ef34e7bc143 jj
* | | | |   ecae3a19babb4a3ddd33f612647bd0f20f9ea25e Merge branch 'master' of git://gist.github.com/1050905
|\ \ \ \ \  
| |/ / / /  
|/| / / /   
| |/ / /    
| * | | 806e48d7e3770e360cc1560882546ad775593159 お腹いっぱいです
| * | |   e690bbccd882d5e165533df248a8e60a67c6a851 Merge branch 'master' of git://gist.github.com/1050889
| |\ \ \  
| * \ \ \   2426b253c5668dd1a90aa7ff6bbb8493563fb6d2 Merge branch 'master' of git://gist.github.com/1050896
| |\ \ \ \  
| | | |_|/  
| | |/| |   
| * | | |   5f0e40880989a3ca93a05fc105a42c8526a731e7 Merge branch 'master' of git://gist.github.com/1050896
| |\ \ \ \  
| * \ \ \ \   2b754a1d7977fc26d4a6b1d75fdac7e082c61606 Merge branch 'master' of git://gist.github.com/1050889
| |\ \ \ \ \  
| * \ \ \ \ \   b8f0399c9a79cfa4c42fb574faf106bf79a40a7e Merge branch 'master' of git://gist.github.com/1050889
| |\ \ \ \ \ \  
| * \ \ \ \ \ \   43d2ae4e29702952894ad9b3f07dff9b960e31a7 Merge branch 'master' of git://gist.github.com/1050889
| |\ \ \ \ \ \ \  
* | | | | | | | | 2d8efa748adf561b7942ad197ac4313359029dd9 うける〜
| |_|_|_|_|_|/ /  
|/| | | | | | |   
* | | | | | | | ce21dee9a33da8bcccbe83c46136051b1cc5850e log
... 

今回は id:cho45 さん id:hakobe932 さん d:id:shiba_yu36 さんのおかげで高速に開発が進みました!ありがとうございます!!!