2011-01-11 15 views
13

実際にテキストファイルを編集せずに.hgrc設定項目を設定する方法をお探しです。私は複数の開発者間でhgrcの設定を標準化しようとしていると私はMercurial設定オプションをプログラム的に設定できますか?

hg --config ui.username=foo 

hgrcファイルにその設定の変更を保存しのようなコマンドをしたいと思います。

これはvanilla hgコマンドで直接サポートする必要がありますが、どこにも見つかりません。

答えて

9

誰か - あなたやMercurialのどちらか - あなたは設定変更が

:-)保存する場合は、設定ファイルを編集する必要がありますそして、あなたは

hg --config ui.username=foo 

でのMercurialを呼び出すことができる場合そして、あなたはまた、~/.hgrcファイルが(マルチを持ってしても大丈夫であるように見えるが起こるかは重要ではありませ、設定の変更を保存します

echo '[ui]' >> ~/.hgrc 
echo 'username = foo' >> ~/.hgrc 

を行うことができるはずple [ui]セクション)。

Mercurial 3.0以降には、ユーザー設定ファイルでエディタを開くthe hg config --edit commandがあります。まだあなたが求めているものではありませんが、少なくともこれにより対話的にファイルを編集するのが簡単になります。これで助け拡張があり

+3

hgが実行されているプロセスに '〜'またはHOMEディレクトリがないか、 '〜'ディレクトリを持つシステム/デーモンユーザとして実行されている場合、書き込みできません::〜( – Garen

+1

@Garen: –

+2

一般的なCIシステム(TeamCityなど)では、これを行う方法が提供されていません。また、ドキュメントも一般的に間違っています。つまり、HGRCPATHを設定することで、Mercurialが設定ファイルを探す場所を変更することができます。たとえば、hgはC:\ Mercurialのような文書化されたシステム全体の場所をチェックしていないので、宣伝されたレジストリの場所を読み取ることができませんでした。環境設定に影響を与える能力が限られていたり、ホームディレクターがいないなど、私は何度もやり直すことができるでしょう。それは、周囲を乗り越えるのが簡単かもしれないという点です。IFF Mercurialは、パスをコマンドラインで入力します。 :) – Garen

2

この形式:

hg --config ui.username=foo 

は何も保存されません。 1回だけ実行するための値を設定します。

また、システム全体の設定には/etc/mercurial/hgrcを使用できます。

1

https://bitbucket.org/alu/hgconfig/wiki/Home

installing that hgextした後、あなたはこのようなことを行うことができます。

% hg showconfig paths 
paths.default=ssh://[email protected]/alu/hgconfig 
% hg config paths.upstream $(hg showconfig paths.default) 
% hg config paths.default $(hg showconfig paths.default | sed 's|/alu/|/nassrat/|') 
% hg showconfig paths 
paths.default=ssh://[email protected]/nassrat/hgconfig 
paths.upstream=ssh://[email protected]/alu/hgconfig 

唯一の落とし穴は、これは組み込みconfigコマンドを上書きし、コマンド名を変更するコードを微調整する、またはそれと一緒に暮らすことができますいずれかです。幸いにも、あなたのユースケースが特定の設定を設定して取得するだけであるかどうかは関係ありません。

関連する問題