repo/gitの使い方
repo/git*1の使い方。需要があるかもしれないので、個人的チートシートをメモ。まずはAndroidのソースをゲット。
$ mkdir cupcake && cd cupcake $ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake $ repo sync
ソースに手を入れる前に、オレオレブランチ。
$ repo start mycake
ソースを変更したら、addしてcommit。変更はローカルリポジトリのみに記録される。commit時のコメント入力をするエディタはデフォルトvi*2。
$ vi hoge/fuga/foo.java $ git add hoge/fuga/foo.java $ git commit
マスターとの差異を確認したければ、git diff。repo forallするとどのディレクトリにいても全部列挙。
$ cd hoge/fuga $ git diff m/cupcake mycake $ repo forall -c git diff m/cupcake mycake
ページャは環境変数GIT_PAGERかPAGERから拾ってる*3。設定されていなければlessを使う。なので、(End)と表示されたら、[q]キーを叩く。CTRL-Cすると端末制御コードがおかしくなってしまうので注意。うざかったら、GIT_PAGERをcatにしちゃう手もある。
$ export GIT_PAGER=cat $ repo forall -c git diff m/cupcake mycake | less $ repo forall -c git diff m/cupcake mycake > /tmp/mycake.diff
*1:http://source.android.com/download/using-repo
*2:cupcake/.repo/repo/editor.py
*3:cupcake/.repo/repo/pager.py