如何实现Shell脚本基于SVN的代码提交量统计工具
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要讲解了"如何实现Shell脚本基于SVN的代码提交量统计工具",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何实现Shell脚本基于SVN
千家信息网最后更新 2025年11月07日如何实现Shell脚本基于SVN的代码提交量统计工具
这篇文章主要讲解了"如何实现Shell脚本基于SVN的代码提交量统计工具",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何实现Shell脚本基于SVN的代码提交量统计工具"吧!
#!/bin/bash - #"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" # FILE: lines.sh # # USAGE: ./lines.sh [dir] # AUTHOR: william # # DESCRIPTION: 基于SVN的代码提交量统计工具 # OPTIONS: --- # CREATED: 06/05/2012 12:49:20 PM CST #""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set -o nounset # Treat unset variables as an error # 关注的文件类型 后罪名 FILES_TYPE="*.cpp *.h *.lua" # 需要统计的人员,在这里写入需要统计的人,用空格隔开。哈还不智能 declare -r CODER_LIST="coder1 coder2" declare -i coder1 declare -i coder2 declare -r USAGE="Usage: $0 [dir]. default dir is current dir.\n" # ERROR CODES; declare -r E_BAD_PATH=1 declare -r E_INVAILED_ARGU=2 declare -r E_NOT_SVN_DIR=3 #TODO 屏蔽一些dir 还没写哈 # TODO other way get path not with / end getpath() { #debug #echo dir_name: ${dir_name} #echo base_name: ${base_name} if [ $dir_name == "/" ] || [ $base_name == "/" ]; then work_path="/" else work_path=${dir_name}/${base_name} fi } statistic_codelines() { if [ -z "$1" ]; then echo "ERROR statistic_codelines not argument" return fi local pwd_length=${#PWD} echo "--------------------------" echo "${PWD}" for coder in $CODER_LIST; do local num=$(echo "$1" | grep ${coder} | wc -l) (( ${coder} += num )) if [ $num -ne 0 ]; then printf "s | %-7d\n" ${coder} $num fi done echo "--------------------------" } # init check argument set work_path init_work_path() { if [ $# -eq 1 ]; then if [ $1 == "-h" ]; then # is help echo -e "$USAGE" elif [ -d $1 ]; then dir_name=$(dirname ${1}) base_name=$(basename ${1}) getpath; else echo -e "An invailed argument" echo -e "Use -h get help." exit $E_INVAILED_ARGU fi fi } # check work_path check_work_path() { if [ -z $work_path ] || [ ! -d $work_path ]; then exit $E_BADPATH; fi } # enter work_path enter_work_path() { cd ${work_path} if [ ! $? ]; then echo "Can not enter ${work_path} " fi } # check work_pat is a svn dir is_svn_dir() { ( # check if current dir is asvn dir svn info &> /dev/null exit $? ) return $? } action() { local dir_name=. local base_name= local work_path=$dir_name init_work_path $1 check_work_path enter_work_path #todo can't enter #echo "NOW DIR: $PWD, OLD DIR $OLDPWD" is_svn_dir #todo to next dir local ret=$? if [ $ret -ne 0 ] then echo -e "Current dir \"${work_path}\" not a svn dir." exit $E_NOT_SVN_DIR fi # get source files local files=$(ls ${FILES_TYPE} 2> /dev/null) if [ -n "$files" ]; then local namelist=$(echo -n ${files} | xargs -n 1 svn blame | awk '{print $2}') #svn blame $files #| grep $1 | wc -l statistic_codelines "$namelist" fi local sub_dirs=$(find -maxdepth 1 -type d -name "[^.]*" 2>/dev/null) if [ -n "$sub_dirs" ]; then for dir in $sub_dirs ; do action "$dir" done fi cd .. } total() { echo "-------- TOTOAL ----------" echo " NAME | lines " echo "--------------------------" for coder in $CODER_LIST; do if [ ${!coder} -ne 0 ]; then printf "s | %-7d\n" ${coder} ${!coder} fi done echo "--------------------------" } # main echo "-----开始统计,请耐心等待.... :) " action $1 total exit 0感谢各位的阅读,以上就是"如何实现Shell脚本基于SVN的代码提交量统计工具"的内容了,经过本文的学习后,相信大家对如何实现Shell脚本基于SVN的代码提交量统计工具这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
统计
代码
工具
脚本
学习
内容
耐心
人员
就是
思路
情况
文件
文章
智能
更多
知识
知识点
空格
篇文章
类型
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
筑牢网络安全抵制有害信息
互联网科技对大学生的影响
网络技术副总经理岗位职责
广东一站式软件开发市场价
服务器崩了的案例
华为2288xv5服务器上架
天津服务器报废公司有哪些
WIN7安装数据库流程
旅游商务软件开发
oracle数据库url
五金商城软件开发公司
ios矢量软件开发
数据库 取最新的记录
弹弹堂服务器爆满
tasker数据库
代理服务器上网行为管理
用8k纸花网络安全手抄报
服务器管理软件 破解
苹果收件服务器主机名
湘潭辛技网络技术有限公司
网络安全协会第二次会员大会
cmd怎么连mysql数据库
sql跨表查询数据库
国家安全教育日网络安全例文
网络安全了解多少
苹果方舟手游搜不到服务器怎么办
网站连不到数据库
网络安全巡查员如何监控
公安局强化网络安全管理
数据库维护公司