Package Generate:获取SVN变更记录生成增量版本包

从SVN到TFS,为了方便生产发布,写了Package Maker,一个基于TFS的增量版本包生成工具。

现在又从TFS切到SVN,于是写了 Package Generate,这个工具比起Package Maker来,少了配件文件,少了通用性。自己用,就随便点。

工具用到了SharpSvn.dll,这个用来以编程接口的形式访问SVN,获取变更集。相对TFS要引用一堆dll来讲,这个SharepSvn还是不错的,一个dll,hold所有。不过,SharpSvn的调用方式与TFS接口的调用方式,还真是差异大大的。

一、授权方面

SharpSvn指定用户名密码,而且网上的示例代码是异步(无人性的),代码跳跃大。TFS则,无需用户名密码,应该是使用了本机登陆过TFS之后的授权。在坑里摸索之后,个人建议使用以下方式给SharpSvn指定svn登陆帐号:

SvnClient client = new SvnClient();

client.Authentication.ForceCredentials(“zhongdaiqi”, “zhongdaiqi”);

二、变更集、变更项

SharpSvn与TFS对于同一事物采用了不同的描述,在SharSvn里,看到的是log,在TFS里看到的是ChangeSet,在接口设计方面,个人觉得还是TFS的接口更为漂亮。SharpSvn的技口调用方式使用了out传参,有点怪异,前几年,见一个同事这个写过,现在再次见到,也觉得很奇怪。

获取SVN变更集(变更记录)需要这么获取:

Collection<SvnLogEventArgs> logItems;
client.GetLog(localDir, out logItems);

三、工程名提取

这个源自最初写的PackageMaker,采用正则提取。

prjNamePatten = @”^/wms/branches/Rattan-WMS/(.*?)/[\s\S]*$”;

四、更新说明自动合成

更新说明自动由变更集注释合并来,省去人工编辑

五、配置文件检测

如果配置文件发生过变化,则会生成一个txt警示配置文件发生变化。

上个图:

软件界面:

image

生成结果:

image