cygwin下使用git

来源:互联网 发布:淘宝客合作协议 编辑:程序博客网 时间:2024/06/06 17:25

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

#!/bin/bashif [[ $1 = "bg" ]];then   BG="&"   shiftfiif [[ $# -eq 0 ]]; then   echo "usage: $0 [bg] <progarm> [args]"   exit 0fiCMD="$1"shiftwhile [ -n "$1" ]; do   case "$1" in     [+-]*) ARG=$1;;     *) ARG=\"`cygpath -w "$1"`\";;   esac   CMD="$CMD $ARG";   shift;done#echo $CMD $BGeval $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\" 


原创粉丝点击