Проблемы с разрешением Cygwin + git при попытке создать сообщение коммита - PullRequest
0 голосов
/ 02 ноября 2008

Когда я пытаюсь зафиксировать первую ревизию в моем git-репозитории (git commit) от Cygwin, я получаю сообщение об ошибке в gvim, которое говорит: «Невозможно открыть файл подкачки для« foo \ .git \ COMMIT_EDITMSG »[Новый каталог Я думаю, это может быть какая-то проблема с правами доступа, но я попытался удалить из папки флаг «только для чтения», а также рекурсивно настроить владельца (используя вкладку свойств Windows, а не chown в Cygwin), чтобы он был Учетная запись, под которой я работаю, без какой-либо удачи. Если я изменяю редактор по умолчанию на блокнот, я получаю «Система не может найти указанный файл», даже если файл (COMMIT_EDITMSG) существует и даже содержит:

# Please enter the commit message for your changes.
# (Comment lines starting with '#' will not be included)
# etc...

Как я могу устранить эту проблему дальше?

Ответы [ 4 ]

2 голосов
/ 02 ноября 2008

Невозможно открыть файл подкачки для "foo \ .git \ COMMIT_EDITMSG" [Новый каталог].

Похоже, что git commit передает путь к файлу как путь Windows, а не как путь POSIX. обратите внимание на \ в сообщении.

gvim попытается открыть файл `foo.gitCOMMIT_EDITMSG", который не существует.

Я не использую git, но я думаю, что он использует переменную окружения, похожую на SVN_EDITOR. Возможно, вам понадобится обернуть сеанс редактирования небольшим сценарием, который использует cygpath, чтобы изменить путь к файлу с Windows на разделители Posix.

#!/bin/bash
gvim "$(cygpath --unix "${1}")"

Предостережение Emptor, не проверено.

1 голос
/ 20 декабря 2010

В cygwin вы используете mingw или msysgit git ( Windows native ). Это не будет работать при использовании редактора cygwin (gvim). \ Не является разделителем пути в POSIX, он скорее экранирует следующий символ.

Вам необходимо установить git-пакет cygwin или использовать подходящий редактор mingw / msysgit.

Может также оказаться, что mingw git.exe находится в ПУТИ перед / usr / bin. Исправьте свой путь тогда.

Такие вопросы обычно обрабатываются через http://cygwin.com/problems.html, esp. cygcheck -s -v -r> cygcheck.out в списке рассылки. Тогда мы могли бы видеть больше.

0 голосов
/ 23 января 2011

Для `cygpath 'попробуйте:

cygdrive -a -m COMMIT_EDITMSG

Возможно, вам нужен путь в следующем стиле:

D:/path/to/your/working_directory/.git/COMMIT_EDITMSG

0 голосов
/ 05 февраля 2010

Я впервые столкнулся с той же проблемой, но обнаружил, что это нормально. Только я не помню, как бороться с Vim. Я нашел решение по этой ссылке: http://vim.runpaint.org/basics/quitting-vim/. Я использовал команду vim: x, что привело к сохранению моего комментария и внесению изменений. Вы можете прочитать об этой интеграции между Git & Vim по этой ссылке: http://vim.runpaint.org/extending/integrating-vim-with-git/.

...