代码之家  ›  专栏  ›  技术社区  ›  Terence Lewis

尝试创建提交消息时出现Cygwin+git权限问题

  •  0
  • Terence Lewis  · 技术社区  · 17 年前

    当我试图从Cygwin将第一个修订版提交到git存储库(git commit)时,gvm中出现了一个错误,它显示“无法打开“foo.git\commit\u EDITMSG”[新目录]的交换文件”。我认为这可能是某种权限问题,但我已经尝试从文件夹中删除只读标志,并递归地将所有者(使用windows属性选项卡,而不是Cygwin下的chown)调整为我正在运行的帐户,没有任何运气。如果将默认编辑器更改为记事本,则会得到“系统找不到指定的文件”,即使该文件(COMMIT_EDITMSG)确实存在,甚至包含:

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

    如何进一步解决此问题?

    4 回复  |  直到 17 年前
        1
  •  2
  •   Ken Gentle    17 年前

    无法打开“foo\.git\COMMIT\u EDITMSG”[新目录]的交换文件。

    看起来像 git commit 正在将文件路径作为Windows路径而不是POSIX路径传递。注意 \ 在留言里。

    gvim 将尝试打开不存在的“foo.gitCOMMIT\u EDITMSG”。

    我不用 git SVN_EDITOR . 您可能需要用一个使用 cygpath 将文件路径从Windows更改为Posix分隔符。

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

    警告清空器,未经测试。

        2
  •  1
  •   rurban    15 年前

    windows本机 ). 当使用cygwin编辑器(gvm)时,这将不起作用。在POSIX中\不是路径分隔符,而是转义下一个字符。

    您需要安装cygwin git包或使用合适的mingw/msysgit编辑器。

    也可能是mingw git.exe位于/usr/bin之前的路径中。那就修好你的路。

    http://cygwin.com/problems.html ,尤其是邮件列表中的cygcheck-s-v-r>cygcheck.out。然后我们可以看到更多。

        3
  •  0
  •   Wahid Shalaly    16 年前

    我第一次面对同样的问题,但我发现这是正常的。只是我不记得怎么对付维姆。我在那个链接中找到了解决方案: http://vim.runpaint.org/basics/quitting-vim/ . 我使用vim命令:x保存了我的注释并提交了修改。 http://vim.runpaint.org/extending/integrating-vim-with-git/ .

        4
  •  0
  •   zerox    15 年前

    对于“cygpath”,请尝试:

    cygdrive -a -m COMMIT_EDITMSG

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