Subversion安装手记转自嘟嘟老窝

Subversion安装手记

原文地址:

http://www.duduwolf.com/post/setting_up_subversion.asp

STEP 1:下载和安装

首先在Subversion的官方网站去下载windows安装包,最新版是1.3.1,可惜在项目树上只更新到了1.3.0的二进制包
下载后安装在本地机器上,这里注意的是最好将安装目录指定为纯英文名目录,安装在中文目录下天知道哪天会冒出一个让你想破头也想不出的错误来。
下载TortoiseSVN进行本地安装,我安装的是最新的1.3.2 for svn 1.3.0,这是一个将SVN集成到windows shell中的GUI管理工具,推荐使用。

STEP 2:创建储存库

安装完TortoiseSVN后提示要重启机器,其实启不启都可以正常使用了,首先创建SVN储存库(repository),可以选择命令行方式或者通过TortoiseSVN插件进行GUI操作,命令行运行如下:

svnadmin create E:/svn/repository

e:/svn/repository就是我指定的储存库目录,如果用GUI方式,可以在这个目录下点击右键选择[TotoiseSVN]->[Create Repository href...]进行创建,版本库模式指定为默认的即可。
repository创建完毕后会在目录下生成若干个文件和文件夹,dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部 数据;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录, 用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;

 

STEP 3:配置

打开/conf/目录,打开svnserve.conf找到一下两句:

# [general]
# password-db = passwd

去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件
同样打开passwd文件,将

# [users]
# harry = harryssecret
# sally = sallyssecret

这几行的开头#字符去掉,这是设置用户,一行一个,存储格式为“用户名 = 密码”,如可插入一行:admin = admin888,即为系统添加一个用户名为admin,密码为admin888的用户

 

STEP 4:运行SVN服务

在命令行执行

svnserve --daemon --root E:/svn/repository

服务启动,--daemon可简写为-d,--root可简写为-r,可以建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务,或者在这个地址http://clanlib.org/~mbn/svnservice/下载那个svnservice.exe文件,拷贝到E:/svn/bin目录下,再从命令行下执行:

svnservice -install --daemon --root "E:/svn/Repository"
sc config svnservice start= auto
net start svnservice

此文件会将SVN变成windows系统的一个服务,并默认为自启动,注意:执行第三句时确保前面以命令行方式运行的SVN服务已经停止,如果没停止可在其窗口中按Ctrl+C中止运行。

 

STEP 5:创建项目版本树

确定SVN服务(命令行或windows服务)运行后,在你需要导入储存库的目录下单击右键选择[TortoiseSVN]-> [Import...],在弹开的窗口的URL框中输入 "svn://localhost/myproject" 点击 "OK" 执行导入,如果没有报错,数 据就全部加入SVN储存库目录树上了。用命令行也可以完成这些操作,这需要你在系统变量中新建一个“SVN_EDITOR”的系统变量,变量值为本地的一 个文本编辑器执行文件路径,一般指到windows的记事本上就行了 "c:/windows/notepad.exe" ,然后新开一个CMD窗口,执行

svn mkdir svn://localhost/myproject

随即关闭记事本打开的log文件窗口后按"c"键继续后生成项目树。一般情况,我们在创建文件根路径后应该在创建三个目录:branches、tags、trunk,这三个目录是Subversion需要的三个目录。对于check out、commit、update等操作可以通过svn命令行方式执行,也可以用TortoiseSVN的windows菜单完成,非常简单咯。

 

创建一个版本库

要创建一个版本库,首先要确定采用哪种数据存储方式。在 Subversion 中,版本库的数据存储有两种方式,一种是在 Berkeley DB 数据库中存放数据;另一种是使用普通文件,采用自定义的格式来储存,称为 FSFS。

两种存放方式各有优缺点,读者可以参考 http://svnbook.org/ 上面的文档来了解两者详细的比较和区别,这里,我们仅引用上述文档当中的简单对照表,给出一个简明的比较。

特性 Berkeley DB FSFS
对操作中断的敏感 很敏感;系统崩溃或者权限问题会导致数据库“塞住”,需要定期进行恢复。 不敏感
可只读加载 不能 可以
存储平台无关 不能 可以
可从网络文件系统访问 不能 可以
版本库大小 稍大 稍小
扩展性:修订版本树数量 无限制 某些本地文件系统在处理单一目录包含上千个条目时会出现问题。
扩展性:文件较多的目录 较慢 较慢
检出最新代码的速度 较快 可以
大量提交的速度 较慢,但时间被分配在整个提交操作中 较快,但最后较长的延时可能会导致客户端操作超时
组访问权处理 对于用户的 umask 设置十分敏感,最好只由一个用户访问。 对 umask 设置不敏感
功能成熟时间 2001 年 2004 年

确定了具体的数据存储类型,只要在命令行当中执行 svnadmin 命令就可以创建一个 Subversion 版本库,命令如下

# 创建文件夹
$ mkdir /etc/svn/
$ mkdir /etc/svn/repos
# 运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb
$ svnadmin create --fs-type fsfs /etc/svn/repos
			

如果一切正常,命令执行后不会有任何反馈信息而迅速返回,这样,一个新的版本库就被创建出来了。我们来查看一下生成的版本库结构:

$ ls -l /etc/svn/repos
总用量 56
drwxrwxr-x  2 robert robert 4096  8月 27 17:27 conf
drwxrwxr-x  2 robert robert 4096  8月 27 17:27 dav
drwxrwsr-x  5 robert robert 4096  8月 27 17:27 db
-r--r--r--  1 robert robert    2  8月 27 17:27 format
drwxrwxr-x  2 robert robert 4096  8月 27 17:27 hooks
drwxrwxr-x  2 robert robert 4096  8月 27 17:27 locks
-rw-rw-r--  1 robert robert  229  8月 27 17:27 README.txt
			

