SVN安装与使用
目录
1. 说明
简介:SVN(Subversion)是开源免费的代码版本控制工具。
作用:用于多人共同开发一个项目。
原理:svn将提交的数据放在中央档案库(repository)中,类似于文件服务器。用户每提交一次代码为一个版本。svn会记录每次代码改动,这样便可回退版本,或浏览代码历史版本。
2. 安装
SVN有服务端和客户端,服务端用做仓库,客户端给用户做提交和更新操作。
2.1 服务器安装
- 双击安装程序 VisualSVN-Server-4.3.2-x64.msi
- 勾选同意协议,点击next
- 选择默认配置,点击next
- 设置服务器安装路径、资源存放目录及端口。
- 使用默认配置即可,点击next。
- 点击Install安装。
- 安装完成,点击启动。
- 出现如下窗口,则表示安装成功。
2.2 客户端安装
- 双击安装程序 TortoiseSVN-1.14.1.29085-x64-svn-1.14.1.msi,点击Next
- 点击Next
- 勾选command line client tools,选择安装路径,点击Next
- 点击Install安装
- 安装完成,点击Finish
- 在任意位置,右键,出现如下内容,则表示安装成功。
3. 配置
3.1 服务器端配置
服务器需要提供IP、端口、账号、密码供客户端使用
3.1.1 设置IP和端口
- 打开服务器,点击VisualSVN Server,选择 Configure authentication options…
- 点击Network,设置Server name,建议使用当前IP
Server name的值可以设置为:
- 当前电脑IP(能够ping通此IP的用户均可访问)
- 电脑用户名(只能本地自己访问)
- 127.0.0.1(只能本地自己访问)
3.1.2 新建账号密码
创建svn使用账户,可以理解为为开发组人员分别创建一个用于访问仓库的账号。
- 右键左侧菜单User,选择Create User
- 设置用户名和密码
- 创建好的账号如下所示
3.1.3 新建分组
- 右键左侧菜单Groups,选择Create Group…
- 设置分组名称,并分配成员
3.2 客户端配置
设置 SVN 忽略(不提交)的文件\目录:
target
.idea
.settings
.project
*.iml
*.log
.classpath
- svn根目录空白处右键点击 TortoiseSVN → Settings
- 在General → Global ignore pattern 处添加要忽略的文件表达式,点击确定即可
Global ignore pattern中添加 target .idea .settings .project *.iml *.log .classpath
4. 使用
4.1 新建版本库
- 选择Repositories右键,点击Create New Repository…
- 存储方式选择Regular FSFS repository,点击下一步
- 自定义版本仓库名称
- 设置仓库目录 (任意一个即可)
- 设置访问权限
- 点击Create,完成
4.2 迁入项目至SVN
版本库模板有三个文件夹,均为空的,含义如下:
- branches 分支
- tags 标签
- trunk 躯干
- 右键版本库trunk目录,点击Copy URL to Clipboard 拷贝远程仓库地址
- 选择开发项目,右键Tortoise SVN,选择import
- 将仓库地址粘贴到地址栏,后面
- 点击OK后,选择Accept the certificate permanently 永久接受此证书
- 输入用户账号和密码
- 导入成功
4.3 从SVN拉取项目
- 复制项目远程地址
- 在本地任意目录中,右键 SVN Checkout…
- 输入远程地址,设置项目存放位置
- 输入用户名和密码,选择记住授权信息,下次不用登录验证
- 检索完成
4.4 提交代码
为了不产生版本冲突(代码冲突),养成习惯先进行一次Update,有冲突时svn会提醒用户先解决冲突,再进行提交操作。
- 在空白处右键,先点击SVN Update,对项目进行更新
- 如果有版本冲突,先解决冲突后,再点击SVN Commit
- 勾选需要提交的代码,添加备注后点击OK
- 提交成功
4.5 更新代码
4.6 解决SVN不显示图标问题
- WIN+R,输入regedit,打开注册表
- 依次点击 HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Windows -> CurrentVersion -> Explorer -> ShellIconOverlayIdentifiers
- 重命名一下Tortoise系列名字(在名字前面加多几个空格),然后重启电脑
常见图标含义
5. 解决版本冲突
5.1 版本冲突原因
A,B两用户在版本号为1的时候,都对User.class这个文件进行了修改。A用户修改完后进行了提交,此时提交成功,版本号变为2。此时B用户由于在版本号为1的文件上进行修改,而不是当前最新的2版本,B用户进行修改。就会发生版本冲突。
5.2 版本冲突现象
当文件发生冲突时,SVN会在当前目录生成三个文件:xxx.mine (当前自己版本)、xxx.rx (服务器最新版本x)、xxx.rx (用户当前版本x)
5.3 解决冲突
5.3.1 场景
- zhangsan,lisi都更新项目文件到本地
zhangsan本地:
lisi本地:
TestSvn.txt 原始内容:
-
zhangsan修改文件,完成后提交到服务器
提交成功,版本号升为4
-
lisi修改文件,完成后提交到服务器
提交失败,由于服务器当前版本为4,而 lisi 是在版本号为3的基础上修改的
5.3.2 解决
解决方案:lisi 先拉取服务器最新版本的代码,解决代码冲突后,再进行提交操作。
- lisi 在当前目录下,右键 “SVN Update”,拉取最新版本
2, 此时 lisi 文件提示冲突,并在当前文件夹生成三个文件
xxx.mine 表示当前自己的文件
xxx.rx 表示版本x的文件
- 在冲突文件上右键 → TortoiseSVN → Edit conflicts,进入解决冲突窗口
- 打开后,编辑冲突窗口如下
- 编辑好后点击 “Mark as resolved” 标记为已解决,再点击 Save 保存
- 再次尝试提交,提交成功后,冲突已解决
6. idea中使用SVN
6.1 配置环境
- 点击 File → Other Settings → Settings for New Project → Version Control → Subversion
- 配置svn
- 重启idea
- 配置svn提交忽略文件,点击File → Settings → File Types,在 Ignore files and folders中 添加即可
6.2 检索项目
- 选择 VCS → Get from Control → Subversion
- 添加远程仓库项目的URL
- 选择项目的存放位置
- 根据个人项目存放偏好,设置Destination,其他默认,点击OK
- 选择1.8 format ,点击OK
- 输入用户名、密码,点击记住授权
- 打开项目
- 点击 VCS,出现如下则表示项目已与远程仓库关联
6.3 提交代码
注:每次提交前建议先更新代码(update Project)
- 选择VCS → Commit
- 选择要提交的文件,添加备注信息,点击Commit
- 提交成功后,idea底部会提示状态
6.4 更新代码
- 点击 VCS → Update Project
- 默认即可,点击OK
6.5 版本冲突
冲突场景如同4.1节所示
6.5.1 场景
- zhangsan 代码如下:
- lisi 代码如下:
- 张三先提交代码,成功,版本变为12
- lisi 接着提交代码,失败,发生版本冲突
6.5.2 解决
- 先执行更新操作,此时会引起代码冲突,点击弹窗中的 Merge,进入冲突解决页面
- 解决好代码后,点击 Apply
- 在弹窗中标记已解决
- 再次提交代码,冲突解决
感谢观看 再见