Win32 で repo っぽい環境を作る

先日の失敗のリカバー編.


bash やら Perl やらを適宜組み合わせて,repo 向けの default.xml を引っ張ってきて,それっぽく展開する環境をでっちあげてみた.


現状,pre α版.スクリプトの質がまだまだというのに加えて,msysgit の devel ブランチを使っているので,もしかするといきなり動かなくなるかもしれない.
(msysgit の本家に pull request を出したのだけれど,「ML で議論するのが,ぼくらの普通なの」と返ってきたので,マージをお願いすることについては若干退き気味)

やりかた

まずは msysgit のインストール

msysgit のネットワークインストーラを使う.
動作を確認したのは,msysGit-netinstall-1.7.8-preview20111206.exe.
でももし動かなくなるとするならば,インストーラの違いではなく,このインストーラがアクセスする git リポジトリに起因するはず.だから新しいものを使うのがよいかもしれない.

上記インストーラで普通にインストールする.

msysgit の bashシェルを使って perl などを更新する

bash シェルを開く.
ネットワークインストール版の msysgit は,MSYS 環境そのものを git で管理している.これを応用して更新を行う.

まず,ルートディレクトリに移動する.

$ cd /

ここで,更新のためのリモートリポジトリを追加し,更新を行う.

$ git remote add github https://github.com/monaka/msysgit.git
$ git pull github perl-5.8.8-1-msys
$ git remote add pizza http://bitbucket.org/monaka/msysgit_pizza.git
$ git pull pizza master

いろいろ引っ張ってくるので,ちょっと時間がかかる.

終わったら,ホームディレクトリに戻る.

$ cd

trepo コマンドの実行

trepo というのが,今回作ったコマンド環境.
上記の作業で /bin/trepo としてインストールされている.

ここでは,TOPPERS/ASPカーネルの sh12a_hew ターゲット 1.3.1 相当のものを持ってくる.

まずは,作業場所を作って移る.

$ mkdir hoge
$ cd hoge

リポジトリ定義の XML を引っ張ってくる.

$ trepo init -u http://bitbucket.org/monaka/ngk_repo-sh12a_hew -b asp-1.3.1-1.3.1

つぎに,ソースコードツリーを引っ張ってくる.

$ trepo sync

ドカドカと git を繰り返して,ツリーを作ってくれる.
この例だと, ~/hoge/unofficial ディレクトリにツリーが作られているはず.


ちなみに,repo が使える環境であれば,上記手順を s/trepo/repo/ とすると,同様にツリーが作られるはず.

もし動かないよー,というときは?

Issue Tracker 辺りでお知らせ頂くと反応できる…かも.