トップ 最新

ただのにっき

2009-05-14(木) [長年日記]

gitでforkなどを経験してみた(またはwassr2twitterを導入)

えちょさんがwassr2twitterというのを公開していた。Wassrの自分のタイムラインをごっそりTwitterの特定のアカウントに流し込むというだけのスクリプトなのだが、これができると選択肢の多いTwitterのクライアントでWassrが読めるようになる。具体的にはiPhoneでNatsuLionとか*1

せっかくコードがGitHub上にあるので、WEB+DB PRESS Vol.50で「はじめてのGit」を読んだばかりということもあり、それっぽい開発を体験してみることに。「はじめてのGit」はとてもいい記事なので、git使ってる人は読むべきです*2

WEB+DB PRESS Vol.50
杉山 貴章
技術評論社
¥356

まずは本家リポジトリ上で「fork」をクリック。すると自分のところに新しいリポジトリが増える。forkと言っても、gitのリポジトリはすべて対等なので、これも独立した立派なリポジトリである。あとは基本的にこっちをいじる。

まずは開発マシン上でclone:

% git clone git@github.com:tdtds/wassr2twitter.git
% cd wassr2twitter
(... Pit対応する)
% git commit -a -m 'supported Pit.'
(... Proxy対応する。commitの単位は細かく![←師の教え])
% git commit -a -m 'supported http_proxy.'
% git push
(↑ここでpushする先はGitHub上の自分のリポジトリ)

あとは本家に「このパッチ取り込んでちょ!」とお願いする。自分のリポジトリページにある「pull request」をクリック。(たぶんfork元ということで自動的に入っている)「Select Recipients」のEchosさんにチェックを入れて、メッセージとともにリクエストを送ればよい。

……で、これをマージする体験はまだしてないんだけど(笑)、えちょさんによれば単にマージするだけならWeb上でできるそうだ。GitHubスゲー。

両者のリポジトリがどうなっているのかは、これもGitHub上で見ることができる(ページ右端にある二股に分かれた矢印のアイコン)。いろんな目的別にブランチを切りながら開発をすると面白いことになりそう。

今後、本家の開発が進んだら、その差分を自分の方に取り込んだりするのだろう。直接pullしても良いけど、remoteを作って、fetchしてからmergeするという流れで作業する方が良いと思うので、そうしておく:

% git remote add echos git://github.com/Echos/wassr2twitter.git
% git fetch echos
(echos/masterがローカルにコピーされる)
% git merge echos/master

しかしなんだ。まさかアイマスクラスタの人とコードのやり取りをすることになるとは想像もしてなかった。

Tags: git

*1 WassrのiPhone用Webインタフェースはほぼフル機能が使えて良いのだが、いかんせん3Gでは重過ぎる。その点、NatsuLionはとても軽快なのでこれができるとかなり嬉しい。

*2 もっとも、「歴史」を自在にいじるあたりはパラノイアじみた「エンジニアリング的やりすぎ感」が満載で、ちょっと引き気味。