一、TortoiseSVN
使用过SVN的应该都知道TortoiseSVN,界面操作简单方便,易上手。
二、SVN命令行
如果想在命令行中操作代码仓库,必须把代码下下来,才能在目录间切换,如果代码仓库中的代码量很大,全部下下来非常不现实,既占用磁盘空间又耗时。
三、自定义别名
通过对svn的常见操作做别名处理,通过别名来实现命令行中对svn代码仓库目录的切换。对于喜欢用命令行来操作的人来说是一个不错的方法,别名示例如下:
#将GBK转为UTF8
alias utf8_iconv='iconv -f GBK -t UTF-8'
#svn操作相关
svn_path="https://127.0.0.1/test/"
alias svn_pwd='echo $svn_path'
alias svn_ls='svn list "$svn_path" | utf8_iconv'
alias svn_info='svn info "$svn_path"'
alias svn_..='svn_path=$(dirname "$svn_path") && svn_pwd'
function svn_log(){
svn log "$*" "$svn_path" | utf8_iconv
}
function svn_cd(){
if [[ ${svn_path: -1} == "/" ]]; then
svn_path="${svn_path}$1"
else
svn_path="$svn_path/$1"
fi
svn_pwd
}
function _svn_cd()
{
local i
local toDir="$2"
local absDir=$svn_path/$toDir
local toDirPre
local toDirBase
absDir=${absDir//\/\//\/}
absDir=${absDir//:\//:\/\/}
if [[ ${absDir: -1} != "/" ]]; then
absDir=$(dirname $absDir)
fi
if [[ ${toDir: -1} == "/" ]]; then
toDirPre=$toDir
COMPREPLY=($(svn list "$absDir" | awk '{printf $0" "}'))
else
toDirPre=$(dirname "$toDir")
toDirBase=$(basename "$toDir")
COMPREPLY=($(svn list "$absDir" | grep -E "^$toDirBase" | awk '{printf $0" "}'))
fi
if [[ $toDirPre != "." ]]; then
for((i=0; i < ${#COMPREPLY[@]}; i++));
do
if [[ ${toDirPre: -1} == "/" ]]; then
COMPREPLY[$i]=$toDirPre${COMPREPLY[$i]}
else
COMPREPLY[$i]=$toDirPre/${COMPREPLY[$i]}
fi
done
fi
return 0
}
# 为 svn_cd 增加 tab 键自动提示
complete -o nospace -o filenames -F _svn_cd svn_cd
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。