在进行自动部署的时候,经常需要用脚本获取程序的最新版本号,下面是我的两个解决方案。
for SVN
# 获取XML版本的svn信息,这样可以避免不同语言的问题 __xml=`svn info –xml –incremental` # 我们可以获取到2个版本号,一个是最新版本库版本号,一个是自己的提交版本号。删除自己提交的版本号。 __revision=`echo “$__xml”|sed ‘/revision/!d’|sed ‘$d’` # 提取出版本号的数字部分 echo $__revision|sed ‘s/revision=”([0-9]+)”>?/1/’
# 获取XML版本的svn信息,这样可以避免不同语言的问题
__xml=`svn info –xml –incremental`
# 我们可以获取到2个版本号,一个是最新版本库版本号,一个是自己的提交版本号。删除自己提交的版本号。
__revision=`echo “$__xml”|sed ‘/revision/!d’|sed ‘$d’`
# 提取出版本号的数字部分
echo $__revision|sed ‘s/revision=”([0-9]+)”>?/1/’
for Git
Git采用的是SHA散列码作为版本号,因此它没有顺序的版本号。但我们可以通过统计Git版本库的提交次数来获得一个顺序版本号。
# 基准版本号默认是1,可以通过传递一个参数修改 get_version() { local __base=${1:-1} echo $((`git rev-list –all|wc -l` + $__base)) } get_version 7000
# 基准版本号默认是1,可以通过传递一个参数修改
get_version()
{
local __base=${1:-1}
echo $((`git rev-list –all|wc -l` + $__base))
}
get_version 7000
这个版本对网上搜到的那个被普遍转载的版本做了简化和调整。网上那个版本写得比较复杂,例如awk的使用没有必要,而且要统计所有提交,应该用 git rev-list –all 参数,而不是用 git rev-list HEAD。
本文链接:http://zengrong.net/post/1798.htm
Windows 下 Git 客户端的选择,TortoiseGit(乌龟git)保存用户名密码的方法:
windows下比较比较好用的git客户端有2种:
1. msysgit + TortoiseGit(乌龟git)
2. GitHub for Windows
github的windows版也用过一段时间,但还是不太习惯。所以目前仍然青睐与msysgit+乌龟git的组合。TortoiseGit在提交时总数会提示你输入用户名密码,非常麻烦。解决方案如下:
方法一:
设置 -> git 编辑本地 .git/config 增加
[credential]
helper = store
保存,输入一次密码后第二次就会记住密码了
方法二:
1. Windows中添加一个HOME环境变量,值为%USERPROFILE%
2. 在“开始>运行”中打开%Home%,新建一个名为“_netrc”的文件
3. 用记事本打开_netrc文件,输入Git服务器名、用户名、密码,并保存:
machine github.com #git服务器名称
login user #git帐号
password pwd #git密码
在windows上建_netrc
copy con _netrc #创建_netrc文件
#依次输入以下3行:
machine github.com #git服务器名称
login username #git帐号
password password #git密码
在最后一行后输入ctrl+z,文件会自动保存并退出
再次在git上提交时就不用重复输入用户名密码了
使用bash从SVN和Git中获取顺序版本号,Windows 下 Git 客户端的选择
与本文相关的文章
- 个性化你的Git Log的输出格式
- 解决rsyslogd资源占用率高问题
- Could not set limit for ‘nofile’: Operation not permitted
- Error response from daemon: unable to remove filesystem for xxxx
- crontab为何自动中断
- linux shell 实现 四则运算(整数及浮点)
- 使用 proxychains 代理 git 命令
- 一个双网卡导致的网络故障
- svn迁移到git仓库并保留commit历史记录
- Svn 错误以及中文翻译
- 使用stdbuf解决tail -f加管道命令后不能及时输出的问题(IO缓冲的坑)
- nginx和php-fpm连接超时之解决方法