客户端访问方式 | 说明 |
svn:// | 通过TCP/IP自定义协议访问svnserve服务器。 |
http:// | 通过WebDAV协议访问支持Subversion的Apache服务器 |
https:// | 与http://相似,但是用SSL加密访问。 |
file:// | 直接通过本地磁盘或者网络磁盘访问版本库。 |
svn+ssh:// | 通过认证并加密的TCP/IP自定义协议访问svnserve服务器 |
TortoiseSVN软件不仅是svn客户端,也包含了svn服务端。
VisualSVN Server是配合了http server来使用。
1 file:/// & file://
file:///D:/path/to/repos/ | 本机访问 |
file://ServerName/path/to/repos/ | 访问网络共享中的版本库,你可以使用驱动器影射或使用UNC路径 |
优点:不需要运行任何程序,就可以达到文件版本管理目标。
1.1 创建库
1.1.1 右键菜单创建
创建空白文件夹:d:\ svnRepositoryTest
1.1.1.1 创建库时创建默认目录结构
一般不使用这种方式,因为实际中使用库/项目名/目录结构
1.1.1.2 通过导入创建目录结构
找到要导入的目录,目录自身不会被导入
1.1.2 svnadmin创建
svnadmin create d:\svnREPOS
服务端命令
1. svnserver - 控制svn系统服务的启动等
2. svnadmin - 版本库的创建/导出/导入/删除等
3. svnlook - 查看版本库的信息等
客户端命令
1. svn - 版本库的检出/更新/提交/重定向等
1.1.3 svn客户端检出与提交
更新/检出 | 提交 |
2 svn://ip/
2.1 创建库
与file///方式一样,D:\svnRepository\
2.2 配置库
2.2.1 conf\svnserve.conf(库默认配置)
默认全部是注释的
[general] anon-access = none auth-access = write password-db = passwd authz-db = authz |
anon-access:匿名用户权限 auth-access:访问用户权限 password-db:用户与密码文件路径(相对路径/绝对路径) authz-db:用户组与权限的文件路径(相对路径/绝对路径) |
通过指定相同的文件,达到多库使用一套权限
read 指允许更新代码
write 指允许更新代码,也允许提交代码
none 指什么都干不了
2.2.2 conf\passwd (用户与密码)
[users] user1 = 123456 user2 = abcdef |
用户 = 密码 |
2.2.3 conf\authz(用户组与权限)
2.2.3.1 别名配置
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
2.2.3.2 用户组配置
组名 = 用户1,用户2,...,用户n
[groups]
admin = user1,user2
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
2.2.3.3 版本库的目录授权
[/] 表示版本库的根目录,[/foo/bar] 表示版本库根目录下的 foo 文件夹下面的 bar 文件夹,注意区分大小写
r更新 w提交 @用户组不是用户 *除了以上的所有其他用户 ~反向选择
$authenticated通过验证的用户 $anonymous匿名用户
[/]
@admin = rw
# [/foo/bar]
# harry = rw
# &joe = r
# * =
2.2.3.4 repository版本库下目录
[repository:/] 表示repository版本库的根目录,[repository:/baz/fuz] 表示repository版本库目录下的 baz 文件夹下面的 fuz 文件夹
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
注意:多版本库时,通过 一份conf\svnserve.conf文件配置所有库的权限。
2.3 启动服务端
start svnserve -d -r d:\svnRepository
2.3.1 注册系统服务
sc create SVN binPath= "\"%ProgramFiles%\TortoiseSVN\bin\svnserve.exe\" --service --root d:\svnRepository" depend= TCPIP start= delayed-auto DisplayName= " TortoiseSVN Server"
net start SVN
net stop SVN
sc delete SVN
2.4 svn客户端访问
svn://192.168.17.1/Axure/Sunlord