statsvn,代码统计

摘要:
“Exit1fiif[-z$start_revision];theecho”请输入起始修订号!
#! /bin/bash
# 计算有效变更代码量的脚本
#./svnCount -thttps://192.168.1.1/xxx -s1000 -e2000 -uxxx -pxxx
version() {
OS=`uname -o`
echo "Source_counter ($OS) 0.0.1"
echo " tony bai (http://tonybai.com)"
}

usage() {
echo "usage: source-counter [-t SVN_REPOSITORY_URL] [-s START_REVISION]"
echo " [-e END_REVISION] [-u USER_NAME]"
echo " [-p PASSWD]"
echo " source-counter [-v|-h]"
echo 
echo " -t, 目标SVN库地址"
echo " -s, 起始修订号"
echo " -e, 结束修订号"
echo " -u, svn帐号"
echo " -p, svn密码"
echo " -h, 帮助"
echo " -v, 版本信息"
}

if [ $# -lt 2 ]; then
usage
exit 1 
fi

while getopts "t:s:e:u:p:vh" opt; do
case $opt in
t) target=$OPTARG;;
s) start_revision=$OPTARG;;
e) end_revision=$OPTARG;;
u) user=$OPTARG;;
p) passwd=$OPTARG;;
v) version; exit 1;;
h) usage; exit 1;;
esac
done

if [ -z $target ]; then
echo "请输入目标SVN库地址!"
exit 1
fi

if [ -z $start_revision ]; then
echo "请输入起始修订号!"
exit 1
fi

if [ -z $end_revision ]; then
echo "请输入终止修订号!"
exit 1
fi

TEMPFILE=temp.log
USERNAME=${user:-}
PASSWD=${passwd:-}

svn diff -r$start_revision:$end_revision $target > $TEMPFILE
#去掉含空格的空行
add_lines_count=`grep "^+" $TEMPFILE | grep -v "^+++" | sed 's/^.//'| sed s/[[:space:]]//g |sed '/^$/d'|wc -l`
echo "the actually incremental source code lines = $add_lines_count"

  

免责声明:文章转载自《statsvn,代码统计》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何检查Android网络连接状态MYSQL安装报错 -- 出现Failed to find valid data directory.下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

bat 脚本常用命令

  1、echo命令     1. Echo :显示当前ECHO的状态:ECHO ON 或者ECHO OFF 。    2. ECHO ON :ECHO状态设为ON,将显示命令行(如每行前的C:>等类似标志)。    3. ECHO OFF:CHO状态设为OFF,将不显示命令行(如每行前的C:>等类似标志) 。    4. ECHO 字符串 :...

discuz 用户整合 账号整合 ucenter php网站整合discuz用户 拂晓风起

1、登录后台管理。(在论坛中,用创建论坛的admin账号登陆,然后点“管理中心”) 2、添加新应用,填写资料。其实就是“名称”和“密钥”重要一些而已。例如我这里添加的“香芋网” 3、复制生成的配置代码,贴到constants.php中(CodeIgniter),或者使用前引入一个配置,在该配置中贴这些配置代码。 然后,就是使用了:参考deve...

centos 下用shell删除多个目录下删除指定目录下创建日期大于30天的.log .txt文件

#删除指定目录下创建日期大于30天的.log .txt文件(如果目录下文件总数少于10个,就不删除),删除的文件记录写入到日志 #!/bin/bash #待删除的文件路径数组,多个目录换行 locations=( /root/logs/web1/ /root/logs/web2/ /root/logs/web3/ ) #输出的文件...

SVN中检出(check out) 和 导出(export) 的区别

SVN是常用的一种常见的版本控制软件。SVN中检出(check out) 和 导出(export) 的区别主要有如下几条: check out跟check in对应,export跟import对应。 check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作。同时导...

Linux学习之路--shell学习

shell基础知识 什么是Shell Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作系统内核(kernel)能够识别的指令,并且操作系统内核执行完将返回的输出通过shell再呈现给用户,下图所示用户、shell和操作系统的关系: Shell也...

使用smartSVN管理代码时,静态库不能提交的问题解决方案

mac下svn问题 —— “.a”(静态库)文件无法上传  “.a”(静态库)文件无法上传(svn工具:Versions)        网上查询了一下,说是Xcode自带的svn和Versions以及一些其它工具都不能上传".a"文件。        解决办法如下: 1.打开终端,输入cd,空格,然后将需要上传的.a文件所在的文件夹(不是.a文件)拖拽到...