Mercurial の使い方
Menu Menu
■ 課題毎に repository を作って下さい
ソースは、shongane 上の Mercurial Repository を使います。
ssh://yomitan.ie.u-ryukyu.ac.jp:/home/hg/y10/e105708/os/1.1などのように、課題毎の repository にすること。repository は僕が読み出せる Permission に設定してください。上記の hg 用の repository 名をメールに含めること。
Web からも見れるので、注意して記述してください。
http://ie.u-ryukyu.ac.jp/hg/から見えていればだいじょうぶ。
■ インストール
http://mercurial.berkwood.com/上にパッケージがあります。詳しい使い方はこちら↓http://www.selenic.com/mercurial/wiki/index.cgi/JapaneseTutorial
Mac OS X は EasyPackage で
sudo epkg sync sudo epkg install mercurialLinux は yum install hg ぐらいで。
■ カスタマイズ
~/.hgrc に
[extensions] hgext.convert= [ui] username = Shinji KONO <kono@ie.u-ryukyu.ac.jp> ssh = ssh -Cこれぐらいをいれておきます。(もちろん、名前は自分の名前で)
.hgignore に
syntax: regexp /\. git DS_Store xcuserdata ^build/ .*\.mode1v3$ .*\.pbxuser$ .*\.xcworkspace$これぐらいをいれておきます。(Xcode4 用)
■0 課題のファイルを取って来る
既に課題のrepositoryがある場合は、そこから取って来ます。Webからwget? Control click でも良いけど、
scp -r yomitan.ie.u-ryukyu.ac.jp:~kono/public_html/os/os01/exぐらいが簡単かも。
■1 レポジトリの作成
レポジトリにしたいフォルダ内で
% hg initとするとそのフォルダはレポジトリになります。(fireflyに入ってとってきたいフォルダにhg initしてください)
■2 レポジトリのコピー(ローカルレポジトリ)
% hg clone "コピーしたいレポジトリ名"で送り込みます。
ex. % hg clone ssh://e085705@yomitan.ie.u-ryukyu.ac.jp//home/hg/y08/....yomitan に上げるときには、
ex. % hg clone testMercurial ssh://e085705@yomitan.ie.u-ryukyu.ac.jp//home/hg/y08/e085705/testMercurialhint
このURLを.zshrcで変数に入れておくと便利
■3 レポジトリに追加
% hg add "追加したいファイル"hg add ファイル名を省略すると追加できるファイルを全部追加します。
■4 コミット
% hg commitor
% hg commit -m 'コメント'このコマンドでチェンジセット(他レポジトリとの変更情報)が作成されます。(ローカルレポジトリの情報を更新するだけなのでfireflyのデータは変わりません)
■5 他のレポジトリを変更(push)
% hg push "送りたい場所"指定した場所に自分がコミットしたチェンジセットを送りつけます。
push したら、
.hg/hgrcに、
[paths] default = ssh://e085705@yomitan.ie.u-ryukyu.ac.jp//home/hg/y08/e085705/testMercurialを書き込みます。
■6 他のレポジトリの変更情報を取得
% hg pull "引っ張ってくる場所"他のレポジトリのチェンジセットを取得します。
% hg updateチェンジセットの内容を反映し、更新します。
■7 Eclipse での使い方
Help -> MarketPlacehg を選択
新規プロジェクトを Mercurial で管理する
プロジェクトを選択して、control click -> Share Project -> MercurialEclipseここで、repository を上記の方法でサーバに上げます。
ex. % hg clone testMercurial ssh://e085705@yomitan.ie.u-ryukyu.ac.jp//home/hg/y08/e085705/testMercurialそれを、以下のように読み込みます。
File -> New -> Other Mercurial
■8 Merge の仕方
hg headsで、複数のhead があるかどうかを確認。merge したい方(だいたい tip じゃない方でしょう) に
hg update -C version-numberで移行します。
まず、自分の変更を local に commite しておくこと。
hg mergeします。それで解決できれば、
hg commit hg pushできなければ、
hg resolve -aで、解決できなかったファイルを見ます。
それを手動で編集して解決したら、
hg resolve -m file-nameで、解決したと hg に教えます。hg resolve -a を全部解決できたら、
hg commitこれで、head が一つになれば、merge 終了です。
hg pushで、repository に上げます。
■9 tag
とっておきたい版は、 tag づけします。
hg tag tag-name-01とか。
■10 大文字小文字の混在、日本語ファイル名
使わないのが一番。
■11 Xcode4 で使う時には
.hgignore に
syntax: regexp /\. DS_Store ^build/ .*\.mode1v3$ .*\.pbxuser$と書くと良いようです。