猛禽的编程艺术

编程是一门艺术

原创 SVN的Local方式:个人源码管理的好办法收藏

SVN的Local方式:个人源码管理的好办法

[Mental Studio]猛禽[Blog]

SVN、Local方式、个人源码管理

今天在QQ群里,有人在打听Delphi的VSS插件,于是被我B4了一番。正好我最近试用了SVN,感觉很不错,于是在群里强力推荐,以致于几乎被认为是SVN的托儿。-_-|||

事实上SVN的确是我用过的最好的源码管理工具,虽然我用过的这类工具并不多,只有VSS、CVS和SVN,其它像PVCS、 TeamSource、ClearCase之类的只有耳闻,因为它们都是商业产品,并且通常用于管理大型的项目,没有机会试用,所以也不知道它们如何。 VSS是我四年前在公司里用过的最早的一款源码管理工具,不过它实在是太一般了,而且也是商业产品。所以除了公司里工作需要,我自己是不用的。从那公司出 来以后,我试用了CVS,这才开始对自己的源码进行管理。作为OSS圈里元老级的源码管理工具,CVS有多强我不用再多说。但是现在SVN这颗新星已经渐 渐要盖过CVS的光芒了,可见SVN是有自己杀手锏的。还有一点很重要的就是:它也是一个开源免费的软件。

SVN全名Subversion。SVN与CVS一样,是一个跨平台的软件,支持大多数常见的操作系统。本文只讨论Windows的情况。其官方网站是:http://subversion.tigris.org(tigris是一个和sourceforge类似的开源网站,与sf不同的是,sf提供的CVS服务,而tigris提供的是SVN服务)。

在介绍SVN的应用前,先讨论一下源码管理的一个重要的基本概念:Repository。Repository 就是源码的集中存放处,所有修改后提交的源码就是保存在这里,并在其中记录所有的修改版本,分支版本,版本合并,以及并发修改处理等。传统的VSS或 CVS都是采用类似C/S的应用方式,有一个独立的服务端来做这些工作。而SVN则要灵活得多,它支持三种方式:独立服务器方式Web服务器方式(这是CVS所没有的)和本文将要着重讨论的Local方式

回到主题上。个人源码管理是我自己提的一个概念,以区别于团队 开发的源码管理。本来像VSS、CVS、SVN这样的工具最主要的功能是用于团队开发时用的,用于处理源码修改的版本控制和并发修改冲突。但对于个人开发 来说,就不存在并发修改冲突的问题了。但个人开发又存在一些新的问题:一般个人没有条件搭一个独立的服务器来做Repository,所以实际上即使是用 了CVS一类,也是服务端客户端在一台机器上,而且也不需要用户权限管理这样的功能。但有时又需要在不同的机器间拷贝源码作开发,这又带来版本混乱的潜在 风险。而SVN的Local方式可以说是最好的解决方案。

我现在的用法就是:在U盘里建立Repository,然后在每台机器上都装了SVN,这样我就不需要一台单独的Repository服务器,只要在任一台机器上把U盘插上即具备了完整的版本控制功能。
 

SVN的安装和使用

因为本文只讨论Windows下的Local方式,所以不需要独立服务器或Web服务器。SVN的客户端和CVS一样,也是命令行方式工作。但在Windows平台下,我们有还别的选择,这就是易用性很好的一个实现:TortoiseSVN(注意:这是一个独立于SVN的项目,类似于WinCVS与CVS的关系)。其官方网站是:http://www.tortoisesvn.org,下载其安装程序:TortoiseSVN-1.1.3-UNICODE_svn-1.1.3.msi(这个文件名是指NT/2k/XP版的)。这个集成发布包中包含了Local应用所需要的全部内容。如果想要中文版,还可以下载这个中文语言包:LanguagePack_1.1.3_zh_CN.exe(这是简体中文包,BTW:从进度上看,繁体中文的完成度还要高些:P)。至于其它的如独立服务器方式,Web服务器方式,命令行方式,Python支持等,都要相应的安装包提供,可自行参考SVN网站说明下载安装。

安装的过程非常简单,只是安装完成后必须重启一下,因为它要集成到Windows的资源管理器中。这也可以算是SVN的又一个大优点(多谢mikeshi指出:CVS也有一个TortoiseCVS,这不算是SVN的优点),虽然CVS也有一个WinCVS不错,但是它毕竟是一个额外的客户端,不如TortoiseSVN这么方便。TortoiseSVN装好后,只要在资源管理器中任何一个文件夹中点右键,即可出现如下图所示的菜单(我打了中文包,所以显示是中文,可以在Settings中选择任何一种已经安装的语言包):

第一步:建立Local Repository