其中,conf 目录下存放了版本库的配置文件,包括用户访问控制和权限控制等内容,文件本身的注释说明十分详细,读者可以根据注释自行配置;dav 目录是提供给 Apache 相关模块的目录,目前为空;db 目录下存放着 Subversion 所要管理的所有受版本控制的数据,不同的存储方式(Berkeley DB 或者 FSFS)下有着不同的目录结构,不过我们一般不用直接修改和查看这个目录下的内容,Subversion 的命令可以安全的操作这个目录;另外,hooks 目录存放着钩子脚本及其模版(一种版本库事件触发程序),locks 目录存放着 Subversion 版本库锁定数据,format 文件记录了版本库的布局版本号。

时间: 2024-08-29 14:38:13

Subversion安装手记转自嘟嘟老窝的相关文章

开发辅助工具--Subversion安装、配置与使用

一.为什么要进行代码控制 在软件开发的过程中,经常因为程序代码版本的不统一而导致重新开发,或者在多人开发的项目中, 多人共同修改了同一个公共代码文件而导致的相互复盖的问题,诸如此类的问题还有很多,下面我们就来 举一个例子. 比如说UserA和UserB各自为自己的需求需要在公共代码文件CommonFilesA增加自己的代码段,修改完 后都要把自己的代码合并到项目经理那里去,结果UserA修改了文件,UserB也修改了文件,合并的时候 UserA把文件拷贝了过去,UserB在UserA后把文件也拷

Ubuntu下SubVersion安装方法(摘抄)

今天,我得到领导的命令在ubuntu上搭建一个SVN服务器.对于我这个对Linux都不怎么熟的菜鸟而言,确实有一定的挑战. 于是我在网上查了很多资料,越看头越大.最后找到一篇关于在Window环境建SVN服务器的文章.我想,在windows下建与在ubuntu上应该差 不多.所以我说按着上面的步骤一步一步做.终于,还是搞定了!现在回想起来,在ubuntu上建一个SVN服务器还是非常简单的. 以下是摘抄的,并根据我自己的实际情况加以修改.原文:Subversion之路 服务器IP地址:192.16

MSDESP3安装手记

MSDE是MSSqlServer的桌面版本,不仅能在win2000.winxp系统安装,还能够在win98.winme上安装,比MSSqlServer小很多.(win95上我没有测试过)首先到微软下载MSDESP3比较它的以前版本,由原来的30兆突增到了90兆,实在是对微软汗ing这是个压缩文件,直接执行并解压到一个目录比如:I: WK\MSDE2000将生成I: WK\MSDE2000\MSII: WK\MSDE2000\MSMI: WK\MSDE2000 etup 三个子目录. 如果系统还没

Ruby on Rails安装手记

弄了好几天,Ror环境终于搭好了,为了防止以后忘记,少走弯路,特记录下 ============================================= 安装过程 1.安装 rubyinstaller-1.9.2 2.安装 执行 gem install rails 3.安装 dev kit 下载后 解压到ruby 的安装目录 4.安装Netbeans 6.9.1 5.打开Netbeans 配置 Ruby 的gem 重点 mysql2 0.2.6 让ror 支持 mysql 6.安装 r

SQL Server 2012安装手记

今天刚装了SQL Server 2012, 界面和原来2008没什么大的区别 在刚连接的时候出现了点错误,报了"Named Pipe Provider"错误 解决如下:   连接实例应该为: ComputerName\Your Instance   截图如下:

FreeBSD-5.2下安装ORACLE9i手记(1)(转贴)出处:freebsdchina

oracle FreeBSD-5.2下安装ORACLE9i手记 出处:freebsdchina责任编辑:leelee[04-7-28 16:30] 作者:jxngzhl 无可否认FreeBSD是最优秀的操作系统之一,但缺少大型商业数据库的支持阻碍了FreeBSD走向高端和企业应用,Oracle作为数据库的领头雁,如果能够在FreeBSD上安家,则是我等FreeBSD FANS的一个鼓舞.经过两天的努力并参考了一个俄文网站的关于在FreeBSD上安装ORACLE8i的介绍,成功地在FreeBSD5

Subversion之路 - 利用 svnserve.exe 实现精细的目录访问控制(v1.0)

1   前言 1.1   Subversion 权限简介 在 Subversion 的使用当中,存在"认证"."授权"两个概念.认证,即 authentication,是指用户名与密码的认证.授权,即 authorization ,是指某用户对某个目录是否具备读.写权限的一种审核.这两者配合作用,就组成了 Subversion 的整个帐户管理体系. 在实际的工作当中,我们有时候会遇见需要控制项目目录的访问权限的情况,比如说对项目的一些关键模块进行限制,仅允许少数授权

[转]CentOS-6.3安装配置SVN

安装说明 系统环境:CentOS-6.3 安装方式:yum install (源码安装容易产生版本兼容的问题) 安装软件:系统自动下载SVN软件   检查已安装版本 #检查是否安装了低版本的SVN [root@localhost /]# rpm -qa subversion #卸载旧版本SVN [root@localhost modules]# yum remove subversion 安装SVN [root@localhost modules]# yum install httpd http

在CentOS 6.3中安装与配置SVN的方法

安装说明 系统环境:CentOS-6.3 安装方式:yum install (源码安装容易产生版本兼容的问题) 安装软件:系统自动下载SVN软件 检查已安装版本 复制代码 代码如下: #检查是否安装了低版本的SVN [root@zck /]# rpm -qa subversion #卸载旧版本SVN [root@zck modules]# yum remove subversion 安装SVN [root@zck modules]# yum install httpd httpd-devel s