SVN学习总结
上一篇 / 下一篇 2008-10-03 12:24:20 / 个人分类:配置管理
一、svn安装
Windows
--subversion
--Tortoisesvn客户端
1.安装tortoisesvn时,按提示步骤执行
2.安装subversion时候必须在安装时选择complete,因为只有选complete后在SlikSvn\bin下才会出现svnserver.exe
3.安装完成后,要在自己的机上建立版本库E:\svndemo\repository
4.在sliksvn\bin下输入命令行svnserve -d –r E:\svndemo\repository
5.在repository\conf\svnserve.conf文件修改权限
这时我们先采用匿名方式登录进去将#anon-access=read改成 anon-access=write
后面第四点会讲到如何进行用户管理.
二、建立版本库(Repository)
运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放
创建SVN版本库
s4eH/yr1[0# svnadmin create E:\svndemo\repository
数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:
svnadmin create就会在目录E:\svndemo\repository下创建一个版本库。我们也可以使用TortoiseSVN图形化
的完成这一步:51Testing软件测试网d$D7V(U \G,g
在目录E:\svndemo\repository下"右键->TortoiseSVN->Create Repository here...“, 然
后可以选择版本库模式, 这里使用默认即可,然后就创建了一系列目录和文件。
三、运行独立服务器
在任意目录下运行:
svnserve -d -r E:\svndemo\repository
XF[,`~}0我们的服务器程序就已经启动了。
四、初始化导入
来到我们想要导入的项目根目录,在这个例子里是E:\svndemo\initproject,目录下有一个
readme.txt文件:
右键->TortoiseSVN->Import...51Testing软件测试网7_1{u%y4_(g }
URL of repository输入“svn://localhost/trunk”51Testing软件测试网
P,~ W!s6C)G
ok51Testing软件测试网7Z~(h~(Q
完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本
库中。
五、基本客户端操作
取出版本库到一个工作拷贝:
来到任意空目录下,在本例中是E:\svndemo\wc1,运行右键->Checkout,在URL of
repository中输入svn://localhost/trunk(版本库中要拷贝的文件所在的目录),这样我们就得到了一份工作拷贝。
在工作拷贝中作出修改并提交:
打开readme.txt,作出修改,然后右键->Commit...,这样我们就把修改提交到了版本库,我
们可以运行。
察看所作的修改:
readme.txt上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。
六、配置仓库,用户及权限管理
SVN的svnserve对于每个仓库,有一个独立的配置文件和独立的用户、权限管理。51Testing软件测试网0D;Jph+a
在这里仍然要保持配置文件svnserve.conf的独立,但是用户、权限管理是用统一的一个文件来存储。
vX hP:U#W&|C0这样方便以后的管理和维护。
}"jQ-GPmZ0另外要注意,即使svnserve服务已经运行,修改配置文件或者用户、权限管理文件,保存后马上生效,不需要重启服务。
svnserve下的配置文件
E:\svndemo\repository51Testing软件测试网!w xY O%L9J
├─conf
5bq
wa*G#T0├─dav51Testing软件测试网;Uh7j:Eh%u
R{3V1f
├─db51Testing软件测试网*]G2R1{S
│ ├─revprops51Testing软件测试网0sv#t[2V+K^w+P/e"P4^
│ ├─revs
3vUW \4l"Y*{0│ └─transactions51Testing软件测试网EZo!o$jW
]NP
├─hooks51Testing软件测试网1D*l UBb6v]Uc
└─locks
在conf目录下有三个文件authz,passwd,svnserve.conf
其中的“svnserve.conf”是这个版本库的配置文件,当使用svnserve时,这个配置文件决定了使用什么认证和授权文件
password-db = passwd51Testing软件测试网0u2J*L5Uo4N
authz-db = authz
下面一个例子是使用用户登录,但没有给用户分组,也没有设置权限.
来到E:\svndemo\repository\conf目录,修改svnserve.conf:
# [general]51Testing软件测试网}:R Y]x`
# password-db = passwd
改为:
[general]
-i,m.t"@IB0password-db = passwd
然后修改同目录的passwd文件,去掉下面三行的注释:
# [users]51Testing软件测试网)YhUD{he
# harry = harryssecret51Testing软件测试网PZ9V4~Tbj-Y.Vx
# sally = sallyssecret
最后变成:
[users]51Testing软件测试网%X-~)H
w9}1]]$E
harry = harryssecret
G3n0b%Pa$ZdG0sally = sallyssecret
采用上面的修改之后,你再进行操作,这时候进行操作都需要输入用户,密码.
另一种方法,可以不用版本库中已经有的passwd,authz,svnserve.conf文件
全部自己重新创建
你可以直接删除默认的svnserve.conf文件,然后使用下面的配置:51Testing软件测试网
s
Ls x1H| AR
# vi svnserve.conf
us!j0qP8IMj0[general]51Testing软件测试网^,W Xb"Ee+K
anon-access = none
c
kz%AP4fW"}0auth-access = write51Testing软件测试网/{Ip3L|(J9s*]KO
password-db =svn-user.conf51Testing软件测试网&aQn.LL
authz-db = svn-authz.conf
说明:
{P0jB`#{.es"c0anon-access = none #不允许匿名用户访问
U)N3C'm$l:a|#Z0auth-access = write #通过验证的用户可以读和写
V-Zp*L_U0password-db =svn-user.conf #用户保存文件51Testing软件测试网2D._!X(~t;v
authz-db = svn-authz.conf #权限管理文件
创建用户存储文件
# vi svn-user.conf
设置用户帐号
Y6u3cq7X]@?5P9w0[users]51Testing软件测试网 K
Zu5yz
harry = harryssecret
8zev,S8Lv0sally = sallyssecret
:v7L9@8uu0W]%RC9e/U2u0bote = botessecret
说明:
4T!]e)o(f0[users] //是必须的,标记为用户配置开始
Yg"Z_KH7s0harry = harryssecret //harry是用户名 ,harryssecret是密码。注意,是明文密码51Testing软件测试网4h3ss3q.q:U$~
sally = sallyssecret //同上
],N-A'S J;YsK"w0bote = botessecret //同上
往后所以仓库的用户都在这里记录就可以了。至于那个用户,允许访问那个仓库,在权限管理里限制。
创建权限管理文件
\&| N*}&dh\0# vi svn-authz.conf
设置权限管理
)|#`%QpVe.j.{G0[groups]
w.y%ez2Q5f(a0source1 = harry51Testing软件测试网*aD#{C[[
source2 = sally
[source1:/]
@source1 = rw51Testing软件测试网1^'Rb kw:}
@source2 = r
51Testing软件测试网$? V1B!P/Aqg
[source2:/]
7ncE-C(Q!d+z7u0@source2 = rw
f3|,y2~kH6`0@source1=r
对于管理多个不同的版本库,使用svnserve时,为了管理的方便,应该使用相同的认证和授权文件,所以应该让所有版本库的配置文件svnserve.conf指向同一个password-db和authz-db文件。下面是一个多版本库的目录:
E:\svndemo\repository
vv;Dr@c0├─project151Testing软件测试网&szPg0H
│ ├─conf
0EX1FX5D0│ ├─dav
E(Z^ oCun0│ ├─db51Testing软件测试网,q4f0f1U$U$V/WN
│ │ ├─revprops
7m`'u~](}A0│ │ ├─revs
OrX
r#I9g#O0│ │ └─transactions
&z&v8F\G
W'\?F0│ ├─hooks
j(^R/lic$LN9j%}n0│ └─locks51Testing软件测试网r
~7y)tyXjr
└─project251Testing软件测试网%~$C&e