Chinaunix首页 | 论坛 | 博客
  • 博客访问: 232381
  • 博文数量: 40
  • 博客积分: 2025
  • 博客等级: 大尉
  • 技术积分: 531
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-25 17:47
文章分类

全部博文(40)

文章存档

2010年(8)

2009年(32)

我的朋友

分类: LINUX

2009-09-25 19:19:47

作者: good bai

说明:本文下面操作的默认系统为fedora,在fedora11测试通过。

概述:

版本管理器,也有一种叫法为时间机器,可以记录文件(包括目录)的所有历史记录,这样在你需要恢复文件到某个历史状态时,使用它可以轻而易举的做到。如果把它放在网络上共享使用,还可以实现多人协作和同步操作。

本文是一个简单的教程以指导初学者如何快速的搭建一个版本管理服务器(基于subversion)和如何上手使用版本管理器。

subversion是一个版本管理软件,是设计较先进的新一代工具相比较cvs等老牌的版本管理工具,它改进了很多cvs中的不足,类似,不可以记录目录或者文件名的变迁等等。。。

subversion工作原理

subversion以版本库来管理版本文件,一个版本库可以包括任意需要管理的文件(或者项目,项目可以看作为一组文件集,subversion中没有项目的概念)。subversion中的目录是以虚拟形式存在,实际存放的是二进制数据。

subversion访问方式

subversion有两种使用方式,本地访问和开启守护进程远程访问。

1 本地访问,即直接通过file://localhost/方式进行。

2 远程访问,需要一种subversion服务器支持。

Subversion使用命令

虽然subversion有两种访问方式,但对于普通用户来说,它的使用基本是相同的,如命令行下,无非是访问时版本库的路径稍有不同而已。

下面的示例中,是本地访问模式下subversion的使用方式。在远程访问模式下,仅需要替换subversion版本库的路径就可以同样执行。

创建版本库

subversion版本库是管理文件版本的基础,只有建立了版本库后,才可以在库中管理记录文件历史操作。

创建版本库使用如下命令:

subadmin create /svn/repo_test

命令成功执行后,指定的目录下会生成一些subversion版本库预制的目录和文件。

导入项目文件

建议一个导入版本库的项目按如下规范设置目录结构,例如你打算导入目录名为project-test,那么你的全部文件应放在此目录内的trunk目录中,另外新建立两个目录branchestags,真个目录树如下所示,这是一个约定的习惯。

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服务器配置

Svn服务器的假设有3种可选方案,Apache,svnservessh-svnserve,Apache是通用性最好功能最强大的方案,相对配置也较复杂,我们这里采用svnserve作为服务器,它是一个小巧,高效,简单的svn服务器,适用于小型项目在局域网环境中使用。

一般在subversion的安装包里已经提供了这个组件,我们可以直接使用它。

Svnserve的使用

我们以后台服务的方式启动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

阅读(1432) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~