服务端安装
VisualSVN-Server-3.5.6-x64.msi
客户端安装
TortoiseSVN-1.9.5.27581-x64-svn-1.9.5.msi
LanguagePack_1.9.5.27581-x64-zh_CN.msi
创建多个SVN仓库(存储代码)
>svnadmin create h:/svnServer/app
启动仓库服务
DOC语法:svnserve -d(独立端口运行) -r(仓库地址) 仓库地址
>svnserve -d -r h:/svnServer/app //启动app仓库服务
需要注意的是: DOC窗口不要关,关了等于关闭服务
该SVN服务端口号是:3690
本地客户端(码农)与仓库建立连接
右键—> checkout
- svn://ip地址
- 本地工作空间
给仓库开启匿名账户权限(不推荐)
在svnServer/工程目录/conf/svnserver.conf文件的12行:anon-access = write
给svn仓库提交程序
步骤:
a. 右键---->svn-->add(本地的svn对文件形成管理)
b. 右键---->Commit (本地的文件提交给svn仓库,同时提交多个文件)
文件颜色标志
蓝色加号:本地的.svn对该文件开始管理
绿色对号:本地文件、.svn管理的版本文件、仓库文件三者一致 表示:本地文件已提交到svn服务器
红色叹号:本地文件与.svn和仓库文件不一致(用户可能修改了该文件)
黄色叹号:表示该文件正在处于冲突状态
蓝色问号:新建的文件,本地.svn和仓库都没有该文件记录
新目录文件的提交
新目录内部的文件不能直接提交,必须是目录本身已经提交给仓库了,该目录文件才可以单独进行commit提交
同时运行多个SVN仓库服务
把所有仓库的上级目录当成服务启动起来
> svnserve -d -r h:/svnServer/
修改SVN服务器地址
1. 先把.svn删除
2. 重新checkout
断开与svn仓库连接
只需删除.svn即可
##文件版本的更新
TortoiseSVN—–>Update to revision…
冲突解决(重点)
- 什么情况下会发生冲突?
- 多个程序员对同一个文件进行修改,彼此代码文件出现覆盖的情况
解决方法
1. 令牌方式解决,给每一个文件设置令牌,谁获得令牌谁有权利开发该文件。
+ 该软件为:vss(Visual Source Safe)源代码控制管理软件
2. 通过版本号码进行控制,用户commit文件,本地文件版本与仓库版本号必须一致才可以提交,否则禁止提交。
+ 本地与服务器版本号码不一致,一定是本地号码小于服务器版本号,SVN就是通过版本号解决冲突,
+ 修改代码不在同一处时
本地版本号与服务器版本号不一致时,提交失败,则需更新(合并代码)
+ 修改代码在同一处时
账号和权限
设置账户和密码时需要关闭匿名权限
修改 anon-access = none
不要加# 因为svn中有一个小bug(日志就不让查看了,日期都没了),操作为—->show log
给具体的用户设置权限
在conf下
- authz :设置用户权限
- passwd:设置账号(用户名和密码)
- svnserve.conf :主配置文件
- 需要在主配置文件中引入两个辅助配置文件(authz和passwd)
- 20行:去掉#和空格,保留password-db = passwd
- 27行:去掉#和空格,保留authz-db = authz
- 在passwd中
- 配置形式:账户 = 密码
给账号设置权限
- 配置形式:[shop:/]
tom = rw
mary = r
*= 具体权限:
- r :read:可以update,不可以commit
w:write:可以commit
- 启动运行多个仓库服务:svnserve -d -r h:/svnServer/app/
- [app:/] 表示我们要给多个仓库中的具体shop仓库设置访问权限,例如:[app:/] [car:/]
- 启动单一仓库服务 :svnserve -d -r h:/svnServer/app/shop
- [/] 表示单一的给仓库账号设置访问权限
- 配置形式:[shop:/]
给一个组设置权限
+ 配置形式:
[groups]
java = java1,java2,java3,java4
[app:/]
@java = rw
开启只操作某个目录的权限
- 配置形式:
给用户设置只操作shop目录的权限
[app:/shop]
user1 = rw
user2 = rw
*=
- 举例:以外包团队为例
- 管理员先把该目录video给创建出来并交给svn仓库
- 给外部团队 设置账号 和 设置工作目录、和分支目录权限
- 外包团队 建立与仓库分支目录的联系(checkout)
- 外包团队给该目录提交文件
- 管理员执行update更新操作,把该分支目录从服务器更新下来即可查看外包团队工作情况。
设置开机启动项服务
- 语法:doc中
> sc create 服务名称 binPath="安装目录/svnserve.exe -r 服务仓库地址目录 --service" start= auto
- 应用:
> sc create svnd binPath="d:/svnServer/server/bin/svnserve.exe -r d:/svnServer/app --service" start= auto
- 注意:
binPath=空格 start=空格
最好生成.bat文件
通过svn查看组员工作情况和bug追踪
+ 操作:TortoiseSVN------>show log
+ 查看之前需要清空缓存
+ 如果信息不全的话,可能是权限的问题,例如(*=)的设置
查看日志的时候对代码进行比较,查看bug
- Compare revisions 比较
通过SVN可以很容易看到一个程序中不同版本代码的差别
·