SVN checkout with VisualBuild

SVN 基本操作

  • cleanup

这个操作清理整个所选择的文件夹及其子文件夹,但是它不是清理垃圾文件什么的,这肯定不是svn的工作。它也不会把冲突自动解决,如果能自动解决,在更新的时候为什么不做。如果你在某个svn操作时强制中断了,比如svn的操作程序停止相应或者以外终止,就有可能导致文件夹处于锁定状态,这时需要清理。如果你的文件夹中的很多文件时间戳发生了变化,也最好执行以下cleanup这样可以加速svn操作的执行.

  • checkout

作为svn的用户,拿到一个svn地址,我们首先做的一个事情就是svn checkout,将svn上的关联到本地的一个文件夹中。这个文件夹最好是空的文件夹,或者确保没有和svn上相同名称的路径,当然这也说明这个操作是个连线操作。我们一般在执行checkout的时候只要给出svn的URL和本地的路径两个内容就可以了。这样svn上最新的数据会被传送到这个文件夹,目录结构会自动建好,svn上的文件会自动出现在对应的文件夹中。当然如果你愿意也可以选择一个旧的版本,或者只包含一层目录或者只是这个文件夹中的文件。或许你发现了,每一个文件夹中比服务器上的内容多了个.svn文件夹,这个文件夹中存放着文件夹的属性,这个文件夹中的每个文件的属性、版本还有对应版本的一个副本。

  • update

这个操作就是将本地的的数据更新到svn上的某个版本,默认的操作是更新到最新版本,这个操作也是个连线操作。在这个过程中如果有人删除了文件,它会你机器上的文件删除,如果别人改了某个文件,会将这个文件更新。如果你修改了某个文件,别人删除了它,则这个文件不会被删除,只会和svn没关系了。如果你修改了某个文件,而这个文件别人也修改了,在更新的过程中就会试图自动将你的修改合并,如果成功,他的内容就是你修改的和别人修改的内容的并集,如果失败,svn就会将这个文件标记为冲突。冲突的问题我们放在下个说。

  • revert

如果你的修改出现了问题,或者添加或者删除了错误的文件,等等想还原操作,在commit之前可以执行revert操作,退回某步操 作,这样这些修改都会被还原到基础版本状态。这个操作不会和svn服务器有关系,不会连接服务器也不会更新文件,只是简简单单的回复到基础版本。

 

Checkout with VisualBuild

VisualBuild是使用svn.exe来工作的,所以,在开始之前,要保证你已经安装的SVN Server.

在VisualBuild的安装路径下面,有很多example,其中有一个就是关于SVN的: Subversion.bld(在这个路径下...\VisBuildPro8\Samples\Version Control)。

参考这个example,能够很快得出怎样怎样设置参数, 我在这里就不做陈述。但是我认为,在做持续集成的时候,checkout不是理想的命令,以下3步是必须的:

  1. cleanup
  2. revert
  3. update

在配置过程中,很可能会遇到SVN权限认证的问题。

svn: E230001: Unable to connect to a repository at URL
'https://svn.mydomain.com/svn/prod/trunk'
svn: E230001: Server SSL certificate untrusted

 或者:

Error validating server certificate for '... ...':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: dspeng.spd.analog.com
 - Valid: from Fri, 06 Mar 2009 07:44:54 GMT until Mon, 04 Mar 2019 07:44:54 GMT
 - Issuer: DSP Tools, Analog Devices, Inc., Norwood, Massachusetts, --
 - Fingerprint: 00:d2:02:59:c4:c2:86:b6:01:c3:5f:5f:ab:65:78:b0:24:34:66:7c
(R)eject or accept (t)emporarily? svn: OPTIONS of '... ...': Server certificate verification failed: issuer is not trusted (... ...)

解决方法如下:

  1. Delete C:\Users\"USERNAME"\AppData\Roaming\Subversion\auth\svn.ssl.server
  2. Open the command prompt and run       svn list https://.../svn/...
  3. Accept certficate permanently by entering p.

 

使用Jenkins

如果你使用Jenkin来做持续集成,那么就没有必要在VisualBuild里面做SVN相关的操作,应为Jenkins本身就有这个功能。用Jenkins来操作SVN,可以在build失败的时候,给出详细的SVN log,告诉你,是谁,提交的什么东西,有可能是使得build失败的原因。配置好邮件自动发送功能之后,发送的邮件里面也会包含SVN的log信息。

 

posted @ 2013-12-17 15:38  炉石传说  阅读(1180)  评论(0编辑  收藏  举报