2010-04-02 5 views
14

Wir sind Testfahrer Mercurial bei der Arbeit. Wir möchten nicht jedes Mal, wenn wir mit einem Repository interagieren, unseren Benutzer/Pass eingeben müssen. Daher richten wir die Erweiterung "mercurial_keyring" ein. We:Mercurial Erweiterungen funktioniert nicht in Windows 7 x64?

  • Installierte Python 2.6.5 (32 oder 64 Bit, je nach System)
  • Installierte Setuptools (für easy_install.exe)
  • easy_install keyring
  • easy_install mercurial_keyring

Und dann die entsprechenden Änderungen an% userprofile%/mercurial.ini im Bereich [auth] vorgenommen. Es funktioniert gut auf dem Computer meines Kollegen (32bit xp sp3), aber es funktioniert nicht auf meinem Computer (Windows 7 Ultimate x64). Beachten Sie auch, dass die setuptools von Source auf Win 7 x64 (python setup.py bdist_wininst) erstellt werden mussten, und führen Sie dann die resultierenden setuptools-0.6c11.win-amd64.exe aus.

nur hg.exe aus dem Mercurial 1.5 Binärinstallation Verwendung (die .msi), bekomme ich diesen Fehler, wenn ich hg.exe laufen:

*** failed to import extension mercurial_keyring: No module named mercurial_keyring

Ich versuchte, meine Mercurial.ini zu ändern, um anzugeben, den Pfad zur Datei mercurial_keyring.py, anstatt ihn mercurial zu finden (da es im PYTHONPATH ist).

Alt:

[extensions] 
mercurial_keyring = 

Neu:

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

Die Fehler Änderungen an:

abort: could not import module keyring!

So, während die Bereitstellung der Pfad zu den mercurial_keyring Erweiterungsarbeiten, die abhängig Keyring Modul noch kann nicht gefunden werden.

Nach weiteren Untersuchungen scheint es, dass NO-Erweiterungen funktionieren. Sie alle produzieren den Fehler:

*** failed to import extension [extension name]: No module named [module name]

Es scheint, dass, wenn hg.exe läuft, ist es nicht bewusst PYTHONPATH ist. Ich habe versucht:

  • Python 2.6.5 32-Bit-
  • Python 2.6.5 64-Bit-
  • Gebäude Mercurial 1.5 von Quelle mit MinGW
  • Gebäuden Mercurial 1.5 von Quelle mit MSVC9
  • Mit hg exe vom 1,5 binären dist (msi)
  • die hg.py in C unter Verwendung von: \ Python26 \ scripts, wenn die Sourcen
  • Verschiedene Konfigurationen in% Benutzerprofil%/Mercurial.ini
  • Verwenden von setuptools (easy_install.exe) zum Installieren von Schlüsselring und mercurial_keyring
  • Erstellen von Schlüsselring und mercurial_keyring von der Quelle (Python-Setup.py bdist_wininst)

Nichts funktioniert. Am nächsten kommt ich mit hg.py, wenn ich aus der Quelle baue. Es gibt mir zumindest keine Fehler, und tatsächlich erstellt% userprofile%/wincrypto_pass.cfg, wenn ich meine Anmeldeinformationen eingeben. Bei nachfolgenden Anforderungen werden die Anmeldeinformationen jedoch nicht automatisch eingegeben. Es fordert mich wieder auf.

Interessanterweise ist TortoiseHG mit dem Schlüsselring. Ich kann es einfach nicht über die Befehlszeile ausführen. Ich denke, dass etwas mit Win 7 x64 vor sich geht, das verhindert, dass mercurial (hg.exe) den PYTHONPATH sieht, so dass es keines der installierten Module finden kann.

Hat jemand Erweiterungen in Win 7 x64 arbeiten? Speziell mit der Binärinstallation von Mercurial (nicht hg.py)?

UPDATE Ich habe eine passende Arbeit für jetzt gefunden. Da TortoiseHG funktioniert mit mercurial_keyring arbeiten, habe ich einfach meine PATH-Setup geändert, um den TortoiseHG-Ordner, aber nicht c: \ mercurial enthalten. Jetzt, wenn ich "hg" in die Befehlszeile eintippe, benutzt es die hg.exe im tortoiseHG-Ordner, was gut funktioniert. Genauso ist dies immer noch ein Problem mit Mercurial-Erweiterungen auf Win 7 x64. Antworten willkommen.

