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 mercurial

Linux は 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/testMercurial

hint
    このURLを.zshrcで変数に入れておくと便利


■3 レポジトリに追加

    % hg add "追加したいファイル"

hg add ファイル名を省略すると追加できるファイルを全部追加します。


■4 コミット

    % hg commit

or
    % 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 -> MarketPlace 

hg を選択

新規プロジェクトを 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$

と書くと良いようです。


Shinji KONO / Tue Oct 15 12:48:23 2013