本节向大家讲解一下如何用SVNServe建立SVN服务,在学习SVN的过程中你可能会遇到SVN服务问题,大家知道SVN可以在多个操作系统中搭建,那么SVNServer如何建立SVN服务呢,本文会给你一一讲解,下面是具体的介绍。

subversion是一个非常好的版本控制系统。如果你对版本控制这个概念不太了解的话,我来简单解释一下。比如我有一个项目,有几百个文件,包括项目的相关文档,图表,和一些视频音频文件,它们都被放在电脑的一个文件夹内。随着项目的发展,文件夹内的会增加新的文档图表等文件,而老的文件也会被修改,同时也许会有一些文件会被删除。在版本控制系统下,每一次对该项目文件夹下的改动,都会被记录,如果哪个文件被删错了,或是想把文档恢复到以前的版本,可以轻而易举的达到。更了不起的是,如果该项目被一个团队来执行,该团队的每一个成员都可以对项目内的文件进行管理和同步,这样就可以保持大家永远onthesamepage.
如果我说的不清楚,可以参考一下GoogleDocs的revision功能,对于一篇文档,你可以回到以前的版本。这个就是一个简单的版本控制。本质上说,subversion干的活和GoogleDocs干的一样,但不同的是,subversion使用上更加灵活,功能上更加强大。
对于普通的个人应用,建立subversion服务器完全可以在自己的电脑上进行,而且非常简单,因为完全不用去考虑安全的因素,所以也不必设置相关的验证身份的程序。如果想把“项目文件夹”(我不知道应该怎么翻译,以下改称repository或repo)放在局域网上,甚至互联网上,就相对复杂一些了。
除了这篇序言,我准备分三篇说说如何建立subversion服务器,Windows和Linux都适用,因为这几天我一直都在Linux下,例子就举Linux下的,Windows下也是一样的,只需把路径格式换成Windows的就可以了。
建立自己的Repository
基础知识
在SVN服务介绍时SVN下有两个概念要清楚,一个是repository(以下简称repo),一个是workingcopy(以下简称wc)。前者是项目所在的地方,后者是你做修改的地方,两者的内容可以完全一样,也可以不完全一样,两者在电脑上一般都表现为文件夹或目录。你在wc里所做的改动可以commit到repo中,如果你成功把wc中的内容commit到repo中,那么repo就会自动更新一个版本(revision)。如果不进行commit操作,你在wc上做的任何修改对不会对项目产生任何影响。如果你愿意,可以随时把wc替换为任何一个revision(包括以前的老版本)。
要使用svn就要先安装,ubuntu的用户很简单,直接在终端处输入:
sudoapt-getinstallsubversion
就完成了,Windows需要到下载页面下载Windows版本,我建议下载.zip包,直接解压就可以使用了。
在windows下使用最好把svn的执行文件路径加入到PATH这个环境变量中去,以便能够在任何路径下都可以正常使用,你很快就能发现,这点很重要。
建立自己的repo
假设我要正在制作一个wordpress主题,我需要对制作过程中的文件建立一个repo,以便在需要时可以随时“回到过去”。制作中的主题所在的目录为/foo/bar,我准备在/home/michael下建立一个repo,那么我需要这么做:
#建立一个名为theme的repository
svnadmincreate/home/michael/theme
#把/foo/bar下的内容导入到theme中并建立repo,这个repo的版本号是1。
svnimport-m"第一次导入"/foo/barfile:///home/michael/theme
从此以后,如果在本地电脑上想checkout刚才建立的repo只需在任何路径下输入
#建立一个名为baz的workingcopy
svncheckoutfile:///home/michael/themebaz就完成了一个workingcopy的建立。Windows用户需要把路径格式换成file:///X:/path/to/repo。其中X:为repo的盘符。
在wc中你可以任意修改,如果不满意可以直接用svnrevert命令恢复。在适当的时候你觉得需要把你的修改提交到repo中去了,可以用:
svncommit-m"blahblah"这样就产生了新的版本。”blahblah”是给这个新版本的注解。
SVN命令
我们来看一下SVNServe建立SVN服务中SVN命令。要注意的一点是,在wc下做文件操作时,比如删除或移动文件,不能直接用rm,mv来进行,这样svn不能追踪到文件的变化,你必须使用svndel或是svnmove来完成删除或移动的操作。下面举几个命令的例子:
svnaddfilename#新增一个文件
svnmovefilenamefoo/bar/baz#移动filename到foo/bar/baz下
svnrenamefilename1filename2#给文件改名
跟普通的DOS/Linux命令没什么不同,更多具体的命令可以参考svnbook。Windows用户如果觉得命令行太麻烦,可以用一个名叫TortoiseSVN的图形化前端来代替命令行。
总结
通过以上的内容我们已经可以:
建立repository
导入项目到repo中
建立workingcopy
一些简单的svn命令
以上对个人的小项目来说基本够用了,但如果要用的得心应手还是不行,大家可以用svnhelp命令来查看其它命令的用法。如果你对命令行操作感到不适应,这里尤其建议Windows下的用户使上面提到的TortoiseSVN软件,完全图形化界面,使用非常简单。如果需要帮助,可以看看Lifehacker上的使用指南。
Part1中介绍了在本机上建立repo自用,但如果想把repo放在网上供其他用户checkout,则还需要架设svn服务器--这也是本文的目的。
svn服务器可以用两种方法架设,一种比较简单,使用svn自带的svnserve实用程序,另一种直接利用Apache架设,需要加载额外的模块。svnserve简单够用,我打算在这篇里先说说怎么用它架设svn服务器。
svnserve就包含在subversion的程序包中,你的电脑上安装了subversion就自动有了svnserve这个小型svn服务器。这个服务器跟Apache这个巨无霸比起来简单轻便,使用自己的一套协议,访问时区别于http://前缀,使用svn://前缀。
 

转载于:https://www.cnblogs.com/hankering/archive/2013/05/13/3075294.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