假设现在要开始一个项目,叫做Project1。先在U盘(假设为U:)建立一个文件夹:u:\svn\project1。然后在这个文件夹上点右键,选择:TortoiseSVN|在此创建文件库。有两种方式供选择,如下图:

Berkeley数据库和本地文件系统。本地文件系统方式有点类似于CVS,但实现方式上有所不同。Berkeley数据库据说是目前最好的嵌入式 数据库解决方案,TortoiseSVN默认选择BDB方式,推荐。确定创建后稍等一会即会弹出一个提示窗,说明文件库创建成功。

第二步:创建工作文件夹

在本地硬盘(如D盘)创建一个工作文件夹:d:\working\project1。然后在这个文件夹上点右键,选择:SVN取出。显示如下对话框:

其中唯一需要指定的就是文件库URL,Local方式是使用file协议。确定后显示如下对话框:

点确定后完成创建工作,在文件夹中看到一个隐藏的文件夹:.svn。其中记录了工作文件夹的一些必要信息,功能与CVS的CVS文件夹一样。一个SVN的工作文件夹的图标上将会多了一个绿色的勾,所有被加入Respository的内容都会在图标上加上这样的绿勾,如图:

第三步:开始写程序

现在可以在此工作目录中创建源程序文件或文件夹。在工作文件夹中的任何文件或文件夹(除了.svn文件夹)的右键菜单上都会增加一些项目,下图分别为工作文件夹工作文件夹下的子文件夹工作文件夹中的文件已经提交的文件的右键菜单内容:

从最左边的菜单和最右边的菜单上可以看到,SVN/TortoiseSVN支持了CVS的几乎所有功能,还增加了一些很实用的功能(比如文件/文件夹的重命名,在这CVS里是最让人头疼的问题之一)。这又是SVN的大优点。

如果你的源程序原来就存在,可以立即导入到Repository里:在你原来的源程序文件夹上点右键,选择TortoiseSVN|导入。即可。不过要注意:最好先在TortoiseSVN|设置里设定排除/忽略样式(可以设置文件夹或文件名,支持通配符,区分大小写!!!),或是先删除不必要导入的文件。然后再取出(Checkout)到工作目录即可。

第四步:将写好的程序提交到Repository

选择所有要加入的文件和文件夹,然后点TortoiseSVN|加入。将显示如下对话框(以将本文提交为例):

把它们加入Repository,确定后它的图标上将显示一个“+”号,表示这个文件已经加入,但还未提交。再在当前文件夹上点右键,选择SVN提交即可。将显示如下对话框(提交本文,其中的Repository是我实际使用的)

成功提交后,它的图标上也将显示一个前面所示的那样的绿勾。

第五步:日常使用

无非是重复前面的加入/提交等操作。如果在其它机器上使用,则需要重新创建工作目录,并取出(Checkout)Repository中的源码。如果同时在多台机器上使用,则需要使用SVN更新功能来将此工作文件夹中的内容更新为Repository中的相应版本。

更多的功能请参考联机帮助及网站提供的其它文档资料。
 

最后祝大家都能体会到SVN所带来的方便和愉快。

[Mental Studio]猛禽 Mar.17-05

发表于 @ 2005年03月18日 10:36:00|评论(loading...)

新一篇: .net神话续篇 | 旧一篇: 在这样的世界里,没人会不头晕的--关于最近的.net信任危机事件

用户操作
[即时聊天] [发私信] [加为好友]
猛禽
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
猛禽的公告
本站作者:猛禽
号:老鸟,别号:大叔,英文名:Raptor。

Creative Commons License
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
联系方式:

我常用的Extensions

微笑图书室 多背一公斤

文章分类
收藏
    0. 个人链接
    1. 猛禽的河蟹BLOG(RSS)
    2. 寻找世界的美丽(RSS)
    3. Mental Studio-个人主页(RSS)
    5. 猛禽专栏-CSDN上的个人专栏
    6. 猛禽文档-CSDN个人技术文档
    7. CSDN电子报
    1. CSDN BLOG
    1. 令狐虫
    2. 韩磊(RSS)
    3. lxpbuaa(桂枝香在故国晚秋)
    4. 一竿残照.金棣@CODELPHI
    5. deadcat's blog
    6. gigix(透明思考)
    7. ozzzzzz
    8. 蝈蝈
    2. 技术BLOG
    chechy
    CoolSlob
    FrameSniper(FS)
    hkbarton
    leeon
    SnowFlacon
    小伍
    小小
    小眼镜
    我的ACE,TAO
    摩托
    百合MM
    3. 洋人BLOG
    Allen Bauer
    Anders Ohlsson
    Danny Thorpe
    Don Box
    Herb.Sutter
    James Gosling
    Martin Fowler
    存档
    软件项目交易
    Csdn Blog version 3.1a
    Copyright © 猛禽