For Blue Sky, Learning To Use SVN

本文介绍了如何使用 Google 的 SVN 服务器进行项目托管,并详细解释了 SVN 的基本使用方法,包括 Eclipse 插件的安装与配置流程。同时,文中还探讨了 trunk、branches 和 tags 的概念及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1. Google svn 服务器使用:
    1. http://code.google.com/
gmail登入。>后点击>Project Hosting
    2.
进入>> http://code.google.com/hosting/  >后点击>Create a new project
    3.
填入必要的项目名,描述等确定。就可以了
    4.
确定成功后 ->Source
    5.
eclipse的打开新建一个project->team->share Project->svn
    6.
后面根据 google source 上的svn提示,这我就不多说了。一般的svn http url

 

2. SVN的使用

1.      SVNEclipse插件下载,站点在http://subclipse.tigris.org/files/documents/906/44501/site-1.4.7.zip

2.      Eclipse中装入插件

3.      windowshow view othersvnSVN Repositories

4.      右键、newRepository Location

5.      url中输入googleSVN服务器地址,确定

6.      save password、输入用户名和密码,确定

7.      branches tag以及brunch的使用查看附件1

8.      如果现在主程序是空,那么就新建一个项目后,右击、teamshare project

Svnuse existing Repository Location、使用特定的目录、选择trunkfinish,这就共享了工程了。刷新(F5),可以在trunk看到发布的工程

9.      如果要在这个工程上进行开发,那么就选中trunk中的那个工程,右击、check out

10. 选择工程对话框或者就用默认的配置,新起一个不冲突的工程,这样就新建起这个工程了。

11. 要查看是否有冲突,Team >Synchronize with Repository,就会显示同步中与你本地文件不同的文件了。

12. 如果你想提交你修改的,team-update或者commit

13. Team>Lockunlock可以对文件解锁

14. Subversion中,很容易创建新的tagbranch。你可以使用tag来标识一个特定的版本(使用一种可读的名字,例如"Release 1.0")。;而一个branch用于新的开发工作而不影响主源码基(称作trunk)。在一个branch上的开发仍会继续进行,直到开发者已经为把变化集成回主trunk作好准备

15. 右击check out的工程,teamBranch/Tag,将这个branch或者tag建到对应的目录下

16. 如果你想对工程进行其他的修改,又怕出错,你就用branch,右击工程、teamswitch to another branch,选择一个branchOK了。

17. Team->show history是显示记录

 

 

 

附件一

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

 

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

 

一般情况下,

tag,是用来做一个milestone的,不管是不是release,都是一个可用的版本。这里,应该是只读的。更多的是一个显示用的,给人一个可读(readable)的标记。

branch,是用来做并行开发的,这里的并行是指和trunk进行比较。

 

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

 

对于svn还要注意的一点,就是它是全局版本号,其实这个就是一个tag的标记,所以我们经常可以看到,什么什么release,基于xxx项目的2xxxx版本。就是这个意思了。但是,它还明确的给出一个tag的概念,就是因为这个更加的可读,毕竟记住tag_release_1_0要比记住一个很大的版本号容易的多。

 

 

 

branches:分枝

 

当多个人合作,可能有这样的情况出现:John突然有个想法,跟原先的设计不太一致,可能是功能的添加或者日志格式的改进等等,总而言之,这个想法可能需要花一段时间来完成,而这个过程中,John的一些操作可能会影响Sally的工作,John从现有的状态单独出一个project的话,又不能及时得到Sally对已有代码做的修正,而且独立出来的话,John的尝试成功时,跟原来的合并也存在困难。这时最好的实践方法是使用branchesJohn建立一个自己的branch,然后在里面实验,必要的时候从Sallytrunk里取得更新,或者将自己的阶段成果汇集到trunk中。

 

svn copy SourceURL/trunk DestinationURL/branchName -m "Creating a private branch of xxxx/trunk."

 

trunk:主干

 

主干,一般来说就是开发的主要呆的地方,

 

tag:

 

在经过了一段时间的开发后,项目到达了一个里程碑阶段,你可能想记录这一阶段的代码的状态,那么你就需要给代码打上标签。

 

(svn cp file:///svnroot/mojavescripts/trunk file:///svnroot/mojavescripts/tags/mirrorutils_rel_0_0_1

-m "taged mirrorutils_rel_0_0_1")

 

另有一说,无所谓谁对谁错。

 

trunk:表示开发时版本存放的目录,即在开发阶段的代码都提交到该目录上。

 

branches:表示发布的版本存放的目录,即项目上线时发布的稳定版本存放在该目录中。

 

tags:表示标签存放的目录。

 

在这需要说明下分三个目录的原因,如果项目分为一期、二期、三期等,那么一期上线时的稳定版本就应该在一期完成时将代码copybranches上,这样二期开发的代码就对一期的代码没有影响,如新增的模块就不会部署到生产环境上。而branches上的稳定的版本就是发布到生产环境上的代码,如果用户使用的过程中发现有bug,则只要在branches上修改该bug,修改完bug后再编译branches上最新的代码发布到生产环境即可。tags的作用是将在branches上修改的bug的代码合并到trunk上时创建个版本标识,以后branches上修改的bug代码再合并到trunk上时就从tagsversionbranches最新的version合并到trunk,以保证前期修改的bug代码不会再合并。

 

文章来自[SVN中文技术网]转发请保留本站地址:http://www.svn8.com/svnpz/20090114/2023.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值