`
- 浏览:
258832 次
- 性别:
- 来自:
未定
-
首先来一张subversion的架构图
1.subversion的安装主要是要解决依赖的类库:
1).libapr, libapr-util(apache portable runtime)
layer that allows suberversion client and server to run on different OS.
这两个lib如果单独装的话(还修改安装路径), 可能出现错误.
所以可以使用subversion自身的dependency 包进行安装, unpack即可,会自动在subversion发行版中加入相关的文件夹,比如apr, apr-util, ...
还可以将apr,apr-util源码加到subversion发行版目录下(apr,apr-util文件夹)
然后对apr, apr-util进行./buildconf 即可
2).zlib(libz)
3).libneon or libserf (option for client to send http request)
4).openssl (option for client and server)
5).expat xml parser
compressing binary differences
6).sqlite3 v-amalgamation
manage some internal databases
默认使用FSFS文件系统
cd apr; ./buildconf ; cd ../apr-util ; ./buildconf ; cd ..
./configure --prefix=/opt/subversion \
--with-zlib=/opt/zlib \
--with-sqlite=/opt/sqlite \
2.访问subversion repository
从subversion的架构图我们可以看出,访问subversion repository(我们的数据所在地,也叫版本库), 可以有三种方式,
1).第一种是如果客户端跟服务器的repository都在同一server下,
使用的协议是file:///
如: svn import . file:///c:/rep/hello -m ''
svn list file:///home/rep/hello
2).第二种,也是比较多人使用的,采用的svn://协议,服务器端启动svnserve这个程序,通过它访问repository,
如 svn import . svn://123.44.21.34/hello -m ''
3).第三种是通过apache这个http服务器访问repository,协议当然就是http://了
3.建立repository资源库
从上面又可以看出,首先我们得先建立我们的repository,这样才能使用以上三种方式访问,这个repository是我们的关健资源库,所有的操作最后都是反映到这里来的.
首先建立这个repository
#svnadmin create /path/to/repository
这样在/path/to/repository下就会生成几个关健的文件夹:
比如conf, db,除了conf可以修改,其他文件,文件夹都不能随便修改删除等
conf下有svnserve.conf, authz, passwd这三个文件
这个文件夹下的配置文件是配置svnserve服务器的,跟其他另外两种访问方式无关.
svnserve.conf主要配置[general]下的东东,
比如 anon-access=none,auth-access=write 可以使匿名用户不能访问,而已验证的用户可以进行读写操作.
验证用户可以在 password-db = passwd说明,
这样在conf/passwd文件中定义的用户都是svnserve的用户.
在conf/passwd文件中定义用户很简单: 在[users]下一个用户一行,
格式 username = password(明文)
每个用户又有可能有不同的访问资源权限,比如小王不能访问buyshop这个项目的资源,而其他可以
在svnserve.conf 中的[general]注释掉authz-db = authz
这样conf/authz文件中定义的权限就会被应用.
具体实例参照authz文件本身,它有詳細说明
4.启动svnserve
repository(版本库)建好了,svnserve配置文件修改好了,
现在是启动svnserve服务器的时候了
#svnserve -d -r /path/to/repository
这样就在后台启动了,从-r可以看出我们可以有不同的版本库,可以按需使用
5.subversion的命令
subversion系统自带的工具有服务器端的如svnadmin,svnserve,
也有客户端的如使用最多的svn 命令,svn下面还有很多子命令
6.上传项目
现在应该将我们的项目上传到subversion的repository供他们管理
项目的结构可以考虑trunk,branches,tags
#svn import . svn://server-ip/hello -m 'initial'
这样就将当前目录下的所有文件,文件夹上传到repository下的hello文件夹中
当我们需要使用由svn版本控制的项目文件,必须checkout到本地
#svn checkout svn://serveer-ip/hello/trunk hello
这样就将hello项目主线的文件下载到当前目录下的hello文件夹中
---------------------------------------------------------------------------------------
7.客户端命令svn
当我们checkout出项目之后,进入到项目文件夹中,这个例子是当前目录下的hello文件夹
svn命令要在工作拷贝中(working copy)运行
#cd hello
我们可以离线操作本地项目文件,修改,增加,删除等等.
当确定修改完成,需要保留这些信息时,这才使用svn commit -m ''命令去跟服务器联系说我修改了哪些文件,给我这些改动状态一个版本号.
客户端commit一次,就将版本号加1,最开始import 时版本号为1
当我们完成一个项目或其他原因想将项目拿出来而不带版本信息,这时可用
#svn export svn://server-ip/hello/trunk hello_2
或可以指定版本号,默认是最新版本号 如 -r 1234
常用客户端命令:
1). svn add file/dir
eg: svn add --depth=empty otherdir (只增加otherdir文件夹)
svn add * --force 递归增加全部未加入版本控制的文件
2).svn cat url (查看版本库文件的内容而不checkout出来)
eg: svn svn://192.168.1.1/bz/readme.txt
3).svn changelist — Associate (or deassociate) local paths with a changelist.
svn cl issue12 foo.a foo.b(将foo.a, foo.b加入changelist可以方便以后commit)
svn commit --changelist issue12 -m 'fix issuse 12'
4).svn checkout — 从版本库取出一个工作拷贝
svn co $svn_url [path]
5).svn cleanup [path]— 递归清理工作拷贝
6).svn commit -m 'comment' [path] — 将修改从工作拷贝发送到版本库
7).svn copy SRC DST — 拷贝工作拷贝的一个文件或目录到版本库
SRC, DST可以是working copy, repository的自由组合
8).svn delete [PATH/URL] — 从工作拷贝或版本库删除一个项目
PATH指working copy下的路径, URL指repository的路径
9).svn diff — 比较两条路径的区别
10). svn export — 导出一个干净的目录树
svn export URL PATH
11). svn -m 'comment' import [PATH] URL — 递归提交一个路径的拷贝到版本库
如果PATH ommited, '.' is assumed
这个时候PATH并没有纳入版本控制, 需要checkout出来成为working copy
12). svn info [PATH/URL]— 显示本地或远程条目的信息
13). svn list — 列出版本库目录的条目
14). svn lock — 锁定版本库的工作拷贝路径或URL,所以没有其他用户可以提交这些文件的修改
svn lock jp.c
对应的 svn unlock
15). svn log — 显示提交日志信息
16). svn mkdir — 创建一个纳入版本控制的新目录
svn mkdir hello
svn mkdir -m 'f' URL
17). svn move SRC... DST — 移动一个文件或目录
18). svn resolve PATH...— Resolve conflicts on working copy files or directories
19). svn revert PATH... — 取消所有的本地编辑
20). svn status [PATH]— 打印工作拷贝文件和目录的状态
21). svn switch — 把工作拷贝更新到别的URL
svn switch URL[@PEGREV] [PATH]
svn switch --relocate FROM TO [PATH...]
22).svn update — 更新你的工作拷贝
-----------------------------------------------------------------
8.服务器端的命令svnadmin, svnlook
在服务器端直接操作文件路经, 而不是URL
svnadmin is the administrative tool for monitoring and repairing your Subversion repository
1). svnadmin create REPOS_PATH — 创建一个新的空的版本库
9.当上传eclipse项目工程到subversion中时,必须加上.project .classpath文件,再加上.settings文件夹
10.relocate
subversion的库是可复制的, 当要将库移到另外的机器上, 需要relocate
cd到项目目录下
#svn switch --relocate FROM TO
如# svn switch --relocate svn://192.168.1.112/bidaround/trunk svn://192.168.1.223/bidaround/trunk
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在阅读Subversion 1.6中文手册时,你会了解到如何安装和配置Subversion服务器,创建和管理版本库,设置用户权限,以及如何使用基本的命令行工具进行检出、提交、更新、合并等操作。手册还将详细解释如何处理冲突,...
《Version Control with Subversion for Subversion 1.6》是一本专为Subversion 1.6版本设计的用户手册,旨在帮助读者深入了解和熟练掌握这一版本控制系统。Subversion(简称SVN)是一种广泛应用于软件开发领域的...
Version Control with Subversion For Subversion 1.6 (Compiled from Revision 38063)
5. **客户端配置**:推荐使用如TortoiseSVN这样的图形化客户端,并解释如何将客户端与安装的SVN服务器连接。 6. **使用教程**:简要介绍基本的SVN命令,如`svn checkout`(检出)、`svn commit`(提交)、`svn ...
### Subversion (SVN) 基础与高级使用指南 #### 一、Subversion 概述 **Subversion**(简称 SVN)是一种版本控制系统,它管理着随时间改变的数据。Subversion 将数据存储为文件集合,并记录每一次文件及目录的修改...
CentOS默认的yum --install subversion ,安装的是1.6版本 安装1.7脚本
TortoiseSVN-1.6.13.20954-x64-svn-1.6.16.msi TortoiseSVN-1.6.15.21042-win32-svn-1.6.16.msi LanguagePack_1.6.13.20954-x64-zh_CN.msi Setup-Subversion-1.6.16....PBSCC安裝後要用pbscc.dll在覆蓋掉原來的dll即可
5. **扩展的API**:对于开发者来说,Subversion 1.6扩展了API,增加了更多的功能接口,使得开发与Subversion集成的应用程序变得更加容易。 6. **更好的日志信息**:日志消息现在支持多语言,且格式更加规范,有助于...
安装与编译Subversion 1.6.13** 要使用这个源代码包,首先需要解压,可以使用以下命令: ```bash tar -zxvf subversion-1.6.13.tar.gz ``` 解压后,进入目录并按照标准的开源软件编译流程进行安装,通常包括配置、...
TortoiseSVN SVN subversion 客户端 下载 Sub Version 1.6 win32 实用于 win32 系统。可以同步 签入 签出 很不错的工具
Slik-Subversion-1.6.0-x64Slik-Subversion-1.6.0-x64Slik-Subversion-1.6.0-x64
Subversion 是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。不但提供了常见 的比较、修补、标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能力...
Subversion是一款广泛使用的版本控制系统,它允许用户管理代码库,跟踪文件和目录的变化,并支持多人协作。1.6版是Subversion的一个较旧但稳定版本,对于那些需要在老系统上工作或者研究历史版本的人来说仍然有其...
Subversion(SVN)是一种广泛使用的版本控制系统,用于管理和跟踪文件和目录的变更。在Subversion 1.6.3这个版本中,我们主要关注的是其命令行程序,这是一个非常强大的工具,允许用户通过简单的命令行接口执行各种...
此外,《Subversion 权威指南中文 1.6》还涵盖了高级主题,如hooks脚本、备份与恢复策略、网络配置以及与其他工具(如IDEs和构建系统)的集成。hooks脚本允许管理员在特定事件(如提交或更新)发生时执行自定义脚本...
TortoiseSVN-1.6.7.18415-win32-svn-1.6.9.msi TortoiseSVN-1.6.7.18415-win32-svn-1.6.9.msi TortoiseSVN-1.6.7.18415-win32-svn-1.6.9.msi TortoiseSVN-1.6.7.18415-win32-svn-1.6.9.msi
7. **客户端和服务器兼容性**:Subversion 1.6确保了与早期版本的客户端和服务器之间的兼容性,用户可以逐步升级而无需担心中断。 在安装和使用Subversion 1.6.15时,用户通常会遇到以下步骤: 1. **安装**:下载...
Linux下SVN客户端安装包,代码和文档版本控制管理工具。
安装Subversion后,你可能还需要安装一些额外的工具,如`svnadmin`和`svndumpfilter`,这些工具在日常使用中非常有用。这些通常已经包含在安装包内,但你可以确认一下: ```shell sudo apt-get install subversion-...