Mercurial メモ [Linux]
・一般的な動作
リポジトリの複製
このコマンドだけターゲットの親ディレクトリで行う。すると勝手にディレクトリを作ってその中にリポジトリを作成する。
複製元から更新履歴を拾ってくる
引数を指定することで、複数のリポジトリから更新を引っ張ってこれる。するとhead(終端)が複数できることになる。これを解消するためには後述のmergeを使う
今のバージョンを任意のバージョンに変更する
updateのみの場合、衝突(更新)が起きなかったファイルのみ更新される
hg status -mで表示されたファイルは更新されないことが多い。
問答無用で更新したい場合は-Cをつける
自分のリポジトリのバージョンを確認する
今のバージョンとの変更点を確認する
新しくファイルを追加する
変更をリポジトリに反映する
リポジトリに反映した変更を元に戻す
ちょっとコミットしておいて、前のバージョンで作業とか気楽にできる。ただ、複数人で作業してたりする場合にはdiffで素直にパッチをとっておいたほうがいいかもしれない
変更をリモートリポジトリに反映する
変更点を表示する
ここで表示されたものをリダイレクトでファイルとして保存しておくと、次のコマンドでパッチできる
・Mercurial(分散リポジトリ)ならではの動作
分岐を確認する
リポジトリのバージョン(一時的、テスト、特定の機能)ごとに分岐しているか確認できる。分岐が無い場合は最新の1つ(おそらくtipになっている)ものが表示される
分岐を確認するor作る
commit前にbranchをすることで、次のコミットが本流ではなくなる。違う分岐同士でバージョンの行き来をする場合は-Cをつけないとupdateできないので、こういう場合は上記のパッチ推奨。
分岐同士を合成する
今いるバージョン(parents)とtargetでマージを行う。衝突が起きると、マージの確認のためにエディタやツールが起動する。失敗した場合はhg rollback, hg update -C。
その他
・updateする前にparents,statusはやるくせはつけたほうがいいと思う。
特に-Cやrevertするときは特に。把握できていない場合は、diffでパッチを作っておくのも手。
・詳細は
とかやれば出てくる
リポジトリの複製
$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
とかやれば出てくる
コメント 0