15

私たちは仕事で Mercurial を試運転しています。リポジトリと対話するたびにユーザー/パスを入力する必要がないように、mercurial_keyring 拡張機能をセットアップします。私達:

  • インストール済みの Python 2.6.5 (システムに応じて 32 ビットまたは 64 ビット)
  • インストールされた setuptools (easy_install.exe 用)
  • easy_install キーリング
  • easy_install mercurial_keyring

次に、セクションの %userprofile%/mercurial.ini に適切な変更を加えました[auth]。同僚のコンピューター (32 ビット xp sp3) では正常に動作しますが、私のマシン (Windows 7 Ultimate x64) では動作しません。また、setuptools は Win 7 x64 のソースからビルドする必要がありました (python setup.py bdist_wininstその後、setuptools-0.6c11.win-amd64.exe を実行します)。

Mercurial 1.5 バイナリ インストール (.msi) の hg.exe だけを使用して、hg.exe を実行すると次のエラーが発生します。

*** 拡張機能 mercurial_keyring のインポートに失敗しました: mercurial_keyring という名前のモジュールがありません

mercurial に検索させるのではなく、mercurial_keyring.py ファイルへのパスを指定するように mercurial.ini を変更しようとしました (PYTHONPATH にあるため)。

年:

[extensions]
mercurial_keyring =

新しい:

[extensions] mercurial_keyring =
c:/mercurial/extensions/mercurial_keyring.py

エラーは次のように変わります。

中止: モジュールのキーリングをインポートできませんでした!

そのため、mercurial_keyring 拡張機能へのパスを提供しても、依存するキーリング モジュールはまだ見つかりません。

さらに調査した結果、機能する拡張機能はないようです。それらはすべてエラーを生成します:

*** 拡張機能 [拡張機能名] のインポートに失敗しました: [モジュール名] という名前のモジュールがありません

hg.exe を実行すると、PYTHONPATH が認識されないようです。私が試してみました:

  • Python 2.6.5 32 ビット
  • Python 2.6.5 64 ビット
  • MinGW を使用してソースから Mercurial 1.5 をビルドする
  • MSVC9 を使用してソースから Mercurial 1.5 をビルドする
  • 1.5 バイナリ ディストリビューション (.msi) からの hg.exe の使用
  • ソースからビルドするときに c:\python26\scripts の hg.py を使用する
  • %userprofile%/mercurial.ini のさまざまな設定
  • setuptools (easy_install.exe) を使用してキーリングと mercurial_keyring をインストールする
  • ソースからのキーリングと mercurial_keyring の構築 (python setup.py bdist_wininst)

何も機能しません。私が持っている最も近いものは、ソースからビルドするときに hg.py を使用することです。少なくともエラーは発生せず、資格情報を入力すると実際に %userprofile%/wincrypto_pass.cfg が作成されます。ただし、後続の要求では、資格情報が自動的に入力されません。それは私にそれらを再び促します。

興味深いことに、TortoiseHGキーリングを使用しています。コマンドラインで動作させることができません。mercurial (hg.exe) が PYTHONPATH を認識できないために Win 7 x64 で何かが起こっているため、インストールされているモジュールを見つけることができません。

Win 7 x64 で機能する拡張機能を持っている人はいますか? 具体的には、mercurial (hg.py ではない) のバイナリ インストールでは?

更新 私は今のところ適切な回避策を見つけました。TortoiseHGmercurial_keyring で動作するので、単に tortoiseHG フォルダーを含むように PATH 設定を変更しましたが、c:\mercurial は含みません。コマンド ラインで「hg」と入力すると、tortoiseHG フォルダー内の hg.exe が使用され、正常に動作します。同じように、これは Win 7 x64 での mercurial 拡張の問題です。回答歓迎。

4

3 に答える 3

18

まだ他の受験者がいないので、前回の更新で自分の質問に答えます。

適切な回避策: TortoiseHGmercurial_keyring で動作するため、単に PATH を変更して tortoiseHG フォルダーを含め、 c:\mercurialを除外しました。コマンド ラインで「hg」と入力すると、tortoiseHG フォルダー内の hg.exe が使用されます。これは、キーリングで正常に動作します。

于 2010-04-02T19:35:09.880 に答える
4

拡張ページには、TortoiseHGにはWindowsで動作させるための追加のコンポーネントがいくつかあり、それらがないと正しく動作しないと記載されています。TortoiseHGバージョンを参照する回避策は、Windowsで動作させるための最も簡単な方法のようです。

于 2011-12-19T16:25:52.007 に答える
4

私が使用しているもの:

  • Windows Server 2008 SP2 x86の場合:
    • Python 2.6.5 x86
    • Mercurial 1.5.1 x86
    • TortoiseHg 1.0.1 x86
  • Windows Server 2008 R2の場合:
    • Python 2.6.5 x86
    • Mercurial 1.5.1 x86
    • TortoiseHg 1.0.1 x64

どちらの設定でも、設定されているすべての拡張機能がエラーなしで読み込まれます。

すべてのツールは、サイトで提供されているインストーラーを使用してインストールされます。MercurialはPATHのTortoiseHgの前に表示されます。~/.hgrc両方のツールに共通の構成ファイルと、拡張機能Mercurial.iniのみをロードしているTortoiseHgインストールフォルダー内のファイルを使用しています。mercurial_keyring

コマンドラインでは、必要になるたびにパスワードを入力する必要がありますが、TortoiseHgではキーリング拡張機能が完全に機能しています。

MercurialwikiのKeyringExtensionページから:

Windowsを使用している場合は、TortoiseHgを使用することをお勧めします。THGにはWindows固有のキーリングバックエンドが付属しています。これがないと、Mercurial-Keyring拡張機能はWindowsで正しく機能しません。

更新 http://asimilatorul.com/adapter/post/using-mercurial_keyring-extension-with-mercurial-on-windows/

TortoiseHgのlibrary.zipからMercurialのlibrary.zipに必要なファイルをコピーできます。

  • hgext \ mercurial_keyring.pyo
  • keyring__init__。pyo
  • keyring \ backend.pyo
  • keyring \ core.pyo
  • win32_crypto.pyd
于 2010-04-04T21:02:15.563 に答える