笔记:svn操作优化,在bash中通过别名实现svn代码仓库的在线操作
2021/6/2 18:24:24
本文主要是介绍笔记:svn操作优化,在bash中通过别名实现svn代码仓库的在线操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、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
这篇关于笔记:svn操作优化,在bash中通过别名实现svn代码仓库的在线操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-17HarmonyOS NEXT开发实战:打造高效上拉刷新与下拉加载组件(一)空页面的设计与实现
- 2024-11-17职场毒瘤:无脑尊蠢老!我不反对尊老,我只是反对没有脑子的尊老!
- 2024-11-17顶级企业如何用数据脱敏保护用户隐私!
- 2024-11-16ShardingSphere 如何完美驾驭分布式事务与 XA 协议?
- 2024-11-16ShardingSphere如何轻松驾驭Seata柔性分布式事务?
- 2024-11-16Maven资料入门指南
- 2024-11-16Maven资料入门教程
- 2024-11-16MyBatis Plus资料:新手入门教程与实践指南
- 2024-11-16MyBatis-Plus资料入门教程:快速上手指南
- 2024-11-16Mybatis资料入门教程:新手必看指南