15

我最近在 cygwin 设置中安装了所有 X11 软件包,现在出现了一个巨大的恼人错误,无法看到 gitk。在我安装这些东西之前,一切都运行良好。

在我遇到这个问题之前,我并没有真正注意到任何配置我只是启动 xwinserver 去我的分支并输入 gitk 并且一切都出现了。现在我必须放入我的显示器,因为它声称显示器没有设置。我导出我的显示设置,通过运行确实出现的 xclock 来检查它是否设置正确。然后我得到了这个问题:

1 [main] wish8.5 3436 child_info_fork::abort: 数据段开始: parent(0x4CF000) != child(0x67F000)
启动脚本中的错误:未知颜色名称“SystemButtonFace”
在执行时
“winfo rgb.$c”
(程序“setui”第 3 行)
从内部调用
“setui $uicolor”
(文件“C:\cygwin\bin\gitk”第 11504 行)

不知道这是什么。我看到了几个相关的问题,但没有答案。

注意:我使用的是 Windows 7 64 位并使用 Bash shell

更新:我仍然得到完全相同的错误。这真是令人沮丧!我可能只下载 Debian

4

8 回答 8

17

从今天开始,我能够在 Win 7 64 位上使用以下版本让 gitk 工作:

$ cygcheck -c cygwin git gitk tcl tcl-tk
Cygwin Package Information
Package              Version        Status
cygwin               1.7.10-1       OK
git                  1.7.9-1        OK
gitk                 1.7.9-1        OK
tcl                  8.5.11-1       OK
tcl-tk               8.5.11-1       OK

最有价值的链接是 aap 发布的链接。这使我采取了所有其他步骤。

要修复分叉失败,请点击 Cygwin 常见问题解答中的链接。我遵循的步骤如下:

  1. 开始 -> 运行 -> ash.exe -> /bin/rebaseall (运行该命令时没有输出)

  2. 您可能会遇到分叉失败的原因之一是防病毒/防火墙/间谍软件清理软件的存在。

    就我而言,列为叉失败原因的BLODA软件是 McAfee,我在我的工作电脑上安装了它。修复方法是将 Cygwin 目录移动到 McAfee 的 OAS 排除的文件夹内,并创建一个指向旧位置的符号链接,如下所示:
    mklink /D C:\Cygwin C:\Dev\Cygwin

    C:\Dev是排除

    的文件夹 可以使用 Viruscan 控制台配置文件夹排除项。要测试您当前的 Cygwin 目录是否被排除,请参见.

  3. 启动 GITK

    •     方法一
          
      1. 在 Cygwin 控制台中:
        startx&

      2. 弹出窗口的标题必须用于在 Cygwin 中设置 DISPLAY 环境变量,如下所示:
        Title : Cygwin/X:1.0,然后执行export DISPLAY=localhost:1.0
        Title : Cygwin/X:0.0,然后执行export DISPLAY=localhost:0.0

      3. 最后像这样开始 gitk :
        gitk&

      4. 我最终得到的是:


    •     方法二
          
      1. 使用以下内容 创建文件~/.startxwinrc :
        gitk&
      2. 然后运行以下命令:
        startxwin >/dev/null 2>&1
      3. 我最终得到了一个 gitk 窗口,它看起来与 aap 提到的整个“需要 X”事件发生之前的窗口完全相同:



于 2012-02-14T10:19:54.797 回答
16

看来这里有三个问题。

  1. DISPLAY 要求是由于 Cygwin Tk 更改为要求 X

  2. SystemButtonFace 错误也是由于相同的更改。建议的修复方法是删除您的 ~/.gitk设置文件,或者至少删除该文件中引用 SystemButtonFace 的行。

  3. fork 问题——似乎需要rebaseall

另请注意,有 git 和 gitk 的更新版本 1.7.9 找到了通往 cygwin 镜像的方式,但该版本本身并没有为我解决问题。

于 2012-02-14T00:59:16.177 回答
7

根据上面的答案,我做了一个不同的修复。在我的~/.bash_profile中,我添加了以下内容:

startxwin >/dev/null 2>&1
export DISPLAY=localhost:0.0

我认为这是一个比将 gitk& 添加到 ~/.startxwinrc 更好的解决方案,因为它只适用于 gitk。这样你就可以做 git gui 和其他事情了。

于 2012-02-15T21:47:56.957 回答
4

建议删除 ~/.gitk 的其他答案指出了正确的方向,但在新版本中,配置文件默认位于 ~/.config/git/gitk 中,正如手册所指出的那样。

于 2017-02-21T13:38:14.543 回答
3

其他人发布的解决方案与Tcl/Tk 对 X11 的新依赖有关。实际上,您看到的错误是由于在 X11 要求出现之前在 GDI 下运行 gitk 导致的后续错误。

修复方法是编辑您的~/.gitk文件,并删除所有引用SystemButtonFace. 一旦你这样做了,一切都应该再次Just Work™。

于 2012-02-24T09:46:54.877 回答
1

根据本德的回答

  • 安装 xinit 包
  • 去去C:\cygwin\bin,双击ash.exe
  • 进入./rebaseall

然后你可以gitk开始

startxwin
gitk
于 2012-04-24T04:48:59.730 回答
1

我得到了同样的错误。问题是我最初使用git bash,后来改用 git in cygwin

Git bash 的 gitk 创建了一个与 cygwin 的 tcl/tk 不兼容的 ~/.gitk 文件。如果你删除 ~/.gitk,当你运行 cygwin 的 gitk 时,它会创建一个新文件。

于 2017-01-03T15:41:25.763 回答
0

最后我不得不删除cygwin并重新安装它。对我来说,问题出在 X11 的某个地方。当我重新安装时,我不得不重新设置基础,因为我有一个 fork 问题,所以这些答案真的很有帮助。我确实也必须设置显示,以便在我的 .bashrc 中进行

很抱歉,我无法提供更具体的内容,但是,无论我尝试过什么,我的相同问题都会再次出现。

于 2012-02-18T11:12:19.270 回答