Source

cointoss1973.bitbucket.org / thg / html / extensions.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>8. 拡張機能 &mdash; TortoiseHg 1.0.0 documentation</title>
    
    <link rel="stylesheet" href="_static/default.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '',
        VERSION:     '1.0.0',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <script type="text/javascript" src="_static/translations.js"></script>
    <link rel="top" title="TortoiseHg 1.0.0 documentation" href="index.html" />
    <link rel="next" title="9. 他のバージョン管理システムとの相互運用" href="nonhg.html" />
    <link rel="prev" title="7. パッチ" href="patches.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>ナビゲーション</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="総合索引"
             accesskey="I">索引</a></li>
        <li class="right" >
          <a href="py-modindex.html" title="Pythonモジュール索引"
             >モジュール</a> |</li>
        <li class="right" >
          <a href="nonhg.html" title="9. 他のバージョン管理システムとの相互運用"
             accesskey="N">次へ</a> |</li>
        <li class="right" >
          <a href="patches.html" title="7. パッチ"
             accesskey="P">前へ</a> |</li>
        <li><a href="index.html">TortoiseHg 1.0.0 documentation</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="module-extensions">
<span id="id1"></span><h1>8. 拡張機能<a class="headerlink" href="#module-extensions" title="このヘッドラインへのパーマリンク"></a></h1>
<p>この章では Windows 向けの TortoiseHg バイナリパッケージに標準添付されている
Mercurial の拡張機能について述べます。これらの拡張機能は TortoiseHg
をより便利に使ってもらうためで、必要になったらすぐに簡単に有効にできます。</p>
<div class="section" id="hgfold">
<h2>8.1. Hgfold<a class="headerlink" href="#hgfold" title="このヘッドラインへのパーマリンク"></a></h2>
<p><a class="reference external" href="http://mercurial.selenic.com/wiki/CaseFoldExtension">hgfold</a>
は VFAT および NTFS 上におけるファイル名の大文字小文字の違いによる名前衝突を回避したい
Windows ユーザ向けの Mercurial 拡張機能です。</p>
<p>この拡張機能は以下の Mercurial コマンドにオプションを追加します。詳しいヘルプは
<strong class="command">hg help &lt;command&gt;</strong> で見ることができます:</p>
<div class="highlight-python"><pre>up    - ファイル名の衝突を解決して特定のリビジョンへ更新
merge - ファイル名の衝突を解決してマージ</pre>
</div>
<p><strong>インストール</strong></p>
<p>この拡張機能をテストするためにコマンドラインから次のように実行します:</p>
<div class="highlight-python"><pre>hg --config "extensions.fold=" status</pre>
</div>
<p>今後も継続して使用したい場合は Mercurial.ini またはリポジトリの hgrc に次のように記述してください:</p>
<div class="highlight-python"><pre>[extensions]
fold=</pre>
</div>
<p>この設定をすればコマンドラインで &#8211;config 引数を指定する必要はありません。</p>
<p><strong>注意</strong></p>
<p>通常のマージコマンドと同様、 fold.py は作業ツリーの親を変更する必要があります。
まだ実験的な拡張機能ですので十分注意して使用してください。</p>
<p><strong class="command">hg recover</strong> を実行後に何かエラーが発生した場合は
<strong class="command">hg debugsetparents &lt;number of tip revision&gt;</strong>
を試してみてください。tip リビジョンの番号は <strong class="command">hg log -l 2</strong>
で調べることができます。</p>
</div>
<div class="section" id="hgcr-gui">
<h2>8.2. Hgcr-gui<a class="headerlink" href="#hgcr-gui" title="このヘッドラインへのパーマリンク"></a></h2>
<p><a class="reference external" href="http://bitbucket.org/glimchb/hgcr-gui/wiki/Home">コードレビュー</a> 管理ツール</p>
<ul class="simple">
<li>この拡張機能はプロジェクトのコードレビューを管理します。</li>
<li>レビュー管理を Mercurial 内で完結させます。</li>
<li>One can add files to the review, remove them and notify reviewr that files are ready for review.</li>
<li>レビューアはコードに &#8220;完了&#8221; とマークして、開発者にメッセージを返します。</li>
<li>プロジェクトマネージャはレビュー状況を確認できます - どのファイルがレビュー済みでどれがまだなのか。</li>
<li>hgcr は自動的に最後にレビューした時点から変更されたファイルを見つけ出して通知します。</li>
<li>この拡張機能は TortoiseHg の GUI を利用しますが、コマンドラインから使うことができます。</li>
<li>コードレビューのデータベースはリポジトリのルートディレトリに .code-review という名前のファイルとして保存されます。</li>
</ul>
<p><strong>使い方</strong>:</p>
<div class="highlight-python"><pre>hg cr [OPTIONS] [FILES]

Code Review Plugin (requires Mercurial 1.3.x and TortoiseHg 0.9)

options:

 -c --complete  Mark CR as complete
 -a --add       Add files to CR list
 -r --remove    Remove files from CR list
 -l --list      Print files in CR list

