分类: LINUX
2009-09-25 19:19:47
作者: good bai
说明:本文下面操作的默认系统为fedora,在fedora11测试通过。
概述:
版本管理器,也有一种叫法为时间机器,可以记录文件(包括目录)的所有历史记录,这样在你需要恢复文件到某个历史状态时,使用它可以轻而易举的做到。如果把它放在网络上共享使用,还可以实现多人协作和同步操作。
本文是一个简单的教程以指导初学者如何快速的搭建一个版本管理服务器(基于subversion)和如何上手使用版本管理器。
subversion是一个版本管理软件,是设计较先进的新一代工具相比较cvs等老牌的版本管理工具,它改进了很多cvs中的不足,类似,不可以记录目录或者文件名的变迁等等。。。
subversion以版本库来管理版本文件,一个版本库可以包括任意需要管理的文件(或者项目,项目可以看作为一组文件集,subversion中没有项目的概念)。subversion中的目录是以虚拟形式存在,实际存放的是二进制数据。
subversion有两种使用方式,本地访问和开启守护进程远程访问。
1 本地访问,即直接通过file://localhost/方式进行。
2 远程访问,需要一种subversion服务器支持。
虽然subversion有两种访问方式,但对于普通用户来说,它的使用基本是相同的,如命令行下,无非是访问时版本库的路径稍有不同而已。
下面的示例中,是本地访问模式下subversion的使用方式。在远程访问模式下,仅需要替换subversion版本库的路径就可以同样执行。
subversion版本库是管理文件版本的基础,只有建立了版本库后,才可以在库中管理记录文件历史操作。
创建版本库使用如下命令:
subadmin create /svn/repo_test
命令成功执行后,指定的目录下会生成一些subversion版本库预制的目录和文件。
建议一个导入版本库的项目按如下规范设置目录结构,例如你打算导入目录名为project-test,那么你的全部文件应放在此目录内的trunk目录中,另外新建立两个目录branches和tags,真个目录树如下所示,这是一个约定的习惯。
project-test/
|-- branches
|-- tags
`-- trunk
|-- driver |
|-- Makefile
使用如下命令导入项目到版本库中,
Svn import project-test file://localhost/svn/repo_test/project-text -m "Initial import"
检出项目文件到project-test_out目录中,这样就在本地形成了一个服务器版本库的副本。
Svn checkout file://localhost/svn/repo_test/project-test project-text_out
查看文件状态
svn status project-text_out
查看操作日志
svn log project-text_out
查看项目基础详细信息
svn info project-text_out
显示修改详情
svn diff project-text_out
撤销最近一次更新以来本地文件的修改
svn revert project-text_out/文件名
更新本地文件到服务器的最新状态
svn update project-text_out
提交改变到版本库中,PATH可以是单个文件,也可整个目录。
svn commit -m “comments ” PATH
添加文件
svn add PATH
移除文件
svn delete PATH
更多操作可以查看
svn --help
Svn服务器的假设有3种可选方案,Apache,svnserve和ssh-svnserve,Apache是通用性最好功能最强大的方案,相对配置也较复杂,我们这里采用svnserve作为服务器,它是一个小巧,高效,简单的svn服务器,适用于小型项目在局域网环境中使用。
一般在subversion的安装包里已经提供了这个组件,我们可以直接使用它。
我们以后台服务的方式启动svnserve服务,
svnserve -d
一旦运行成功,我们就可以在任意可访问到运行服务主机的地方访问suv版本库,使用方法类似于上面写到的本地访问的方式。仅仅需要替换检出操作时svn版本库的路径名,假设我们在运行svnserve服务的主机ip为:10.3.0.111.那么我们可以通过下面的命令检出上面创建的版本库中的project-test项目文件。
Svn svn://10.3.0.111/svn/repo_test/project-test/ project-test_svn
也可以用如下命令启动svnserve服务
svnserve -d -r /svn/repo_test/
这时我们就可以使用更简单的命令来操作版本库
Svn svn://10.3.0.111/project-test/ project-test_svn
在远程方式访问svn版本库时,其他操作同本地访问方式时的操作完全相同。
至此,文档结束!
《使用Subversion进行版本控制》-针对Subversion 1.4 (根据r2866编译)
作者:Ben Collins-Sussman Brian W.Fitzpatrick C. Michael Pilato