在Windows上使用Subversion

    Subversion(以下简称svn,官方网站为http://subversion.tigris.org)是鼎鼎大名的cvs的继任者,使用方法和cvs几乎一样,而且在管理二进制文件、目录方面比cvs更胜一筹,其作者就是cvs之父,所以完全不用担心从cvs转移到svn上会有任何困难。
    正式基于以上优点,前几天我尝试了一下svn,在Windows上不仅svn client可以使用,而且svn server也非常方便,看来以后就用svn替代cvs吧。
    主要参考的文章是:
    [1] http://www.nedbatchelder.com/text/quicksvn.html
    [2] http://excastle.com/blog/archive/2005/05/31/1048.aspx

    step1: 首先从http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 下载最新的subversion的windows setup安装文件,按照提示一路next下去就可以了。这个安装包就包含了client和server的全部文件,安装后就可以在命令行下使用svn, svnadmin, svnserve等程序了。

    step2: 设置注释编辑器。在系统变量里添加SVN_EDITOR变量,值为任意一个文本编辑器的名字,比如notepad.exe。
    step3: 创建svn repository。比如选择c:\svn_repo作为我们的目录,那就先创建这个文件夹,然后再命令行下输入:
    svnadmin create c:\svn_repo
    注意,这个repository只是一个仓库而已,你可以在里面创建“虚拟文件夹”,每个文件夹下就可以存放不同的module了。
   
    下面介绍如何从网络上访问你的repository。
    svn的地址采用url的方式,如果通过svnserve(后面会介绍)创建网络可访问的服务器,那url地址就是svn://your_ip/module_dir。如果你只想在本地文件系统上访问你的svn repository,那url地址就是file:///c:/svn_repo/module_dir(按照上面例子)。以后不管你import还是checkout,都只需要这个url作为地址,而且登陆一次后,只需要输入一次url地址,svn会自动记住你的url地址,简单吧。下面就只介绍如何设置一个svn网络服务器。
   
    step4: 设置网络服务器的权限。进入到刚才创建的c:\svn_repo,打开conf\svnserve.conf,去掉[general]前的#,去掉auth-access = write前的#,如果你希望匿名用户访问,那就去掉anon-access前的#。去掉password-db前的#。
    step5: 设置用户名和密码。还是在那个目录下,打开passwd文件,去掉[user]前的#。按照已有的例子,添加可访问的用户名及其密码,去掉前面的#。这和cvsnt的做法很不一样,cvsnt要求可访问用户在cvs repository所在机器上必须有windows帐户,这实在太苛刻了……,还是svn的做法更简单,虽然明文密码不是很安全……。
    step6: 启动网络服务svnserve。在命令行下输入
    svnserve –daemon –root "C:\svn_repo"
    然后就可以通过ip地址来访问你的服务器了,假设服务器IP地址是192.168.2.168,那你的服务器地址(也即c:\svn_repo的svn地址)就是svn://192.168.2.168。
    不过svnserve会一直block在命令行上,如果要把它做成一个真正的后台服务程序,还需要一个第三方程序SVNService,可以在http://dark.clansoft.dk/~mbn/svnservice/ 下载。
   
    step7: 创建module的虚拟文件夹。新开一个命令行窗口,输入
    svn mkdir svn://192.168.2.168/proj1
    如果你是第一次登陆服务器,则会提示你输入用户名和密码。
   
    step8: import你的工程。进入到c:\proj文件夹,在命令行下输入:
    svn import . svn://192.168.2.168/proj1
    表示把当前目录下的所有文件(及其子目录)都import到url地址所指定的位置上。

    step9: checkout你的工程。进入到任意一个文件夹下,输入:
    svn checkout svn://192.168.2.168/proj1 testdir
    proj1模块就下载到testdir下了。之后的项目管理方式就和cvs一样了。

    后续问题:
    一台机器上只能跑一个svnserve,也即同一时刻,一台机器只能提供一个repository。当然,你可以通过给svnserve指定不同端口,让一台机器提供多个repository,但是这显然没有cvs那样灵活。不过也许有多repository的功能,但是还没发现。
    如果喜欢gui的操作方式,有TortoiseSVN这个强大的工具。它可以在Windows资源管理器的右建中加入svn的功能。



评论权限被关闭.



赞助商

文章索引模板

好友推荐链接

强力推荐链接

分类目录

   

统计信息

Translator

Chinese (Simplified) flagItalian flagKorean flagChinese (Traditional) flagPortuguese flagEnglish flagGerman flagFrench flagSpanish flagJapanese flagArabic flagRussian flagGreek flagDutch flagBulgarian flagCzech flag
Croatian flagDanish flagFinnish flagPolish flagSwedish flagNorwegian flag          

标签

专利战 世界 中国 为什么 介绍 使用 公司 分析 利用 功能 原谅我红尘颠倒 发现 天涯 如何 实现 工具 应该 慕容雪村 技术 插件 搜索引擎 支持 数据库 文件 方式 时间 服务器 用户 简单 管理 系统 网站 美国 谁的心不曾柔软 进行 部分 问题 AJAX Google LAN Linux MySQL PHP plugin WordPress

热门浏览