2010-09-21 7 views
29

Lorsque je tente de faire un git commit -a, je reçois une belle exemple vim. Je tape dans mon message, ne :wq, vim ferme vers le bas et le terminal a le message,git commit échoue avec Vim et GVim

Aborting commit due to empty commit message. 

Conformément à this question je me suis assuré mon core.editor dit "gvim" (le fait le user.editor, FWIW) , mais je reçois toujours ce message d'erreur.

Quelqu'un at-il une autre idée?

Edit 1: Je suis capable de commettre en spécifiant un fichier. Mes messages sont trop longs pour utiliser raisonnablement l'option -m.

Edit 2:

$ git config core.editor 
vim 
error: More than one value for the key core.editor: vim 
error: More than one value for the key core.editor: gvim 

Edit 3: ayant toujours le même problème, même avec core.editor triée. D'autres idées?

$ git config core.editor 
gvim -f 

$ git commit 
Aborting commit due to empty commit message. 

Edit 4: Autres messages d'erreur. C'est tout ce que je vois. J'ai exclu plusieurs de ma question d'origine parce que je les ai eues sur beaucoup de machines, dont aucune n'a eu de problèmes en utilisant vim/gvim avec git (sauf l'actuel). Dans le cas illustré ici, core.editor est défini sur vim -f.

$ git commit 

(gvim:21655): GLib-WARNING **: g_set_prgname() called multiple times 

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed 

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed 

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed 

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed 

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed 
Aborting commit due to empty commit message. 

Lorsque core.editor est réglé sur gvim -f j'obtenir exactement les mêmes messages d'erreur, sauf le nombre est 21641, 21655. pas Google Quand je l'une des lignes, je reçois aucune correspondance (je trouve cela difficile à croire mais vous y êtes).

+1

Est-ce que ça marche avec 'core.editor = vim'? – alternative

+0

@mathepic: Non. Et il fait de nouveaux vars, tous appelés core.editor, avec les différents choix. Comment puis-je me débarrasser des extras? Cela va sûrement causer des problèmes. – kajaco

+0

@mathepic: Voir Edit 2 ci-dessus. – kajaco

Répondre

4

Vous préfixant les lignes dans votre message de commit avec #? Si vous l'êtes, Git les traitera comme des lignes de commentaires, les ignorera et ne trouvera aucun contenu dans votre message.

+0

Je ne fais pas ça. – kajaco

+0

Oui, c'était mon cas. Merci Brian! – zuba

67

Si vous utilisez gvim, vous devez vous assurer qu'il reste au premier plan, sinon elle retournera le contrôle de git avant que vous ayez eu la chance de modifier et enregistrer votre message. La spécification du commutateur -f dans le paramètre de l'éditeur doit l'activer.

gvim -f 

Vous avez plusieurs valeurs définies pour votre réglage core.editor qui est à l'origine d'un problème. Vous devez avoir un seul paramètre.

Essayez:

git config --global --unset-all core.editor 
git config --unset-all core.editor 
git config --global core.editor "gvim -f" 
+0

J'ai dit que j'étais capable de saisir mon message de validation. Gvim apparaît et je commence à taper. Êtes-vous en train de dire que je ne peux pas me concentrer sur une autre fenêtre tant que je n'ai pas terminé le message de validation? – kajaco

+0

+1 Oui, c'est ça, je pense. – alternative

+0

@kajaco: Vous dites également que l'enregistrement de votre message ne fonctionne pas, ce qui serait expliqué par le comportement de gvim de se déconnecter automatiquement de la coque. Êtes-vous en train de dire que cette correction ne fonctionne pas pour définitivement? –

5

L'utilisation gvim -f devrait être la solution (fonctionne pour moi), mais simplement la mise en core.editor ne peut pas provoquer nécessairement git à l'utiliser. Pour savoir ce que git est réellement utiliser, exécutez git var GIT_EDITOR. Il devrait imprimer gvim -f. Sinon, vérifiez man git-var et sauter à la section sur la variable GIT_EDITOR pour savoir ce qui pourrait être PRÉPONDÉRANTS votre réglage core.editor.

0

j'avais rencontré une erreur semblable.

Exécution d'un :wq ou :q! quitterait avec des problèmes. J'ai essayé d'autres éditeurs (TextMate) et à la sauvegarde et à la sortie de cet éditeur, le commit serait terminé.

A constaté que lors de la fermeture du document avec :x le commit se fermait sans avoir à passer à gvim et à toute la configuration qui y était nécessaire.

Résumé -

:x était ma réponse.

0

Envisagez d'utiliser le plugin git fugitive pour vim.

Vous pouvez exécuter la commande git la plus souvent utilisée directement à partir de (g) vim.