在cygwin下使用perforce命令行的问题

ber*_*man 20 command-line perforce cygwin

因此,除了同步之外,几乎不能使用perforce命令行.我的工作区根目录映射到C:\这是我客户端规范的一行://claims1.0/main/... //cthiel/code/claims1.0/main/...

每当我启动cygwin并尝试使用我的软件仓库中的任何文件(例如p4编辑)时,我都会遇到错误:Path'/cygdrive/c/code/commonTest/main.p4ignore'不在客户的根'C:\'.

路径不匹配,因为cygwyn的C:\相当于/ cygdrive/c.所以它永远无法使用perforce命令行查找文件.

有没有办法来解决这个问题?这非常烦人.

ber*_*man 35

找到解决方案:
将其添加到.bashrc:

function p4() {
export PWD=`cygpath -wa .`
/cygdrive/c/Program\ Files/Perforce/p4.exe $@
}
Run Code Online (Sandbox Code Playgroud)

对我来说就像一个魅力.

  • 我发现*不*导出PWD更好,因为更改$ PWD会搞乱emacs并且还会将bash提示改为windows格式.我更喜欢这样做:函数p4(){PWD =`cygpath -ma .`"`p4`"$ @}.这样,PWD只在p4命令中更改. (3认同)

ber*_*man 11

甚至mo'betta':
使用cygwin p4客户端:http: //filehost.perforce.com/perforce/r07.2/bin.cygwinx86/p4.exe

只需确保它位于Perforce/p4.exe之前的路径中.瞧瞧.

  • 您可以从这里获得最新的客户端:http://www.perforce.com/downloads/complete_list点击"其他",然后点击"cygwin" (3认同)
  • Perforce的网站报告他们的[Cygwin本地客户端已于2013年5月停止](http://perforce.com/downloads/complete_list/archived/archived_perforce_platform?qt-others=1#qt-others). (2认同)

Dou*_*der 5

您可以在客户端规范中设置altroots,这可能会涵盖这一点?

虽然cygwin p4是我想要的解决方案.但我会选择最新版本:http://filehost.perforce.com/perforce/r09.2/bin.cygwinx86/p4.exe - 它可以与任何旧服务器一起使用,但会有更少的错误.