subversion1.6的安装与使用

[size=medium]首先来一张subversion的架构图
[img]http://svnbook.red-bean.com/nightly/en/images/ch01dia1.png[/img]
[b]1.subversion的安装主要是要解决依赖的类库:[/b]
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 \


[b]2.访问subversion repository[/b]
从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://了
[b]
3.建立repository资源库[/b]
从上面又可以看出,首先我们得先建立我们的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文件本身,它有詳細说明


[b]4.启动svnserve[/b]
repository(版本库)建好了,svnserve配置文件修改好了,
现在是启动svnserve服务器的时候了
#svnserve -d -r /path/to/repository
这样就在后台启动了,从-r可以看出我们可以有不同的版本库,可以按需使用

[b]5.subversion的命令[/b]
subversion系统自带的工具有服务器端的如svnadmin,svnserve,
也有客户端的如使用最多的svn 命令,svn下面还有很多子命令

[b]6.上传项目[/b]
现在应该将我们的项目上传到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文件夹中

---------------------------------------------------------------------------------------
[b]7.客户端命令svn[/b]
当我们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 — 更新你的工作拷贝

-----------------------------------------------------------------

[b]8.服务器端的命令svnadmin, svnlook[/b]
在服务器端直接操作文件路经, 而不是URL
svnadmin is the administrative tool for monitoring and repairing your Subversion repository
1). svnadmin create REPOS_PATH — 创建一个新的空的版本库


[b]9.当上传eclipse项目工程到subversion中时,必须加上.project .classpath文件,再加上.settings文件夹[/b]

[b]10.relocate[/b]
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

[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值