搭建简单的SVN系统
 

2009-03-20 作者:benwhite 来源:benwhite的blog

 

SVN用来做什么?很多人直接反应就是软件开发呗,什么源代码,项目文档,都可以用它进行版本控制。是的,在我们实验室里,pulsar小组就是这么做的。

但是SVN用途不仅如此,它还可以作为我们个人的文章,作品管理系统,譬如毕设论文,发表的论文,因其经常性的修改,使之非常适合使用SVN。当然,还有剧本写作,网站开发,多媒体创作等等。只要是涉及频繁修改,且容易出现返工,混乱的,都可以使用SVN。

那么下面我们就来实战一下。因为SVN的使用非常简单高效,越来越多的人投入它的门下,相信你也可以。SVN真的,真的很容易~~

1 下载安装

服务器端软件:VisualSVN 整合了svn和apache 免去了繁琐的人工配置,直接安装使用即可。http://www.visualsvn.com/server/download/ 安装完成后,会让你选择版本库repository的存放位置。随意选择即可。然后会弹出管理界面,暂时不用管。

客户端软件:TortoiseSVN 最流行的客户端,可爱的小乌龟 讲svn的命令 可视化操作 http://tortoisesvn.net/downloads

2 基本使用(这里我们譬如创建一个毕设论文版本管理)

VisualSVN安装后,会作为windows服务自己启动,你不用去操心。然后你可以去它的管理界面(在软件安装后,它会自己打开的,以后到安装目录\bin\VisualSVN Server.msc)做以下操作:

a 新建repository(版本库)给一个名称譬如:thesis (其中create default structure 不用勾选 因为我们目前简单使用而已)版本库就是服务器端的数据库,存储数据用的。

b 新建一个user,给出名字和密码即可 (留给客户端使用的)

ok 服务器端已经设置好了,我们去客户端看看

a 去任意地方 譬如 我的文档 作为check-out的位置(也就是将来你编辑论文的地方,但是你要先checkout一下 告诉svn服务器,嘿,我准备在这里设立一个基地了~)鼠标右键 点击checkout

如图,第一行是要检出的地址,你从visualSVN里可以看到服务器的地址,然后在后面加上thesis即可,就是说,1我要从服务器这个地方检出东西,当然目前是空的。2 以后我的东西也都更新到这个地址。这是客户端和服务器签订的协议,一次成效,将来就不必费心再设置了。

不出意外的话 接下来就会弹出如下窗口:

填写用户信息,记得勾选save suthentication 相当于记住我,以后我就不再输入验证信息了

然后 小乌龟告诉你 成功 点击ok 即可

然后你就可以看到 我的文档下面出现了thesis文件夹

一个绿勾表示 这个目录当前和版本库同步。

b 添加文件

进入thesis文件夹 新建word文件 或者从什么地方拷贝过来 譬如 "软件配置管理的研究.doc"

我们发现 图标上有一个问号,说明目前这个文件属于黑户口,svn不知道它是什么东东。于是你要登记一下

选中该文件,右键 tortoiseSVN->add 点击ok 确定添加。

但是 你不要以为这样子就已经将这个文件 加到服务器端了,事实上,目前我们只是在本地的svn信息里添加,要添加到服务器端,需要commit一下。鼠标右键 SVN commit (你可以写如注释说明,这个版本目前情况,方便后面回退)点击ok 添加完毕。

一切都完毕后,则绿色表示正常了。以后你只要修改完doc后,不断去commit即可,SVN会把每次的版本都记录下来。

c 回退。譬如你突然发现,今天的论文越改越乱了,怎么办?这个时候就是SVN发威的机会:你可以退回任意一个版本,就像时光倒流一样。右键tortoiseSVN-->update to revision 你只要填入你想要回退的版本就可以马上恢复。这个时候你以前提交时写的说明就很有帮助了。

d 但是,譬如你会退到前天的版本,那么你修改以后,当你commit的时候,你就会碰到

这是因为版本库里有版本数更高的版本(昨天的版本,今天的版本)存在,当你要commit时,两者就冲突了。于是SVN要求你update

但是当你update时你又发现:

这是因为,update命令会将版本更高的版本来覆盖未修改的低版本,但是你目前的这个版本(前天)又已经修改过了,所以SVN提醒你,冲突了!!!SVN会在目录里拷贝冲突版本的临时DOC文件,让你来解决冲突。

对于你来说,昨天和今天原来的版本,已经不再需要,于是,你删除这个几个临时文件,重新commit,成功!!!!!!

不用担心,昨天和今天原来的版本,仍然存在于版本库。刚刚commit的版本数比这两个都要高。所以你还可以回退到这两个版本(如果有朝一日,你又反悔了)

3 高级使用 如分支 、diff、 merge、属性、外部定义等

参看svnbook http://svnbook.red-bean.com/index.zh.html tortoiseSVN的其他使用 参看 其help文档

我们这里给出的基本的使用,了解了以上内容,你大致可以上手svn的操作,简单的控制你的信息版本。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织