需求

在做打包时,需要获取本地svn仓库的版本号,如下所示:

下面是我试过的几种做法

SubWCRev

使用SubWCRev.exe(TortoiseSVN自带的小工具),用法简单,但获取到的版本号有时候会有一定的出入,比如svn的日志在58之后下个版本就是60时,就会有出入。其它情况下是正常的。

用法:通过指定的template,进行替换

svninfo.template的内容如下:$WCREV$

svninfo.txt

用法:SubWCRev.exe xxx路径 xxx路径/svninfo.template xxx路径/svninfo.txt

运行之后就会根据svninfo.template中的模板自动往svninfo.txt中替换成相应的内容

参考:http://blog.csdn.net/analogous_love/article/details/47293509

SVN 命令

使用svn 自带的命令,可以打印出来,但是不会在bat中处理这些字符串,还是放弃了

如下:

svn info 查看当前的信息

svn log –l 1 查看最后的一个提交信息

找到一个可用的bat语句如下:https://github.com/zhaoqingqing/blog_samplecode/blob/master/workflow-tools/BAT/bat%E8%8E%B7%E5%8F%96svn%E7%89%88%E6%9C%AC%E5%8F%B7.bat

for /f "tokens=5" %%i in ('SubWCRev  e:\3dsn\client\client_demo_ios\^|find "Last committed at revision"') do set version=%%i

echo %version%

pause

sharpsvn

官网:http://sharpsvn.open.collab.net/

不得不吐槽下,这个文档真的是很少!

下面是我写的获取本地及服务器版本号

private static string ServerUrl = "http://svn2.666.com/client/client_demo/";
private static string localPath = @"e:/xxx/client/client_demo_ios/"; static void Main(string[] args)
{
//获取服务器最新的版本号
Uri url = new Uri(ServerUrl);
SvnRemoteSession svnRemoteSession = new SvnRemoteSession(url);
long lastReversion = 0;
svnRemoteSession.GetLatestRevision(out lastReversion);
Console.WriteLine("服务器版本号:{0}",lastReversion); //获取本地版本号
using (SvnClient client = new SvnClient())
{
SvnPathTarget svnPathTarget = new SvnPathTarget(localPath);
SvnInfoEventArgs info;
client.GetInfo(svnPathTarget, out info);
Console.WriteLine("本地版本:{0}", info.Revision);
} }

自动获取svn的版本号的更多相关文章

  1. VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#)

    原文:VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#) 在开发项目时,需要知道当前发布的到底是哪个版本,比较好的方式就是获取SVN的版本来作为项目的版本.项目版本一般由主版 ...

  2. VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中

    在开发项目时,需要知道当前发布的到底是哪个版本,比较好的方式就是获取SVN的版本来作为项目的版本.项目版本一般由主版本.次版本.内部版本.修改版本四个部分组成,我们获取的SVN版本就作为修改版本即可. ...

  3. windows环境自动获取SVN仓库当前版本

    如果我们的软件能够自动引入SVN修订号(仓库版本号),那么我们开发软件的时候就能快速定位bug出自哪个SVN版本.那么如何让软件直接自动生成并引用SVN版本号呢? 我们可以使用SVN info命令,在 ...

  4. 在C++程序中自动加入svn版本号

    原创文章,欢迎阅读,如果您想转载,请在第一行醒目注明原作者和原始链接. 为了方便追查和确认软件bug等问题,给软件或者库赋予版本号是个好办法. 最简单的版本号管理是记录编译时间: cout<&l ...

  5. 工具——代码中自动生成SVN版本号

    本节和大家讨论一下程序集版本最后一位使用SVN版本号的自动生成方法,这里就向大家简单介绍一下.在进行自动部署的时候,经常需要用脚本获取程序的最新版本号.现在我们定义每个程序集的版本信息的最末段表示SV ...

  6. C#:通过Visual Studio项目预生成命令获取SVN版本号

    之前有一个winfrom项目,想要通过获取SVN版本号作为程序的内部编译版本号.网上也有各种方法,但没有一篇行得通的方法.于是我经过一系列研究,得出了一些经验,特总结成一篇博客. 方法一:通过SVN命 ...

  7. spring boot 发布自动生成svn版本号

    通过Jenkins构建发布spring boot项目时,常常有需求,需要把Svn的版本号更新到项目的版本上,通过有两种解决方案: 1. 通过shell命令对配置文件中的指定字符进行替换, 如: 配置文 ...

  8. 批量自动更新SVN版本库 - Windows

    开发过程中每天都要从SVN代码库里一个一个的update各个项目代码,不仅效率实在是低,也不符合程序员的"懒"精神,由于是在Windows环境做开发,自然就想到了使用bat来实现自 ...

  9. Appium自动获取 Android 设备 id 和包名等信息(python)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/zhusongziye/article/d ...

随机推荐

  1. js forEach跳出循环

    假设当我们只需知道某个数组有没有某个属性,如果找到了直接跳出循环,省略掉剩下的循环步骤是较优化的操作,但是for中是可以利用break跳出循环,但break在forEach中无效,那么forEach能 ...

  2. Git 撤销所有未提交(Commit)的内容

    撸了好多代码,但是突然设计改了(~~o(>_<)o ~~):或者引入个第三方库,后来又发现用不着,想删掉,但文件太多了(比如几百个):那,怎么办呢,都不想了...Git 比人聪明,所以能很 ...

  3. LeetCode Animation 题目图解汇总(持续更新中...)

    我会尽力将LeetCode上所有的题目都用动画的形式演示出来,期待与你见证这一天! GitHub Repo:LeetCode Animation Follow: MisterBooo · GitHub ...

  4. 使用IIS调试ASP.NET网站程序

    在实际的开发当中,相信很多的开发者在开发调试ASP.NET网站时候都是直接通过Visual Studio工具的编译运行来调试的. 一般情况下,这种调试方式也不会有多少问题,但有时候我们会发现这样的一个 ...

  5. Spring Day 2

    **Spring框架的IOC之注解方式的快速入门** 步骤一:导入注解开发所有需要的jar包 步骤二:创建对应的包结构,编写Java的类:接口到实现类 步骤三:在src的目录下,创建applicati ...

  6. JQuery官方学习资料(译):操作元素

      获取和设置元素的信息     有很多种方式可以改变现有的元素,最常见的是改变HTML内容或者元素的属性.JQuery提供了简单的夸浏览器的方法来帮助你实现元素信息的获取和设置. .html():获 ...

  7. 无法将文件“..\bin\Debug \**.dll”复制到“bin\**.dll”。对路径“bin \**.dll”的访问被拒绝。

    1.方法一: 将bin的只读属性去掉,就OK. 2.方法二: 直接关掉项目,重新打开.

  8. ql语句中left join和inner join中的on与where的区别分析

    sql语句中left join和inner join中的on与where的区别分析   关于SQL SERVER的表联接查询INNER JOIN .LEFT JOIN和RIGHT JOIN,经常会用到 ...

  9. linux开启新端口

    1.使用vi或者vim打开iptables配置文件: vi /etc/sysconfig/iptables 2.在编辑页面新增加信任端口: -A INPUT -m state --state NEW ...

  10. endpoint 异常

    原文地址:http://blog.csdn.net/ltylove2007/article/details/6128333 其他信息: 无法加载协定为“ServiceReference1.WebSer ...