##// END OF EJS Templates
manifest/revlog: do not let the revlog cache mutable objects...
manifest/revlog: do not let the revlog cache mutable objects If a buffer of an mutable object is passed to revlog.addrevision(), the revlog will happily store it in its cache. Later when the revlog reuses the cached entry, if the manifest modified the object in-between, all kind of bugs appears. We fix it by: - passing immutable objects to addrevision() if they are already available - only storing the text in the cache if it's of str type Then we can remove the conversion of the cache entry to str() during retrieval. That was probably just there hiding the bug for the common cases but not really fixing it.

File last commit:

r8936:1de6e7e1 default
r9420:d0db1681 default
Show More
hg.1.ja.txt
867 lines | 39.2 KiB | text/plain | TextLexer
HG(1)
=====
Matt Mackall <mpm@selenic.com>
名前
--
hg - Mercurial ソースコード管理システム
書式
--
'hg' [-v -d -q -y] <command> [command options] [files]
説明
--
hg(1) コマンドは Mercurial システムへのコマンドラインインターフェ
イスを提供します。
オプション
----
-R, --repository::
リポジトリのルートディレクトリを指定します。
--cwd::
作業ディレクトリを変更します。
-y, --noninteractive::
プロンプトを出さずに、要求された答えが全て 'yes' であると仮定
します。
-q, --quiet::
出力を抑制します。
-v, --verbose::
さらなる出力を可能にします。
7--debug::
デバッグ出力を可能にします。
--traceback::
例外時にトレースバックを表示します。
--time::
コマンドにどのくらい時間がかかるかを表示します。
--profile::
コマンドを実行したときのプロファイルを表示します。
--version::
バージョン情報を表示して終了します。
-h, --help::
ヘルプを表示して終了します。
コマンドの要素
-------
files ...::
1つ以上のファイル名か相対的なパスを表します; パターンマッチン
グの情報は「ファイル名のパターン」を参照してください。
path::
ローカルマシン上のパスを表します
revision::
チェンジセットのリビジョンナンバー, タグ, チェンジセットのハッ
シュ値のユニークな部分文字列により指定できるチェンジセットを表
します
repository path::
ローカルのリポジトリのパス名かリモートのリポジトリの URI を表
します。URI のプロトコルとしては現在 2 つが利用可能です。
http:// は高速で、static-http:// は遅いですがウェブのホストに特別
なサーバを必要としません。
コマンド
----
add [options] [files ...]::
ファイルをバージョン管理下に置きリポジトリに追加することを予定
します。
ファイルは次にコミット時にリポジトリに追加されます。
ファイル名が与えられなければ、現在のディレクトリとサブディレク
トリの全てのファイルを追加します。
addremove [options] [files ...]::
新しいファイルを全て追加し無くなったファイルを全てリポジトリか
ら取り除きます。
新しいファイルは .hgignore 中のパターンにマッチした場合無視さ
れます。add のようにこの変更は次のコミット時に効果を持ちます。
annotate [-r <rev> -u -n -c] [files ...]::
ファイル中の変更を列挙し、各行の原因であるリビジョン id を表示
します。
このコマンドある変更が生じた際に誰がその変更をしたかを発見する
のに役に立ちます。
-a オプションが無いと、annotate はバイナリとして検出されたファ
イルを避けるようになります。-a があると、annotate はとくかく注
釈を生成し、おそらく望ましくない結果になるでしょう。
オプション:
-a, --text 全てのファイルをテキストとして扱います
-I, --include <pat> 与えられたパターンにマッチした名前を含め
ます
-X, --exclude <pat> 与えられたパターンにマッチした名前を除外
します
-r, --revision <rev> 指定されたリビジョンの注釈を生成します
-u, --user 著者を列挙します
-c, --changeset チェンジセットを列挙します
-n, --number リビジョンナンバーを列挙します
(デフォルト)
bundle <file> <other>::
(実験的)
他のリポジトリには見付からなかった全てのチェンジセットを集めた、
圧縮済みチェンジグループファイルを生成します。
このファイルは従来の方法で転送することができ、他のリポジトリに
unbundle コマンドで適用できます。これは push と pull が使えな
いか、リポジトリ全体をエクスポートしてしまうことが望ましくない
ときに便利です。標準のファイル拡張子は ".hg" です。
import/export と違って、これはパーミッション、名前変更のデータ、
リビジョンの履歴を含めたチェンジセットの内容全てを保存します。
cat [options] <file ...>::
指定されたファイルを与えられたリビジョンの内容で表示します。リ
ビジョンが指定されなかった場合は tip が使われます。
出力はファイルに対しても可能です。その場合、ファイル名はフォー
マット文字列により指定されます。フォーマット規則は export コマ
ンドと同じですが、さらに次のものが追加されます。
%s 出力されるファイルのベース名
%d 出力されるファイルのディレクトリ名か、リポジトリのルート
にいる場合は "."
%p 出力されるファイルのルートからの相対パス
オプション:
-I, --include <pat> 与えられたパターンにマッチした名前
を含めます
-X, --exclude <pat> 与えられたパターンにマッチした名前
を除外します
-o, --output <filespec> 整形された名前でファイルに出力しま
-r, --rev <rev> 与えられたリビジョンを表示します
clone [-U] <source> [dest]::
既存のリポジトリのコピーを新しいディレクトリに作成します
コピー先のディレクトリ名が指定されなければ、デフォルトでソース
のベース名を使用します。
今後の pull に使えるように、コピー元が新しいリポジトリの
.hg/hgrc に追加されます。
効率のために、コピー元とコピー先が同じファイルシステム上にある
場合はハードリンクが使われます。
オプションン:
-U, --noupdate 新しい作業ディレクトリで update を行いません
-e, --ssh 使用される ssh コマンドを指定します
--remotecmd リモート側で実行する hg コマンドを指定します
commit [options] [files...]::
指定されたファイルの変更をリポジトリにコミットします。
もしファイルのリストが省略されたら、リポジトリのルートから実行
した"hg status" で報告される全ての変更がコミットされます。
HGEDITOR や EDITOR 環境変数はコミット時のコメントを追加するエ
ディタを起動するために使われます。
オプション:
-A, --addremove コミット中に addremove を実行します
-I, --include <pat> 与えられたパターンにマッチした名前を含め
ます
-X, --exclude <pat> 与えられたパターンにマッチした名前を除外
します
-m, --message <text> <text> をコミットメッセージとして使いま
-l, --logfile <file> <file> からコミットメッセージを読み込み
ます
-d, --date <datecode> datecode をコミットした日付として記録し
ます
-u, --user <user> user をコミッタとして記録します。
別名: ci
copy <source ...> <dest>::
コピー先がコピー元のファイルのコピーを持っていると印を付けます。
もしコピー先がディレクトリなら、コピーはディレクトリ中に置かれ
ます。もしコピー先がファイルなら、コピー元は1つのみ指定可能で
す。
デフォルトでは、このコマンドはファイルがその作業ディレクトリに
あるものとしてその内容をコピーします。もし --after と一緒に呼
び出されれば、操作は記録されますが、コピーは実行されません。
このコマンドは次のコミット時に効果を持ちます。
注意: このコマンドは実験的です。リネームされたファイルを適切に
記録できますが、この情報はマージによってまだ完全には使われませ
んし、ログで完全に報告されることもありません。
オプション:
-A, --after 既に発生したコピーを記録します。
-I, --include <pat> 与えられたパターンにマッチした名前を含め
ます
-X, --exclude <pat> 与えられたパターンにマッチした名前を除外
します
-f, --force 既存の変更されたファイルに無理矢理コピー
します
-p, --parents コピー先にコピー元のパスを追加します
別名: cp
diff [-a] [-r revision] [-r revision] [files ...]::
指定されたファイルのリビジョン間の差分を表示します。
ファイル間の差分は unified diff 形式で表示されます。
2つのリビジョンが引数として指定された場合、それらのリビジョン
間の差分が表示されます。1つのリビジョンしか指定されなければ、
そのリビジョンは作業ディレクトリと比較されます。そして リビジョ
ンが指定されなければ、作業ディレクトリのファイルがその親と比較
されます。
-a オプション無しでは、diff はバイナリファイルを検出したときに
その差分を生成するのを避けます。-a オプションでは、diff はとに
かく差分を生成し、恐らく望ましくない結果をもたらすでしょう。
オプション:
-a, --text 全てのファイルをテキストとして扱います
-I, --include <pat> 与えられたパターンにマッチした名前を含め
ます
-X, --exclude <pat> 与えられたパターンにマッチした名前を除外
します
export [-o filespec] [revision] ...::
1つ以上のリビジョンのチェンジセットのヘッダと差分を出力します。
チェンジセットのヘッダに表示される情報は: 著者、チェンジセット
のハッシュ、親、コミット時のコメントです。
出力はファイルに対しても可能です。その場合、ファイル名はフォー
マット文字列により指定されます。フォーマット規則は下記の通りで
す:
%% そのままの "%" 文字
%H チェンジセットのハッシュ (40 バイトの 16 進数)
%N 生成されているパッチの番号
%R チェンジセットのリビジョンナンバー
%b エクスポートしているリポジトリのメース名
%h 短い形式のチェンジセットのハッシュ (12 バイトの 16 進数)
%n 0 で 詰められた 1 から始まる連番
%r 0 で 詰められたリビジョンナンバー
-a オプション無しでは、diff はバイナリファイルを検出したときに
その差分を生成するのを避けます。-a オプションでは、diff はとに
かく差分を生成し、恐らく望ましくない結果をもたらすでしょう。
オプション:
-a, --text 全てのファイルをテキストとして扱います
-o, --output <filespec> 整形された名前でファイルに出力します
forget [options] [files]::
次のコミット時に予定された 'hg add' を取り消します。
オプション:
-I, --include <pat> 与えられたパターンにマッチした名前を含めま
-すX, --exclude <pat> 与えられたパターンにマッチした名前を除外
-します
grep [options] pattern [files]::
正規表現によりファイルのリビジョンを検索します。
このコマンドは Unix の grep とは違う振舞いをします。これは
Python/Perl の正規表現だけを受けつけます。これは作業ディレクト
リではなくリポジトリの履歴を検索します。これは常にマッチしたも
のが現れたリビジョンナンバーを表示します。
デフォルトでは、grep はマッチしたものが見つかったファイルの最
初のリビジョンを出力します。マッチ状況の変化("-" はマッチが非
マッチに、"+" は非マッチがマッチに)を含んだ各リビジョンを表示
するには、--all フラグを使ってください。
オプション:
-0, --print0 ファイル名を NUL で終えます。
-I, --include <pat> 与えられたパターンにマッチした名前
を含めます
-X, --exclude <pat> 与えられたパターンにマッチした名前
を除外します
--all マッチした全てのリビジョンを表示し
ます
-i, --ignore-case マッチのときに英大文字と小文字を区
別しないようにします
-l, --files-with-matches マッチしたファイル名とリビジョンの
みを表示します
-n, --line-number マッチした行番号を表示します
-r, --rev <rev> 指定されたリビジョンの間で検索しま
-u, --user その変更をコミットしたユーザを表示
します
heads::
リポジトリの先頭のチェンジセットを全て表示します。
リポジトリの「先頭」とは子のチェンジセットを持っていないチェン
ジセットです。それらは大抵開発が行われる場所で、通常 update と
merge 操作の対象となるところです。
identify::
レポジトリの現在の状態の短いサマリを表示します。
このサマリはリポジトリの状態を1つまたは2つの親のハッシュ識別子
を使って識別します。親のハッシュ識別子はもし作業ディレクトリに
コミットされていない変更があれば後ろに + が付き、更にその後に
このリビジョンのタグのリストが付きます。
別名: id
import [-p <n> -b <base> -f] <patches>::
一連のパッチをインポートし、それぞれ個別にコミットします。
作業ディレクトリに未解決の変更があった場合、import は -f フラ
グが指定されてなければ中断します。
もしパッチがメールのよう(最初の行が "From " か RFC 822 ヘッダ
のよう) であれば、-f オプションが使われていない限りそれは適用
されません。インポート機構はメールのヘッダをパースもしなければ
破棄もしないので、本物のメールをインポートしないようにする「メー
ルのようなものの」健全性チェックを上書きするためだけに -f を使っ
てください。
オプション:
-p, --strip <n> patch の ディレクトリ除去オプションです。これ
は関連する patch のオプションと同じ意味を持ち
ます
-b <path> パッチを読み込むベースとなるディレクトリを指
定します
-f, --force 未解決でまだコミットされていない変更のチェッ
クを省略します
別名: patch
incoming [-p] [source]::
指定されたリポジトリか、デフォルトで pull するリポジトリ中に見
つかった新しいチェンジセットを表示します。これらは pull が要求
されたときにpull されるチェンジセットです。
現在はローカルのリポジトリのみがサポートされています。
オプション:
-p, --patch パッチを表示します
別名: in
init [dest]::
指定されたディレクトリ中に新しいリポジトリを初期化します。指定
されたディレクトリが存在しない場合は作成されます。
ディレクトリが指定されなければ、現在のディレクトリが使用されま
す。
locate [options] [files]::
Mercurial の管理下にあるファイルで名前が指定されたパターンにマッ
チしたものを全て表示します。
このコマンドは現在のディレクトリとサブディレクトリを検索します。
リポジトリ全体を検索するには、リポジトリのルートに移動してくだ
さい。
もしマッチするためのパターンが与えられなければ、このコマンドは
全てのファイルの名前を表示します。
もしこのコマンドの出力を "xargs" コマンドに送りたいなら、
"-0" オプションをこのコマンドと "xargs" コマンドの両方で使用し
てください。これは "xargs" がスペースの入ったファイル名を複数
のファイル名として扱わないようにします。
オプション:
-0, --print0 xargs と一緒に使うために、ファイル名を
NUL で終えます
-f, --fullpath ファイルシステムのルートからの完全なパ
スを表示します
-I, --include <pat> 与えられたパターンにマッチした名前を含
めます
-r, --rev <rev> rev のときのリポジトリを検索します
-X, --exclude <pat> 与えられたパターンにマッチした名前を除外
します
log [-r revision ...] [-p] [files]::
指定されたファイルかプロジェクト全体のリビジョンの履歴を表示し
ます。
デフォルトではこのコマンドは次のものを出力します: チェンジセッ
トのid とハッシュ、タグ、親、ユーザ、日付、各コミットのサマ
リ。-v スイッチは変更されたファイルやマニフェストのハッシュ、
メッセージのシグネチャといったより詳しい情報を追加します。
オプション:
-I, --include <pat> 与えられたパターンにマッチした名前を含め
ます
-X, --exclude <pat> 与えられたパターンにマッチした名前を除外
します
-r, --rev <A> 指定されたリビジョンまたは範囲を表示しま
-p, --patch パッチを表示します
別名: history
manifest [revision]::
指定されたリビジョンでバージョン管理されているファイルのリスト
を表示します。
manifest はバージョン管理されているファイルのリストです。もし
リビジョンが指定されなければ、tip が使われます。
outgoing [-p] [dest]::
指定された行き先のリポジトリかデフォルトで push するリポジトリ
中に見付からなかったチェンジセットを表示します。これらは push
が要求されたときに push されるであろうチェンジセットです。
オプション:
-p, --patch パッチを表示します
別名: out
parents::
作業ディレクトリの親リビジョンを表示します。
paths [NAME]::
シンボルのパス名である NAME の行き先を表示します。もしシンボル
名が指定されなければ、利用可能なシンボル名の行き先を表示します。
パス名は /etc/mercurial/hgrc と $HOME/.hgrc の [paths] セクショ
ンで定義されます。もしリポジトリの内部で実行された場
合、.hg/hgrc も使用されます。
pull <repository path>::
リモートのリポジトリの変更をローカルのリポジトリに pull します。
これは指定されたパスや URL にあるリポジトリの全ての変更を見つ
けて、それらをローカルのリポジトリに追加します。デフォルトでは、
これは作業ディレクトリのプロジェクトのコピーを更新しません。
有効な URL の次の形式です:
local/filesystem/path
http://[user@]host[:port][/path]
https://[user@]host[:port][/path]
ssh://[user@]host[:port][/path]
SSH は行き先のマシンのシェルアカウントと、リモートのパスにhg
のコピーが必要になります。SSH を使用すると、パスはデフォルトで
はリモートのユーザのホームディレクトリの相対パスになります; ファ
イルシステムのルートからの相対パスであることを指定するには、パ
スの最初にスラッシュを 2つ使用してください。
オプション:
-u, --update pull の後に作業ディレクトリを tip に更新します
-e, --ssh 使用する ssh コマンドを指定します
--remotecmd リモート側で使われる hg コマンドを指定します
push <destination>::
ローカルのリポジトリの変更を指定された行き先に push します。
これは pull と対称的な操作です。これは現在のリポジトリの変更を
他のリポジトリへ移すのに役立ちます。もし行き先がローカルであれ
ば、これはそのディレクトリから現在のディレクトリに対して pull
するのと同じです。
デフォルトでは、push は実行した結果リモートのヘッドの数が増え
るならば、実行を拒否します。これはたいていクライアントが push
する前に sync とmerge を忘れていることを意味します。
有効な URL は次の形式です:
local/filesystem/path
ssh://[user@]host[:port][/path]
SSH は行き先のマシンのシェルアカウントと、リモートのパスに hg
のコピーが必要になります。
オプション:
-f, --force update を強行します
-e, --ssh 使用される ssh コマンドを指定します
--remotecmd リモート側で実行される hg コマンドを指定します
rawcommit [-p -d -u -F -m -l]::
低レベルのコミットで、ヘルパースクリプト中で使用されます。
このコマンドは通常のユーザに使われることは想定していません。こ
れは主に他の SCM からインポートするときに便利です。
recover::
中断された commit や pull から復帰します。
このコマンドは中断された操作からリポジトリの状態を修整しようと
試みます。これは Mercurial がそうするよう提案したときのみ必要
でしょう。
remove [options] [files ...]::
指定されたファイルをリポジトリから削除することを予定します。
このコマンドはファイルを次のコミット時に削除することを予定しま
す。このコマンドはファイルを現在の枝から取り除くだけで、プロジェ
クトの履歴全体からは削除しません。もしファイルが作業ディレクト
リ中にまだ存在していれば、それらは作業ディレクトリから削除され
ます。
別名: rm
rename <source ...> <dest>::
コピー先をコピー元のコピーのコピーであると印をつけます; コピー
元に削除の印をつけます。もしコピー先がディレクトリであれば、コ
ピーはそのディレクトリ中に置かれます。もしコピー先がファイルな
ら、コピー元は 1 つのみ指定可能です。
デフォルトでは、このコマンドはファイルがその作業ディレクトリに
あるものとしてその内容をコピーします。もし --after と一緒に呼
び出されれば、操作は記録されますが、コピーは実行されません。
このコマンドは次のコミット時に効果を持ちます。
注意: このコマンドは実験的です。リネームされたファイルを適切に
記録できますが、この情報はマージによってまだ完全には使われませ
んし、ログで完全に報告されることもありません。
オプション:
-A, --after 既に発生したリネームを記録します
-f, --force 既存の変更されたファイルに無理矢理コピーし
ます
-p, --parents コピー先にコピー元のパスを追加します
別名: mv
revert [names ...]::
指定されたファイルやディレクトリの未コミットの変更を取り消しま
す。これは関連したファイルの内容をコミットされてない状態に戻し
ます。
もしファイルが削除されていれば、再作成されます。もしファイルの
実行モードが変更されていれば、リセットされます。
ディレクトリが指定された場合、そのディレクトリ中のすべてのファ
イルとサブディレクトリが元に戻されます。
もし引数が指定されなければ、現在のディレクトリ中の全てのファイ
ルとサブディレクトリが元の戻されます。
オプション:
-r, --rev <rev> 元に戻す先のリビジョンを指定します
-n, --nonrecursive サブディレクトリを再帰的に辿らないように
します
root::
現在のリポジトリのルートディレクトリを表示します。
serve [options]::
ローカルの HTTP リポジトリと pull サーバを起動します。
デフォルトでは、サーバはアクセスログを標準出力に、エラーログを
標準エラー出力に出力します。ファイルにログを取るには "-A" と
"-E" オプションを使ってください。
オプション:
-A, --accesslog <file> アクセスログが出力されるファイルの名前
を指定します
-E, --errorlog <file> エラーログが出力されるファイルの名前を
指定します
-a, --address <addr> 使用するアドレスを指定します
-p, --port <n> 使用するポートを指定します
(デフォルト: 8000)
-n, --name <name> ウェブページで表示する名前を指定します
(デフォルト: working dir)
-t, --templatedir <path> 使用するウェブの雛型を指定します
-6, --ipv6 IPv4 に加えて IPv6 も使用します
status [options] [files]::
作業ディレクトリ中の変更されたファイルを表示します。名前が指定
されなければ、全てのファイルが表示されます。名前が指定されれば、
指定された名前にマッチしたファイルのみが表示されます。
ファイルの状態を表示するのに使われる記号:
M = 変更されました
A = 追加されました
R = 削除されました
? = バージョン管理下にありません
オプション:
-m, --modified 変更されたファイルのみを表示します
-a, --added 追加されたファイルのみを表示します
-r, --removed 削除されたファイルのみを表示します
-u, --unknown 不明な(バージョン管理下にない)ファイルのみ
を表示します
-n, --no-status 状態を示す接頭辞を隠します
-0, --print0 xargs と一緒に使うために、ファイル名を NUL
で終えます
-I, --include <pat> 与えられたパターンにマッチした名前を含めま
-X, --exclude <pat> 与えられたパターンにマッチした名前を除外し
ます
tag [-l -m <text> -d <datecode> -u <user>] <name> [revision]::
特定のリビジョンに <name> を使って名前を付けます。
タグはリポジトリの特定のリビジョンに名前を付けるために使われ、
そして異なるリビジョンを比較したり、重要な以前のバージョンに戻っ
たり、リリース等の分岐点に印をつけたりするのに便利です。
もしバージョンが指定されなければ、tip が使われます。
バージョン管理、配布、タグのマージを楽にするために、それらは
".hgtags" という名前のファイルに格納され、他のプロジェクトのファ
イルと同様に扱ったり、必要であれば手で編集できます。
オプション:
-l, --local タグをローカルにします
-m, --message <text> タグをコミットしたときのログのエントリの
メッセージを指定します
-d, --date <datecode> コミットの日付を指定します
-u, --user <user> コミットするユーザを指定します
注意: ローカルのタグはバージョン管理や配布されることはなく、ま
た. hg/localtags ファイルに格納されます。もし同じ名前のローカ
ルのタグと公開されたタグがあれば、ローカルのタグが使われます。
tags::
リポジトリのタグを列挙します。
これは通常のタグとローカルのタグを両方列挙します。
tip::
tip のリビジョンを表示します。
unbundle <file>::
(実験的)
bundle コマンドで生成された、圧縮済みチェンジグループファイル
を適用します。
undo::
最後の commit や pull の処理を取り消します。
リポジトリの最後の pull や commit 処理を巻戻し、プロジェクトを
それより前の状態に戻します。
このコマンドは注意して使ってください。まだ 1回の undo だけで、
redo はありません。
このコマンドは公開したリポジトリで使われることは想定していませ
ん。いったん他のユーザから pull で変更が見えるようになれば、ロー
カルでそれを取り消しても意味がありません。
update [-m -C] [revision]::
作業ディレクトリを指定されたリビジョンに更新します。
デフォルトでは、更新によりローカルの変更をマージしたり破棄した
りすることが必要となるとき、update はそれを拒否します。
-m オプションで、マージが実行されます。
-C オプションで、ローカルの変更が失われます。
オプション:
-m, --merge 枝のマージを許可します
-C, --clean ローカルで変更されたファイルを上書きします
別名: up checkout co
verify::
現在のリポジトリの整合性を検証します。
これはリポジトリの整合性を全面的にチェックし、チェンジログの各
エントリ、manifest, 管理下のファイルのハッシュとチェックサムを
検証し、またクロスリンクとインデクスの整合性も検証します。
ファイル名とパターン
---------
Mercurial では同時に複数のファイルを識別するのに複数の記法が使
えます。
デフォルトでは、Mercurial はファイル名をシェルのスタイルの拡張
glob パターンとして扱います。
別のパターン表記は明示的に指定する必要があります。
パターンマッチングなしの単純なパス名を使うには、パス名を
"path:" で始めてください。これらのパス名は、現在のリポジトリの
ルートから完全にマッチしている必要があります。
拡張 glob を使うには、名前を "glob:" で始めてください。glob は
現在のディレクトリのみに適用されます: "*.c" といった glob は現
在のディレクトリ中の ".c" で終わるファイルのみにマッチします。
サポートされている glob 文法の拡張はパスの分離記号を越えて全て
の文字列にマッチする "**" と、"a または b" を意味する "{a,b}"
です。
Perl/Python の正規表現を使うには、名前を "re:" で始めてくださ
い。正規表現によるマッチはリポジトリのルートの固定されています。
単純な例:
path:foo/bar リポジトリのルートにある foo というディレクトリ
の bar という名前
path:path:name "path:name" という名前のファイルまたはディレク
トリ
Glob の例:
glob:*.c 現在のディレクトリ中の ".c" で終わる全ての名前
*.c 現在のディレクトリ中の ".c" で終わる全ての名前
**.c 現在のディレクトリと全てのサブディレクトリ中の
".c" で終わる全ての名前
foo/*.c ディレクトリ foo 中の ".c" で終わる全ての名前
foo/**.c ディレクトリ foo とその全てのサブディレクトリ中
の ".c" で終わる全ての名前
正規表現の例:
re:.*\.c$ リポジトリ全体の中の ".c" で終わる全ての名前
単一のリビジョンの指定法
-----------
Mercurial では個々のリビジョンを識別するのに複数の記法が使えま
す。
単純な整数はリビジョンナンバーとして扱われます。負の整数はtip
からのオフセットとして扱われ、-1 が tip を表します。
40 桁の 16 進数の文字列はユニークなリビジョン識別子として扱わ
れます。
40 桁より少ない 16 進数の文字列はユニークなリビジョン識別子と
して扱われ、短い形式の識別子と呼ばれます。短い形式の識別子はそ
れが完全な長さの識別子の接頭語であるときだけ有効です。
他の文字列は全てタグ名として扱われます。タグはあるリビジョン識
別子に関連付けられたシンボル名です。タグ名は ":" 文字を含んで
はいけません。
リビジョン名 "tip" は特別なタグで、常に一番最新のリビジョンを
指します。
複数のリビジョンの指定法
-----------
Mercurial が 1つより多くのリビジョンを受けいれるとき、それらは
別々に指定されるか、連続した範囲として ":" 文字で区切って与え
られるかもれません。
範囲表記の構文は [BEGIN]:[END] で BEGIN と END はリビジョンの
識別子です。BEGIN も END も両方とも任意です。もし BEGIN が指定
されなければ、デフォルトでリビジョンナンバー 0 になります。も
し END が指定されなければ、デフォルトで tip になります。従って
範囲 ":" は "全てのリビジョン" を意味します。
もし BEGIN が END より大きければ、リビジョンは逆の順序として扱
われます。
範囲は閉区間として動作します。これは範囲が 3:5 は 3,4,5 になる
ことを意味します。同様に、範囲 4:2 は 4,3,2 になります。
環境変数
----
HGEDITOR::
これはコミッチ時に使われるエディタの名前です。デフォルトでは
EDITOR の値が使われます。
(廃止予定です, .hgrc を使ってください)
HGMERGE::
merge 時の衝突を解決するのに使われる実行ファイルです。プログラ
ムは3 つの引数で実行されます: ローカルのファイル、リモートのファ
イル、1 世代前のファイルです。
デフォルトのプログラムは "hgmerge" で、これは Mercurial によっ
て提供される常識的な設定のシェルスクリプトです。
(廃止予定です, .hgrc を使ってください)
HGUSER::
これはコミット時の著者として使われる文字列です。
(廃止予定です, .hgrc を使ってください)
EMAIL::
もし HGUSER が設定されていなければ、これがコミット時の著者とし
て使われます。
LOGNAME::
もし HGUSER も EMAIL も設定されていなければ、コミット時の著者
としてLOGNAME が('@hostname' を付けた形で)使われます。
EDITOR::
これは hgmerge スクリプト中で使われるエディタの名前です。もし
HGEDITOR が設定されていなければ、コミット時のメッセージに使わ
れます。デフォルトは 'vi' です。
PYTHONPATH::
これはインポートされるモジュールを見つけるために Python によっ
て使われ、Mercurial がシステム全体にインストールされていなけれ
ば、適切に設定される必要があるでしょう。
ファイル
----
.hgignore::
このファイルは(1行ごとに) hg によって無視されるべきファイルを
記述した正規表現を含みます。
.hgtags::
このファイルはリポジトリの内容のタグ付けされたバージョンに一致
したハッシュ値とテキストのタグ名(それぞれは空白で区切られます)を
含みます。
/etc/mercurial/hgrc, $HOME/.hgrc, .hg/hgrc::
このファイルはデフォルトの設定を含みます。.hg/hgrc の値は
$HOME/.hgrc の設定を上書きし、$HOME/.hgrc の設定はグローバルな
/etc/mercurial/hgrc の設定を上書きします。これらのファイルの内
容と書式の詳細については hgrc(5) を参照してください。
バグ
--
沢山あるでしょうから、もしバグを見つけたらそれをメーリングリスト
(下の情報源を参照)に送ってください。
関連項目
----
hgrc(5)
著者
--
Matt Mackall <mpm@selenic.com> により書かれました。
情報源
---
http://mercurial.selenic.com/[主なウェブサイト]
http://www.serpentine.com/mercurial[Wiki サイト]
http://selenic.com/hg[ソースコードのリポジトリ]
http://selenic.com/mailman/listinfo/mercurial[メーリングリスト]
著作権情報
-----
Copyright (C) 2005-2007 Matt Mackall.
このソフトウェアの自由な使用は GNU 一般公有使用許諾 (GPL) のもとで
認められます。