简介
版本控制分为多人协作与个人作业两种。
多人协作
多人协作版本控制需要有一个服务器建立仓库repository来保存、管理不同的版本,其作用细分为建立项目,建立用户,管理权限,分组控制等。服务器建立的用户包含用户名和密钥,用于远程用户登陆。服务器仓库repository使用VisualSVNservice建立,客户端文件使用TortoiseSVN建立。
服务器搭建
- 下载VisualSVNservice,安装
- 打开VisualSVNserviceManager
*右击Repositorise选择create new repository
此处有两个选项
建立服务器仓库repository - FSFS
- 选择FSFS选项,点击下一步会提示输入repository name
- 下一步选择empty repository即可
- 下一步保持默认,create即可,可以在建立之后修改权限
- 建立test后,如下
建立用户
- 右击Users选项
- 选择create user
输入需要加入此项目的用户和密钥
建立组group
- 右击Groups,选择create group
- 输入group的名字,点击add按钮可以把之前建立的用户加入到group中
项目人员分配
- 右击test选择properties
- 点击add,可以添加group和user,添加之后可以在permissions处修改权限
服务器地址
- 右击test选择copy URL to Clipboard,把这个链接发给参与的user即可。
注意:复制之后格式是 { http://XXX-PC/svn/test/ },当所有成员都在同一个局域网中时,可以通过用户名直接查找到的,但是若不是同一局域网需要把用户名改成服务器的IP地址{ http://192.168.XXX.XXX/svn/test/}即可。
服务器物理存储
- 右击test选择properties
- 选择details可以查看存储位置等信息
如Path: G:\Repositories\test打开此位置可以查看到此文件夹。
到此服务器端仓库Repositories建立完成
客户端文件搭建
- 下载TortoiseSVN,安装,安装完成对文件夹右击会有两个选项
- 和服务器连接需要先选择需要存放和同步文件的位置,需要一个文件夹如下,可根据自己需要选择合适的文件夹
- 右击该文件夹选择SVN checkout…出现下面对话框
在URL of repository输入框中输入服务器的地址{ http://XXX-PC/svn/test/ }
checkout directory 输入框中是当前文件夹位置,其它可以保持默认即可。
OK即可。
如果提示输入用户的话,输入服务器建立的用户名和密钥。
加入文件
- 向该文件夹加入文件,若此文件需要上传到服务器,需要添加上传,操作为选中文件右击选add即可
add之前文件状态
add之后文件状态
文件夹之前状态
add之后状态
添加文件上传服务器
- 右击文件夹选择SVN Commit…
- 在recent message输入框中加入修改信息,方便自己和其他用户查看修改信息,changes mode输入框中可以选择要上传的文件。
showlog可以查看修改历史
OK即可。
文件状态
* 此时的visualSVN server状态*
更新文件,保持与服务器同步
如果其它user上传了test3.txt文件,需要同步的,通过以下操作:
* 右击文件选择SVN update
OK即可。
此时文件夹更新为
服务器状态
不同的客户端可以通过以上方法上传和下载服务器端的文件。showlog功能可以查看修改信息。
更改登陆用户
tortoiseSVN在一台电脑上默认只输入一次用户登陆信息,系统会自动记录此次的登陆信息,若再次在本电脑上建立新文件夹,SVN checkout下载文件,是不会要求你重新输入用户名和密钥的,默认使用之前记录的用户信息,若需要修改登陆用户,要执行一下操作
* 同一台电脑上两个同一用户名的文件夹
* 修改testSVN2的用户为zhou,选择文件夹右击->tortoiseSVN->settings
* 选择saved Data ->clear
* 在出现的对话框中,勾选要清除的用户,确定即可
* 此时再次对该文件夹执行 右击->SVN Update,会出现新的用户登陆信息,输入新的用户名和密钥即可登陆。
冲突解决
多人协作,很容易出现冲突,TortoiseSVN提供了对应的解决方式。
冲突出现在,用户没用更新到最新文件,就修改了其它用户已经修改过得文件,此时在上传时即SVN commit…时会提示因为冲突而无法上传,需要打开冲突文件,解决冲突即可。
* 用户wang首先修改testSVN文件夹下的test1.txt并上传到服务器,同时用户zhou修改testSVN2文件夹下的test1.txt并试图上传到服务器
* 上传testSVN2文件夹时,检测到了冲突conflicted
* 点击showlog会出现,wang修改了此文件导致conflicted
* 点击确定之后再次上传,会出现test1.txt标红
* 双击标红的文件test1.txt,出现Edit界面
* 可以选择文件块右击选择放置位置,当然也可以手动编辑解决冲突
* 修改之后的文件,保存即可
* 此时上传界面红色文件标记已经消失,可以上传了
常出现的标志
无文件更新
文件被修改等待上传
文件冲突
个人作业
只需要安装有TortoiseSVN客户端即可实现。这种模式下repository在自己电脑上建立
建立本地仓库repository
*新建文件夹,执行一下操作
* 复制仓库地址,建立文件上传文件时使用,OK即可
建立本地上传文件夹
- 建立同步上传文件夹localUser,右击->SVN Checkout…
*在出现的对话框中输入之前建立仓库的地址即可
若之前未复制仓库地址可以通过,右击仓库文件夹->TortoiseSVN->Repo-browser,查看
对本地上传文件夹的使用方法同服务器中的本地文件夹使用方法一致
说明:
1. 仓库repository建立之后,不需要修改,通过客户上传和同步自动修改。
2. 服务器和客户端可以在同一台机器上,但是客户端和服务器是独立的,客户端需要用户名和密钥登陆。