SSブログ

Mercurial メモ [Linux]

・一般的な動作

リポジトリの複製
$hg clone [URL]

このコマンドだけターゲットの親ディレクトリで行う。すると勝手にディレクトリを作ってその中にリポジトリを作成する。

複製元から更新履歴を拾ってくる
$hg pull [URL]

引数を指定することで、複数のリポジトリから更新を引っ張ってこれる。するとhead(終端)が複数できることになる。これを解消するためには後述のmergeを使う

今のバージョンを任意のバージョンに変更する
$hg update [-C] [version]

updateのみの場合、衝突(更新)が起きなかったファイルのみ更新される
hg status -mで表示されたファイルは更新されないことが多い。
問答無用で更新したい場合は-Cをつける

自分のリポジトリのバージョンを確認する
$hg parents


今のバージョンとの変更点を確認する
$hg status [-m]


新しくファイルを追加する
$hg add [file]


変更をリポジトリに反映する
$hg commit


リポジトリに反映した変更を元に戻す
$hg rollback

ちょっとコミットしておいて、前のバージョンで作業とか気楽にできる。ただ、複数人で作業してたりする場合にはdiffで素直にパッチをとっておいたほうがいいかもしれない

変更をリモートリポジトリに反映する
$hg push


変更点を表示する
$hg diff

ここで表示されたものをリダイレクトでファイルとして保存しておくと、次のコマンドでパッチできる
$patch -p 1 -d . < [patch]



・Mercurial(分散リポジトリ)ならではの動作

分岐を確認する
$hg heads

リポジトリのバージョン(一時的、テスト、特定の機能)ごとに分岐しているか確認できる。分岐が無い場合は最新の1つ(おそらくtipになっている)ものが表示される

分岐を確認するor作る
$hg branch [name]

commit前にbranchをすることで、次のコミットが本流ではなくなる。違う分岐同士でバージョンの行き来をする場合は-Cをつけないとupdateできないので、こういう場合は上記のパッチ推奨。

分岐同士を合成する
$hg merge [target]

今いるバージョン(parents)とtargetでマージを行う。衝突が起きると、マージの確認のためにエディタやツールが起動する。失敗した場合はhg rollback, hg update -C。

その他
・updateする前にparents,statusはやるくせはつけたほうがいいと思う。
 特に-Cやrevertするときは特に。把握できていない場合は、diffでパッチを作っておくのも手。

・詳細は
$hg [command] --help

とかやれば出てくる

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

進歩しないIT業界ウィルス・・・ ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。