cygwin下使用git

cygwin下使用git,会遇到路径无法直接传递给windows下的程序的情况,比如gvim, p4merge等,所以需要一个脚本,将cygwin的路径转换成windows的路径,这里用到了cygpath这个工具,具体脚本见下(脚本内容源自http://vim.wikia.com/wiki/Use_cygwin_shell

#!/bin/bash

if [[ $1 = "bg" ]];then
   BG="&"
   shift
fi

if [[ $# -eq 0 ]]; then
   echo "usage: $0 [bg] <progarm> [args]"
   exit 0
fi

CMD="$1"
shift

while [ -n "$1" ]; do
   case "$1" in
     [+-]*) ARG=$1;;
     *) ARG=\"`cygpath -w "$1"`\";;
   esac
   CMD="$CMD $ARG";
   shift;
done

#echo $CMD $BG
eval $CMD $BG

在使用gvim时,在.bashrc中加入alias就可以正常使用gvim了,如下

alias gvim='win.sh bg gvim'
alias vim='win.sh vim' 

但是如果使用p4merge,则没这么方便,因为git加入了p4merge的默认支持,所以我们在设置difftoolmergetool时不能使用p4merge这个名字,否则,git会将没用转换过的路径传递给p4merge,导致问题。所以我们使用另外的名字,比如perforce_merge/perforce_diff来绕过这一问题,.gitconfig的设置如下

[merge]
	tool = perforce_merge
[mergetool "perforce_merge"]
	cmd = win.sh p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[diff]
	tool = perforce_diff
[difftool "perforce_diff"]
	cmd = win.sh p4merge \"$LOCAL\" \"$REMOTE\" 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值