Mercurial > hg > mercurial-crew-with-dirclash
view doc/ja/hgrc.5.ja.txt @ 5192:33015dac5df5
convert: fix mercurial_sink.putcommit
Changeset 4ebc8693ce72 added some code to putcommit to avoid creating a
revision that touches no files, but this can break regular conversions
from some repositories:
- conceptually, since we're converting a repo, we should try to make
the new hg repo as similar as possible to the original repo - we
should create a new changeset, even if the original revision didn't
touch any files (maybe the commit message had some important bit);
- even if a "regular" revision that doesn't touch any file may seem
weird (and maybe even broken), it's completely legitimate for a merge
revision to not touch any file, and, if we just skip it, the
converted repo will end up with wrong history and possibly an extra
head.
As an example, say the crew and main hg repos are sync'ed. Somebody
sends an important patch to the mailing list. Matt quickly applies
and pushes it. But at the same time somebody also applies it to crew
and pushes it. Suppose the commit message ended up being a bit
different (say, there was a typo and somebody didn't fix it) or that
the date ended up being different (because of different patch-applying
scripts): the changeset hashes will be different, but the manifests
will be the same.
Since both changesets were pushed to public repos, it's hard to recall
them. If both are merged, the manifest from the resulting merge
revision will have the exact same contents as its parents - i.e. the
merge revision really doesn't touch any file at all.
To keep the file filtering stuff "working", the generic code was changed
to skip empty revisions if we're filtering the repo, fixing a bug in the
process (we want parents[0] instead of tip).
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Fri, 17 Aug 2007 20:18:05 -0300 |
parents | ea7b982b6c08 |
children |
line wrap: on
line source
HGRC(5) ======= Bryan O'Sullivan <bos@serpentine.com> 名前 -- hgrc - Mercurial の設定ファイル 書式 -- Mercurial システムはその振舞いの正常を制御するのに、一連の設定ファ イルを使用します。 ファイル ---- Mercurial は 3つのファイルから設定を読みます: /etc/mercurial/hgrc:: このグローバルの設定ファイルのオプションは実行したユーザ、ディ レクトリを問わず全ての Mercurial コマンドに適用されます。 $HOME/.hgrc:: ユーザ毎の設定オプションで、ディレクトリを問わず全ての Mercurial コマンドに適用されます。このファイルの値はグローバル の設定を上書きします。 <repo>/.hg/hgrc:: リポジトリ毎の設定オプションで、そのリポジトリのみに適用されま す。このファイルはバージョン管理されず、 "clone" 操作で転送さ れることもありません。このファイルの値はグローバルの設定とユー ザ毎の設定を上書きします。 構文 -- 設定ファイルは "[セクション]" ヘッダから始まるセクションと、それに 続く"名前: 値"のエントリから成ります: "名前=値"も認められます。 [spam] eggs=ham green= eggs 各行は1つのエントリを含みます。もし次の行がインデントされていた場 合、それは前の行の続きとして扱われます。 先行する空白は値から取り除かれます。空行は読み飛ばされます。 オプションの値は同じセクションや、特別な DEFAULT セクションの別の 値を参照するフォーマット文字列を含むことができます。 "#" や ";" で始まる行は無視されるので、コメントとして使うことがで きます。 セクション ----- このセクションは Merucurial の "hgrc" に使うことができる異なったセ クションのそれぞれの目的や可能なキー、そして取り得る値について記述 します。 decode/encode:: checkout/checkin でファイルを転送するときのフィルターです。これ は典型的には改行を処理したり、他の地域化/標準化に使われるでしょ う。 フィルターはフィルターパターンとそれに続くフィルターコマンドから なります。コマンドは標準入力からのデータを受け付け、変換したデー タを標準出力に返す必要があります。 例: [encode] # delta 圧縮を改善するためにチェックイン時に gzip ファイルを # 伸長します # 注意: 必ずしも良いアイディアではありません。ただの例です *.gz = gunzip [decode] # 作業ディレクトリに書き出すときにファイルを gzip で再圧縮します *.gz = gzip hooks:: コミットの開始、終了時など様々なアクションで自動的に実行されるコ マンドです。 changegroup;; push や pull でチェンジグループが加えられたあとに起動します。 commit;; チェンジセットが作成された後に起動します。新しく作成されたチェ ンジセットの ID が渡されます。 precommit;; コミット前に起動します。終了ステータス 0 によりコミットを続行 します。非ゼロのステータスでコミットは失敗します。 http_proxy:: HTTP プロキシを通してウェブを使った Mercurial のリポジトリにアク セスするのに使われます。 host;; プロキシサーバのホスト名と(オプションの)ポートで、例えば "myproxy:8000"などです。 no;; オプションです。コンマで区切られたプロキシを通過すべきホスト名 のリストです。 passwd;; オプションです。プロキシサーバの認証用のパスワードです。 user;; オプションです。プロキシサーバの認証用のユーザ名です。 paths:: リポジトリにシンボル名を割当てます。左側がシンボル名で、右側がリ ポジトリの場所を示すディレクトリや URL です。 ui:: ユーザインターフェースの設定です。 debug;; デバッグ情報を表示します。True か False を取ります。デフォルト では False です。 editor;; コミット中に使用するエディタです。デフォルトは $EDITOR か "vi" です。 interactive;; ユーザに対してプロンプトを出すようにします。True か False を取 ります。デフォルトでは True です。 merge;; 手動での merge 中に衝突を解決するために使われるプログラムです。 デフォルトは "hgmerge" です。 quiet;; 表示される出力の量を減らします。True か False を取ります。デフォ ルトは False です。 remotecmd;; clone/push/pull 操作で使われるリモートのコマンドです。デフォル トは 'hg' です。 ssh;; SSH 接続で使われるコマンドです。デフォルトは 'ssh' です。 username;; コミットを実行したときに作成されるチェンジセットのコミッタです。 一般的には人名と電子メールアドレスで、例えば "Fred Widget <fred@example.com>" などです。デフォルトは $EMAIL か username@hostname です。 verbose;; 表示される出力の量を増やします。True か False を取ります。デフォ ルトは False です。 web:: ウェブインターフェイスの設定です。 accesslog;; アクセスログの出力先です。デフォルトでは標準出力です。 address;; バインドするインターフェイスアドレスです。デフォルトでは全てで す。 allowbz2;; リポジトリのリビジョンから .tar.bz2 をダウンロードさせるかどう かです。デフォルトでは false です。 allowgz;; リポジトリのリビジョンから .tar.gz をダウンロードさせるかどう かです。デフォルトでは false です。 allowpull;; リポジトリから pull させるかどうかです。デフォルトでは true で す。 allowzip;; リポジトリのリビジョンから .zip をダウンロードさせるかどうかで す。デフォルトでは false です。この機能は一時ファイルを作成し ます。 description;; リポジトリの目的や内容についてのテキストによる説明です。デフォ ルトでは"unknown" です。 errorlog;; エラーログの出力先です。デフォルトでは標準エラー出力です。 ipv6;; IPv6 を使うかどうかです。デフォルトでは false です。 name;; ウェブインターフェイスを使うときのリポジトリの名前です。デフォ ルトは現在の作業ディレクトリです。 maxchanges;; チェンジログに記載する変更の最大数です。デフォルトでは 10 です。 maxfiles;; チェンジセットに記載するファイルの最大数です。デフォルトでは 10 です。 port;; リスンするポートです。デフォルト は 8000 です。 style;; 使用するテンプレートマップのスタイルです。 templates;; HTML テンプレートの在処です。デフォルトではインストールしたと きのパスです。 著者 -- Bryan O'Sullivan <bos@serpentine.com>. Mercurial は Matt Mackall <mpm@selenic.com> により書かれました。 関連項目 ---- hg(1) COPYING ------- このマニュアルの著作権は 2005 Bryan O'Sullivan です。 Mercurial の著作権は 2005 Matt Mackall です。 このソフトウェアの自由な使用は GNU 一般公有使用許諾 (GPL) のもとで 認められます。