SVN使用教程
目录
1.如何下载svn工具
2.如何安装服务端
3.使用服务端创建版本仓库
4.安装TortoiseSVN
5.使用TortoiseSVN工具
6.TortoiseSVN其他操作
1.如何下载svn工具
工具要使用两个:
服务端:Subversion
客户端:TortoiseSVN
Subversion 官网:http://subversion.apache.org/download/
进去之后往下找,看自己是什么系统就选择对应的版本即可。
TortoiseSVN 官网:https://tortoisesvn.net/ 可以选择中文,如下图:
咱们这里使用的是
Subversion:1.8
TortoiseSVN:1.11.0
2.如何安装服务端
q.如何安装
服务端: Subversion
下载好之后 Setup-Subversion-1.8.11.zip
解压出来,Setup-Subversion-1.8.11.msi
双击安装,一路next即可,如下图:
q.如何检测安装成功
cmd 执行:svnadmin
cmd 执行:svnserve
如下图,即是安装成功。
3.使用服务端创建版本仓库
q.如何创建? 我们要记住一个项目一个仓库原则!!!
先创建一个空的文件夹(热议任意地方)
我是在D:\myFiles\svn\repository
然后在此处打开dos窗口(shift+右键快速打开),然后运行dos命令:
svnadmin create D:/myFiles/svn/repository
结果: repository下有默认文件如下:
q.如何修改配置
第一步,创建好之后,在conf文件夹下:
svnserve.conf
anon-access = none (第19行) //表示任意用户可以操作,不验证用户身份
auth-access = write (第20行)//写文件功能
password-db = passwd (第27行) //打开密码功能
authz-db = authz (第36行) //打开用户名功能
password文件 用户名和密码
[users]下添加三个用户:
admin = 123456
taohang= 123456
lisi = 123456
authz文件 每个用户功能设置 如下图
[groups]下添加
[/]
admin= rw
[/th]
taohang = rw
lisi = r
其中
[/]表示:默认地址,之后客户端url中要用
r:读取文件功能
d:写文件功能
rd:读写文件功能
q.启动版本仓库 在cmd中执行
svnserve -d -r D:/myFiles/svn/repository
执行之后,发现什么也没有,哈哈,恭喜你,成功打开了!
服务端到此结束了,开启客户端之旅吧!
4.安装TortoiseSVN
q.如何安装??
客户端: TortoiseSVN
TortoiseSVN-1.11.0.28416-x64-svn-1.11.0.msi
双击安装,也是没啥操作性(这里第二步,要把第二个选项选上,也就是点开,选择安装,它表示启动命令行工具,最好装上,最后 Show changelog 不要勾选,直接finish),安装完之后是英文版的,可以在官网下载它的中文安装包(LanguagePack_1.11.0.28416-x64-zh_CN.msi),也是双击安装,之后进去,如下图,就可以变成中文了:
咱们这里使用英文版进行教学。
q.如何检测安装成功?
任意文件夹内右键,看有没有出现 SVN Checkout和TortoiseSVN,如下:
5.使用TortoiseSVN工具
q.如何浏览 代码版本库?
安装成功之后,会出现好多软件,然后如下:
启动TortoiseSVN Repository Browser(版本浏览器)
输入地址 svn://127.0.0.1
这里输入admin 密码:123456
输入地址 svn://172.20.10.2/th
输入用户名 taohang
输入密码 123456
或者:
输入用户名 lisi
输入密码 123456
如图所示:
q.项目第一次开发导入到版本库?
Step1: 版本浏览器创建一个文件(可以不用)
Step2: 找到项目代码目录, 右键,选择import
Step3: 输入message(信息:如:这是第一次导入的,随便写),点击导入
注意: 以后就用导入后的代码,本地的不在用了
q.新人用代码使用操作 checkout(检出)
第一次导入版本库之后,仓库中就有第一版本了,别人想用就直接检出(checkout)就行了
Step1: 创建一个空文件夹,名字推荐为项目名
Step2: 右键=>checkout
Step3: 选择目录检出
q.每天早上- update更新 代码
q.每天修改
modify修改:
打开想要修改的文件直接修改,再SVN commit
add添加:
注意: 先创建想要创建的文件,打add标记,再SVN commit
delete删除
注意: 不要直接删文件,打delete标记
q.下班时候 - 提交 commit
6.TortoiseSVN其他操作
q.如何恢复到以前版本?
Step1: 先show log显示日志
Step2: 某个版本上点击 revert to this reversion
Step3: 提交commit
q.导出 export
场景: 有人需要不带svn控制的代码, 就export,(比如:老板要检查你的工作)
q.什么是版本冲突?
两个人同时改一个文件, 一个人改了,没提交之前,另外一个人也改了。
就是A、B同时拿到文件file1(这里相当于第一版),A修改了里面的内容,B也修改了里面的内容,A这时候修改完提交了,对于文件file1来说,A提交的相当于第二版,这时候B也改完了,也想提交,但是B当时拿到手的并不是第二版,而是第一版file1,他是相对于第一版来改的,这就会发生版本冲突。
情况1:
file1
A改1
A提交1
这里:A修改完,B才拿到手,B拿到手之前更新了,也就是拿到的是最新版本。
B更新
B改2
B提交2
A改3
A提交3
情况2:就是我上面说的
server A B
code1 code1 code1
code1.2
code1.2 提交code1.2 code1(还是)
code1.3
提交???
结果: code123
总结: 就是说你修改的代码,不是服务器是最新的
update 之后
(中间-别人给改了)
再提交(commit)就会出现:
错误: 文件 “/1802/tianya/index.html” 已经过时
q.那如何解决版本冲突呢?
若出现 文件 “/1802/tianya/index.html” 已经过时,消息时,
Step1: 出现上述文件弹出框之后,点击OK,会出现一个弹框,
Command failed - Update needed 你点击下面的update,这时候
一个文件变4个文件, r100(版本) r101(版本) .mine的文件
Step2: 先看最后版本r101
把自己的改动mine,放到r101
也就是把你修改的和别人修改的合并在一起,再提交,
若果你不知道别人修改了哪个地方,那就右键这个文件(这里是index.html),如下图:
点进去之后,黄色部分就是修改的地方,把两个文件作比较:
Step3: 修改好之后,右键执行 resolve, 这个操作表示我已经冲突解决了,可以提交了。
Step4: 最后右键提交修改commit