Mercurial 個人利用
投稿日: | |
---|---|
タグ: |
目次
個人で利用する場合のMercurialについてのまとめ.
用語
- リポジトリ
- Mercurialで管理された空間.
- リビジョン
- バージョン
- チェンジセット
- 遡ることのできるポイントのこと.
- コミット
- 新しいリビジョンを作ること.
- tipリビジョン
- tip
- リポジトリにおいて最近追加されたリビジョン.もっとも最近修正されたヘッダ.
- ヘッド
- 子リビジョンを持たないリビジョン
- マージ
- 複数のリビジョンを合併.各リビジョンの異なるファイルに関する変更や同一ファイルの異なる変更を全て反映させる.
- 衝突
- Mercurialが整合性を保ったまま複数のリビジョンを統合できない状態(例:複数のリビジョンで同じ箇所に異なる変更をした場合).
- 衝突の解消
- 解消
- 衝突している箇所に対し変更内容を指定すること.
- タグ
- リビジョンの名前のこと.1つのリビジョンにタグは複数付けられる.
- ブランチ
- 2つの子リビジョンを持つ親リビジョンがいる時,その親リビジョン以降
基本コマンド
用途 | コマンド名 | 別名 | 注釈 |
---|---|---|---|
リポジトリの初期化. | init | ||
管理対象として登録. | add | ||
ファイル名を変更. | rename | 登録されたファイルの名前を変更.mvで変更するとMercurialで管理されなくなる. | |
管理対象から削除. | remove | rm | 以前までの記録は残る |
リビジョン情報を表示. | log | history | "-v"で詳細な情報を表示.表示結果の見方は「ログ情報」で. |
ファイルの状態を確認. | status | st | 状態の種類 |
コミット. | commit | ci | |
作業領域を任意のリビジョンのものに変更. | update |
| リビジョンを指定しなければ最新のリビジョンへ |
各コマンドのヘルプを表示. | help | 何も指定しなければhgについて.コマンド名を指定すればコマンドについてのヘルプ."hg -v help"の方が詳細. |
便利なコマンド
用途 | コマンド名 | 別名 | 詳細 |
---|---|---|---|
パターンに一致する管理対象のファイルを表示. | locate |
| |
あるファイルをあるリビジョン時点のものに更新. | revert | リビジョンを指定しない場合,親リビジョン("hg parent")が選ばれる. | |
リビジョンにタグを付ける. | tag | 複数のタグを指定できる. | |
ファイルの複製. | copy | 複製後のファイルは複製元のリビジョンの履歴を持つ. | |
2つのリビジョンのファイルの差分を表示. | diff | 1つのリビジョンを指定した場合,指定リビジョンと作業領域間の差分が,何もリビジョンを指定いない場合, 作業領域とその親リビジョン間の差分を表示. | |
あるリビジョンのファイルの中身を表示. | cat | ||
あるパターンに一致するファイルやリビジョンを検索. | grep | 特に指定がない場合,最初に合致したリビジョンのみ,"--all"を指定した場合,全てのリビジョンから検索. | |
リビジョンを圧縮して取り出し. | archive | 圧縮形式は出力ファイル名から自動判定されるが,-tや--typeで指定可能. | |
1つ前のコミットを取り消し. | rollback | 1段階限り取り消せる(commitやpushなど).Mercurialでは普通取り消さずに分岐させる. | |
ファイルの修正時期の確認. | annotate | blame | バイナリには使用できない. |
分岐関連コマンド
用途 | コマンド名 | 別名 | 注釈 |
---|---|---|---|
| branch | 名前を指定した場合は,現在のブランチ名を設定,それ以外の場合は,現在のブランチ名を表示. | |
現在のブランチを閉鎖. | 現在のブランチを閉鎖する場合,commitコマンドの引数--close-branchを使用. | ||
マージ. | merge |
| |
マージ状態の管理. | resolve | 詳細は「衝突解消」で. |
衝突解消
引数1 | 引数2 | 説明 |
---|---|---|
-l | --list | マージの必要なファイルの解消状態一覧. |
-m | --mark | 当該ファイルを衝突解消済みに設定. |
-u | --unmark | 当該ファイルを衝突未解消に設定. |
複数のリポジトリ
用途 | コマンド名 | 別名 | 注釈 |
---|---|---|---|
リポジトリ全体の複製. | clone |
| |
他リポジトリから自リポジトリへ差分複製. | pull | 引数として複製元のリポジトリのパスやURL,パスのエイリアス名を与える. | |
自リポジトリから他リポジトリへ差分複製. | push |
|
状態確認関連コマンド
用途 | コマンド名 | 別名 | 注釈 |
---|---|---|---|
全てのヘッドのログを表示. | heads | パラレルワールドがあるか確認可能. | |
作業領域の概要を表示. | summary | sum | |
| branch | ||
作業領域か任意のリビジョンの親リビジョンのログを表示. | parents | ||
リポジトリ内の全てのタグ名を表示. | tags | ||
tipリビジョンのログを表示. | tip | ||
リポジトリの整合性を検証. | verify | ||
リビジョンの識別情報を表示. | identify | id | リビジョンを指定しなかった場合,現在の作業領域. |
リビジョン情報を表示. | log | history | "-v"で詳細な情報を表示.表示結果の見方は「ログ情報」で. |
ファイルの状態を確認. | status | st | 状態の種類 |
ログ情報
user% hg log
チェンジセット: 2:c2ed88952439
タグ: tip
ユーザ: user
日付: Sun Oct 28 23:21:54 2012 +0900
要約: 3rd check
チェンジセット: 1:06cc1925b446
ユーザ: user
日付: Sun Oct 28 23:21:13 2012 +0900
要約: second check
チェンジセット: 0:2aa333d966d3
ユーザ: user
日付: Sun Oct 28 23:20:40 2012 +0900
要約: first check
引数にファイル名やディレクトリ名を指定した場合,そのファイルやディレクトリ以下のファイル名のリビジョンを表示する.
フィールド | field | 説明 |
---|---|---|
チェンジセット | changeset | リビジョン番号とハッシュID |
タグ | tag | タグが付いていればタグ |
ユーザ | user | ユーザ名 |
日付 | date | コミットを実施した日付 |
ファイル | files | ファイル一覧 |
要約 | summary | コミットメッセージの1行目 |
説明 | description | コミットメッセージ |
ファイル状態
user% hg status -A
M hoge.html
? foo.html
C fuga.html
C piyo.html
状態マーク | 表示対象 | 引数1 | 引数2 |
---|---|---|---|
A | 登録対象 | -a | --added |
? | 未登録 | -u | --unknown |
M | 修正 | ||
C | 無修正 | -c | --clean |
R | 除外 | -r | --removed |
! | 削除 | -d | --deleted |
I | 無視 | -i | --ignored |
(空白文字) | 複製元 | -C | --copies |
設定ファイル
Mercurialには,hgrcや.hgrcという名前の設定ファイルがある.詳細は,"hg help -v config"で表示できる.
設定ファイルは,セクション名([と]で囲われた文字列)とセクションから構成される.以下にセクションの例をいくつか示す.
- ui
-
ユーザインタフェースに関する設定.項目は"hg help -v config"で確認できる.
- username
- ユーザ名
- editor
- エディタ名
- ssh
- sshコマンド
[ui] username = user editor = vim ssh = ssh -p 10022
- encode
-
ファイルパターンとそれに使用する圧縮コマンドの指定.
[encode] *.tar.gz = gzip *.tar.bz2 = bzip2
- paths
-
リポジトリへのシンボリックな名前を設定.
いくつかのコマンドは,defaultやdefault-pushなどのエイリアス名を設定する.設定されたパスはpathsコマンドで確認可能.[paths] hoge = /home/user/work1 fuga = ssh://user@test:22/work2
- alias
-
コマンドのエイリアス名を設定.
[alias] ls = locate