SVN版本控制管理操作

Posted Do_GH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN版本控制管理操作相关的知识,希望对你有一定的参考价值。

安装

客户端

  1. 下载客户端安装包
  2. 按照界面提示进行安装
  3. 启动客户端

若需要安装语言包可以下载单独的简体中文语言包,双击执行就可以为客户端添加语言

服务端

  1. 下载服务端安装包
  2. 按照界面提示进行标准安装,设置安装路径、仓库根路径、服务备份路径和端口号
  3. 运行VisualSVN Server Manager,启动SVN Server的界面化管理平台。

SVN服务端

创建仓库

右键单击【Repositories】,再点击【Create New Repository】

仓库类型选择默认(Regular FSFS repository),点击【下一步】,填写项目名

点击【下一步】选择创建仓库的结构,是创建空的仓库还是需要程序辅助生成一个简单的项目结构,该结构包含trunk、branch、tags三个文件夹。

/trunk /branch /tags也是项目的一般结构目录,/trunk为主分支目录,/branch为分支目录,/tags为标签目录
如果一个仓库中有多个项目一般可以使用/trunk/project/ /branch/project/ /tags/project/,同时也可以项目名为根目录,例如:/project/trunk/ /project/branch/ /project/tags/

点击【下一步】进行权限分配,选择【All Subversion users have Read/Write access】为使所有用户都具有读写权限,如果该仓库需要进行权限管理,可以选择【Customize permissions】点击【Custom…】为人员分配权限。


点击【Add…】可添加人员或组,【Remove】可移除人员或组,在下方可设置该人员或组所具有的权限。在项目建立完全后,可右键各级文件夹,选择【properties】进行文件夹的权限划分。

对于拥有只读权限的用户只能下载文件,没有提交的权限。

人员、组管理

管理界面中左侧菜单栏中【Users】和【Groups】可以单独管理人员和组,右键单击菜单栏选择【Create User】或【Create Group】创建人员和组。

客户端

拉取服务端仓库

在本机合适位置右键选择【SVN检出】弹出拉取仓库界面,填入需要拉取仓库的地址与本地存放位置,点击【确定】。第一次连接仓库会提示检测用户需要输入用户名和密码,正确输入用户名和密码即可拉取项目至本地文件夹。

添加新文件

可以将需要添加的项目文件直接复制到仓库中,再将所有文件进行添加,再提交至远程仓库中。

新建一个文件README.txt,写入一些内容,右键文件点击【TortoiseSVN】–【加入】将该文件添加入项目管理中。

在空白处右键点击【SVN提交】,进入SVN提交界面,填写提交信息点击【确认】,即可将该文件添加至远程仓库中。



在【版本库浏览器】中再次查看,可以看到新增的README.txt。

删除、修改内容、重命名文件、移动文件操作类似,在资源管理器中操作完毕后点击提交,填写提交信息后即可。

更新本地文件

在其他人上传了文件后,可以在本地仓库位置右键单击选择【SVN更新】,SVN会自动将不存在的文件拉取到本地目录上。

修改

当对项目修改完毕后,需要将修改后的文件上传至远程仓库,右键单击选择【SVN提交】,打开提交界面。

文件对比

文件进行了更新之后,若想查看与原来内容的区别,可以右键点击被修改的文件,选择【TortoiseSVN】–>【比较差异】,打开文件比较,就可以看到前后更新的内容。

删除

若某文件或文件夹不再使用可以直接点击右键删除,再提交修改的内容。

忽略文件

对于项目中产生的IDE配置文件或编译产生的编译文件等其他文件是不需要上传至远程仓库的,所以可以通过设置,使其在提交时不被上传至远程仓库。

方法一:
右键单击本地仓库,选择【TortoiseSVN】–>【设置】,在【常规设置】中设置【全局忽略样式】,将需要忽略的文件夹或文件表达式填在最后。这种设置可以通用与所有本地仓库。

方法二:
对于不需要添加的文件右键单击,选择【TortoiseSVN】–>【增加到忽略列表】选择要添加的类型,一般我们希望每个文件夹都能执行该策略所以使用递归(resursively)每个文件夹。

也可以在仓库空白位置右键单击选择【TortoiseSVN】–>【属性】–>【其他】,新增属性svn:ignore添加不需要上传的文件或文件名,勾选递归应用该属性则应用于所有目录结构。

设置完毕后可以发现所有文件夹都变为已修改,提交修改

可以发现所有文件夹属性被修改,双击修改记录可以看到添加的忽略文件内容,通知服务端该仓库不再接收此类文件。

分支创建

右键单击主分支(trunk),选择【TortoiseSVN】–>【分支/标记】,进入创建分支界面,填写创建分支的路径与提交信息,点击【确定】完成分支创建。

如果该项目需要分支管理可在创建仓库时选择自动创建简单结构。

创建完毕后重新更新本地仓库,就可将远程仓库下创建的分支拉取下来。

分支合并

当在分支上完成所需要的修改,并完成测试提交至远程仓库后,可将该分支合并进主分支。首先需要切换分支至主分支上,再进入主分支目录结构,右键单击【TortoiseSVN】–>【合并】。

选择需要合并的分支路径,若需要指定合并的版本号可以特意指定。


在合并前可以点击【测试合并】检测合并操作是否正确。点击【合并】即可将分支中已修改的内容合并至主分支中。

再次查看README.txt可以看到在分支中的修改内容,再点击提交,将主分支进行提交即可完成合并操作。

冲突

在多人开发过程中难免会遇到不同的人修改了同一个文件的情况,当A提交后,等到B再进行提交时SVN就会提示存在冲突,需要解决。

在主分支中可以看到冲突文件生成了有三个同名文件

可以在随即弹出的【编辑文本冲突】的对话框中选择【编辑】进入冲突编辑对话框。


在此对话框中可以看到本地文件与新提交的内容,并在合并后文件中进行修改点击【保存】再点击【Mark as resolved】。再重新向主分支提交即可。

删除分支

待分支完全合并进主进程后,不再需要开发时可以删除分支,待需要时再次创建分支。

标签

在开发至一定程度可以发布稳定版本时,可以打一次标签存储该版本代码,以待后期开发过程中若发现前期版本问题时可以及时在该版本上创建新的分支并修复。

以上是关于SVN版本控制管理操作的主要内容,如果未能解决你的问题,请参考以下文章

配置管理工具除了版本控制的工具(如SVN)外,还有其他类型的工具吗?

SVN版本管理与大型代码上线

SVN版本控制管理操作

SVN版本控制管理操作

VisualSVN Server与TortoiseSVN搭建SVN版本控制系统

TortoiseSVN与VisualSVN Server搭建SVN版本控制系统