2010-03-16 6 views
3

J'ai un problème pour que Mercurial reconnaisse mon éditeur. J'ai un fichier, c:\windows\notepad.exe et en tapant "notepad" à l'invite de commande fonctionne. Je peux commettre en utilisant l'argument "-m" pour fournir le titre de la livraison. Mais un simple "hg commit" évoque l'erreur.Editeur Mercurial: "abandon: le système ne trouve pas le fichier spécifié"

Un appel à "hg --traceback commit" fait apparaître: dans le fichier Mercurial.ini

Traceback (most recent call last): 
    File "mercurial\dispatch.pyc", line 47, in _runcatch 
    File "mercurial\dispatch.pyc", line 466, in _dispatch 
    File "mercurial\dispatch.pyc", line 336, in runcommand 
    File "mercurial\dispatch.pyc", line 517, in _runcommand 
    File "mercurial\dispatch.pyc", line 471, in checkargs 
    File "mercurial\dispatch.pyc", line 465, in <lambda> 
    File "mercurial\util.pyc", line 401, in check 
    File "mercurial\commands.pyc", line 708, in commit 
    File "mercurial\cmdutil.pyc", line 1150, in commit 
    File "mercurial\commands.pyc", line 706, in commitfunc 
    File "mercurial\localrepo.pyc", line 836, in commit 
    File "mercurial\cmdutil.pyc", line 1155, in commiteditor 
    File "mercurial\cmdutil.pyc", line 1184, in commitforceeditor 
    File "mercurial\ui.pyc", line 361, in edit 
    File "mercurial\util.pyc", line 383, in system 
    File "subprocess.pyc", line 470, in call 
    File "subprocess.pyc", line 621, in __init__ 
    File "subprocess.pyc", line 830, in _execute_child 
WindowsError: [Error 2] The system cannot find the file specified 
abort: The system cannot find the file specified 

J'ai essayé le réglage de la variable d'environnement HGEDITOR, le réglage "visual =" et "editor =". J'ai essayé le chemin complet ainsi que la commande seulement. J'ai également essayé de copier le dossier de notepad.exe dans le dossier actuel aussi bien que le dossier mercurial.

Idéalement, je voudrais utiliser l'éditeur à cet endroit "C:\PortableApps\Notepad++Portable\Notepad++Portable.exe", mais à ce stade, je serais heureux avec un éditeur!

HG Sortie debugconfig:

c:\wamp\www\SiteAB.com\web>hg debugconfig 
bundle.mainreporoot=c:\wamp\www\SiteAB.com\web 
ui.username=killroy 
ui.shell=true 
ui.verbose=true 
ui.visual="C:\PortableApps\Notepad++Portable\Notepad++Portable.exe" 
ui.editor="C:\PortableApps\Notepad++Portable\Notepad++Portable.exe" 
+0

Utilisez-vous win7 64bit par hasard? Je reçois un problème similaire et a commencé un rapport à https://bitbucket.org/tortoisehg/stable/issue/1361/cannot-successfully-run-merge-tools-on-win-7-64 – Ash

+0

C'est 32bit Win XP. – Killroy

+0

Je semble avoir résolu mon problème en réinstallant le système d'exploitation. Des mesures extrêmes ... – Ash

Répondre

0

Lorsque vous définissez editor = dans le fichier Mercurial.ini, vous le faites dans la section [ui], non?

Après cela, peut-être fournir la sortie de hg debugconfig?

+0

J'ai ajouté la sortie. Mais comme je l'ai mentionné, j'ai essayé différentes incantations, y compris un simple "éditeur = bloc-notes", qui ne fonctionne pas. Il serait vraiment utile de pouvoir voir quelle commande il essaie d'exécuter pour ouvrir l'éditeur. Peut-être s'agit-il d'une sorte de problème de détournement de chemin? – Killroy

5

Le fait que editor = notepad n'ait pas fonctionné indique que quelque chose ne va pas dans votre environnement. Depuis l'exécution du bloc-notes à partir de la ligne de commande, je me demande si le problème est peut-être lié à votre installation de Python. Votre backtrace me fait penser que vous exécutez hg 1.5 qui était en cours quand vous avez posté. Bien que je ne crois pas que cela devrait faire une différence, il ne pourrait pas faire de mal à mettre à jour à 1.5.4.

Vous exécutez Notepad ++ Portable à partir de votre lecteur C :. Habituellement, on installe PortableApps sur un lecteur amovible. Êtes-vous sûr que hg devrait regarder C :? Je comprends parfois qu'il peut être pratique pour les utilisateurs non privilégiés de les installer localement. Notepad ++ Portable ne jouera pas particulièrement bien avec hg. Vous devrez avoir npp complètement fermé et l'engendrer à partir de hg ou commits ne fonctionnera pas. Si vous le pouvez, j'essaierais de lancer la version complète de Notepad++ à la place. Voici ce que j'utilise:

[ui] 
editor = "C:\Program Files\Notepad++\notepad++.exe" -multiInst -nosession 

-multiInst dit NPP d'ouvrir une nouvelle instance juste pour hg. De cette façon, il n'interférera pas avec les fenêtres npp que vous avez déjà ouvertes. Cela ne fonctionne pas avec la version PortableApps.
-nosession indique à npp de ne pas ouvrir les fichiers précédemment ouverts, d'accélérer les temps de démarrage et de réduire l'encombrement. Quand j'écris un message de commit, je veux me concentrer sur mon message, et ne pas être distrait par un tas d'onglets indépendants.

+0

C'est le bon chemin. J'utilise PortableApps pour faciliter la sauvegarde et le transfert.Ne pas utiliser à partir d'une clé USB. Si vous appelez l'exécutable principal (comme je le suis), il n'y a pas de vérification multi-instance ou de problème. Je vais essayer vos paramètres, cependant. – Killroy

+0

J'ai utilisé la configuration ci-dessus, moins la changer en Program Files (x86) depuis que je cours Windows 7 64 bits. Fonctionne parfaitement, merci. J'ajouterai que j'ai suivi un guide pour "remplacer" le bloc-notes avec notepad ++, mais cela n'a pas fonctionné de manière transparente pour hg, probablement parce que notepad ++ utilise un programme stub dans les répertoires windows pour lancer l'exécutable principal en réponse à l'ouverture de "notepad". EXE". –

Questions connexes