use "hg -v help cr" to show global options</pre>
</div>
<div class="admonition note">
<p class="first admonition-title">ノート</p>
<p class="last">オプションなしで実行すると GUI が起動します。</p>
</div>
<p><strong>詳細説明</strong></p>
<ul class="simple">
<li>I&#8217;ve implemented the review around files and not changesets, because at the end,
I want to be able to tell for the specific project if all the files went through
code review process or not - the project status.</li>
<li>おそらくあなたは多くの開発者と管理しなければならない複数のプロジェクトを持っていて、
開発者のコードをレビューするグループがあります。</li>
<li>開発者のように変更点を追い続けるのは非常に難しいことですが、どのファイルが
(レビューアによって) レビュー済みでどれがまだなのかを知るのは簡単です。</li>
<li>この拡張機能を使えば開発者は作業が終わった段階でレビューが必要なファイルにマークを付けて、
レビューアに知らせることができます。</li>
<li>コードレビューのデータベースにチェンジセットが保管されているので、
レビューアはチェンジセットをひろってきてコードレビューを始めます
(開発者のコードに注釈を付けられる)。</li>
<li>そしてコードレビューが終わり次第レビューアは &#8220;レビュー完了&#8221;
のマークを付けて開発者に知らせます。</li>
<li>プロジェクトマネージャはいつでもプロジェクトがどうなっているのか確認できます。</li>
</ul>
<p><strong>インストール</strong></p>
<p>Mercurial.ini またはリポジトリの hgrc に次のように記述してください:</p>
<div class="highlight-python"><pre>[extensions]
hgcr-gui=</pre>
</div>
</div>
<div class="section" id="perfarce">
<h2>8.3. Perfarce<a class="headerlink" href="#perfarce" title="このヘッドラインへのパーマリンク"></a></h2>
<p><a class="reference external" href="http://www.kingswood-consulting.co.uk/hg/perfarce/">ウェブサイト</a></p>
<p>この拡張機能については <a class="reference external" href="nonhg.html#perfarce">こちら</a> で解説しています。</p>
</div>
<div class="section" id="hgeol">
<h2>8.4. HGEOL<a class="headerlink" href="#hgeol" title="このヘッドラインへのパーマリンク"></a></h2>
<p>hgeol は将来 win32text 拡張機能に取って代わる拡張機能で、
より完全で確実な方法で改行文字問題の解決を試みます。
まだ未確定な部分も多く、頻繁に内容が書き変わることが予想されるため、
ここに詳細な説明を書くかわりにリンクを張っておきます。</p>
<ul class="simple">
<li><a class="reference external" href="http://mercurial.selenic.com/wiki/EOLTranslationPlan">EOLTranslationPlan</a></li>
<li><a class="reference external" href="http://bitbucket.org/mg/hg-eol/">ソースコード</a></li>
</ul>
</div>
<div class="section" id="mercurial-keyring">
<h2>8.5. Mercurial-Keyring<a class="headerlink" href="#mercurial-keyring" title="このヘッドラインへのパーマリンク"></a></h2>
<ul class="simple">
<li><a class="reference external" href="http://pypi.python.org/pypi/mercurial_keyring">Mercurial Keyring</a> ウェブサイト</li>
<li><a class="reference external" href="http://mercurial.selenic.com/wiki/KeyringExtension">Keyring 拡張機能</a> Wiki</li>
</ul>
<p>keyring 拡張機能は安全に認証パスワード (HTTP/HTTPS and SMTP) をシステム固有の
パスワードデータベース (Gnome Keyring, KDE KWallet, OSXKeyChain, Win32,
コマンドライン) に保存するために keyring ライブラリのサービスを使います。</p>
<p><strong>何をするのか</strong></p>
<p>この拡張機能は初回のリモートリポジトリとのプル/プッシュ操作時に
HTTP パスワードの入力を促し、それをパスワードデータベースに保存します
(ユーザ名とリポジトリ URL の組み合せのキーで)。
それ以後は .hg/hgrc のユーザ名を確認して適切なパスワードを
パスワードデータベースから取り出して使用します。</p>
<p>同様に認証を必要とする SMTP 経由のメール送信についても初回のみ入力を要求し、
次回からはパスワードデータベースのパスワードを再利用します。</p>
<p>パスワード認証に失敗した場合は再び入力を求めます。</p>
<p><strong>インストール</strong></p>
<p>まずは拡張機能を Mercurial.ini ファイルで有効にしてください:</p>
<div class="highlight-python"><pre>[extensions]
mercurial_keyring=</pre>
</div>
<p><strong>バックエンドの設定</strong></p>
<p>使用しているシステムに最適なバックエンドは自動的に選択されますが、
必要に応じて ~/keyringrc.cfg ファイル (ユーザのホームディレクトリの
keyringrc.cfg ファイル) を設定することで指定可能です。
設定に関する詳細は <a class="reference external" href="http://pypi.python.org/pypi/keyring">keyring ドキュメント</a>
を参照してください。</p>
<div class="admonition note">
<p class="first admonition-title">ノート</p>
<p class="last">Windows XP 以降の Windows では、暗号化されたパスワードは
<a class="reference external" href="http://msdn.microsoft.com/en-us/library/aa374804%28VS.85%29.aspx">CredRead</a><a class="reference external" href="http://msdn.microsoft.com/en-us/library/aa375187%28VS.85%29.aspx">CredWrite</a>
を用いて、Credentials Subsystem に保管されます。</p>
</div>
<div class="admonition note">
<p class="first admonition-title">ノート</p>
<p class="last">Windows 2000 では、暗号化されたパスワードはシステムレジストリ
HKCU\Software\Mercurial\Keyring
以下に保管されます。</p>
</div>
<p><strong>リポジトリの設定 (HTTP)</strong></p>
<p>リポジトリローカルの .hg/hgrc ファイルにリモートリポジトリの URL とユーザ名を記述して保存します。
パスワードは keyring から提供されるためここでは記述しないでください:</p>
<div class="highlight-python"><pre>[paths]
myremote = https://my.server.com/hgrepo/someproject

