Username: Password:

从CVS到subversion
来源: ChinaUnix博客  作者: ChinaUnix博客   发布时间:2008-01-01 18:17:00


                                                                使用了几天CVS后,也许最近两年一直使用clearcase的缘故,总感觉几年前用过的CVS有些不习惯,上网查了查,发现subversion正在逐步取代CVS。花了一天的时间,终于对subversion的基本操作有了初步的认识。本文仅仅是根据我这一天的使用情况进行阐述,如有不当,请见谅

1. Install SubVersion
最新的Linux发行版一般都默认安装subversion,因此这里仅仅说明windows下的安装过程。
用户能够直接从
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
下载最新版本的subversion,我下载的是最基本的软件包:
                            svn-win32-1.4.6.zip。
下载完成后,将该软件包直接解压到系统中的一个路径下即可,如c:\svn,此时完成的路径是:c:\svn\svn-win32-1.4.6。
为了方便使用命令行访问svn,将c:\svn\svn-win32-1.4.6\bin加入到系统path环境变量中。
2. Create Subversion Repository
和CVS类似地是,svn提供了一个方便快捷的方式完成repository的创建:
               
               
               
               
               
               
                svn create c:\svn\svn_repository
但是需要指出的,在Linux下安装subversion,和安装CVS过程不同的是,并无需root权限,连同特定用户连同用户组的需要。
3. Import your project
向SVN Repository中导入project,先进入到您的项目文档夹,然后执行如下命令:
               
               
               
               
               
               
               
svn import -m "Create Initial Version" .  file:///c:/svn/svn_repository/project
其中,file为svn提供的一种访问本地repository的schema,而"."是指将当前目录导入到repository中的project项目中。
此时,您即可访问该repository了:
               
               
               
               
               
               
               
svn co file:///c:/svn/svn_repository/project project
此命令将repository中的项目checkout到当前路径的project目录下。
假如对project中的某个文档进行了修改,能够通过如下命令commit到repository中去:
               
               
               
               
               
               
               
svn ci -m "" filename
需要注意的是,参数-m是用来对所提交文档的文字描述,假如不使用该参数的话,则系统会自动使用环境变量SVN_EDITOR所指定的文本编辑器来提示您输入描述信息。
4. Manage SVN
4.1 Access SVN
除了通过上述的file schema来访问local host上的repository外,SVN还提供了另外三种通过网络访问远程或本地的repository的schema:svn, svn+ssh, 连同和apache结合使用的http访问方式。本文仅仅涉及svn的访问方式,另外两种方式用户在实际使用中能够再进一步研究。
通过svn schema访问repository是SVN提供的一种方便易用的访问方式。这种方式需要启动SVN提供的svnserve作为SVN的服务器,监听SVN客户端的请求。启动svnserve的常用命令格式如下:
start /B svnserve -d -r c:\svn\svn_repository
这个命令用户能够直接在windows命令行终端输入即可启动svnserve进程,并自动在后台执行。但是写入一个bat文档执行时,弹出的窗口却不能自动关闭

假如用户希望能够在系统启动时自动运行该进程,svnserve提供了参数--service,允许用作为系统服务运行。但是作者将svnserve加载为系统的服务,并为该服务提供这个命令参数启动时失败

无奈之下,只好google了半天,另辟蹊径,通过vbs脚本完成这个任务:
在C:\svn\svn-win32-1.4.6\bin下创建run_svn_service.vbs:
               
                set ws=wscript.createobject("wscript.shell")
ws.run "C:\svn\svn-win32-1.4.6\bin\runserver.bat",0
在同一目录下创建bat脚本runserver.bat:
svnserve -d -r c:\svn\svn_repository
然后,创建执行脚本start_svn.bat:
wscript C:\svn\svn-win32-1.4.6\bin\run_svn_service.vbs
最后,将此脚本的链接放入系统的startup中即可。
svnserve启动后,即可通过如下命令访问SVN:
svn co svn://127.0.0.1/project project
当然,假如在别的机器上访问,只需将127.0.0.1修改为实际的IP地址。
此时,SVN提供的访问权限策略控制开始生效,默认情况下,匿名用户只有读的权限,假如执行commit操作,SVN将会提示认证失败的错误信息。为了解决这个问题,需要修改repository下的conf/svnserve.conf文档,将anon-access修改为write,然后重新启动svnserve即可。
同时SVN还支持对授权用户的访问权限控制,这里不再赘述。
4.2 Backup Repository
SVN提供了命令dump连同load完成repository的完全备份和恢复。
在备份时使用参数--incremental --revision xxx:yyy则可执行从版本xxx到yyy的增量备份。
5. 总结
经过试用subversion,主要有以下几点感觉:
1) 基本操作指令和CVS类似,对于CVS用户向subversion迁移门槛很低。
2) 安装比CVS更简单,甚至在windows下安装只需要unzip一个压缩包即可。而对于大多数CVS用户而言,接触的更多都是Linux/Unix下的CVS。
3) 访问方式比CVS更加多样化。subversion在提供基本的file、svn连同svn+ssh三种访问方式外,另外提供了和Apache搭配使用的http访问方式,为远程用户通过web访问提供了便利。
4) 授权管理比CVS更加简单灵活。CVS主要使用安装系统的用户权限进行访问控制,而subversion提供了更加简单灵活的访问权限控制,在启动svnserve前,通过修改repository的svnserve.conf文档,即可自己定制repository的访问权限,比如修改访问repository的用户及密码。
5) 操作命令比CVS更加完善,如blame命令能够帮助您找出到底是谁做的错误的修改!
6) 同时,备份连同恢复工具也更加完善,便于系统的管理和维护。
7) 工具cvs2svn将帮助您方便地从cvs迁移到SVN中来

更细致的体会在以后的使用中将会周详说来。
综上所述,从CVS走向SubVersion应该是绝大多数CVS用户的必然的选择。
               
               

本文来自ChinaUnix博客,假如查看原文请点:http://blog.chinaunix.net/u1/48729/showart_459749.html

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