【问题标题】:Unable to execute git tf command无法执行 git tf 命令
【发布时间】:2012-08-13 03:51:11
【问题描述】:

我刚刚设置了 git-tf,但我遇到了问题。

这是我收到的错误:

> git tf help
line 23: exec: cmd: not found
fatal: 'tf' appears to be a git command, but we were not
able to execute it. Maybe git-tf is broken?

这是命令提示符的截图:

我按照包含在 Git-TF_GettingStarted.html 文件中的安装说明进行操作,但我似乎无法让它工作。我做错了什么?

编辑 我还安装了 cygwin 并在我的 PATH 上。也许这会给 git-tf 造成混乱? (从 PATH 中删除 cygwin 无济于事)

【问题讨论】:

  • 仅供参考,我将其作为屏幕截图发布,因为当您在帖子中使用 help 一词时,SO 不喜欢它。
  • 将错误放在代码块中似乎可行(尽管我不确定编辑是否与发布新问题不同)
  • 你的路径是什么?它是否包含 %WINDIR%?
  • 不,它包含(除其他外)C:\git-tf-1.0.0.20120809;C:\Program Files (x86)\Git\cmd;C:\Program Files\Java\jre6\bin;

标签: git tfs git-tf


【解决方案1】:

%COMSPEC% 中的“\”会与 windows cmdline 或 mingw32 下的“git tf”混淆

if [ "$PLATFORM" = "cygwin" ]; then
    COMSPEC_U=`cygpath -u "$COMSPEC"`
    GITTF_CMD=`cygpath -w "$0.cmd"`
    exec "$COMSPEC_U" /C "$GITTF_CMD" "$@"
elif [ "$PLATFORM" = "mingw32" ]; then
#   exec "$COMSPEC" //C git-tf.cmd "$@"
    exec "C:/WINDOWS/system32/cmd.exe" //C git-tf.cmd "$@"
fi

【讨论】:

    【解决方案2】:

    我不知道是我安装的 Cygwin 版本还是什么,但我遇到了同样的问题,上述解决方案不起作用。问题在于 $0 替换具有 unix 样式路径并且 cmd.exe 被阻塞。

    为了修复它,我改变了这一行:

    exec $COMSPEC //C "$0.cmd" "$@"

    到这里:

    exec $(cygpath $COMSPEC) /C $(cygpath --windows "$0.cmd") "$@"

    这可能只适用于 Cygwin。我从未使用过 MinGW32,我不确定它的 cygpath 实用程序是否完全一样。

    【讨论】:

    • 我们为类似的修复获得了出色的 PR(甚至可能来自您?)。我们将在git-tf 的下一个版本中对此进行修复。谢谢!
    【解决方案3】:

    这看起来像是 Windows 上 git-tf sh 脚本中的一个错误,我们假设 %WINDIR% 在您的路径中,而当我们尝试启动它时,我们应该提供到 cmd.exe 的完整路径。

    在我们为此发布修复程序之前,您可以执行以下两项操作之一:

    1. %WINDIR%\system32 添加到您的路径中。

    2. 编辑 git-tf 并更改第 23 行。而不是简单的 exec'ing cmd,适当的行(在 mingw32 中)应该是:

      exec "$WINDIR/system32/cmd.exe" //C "$0.cmd" "$@"
      

    【讨论】:

    • 我修改了这条线,它现在可以工作了。感谢您的快速修复!
    猜你喜欢
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 2020-06-19
    • 2016-08-20
    相关资源
    最近更新 更多