[auth]
myremote.schemes = http https
myremote.prefix = my.server.com/hgrepo
myremote.username = mekk</pre>
</div>
<p>次のようにリポジトリ URL にユーザ名を含める形式を使用すれば、より簡潔に記述できます:</p>
<div class="highlight-python"><pre>[paths]
bitbucket = https://User@bitbucket.org/User/project_name/</pre>
</div>
<div class="admonition note">
<p class="first admonition-title">ノート</p>
<p class="last">.hg/hgrc ファイル内にユーザ名とパスワードの両方を記述した場合、
keyring 拡張機能はパスワードデータベースを使用せず、
記述してあるパスワードを使用します。
また、ユーザ名が記述されていない場合は認証が必要になるたびに
ユーザ名とパスワードの入力を要求しますが、
それらはパスワードデータベースに保管されません。
つまりこれら両方の状況は keyring 拡張機能を使用していない、
Mercurial 標準の動作になるということです。</p>
</div>
<p>Mercurial の認証に関するより詳しい説明はマニュアルの
<a class="reference external" href="http://www.selenic.com/mercurial/hgrc.5.html#auth">[auth]</a>
セクションにあります。</p>
<p><strong>リポジトリの設定 (SMTP)</strong></p>
<p>リポジトリローカルの .hg/hgrc ファイル、またはホームディレクトリの hgrc
ファイル (メール送信の認証情報はリポジトリ共通で使えるので通常は後者)
に SMTP パスワード以外の SMTP メール設定を記述してください。例えば:</p>
<div class="highlight-python"><pre>[email]
method = smtp
from = Joe Doe &lt;Joe.Doe@remote.com&gt;

[smtp]
host = smtp.gmail.com
port = 587
username = JoeDoe@gmail.com
tls = true</pre>
</div>
<p>前述の HTTP の設定と同様に、ユーザ名だけを設定してパスワードは設定しません。
パスワードを記述した場合の動作は Mercurial 標準の振る舞いになります。</p>
<p><strong>使い方</strong></p>
<p>上記設定を終えたら、あとは普通にプルやプッシュ (またはメール送信)
をするだけです。(ユーザ名とリポジトリ URL の組み合せで)
初回のみパスワードを要求されます。</p>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="index.html">
              <img class="logo" src="_static/thg_logo_92x50.png" alt="Logo"/>
            </a></p>
  <h3><a href="index.html">目次</a></h3>
  <ul>
<li><a class="reference internal" href="#">8. 拡張機能</a><ul>
<li><a class="reference internal" href="#hgfold">8.1. Hgfold</a></li>
<li><a class="reference internal" href="#hgcr-gui">8.2. Hgcr-gui</a></li>
<li><a class="reference internal" href="#perfarce">8.3. Perfarce</a></li>
<li><a class="reference internal" href="#hgeol">8.4. HGEOL</a></li>
<li><a class="reference internal" href="#mercurial-keyring">8.5. Mercurial-Keyring</a></li>
</ul>
</li>
</ul>

  <h4>前のトピックへ</h4>
  <p class="topless"><a href="patches.html"
                        title="前の章へ">7. パッチ</a></p>
  <h4>次のトピックへ</h4>
  <p class="topless"><a href="nonhg.html"
                        title="次の章へ">9. 他のバージョン管理システムとの相互運用</a></p>
  <h3>このページ</h3>
  <ul class="this-page-menu">
    <li><a href="_sources/extensions.txt"
           rel="nofollow">ソースコードを表示</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>クイック検索</h3>
    <form class="search" action="search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="検索" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    モジュール、クラス、または関数名を入力してください
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>ナビゲーション</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="総合索引"
             >索引</a></li>
        <li class="right" >
          <a href="py-modindex.html" title="Pythonモジュール索引"
             >モジュール</a> |</li>
        <li class="right" >
          <a href="nonhg.html" title="9. 他のバージョン管理システムとの相互運用"
             >次へ</a> |</li>
        <li class="right" >
          <a href="patches.html" title="7. パッチ"
             >前へ</a> |</li>
        <li><a href="index.html">TortoiseHg 1.0.0 documentation</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
        &copy; Copyright 2010, Steve Borho、他.
      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3 で生成しました。
    </div>
  </body>
</html>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.