Antwort

17

Beantworten meiner eigenen Frage mit meinem vorherigen Update, da es noch keine anderen Nehmer gibt.

Geeignete Abhilfe: Da TortoiseHG tut Arbeit mit mercurial_keyring, habe ich einfach verändert mein PATH der TortoiseHg Ordner enthalten und ausschließen c: \ Mercurial. Wenn ich jetzt "hg" in die Befehlszeile eintippe, wird hg.exe im Ordner tortoiseHG verwendet, was gut mit dem Schlüsselring funktioniert.

+0

'C: \ Programme \ TortoiseHg' war im PATH vorhanden, obwohl ich eine andere Mercurial-Version entfernen musste:' c: \ Programme \ Mercurial' –

4

Ich verwende:

  • auf Windows Server 2008 SP2 x86:
    • Python 2.6.5 x86
    • Mercurial 1.5.1 x86
    • TortoiseHg 1.0.1 x86
  • unter Windows Server 2008 R2:
    • Python 2.6.5 x86
    • Mercurial 1.5.1 x86
    • TortoiseHg 1.0.1 x64

Bei beiden Konfigurationen werden alle konfigurierten Erweiterungen ohne Fehler geladen.

Alle Tools werden mit den auf ihren Sites bereitgestellten Installationsprogrammen installiert. Mercurial erscheint vor TortoiseHg in PATH. Ich verwende eine gemeinsame Konfigurationsdatei ~/.hgrc für beide Tools, und eine Mercurial.ini Datei im TortoiseHg Installationsordner, der nur die mercurial_keyring Erweiterung geladen wird.

In der Befehlszeile muss ich das Passwort jedes Mal eingeben, wenn es benötigt wird, aber in TortoiseHg die Schlüsselring-Erweiterungen funktioniert es voll.

Von der Keyring Extension Seite auf dem Mercurial Wiki:

If you are on Windows, we recommend you use TortoiseHg. THG ships with Windows specific keyring backends, without which the mercurial-keyring extension cannot function properly on Windows.

UPDATEhttp://asimilatorul.com/adapter/post/using-mercurial_keyring-extension-with-mercurial-on-windows/

Sie können die erforderlichen Dateien von TortoiseHg Kopie library.zip in Mercurial library.zip:

  • hgext \ mercurial_keyring.pyo
  • keyring__init __. Pyo
  • Keyring \ backend.pyo
  • Keyring \ core.pyo
  • win32_crypto.pyd
+0

Mir ist bekannt, dass die Schlüsselringerweiterung mit TortoiseHg funktioniert. Es funktioniert nicht mit der hg.exe installiert von der mercurial-Installation, weil diese hg.exe, wenn sie ausgeführt wird, nicht scheint, den PYTHONPATH zu sehen, und keine Erweiterungen finden kann. Da Sie die Schlüsselringerweiterung in Ihrer Mercurial.ini laden, die nur für * tortoiseHG * gilt, versuchen Sie nicht, sie mit der mercurial hg.exe zu laden. Versuchen Sie, die Erweiterung zu Ihrem ~/.hgrc auf dem Server 2008 R2-Computer hinzuzufügen und zu überprüfen, ob es funktioniert. Das ist das Problem. –

+0

Der ganze Sinn meines Setups ist es, den Schlüsselbund nur für TortoiseHg zu laden. Aber alle anderen Erweiterungen funktionieren gut mit Mercurial auf WS2008 R2 x64 (das sollte sich genau wie Win 7 x64 verhalten). – alexandrul

4

The extension page besagt, dass TortoiseHG einige zusätzliche Komponenten hat zu machen Es funktioniert unter Windows und funktioniert ohne sie nicht richtig. Es scheint, als wäre die Umgehung der TortoiseHG-Version der einfachste Weg, um es unter Windows zum Laufen zu bringen.

Verwandte Themen