乐奇 Rokid 开放社区 kettle etl 源代码中的svn介绍

kettle etl 源代码中的svn介绍

outget1  ·  2009-10-15 20:52:00 发布

 

代码下载: svn://source.pentaho.org/svnkettleroot/Kettle/trunk

1.你安装svn工具

2.只要双击以上代码,或者打开svn工具输入以上地址就可以看到svn源代码目录,见下图:

 

 

SVN tag和branch的选择及应用

在SVN中Branch/tag在一个功能选项中,在使用中也往往产生混淆。

在实现上,branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别。至于何时用tag,何时用branch,完全由人主观的根据规范和需要来选择,而不是强制的(比如cvs)。

一般情况下,
tag,是用来做一个milestone(进程碑)的,不管是不是release,都是一个可用的版本。这里,应该是只读的。更多的是一个显示用的,给人一个可读(readable)的标记。
branch,是用来做并行开发的,这里的并行是指和trunk进行比较。

比如,3.0开发完成,这个时候要做一个tag,tag_release_3_0,然后基于这个tag做release,比如安装程序等。trunk进入3.1的开发,但是3.0发现了bug,那么就需要基于tag_release_3_0做一个branch,branch_bugfix_3_0,基于这个branch进行bugfix,等到bugfix结束,做一个tag,tag_release_3_0_1,然后,根据需要决定branch_bugfix_3_0是否并入trunk。

对于svn还要注意的一点,就是它是全局版本号,其实这个就是一个tag的标记,所以我们经常可以看到,什么什么release,基于xxx项目的2xxxx版本。就是这个意思了。但是,它还明确的给出一个tag的概念,就是因为这个更加的可读,毕竟记住tag_release_1_0要比记住一个很大的版本号容易的多。
一直以来用svn只是当作cvs,也从来没有仔细看过文档,直到今天用到,才去翻看svn book文档,惭愧 

需求一: 
有一个客户想对产品做定制,但是我们并不想修改原有的svn中trunk的代码。 

方法: 
用svn建立一个新的branches,从这个branche做为一个新的起点来开发 
Java代码 
  1. svn copy svn://server/trunk svn://server/branches/ep -m "init ep"  


Tip: 
如果你的svn中以前没有branches这个的目录,只有trunk这个,你可以用 
Java代码 
  1. svn mkdir branches  

新建个目录 


需求二: 
产品开发已经基本完成,并且通过很严格的测试,这时候我们就想发布给客户使用,发布我们的1.0版本 
Java代码 
  1. svn copy svn://server/trunk svn://server/tags/release-1.0 -m "1.0 released"  


咦,这个和branches有什么区别,好像啥区别也没有? 
是的,branches和tags是一样的,都是目录,只是我们不会对这个release-1.0的tag做修改了,不再提交了,如果提交那么就是branches 



需求三: 
有一天,突然在trunk下的core中发现一个致命的bug,那么所有的branches一定也一样了,该怎么办? 
Java代码 
  1. svn -r 148:149 merge svn://server/trunk branches/ep  

其中148和149是两次修改的版本号。 


其他的呢?看文档

 

 

更多推荐

  • 浏览量 5484
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献3条内容