Не удается запустить git gui с помощью cygwin на окнах

Я запускал git gui в моей консоли cygwin без каких-либо проблем, но поскольку я обновил cygwin, у меня появилось следующее сообщение об ошибке:

$ git gui
Application initialization failed: no display name and no $DISPLAY environment variable
Error in startup script: invalid command name "tk_messageBox"
    while executing
"tk_messageBox  -icon error  -type ok  -title "git-gui: fatal error"  -message $err"
    invoked from within
"if {[catch {package require Tcl 8.4} err]
 || [catch {package require Tk  8.4} err]
} {
        catch {wm withdraw .}
        tk_messageBox \
                -icon error \
                -typ..."
    (file "/usr/lib/git-core/git-gui" line 34)

Кто знает, как это решить?

Ответ 1

Изменить: обновлен в марте 2016 года для учета переименованных пакетов и т.д.

Cygwin gitk и git gui требуют X11. Это означает, что вам нужно установить некоторые из пакетов Cygwin X11 и настроить их, чтобы открыть графический интерфейс.

Это должно помочь вам:

  • Запустите программу установки Cygwin (снова загрузите соответствующую setup - *. exe, если вам нужно).
  • В списке пакетов выберите установку "xinit" в категории X11. Нажмите "Далее", примите все зависимости и установите.
  • В меню "Пуск" Windows у вас должна быть новая группа: Cygwin-X. Оттуда запустите XWin Server.
  • В вашей оболочке Cygwin запустите export DISPLAY=:0.0.

Вам нужно будет повторить шаг 3 каждый раз, когда вы перезагружаете компьютер, и шаг 4 каждый раз, когда вы открываете новую оболочку Cygwin (или просто запускаете echo "export DISPLAY=:0.0" >>~/.profile, чтобы она запускалась автоматически всякий раз, когда вы создаете новую оболочку).

В комментариях кажется, что некоторые люди получают ошибки, заявляя, что "не удалось подключиться к отображению": 0.0 ". Если вы это поняли, наведите указатель мыши на значок X, который должен появиться на панели задач (вам может понадобиться щелкнуть значок маленького размера, если значок X был скрыт); во всплывающем заголовке должно быть указано что-то вроде" Cygwin/X Server: 1.0 ". Используйте значение": 1.0 "(или все, что вы видите) как значение для DISPLAY на шаге 4, а не": 0.0", убедившись, что нужно включить двоеточие.

Если у вас возникли другие проблемы с запуском X-сервера, вы, вероятно, обнаружите, что у вас есть файл с именем ~/.xsession-errors; проверьте содержимое этого для того, что пойдет не так. Также проверьте, есть ли у вас файл ~/.startxwinrc, и попробуйте удалить его и посмотреть, устраняет ли это проблему.

Для заинтересованного, причина, по которой пакеты X11 не установлены автоматически, заключается в том, что они не технически необходимы: это возможно через несколько запутанные означает использовать другой сервер X11, чем тот, который устанавливается Cygwin при установке пакета "xinit".

Ответ 2

Проведя больше времени, чем я хотел бы признать, мне удалось найти рабочее решение для выполнения gitk из моей оболочки cygwin. Я не мог получить ни одну из инструкций, чтобы запустить X-сервер для надежной работы, и, в конце концов, решение было довольно простым.

Самое большое предостережение необходимо установить Git для Windows, скачать для него можно здесь.

Теперь для всей выполняемой части gitk. Git для окон включает в себя папку cmd, которая имеет файл командной строки gitk.cmd. Это все, что вам нужно вызвать, чтобы открыть gitk.

$ [path-to-git]/cmd/gitk.cmd

В моей системе путь Git находится в "C:\Program Files (x86)\Git", поэтому команда будет выглядеть так:

$ "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"

В моем ~/.bash_profile я добавил функцию для обработки этого вызова, которая выглядит так:

gitk() {
  "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"
}

Надеюсь, что это поможет кому-то еще попытаться понять эту штуку.

Ответ 3

echo "export DISPLAY=:0.0" >>~/.profile

или

echo "export DISPLAY=:0.0" >>~/.bash_profile

в моем случае

Ответ 4

Избегайте X11 и добавляйте поддержку git gui для cygwin

Если вы хотите избежать X11 (а кто нет?):

  • Установить Git для Windows (не-cygwin) http://git-scm.com/download/win
  • Откройте свою командную оболочку C:\Program Files (x86)\Git\Git Bash
  • run git gui

(необязательно) Если вы хотите остаться в cygwin для запуска git gui, добавьте функцию в свой ~/.bashrc, чтобы сделать это. Единственное предостережение: не называть функцию git из-за рекурсии и путаницы с аргументами, а тот факт, что вы Git для оболочки Windows, также может добавлять ту же функцию при ее запуске, Вы также можете столкнуться с проблемами пути, поэтому будьте осторожны с правильной настройкой ваших путей.

# call git gui from Git For Windows path with `ggui`
    gg() { 
    command "/cygdrive/c/Program Files (x86)/Git/bin/git" gui  2>/dev/null;


    }

Когда вы закончите редактирование своего .bashrc, обновите свои настройки:

source ~./bashrc

а затем просто:

gg

Ответ 5

После выполнения 4 шагов, заданных me_and и tititou36, у вас все еще могут быть проблемы с XWin, только после того, как вы запустили XwinServer.

Причина в том, что он полагается на терминал/консоль CygWin, который является хостом, и Xwin умирает, если нет консоли CygWin.

Решение для этого:

Запустите консоль Cygwin. (вы можете сделать это автоматически, поместив команду mintty в файл .startxwinrc в свой домашний каталог cygwin.

Ответ 6

Вот что сработало для меня:

cat >> ~/.bash_profile <<< "export DISPLAY=:0.0"

В диспетчере пакетов cygwin выполните следующие действия:

установите xorg-server и некоторые шрифты xorg, xorg-x11-fonts-Type1 особенно

Далее создайте ссылку на папки шрифтов Windows для git gui для использования

ln -s /cygdrive/c/Windows/Fonts /usr/share/fonts/win-fonts

Закройте терминал cygwin и снова откройте, затем введите

startxwin &> /dev/null &

git gui &

Ответ 7

Основываясь на ответе AndrewD: используйте cygwin git, но используйте Windows Git gitk и git gui. Другими словами, удалите пакеты git -gui и gitk из cygwin (если они установлены). Затем which gitk должен указывать на файл Windows, а не на cygwin binary в /usr/bin.