最新消息:

使用bash从SVN和Git中获取顺序版本号,Windows 下 Git 客户端的选择

bash admin 5010浏览 0评论

在进行自动部署的时候,经常需要用脚本获取程序的最新版本号,下面是我的两个解决方案。

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 客户端的选择

您必须 登录 才能发表评论!