您的位置:首页 > 其它

SVN使用

2016-12-29 22:37 113 查看
服务端安装

客户端安装

创建多个SVN仓库存储代码

启动仓库服务

本地客户端码农与仓库建立连接

给仓库开启匿名账户权限不推荐

给svn仓库提交程序

文件颜色标志

新目录文件的提交

同时运行多个SVN仓库服务

修改SVN服务器地址

断开与svn仓库连接

冲突解决重点

账号和权限
给具体的用户设置权限

给一个组设置权限

开启只操作某个目录的权限
给用户设置只操作shop目录的权限

设置开机启动项服务

通过svn查看组员工作情况和bug追踪

服务端安装

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

[/] 表示单一的给仓库账号设置访问权限

给一个组设置权限

+ 配置形式:
[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可以很容易看到一个程序中不同版本代码的差别

·
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  svn