一、SVN工具介绍
背景:
在多人协作开发的模式下,每个人都向服务器提交自己的文件,就可能存在着代码被多次修改、替换的风险,但是版本控制能够在每次更新操作后进行相应的记录。一旦发生误操作,开发者能够根据服务器中的版本记录,将项目恢复到出现问题之前的其他版本。因此,借助版本控制技术,软件开发项目可以被分割为若干模块,每个模块并行地进行开发工作,从而有效地提高了整体编程效率。
SVN 是什么
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。
类似的工具有哪些
- VSS(visual source safe):收费、Windows下用、局域网下用
- CVS(concurrent version system):开源、C/S、支持多平台、不支持文件改名,只针对文件版本的管理
- SVN(Subversion):CVS升级版,支持文件、文件夹版本管理、支持文件改名
- clearcase(rational):可以实现软件整个开发过程中的所有文本、文件夹版本管理;但功能多使用复杂,需要培训
- TFS(team foundation server):功能强大、收费(微软)
二、SVN服务器(VisualSVN-Server)搭建和使用(详细)
提示:仅介绍VisualSVN Server与TortoiseSVN的安装
安装VisualSVN-Server-2.7.3.msi
- 获取VisualSVN-Server软件,可以去官网下载,也可以点这里获取
- 解压压缩包软件,会得到VisualSVN-Server-2.7.3.msi文件
- 按顺序安装,仅需注意如下:
  - 出现如下页面表示安装完成:
 提示:安装好后可以在开始菜单中找到
常用操作
- 创建项目结构
1.1 创建库(类似公司的部门)  1.2 在库下面创建结点(类似于部门下面的项目组) 
1.3 结点下再创建子结点(类似于项目组内部文档的管理结构) 
完整的项目结构,如下所示: 
-
创建用户,并设置用户的密码(用户为英文)  -
创建组  -
将用户加入组中  -
给具体的结点设置权限:选中该结点右键选择properties,然后选择用户或组,设置对应的权限。如下图所示: 
三、SVN客户端(TortoiseSVN)安装与使用
安装TortoiseSVN
- 获取TortoiseSVN-1.9.3.27038-x64软件,可以点这里获取
- 安装客户端软件:TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi,双击一直下一步就好
- 如果需要汉化,则再安装: LanguagePack_1.6.5.16974-win32-zh_CN.msi
注:安装完成之后,客户端的所有功能会绑定在右键菜单中,当点击右键菜单时若出现SVN Checkout、TortoiseSVN两个菜单项,表示客户端安装成功。 
常用操作
- 将服务器(VisualSVN Server)上面的内容首次同步到客户端,同步之前先在客户端的电脑上的硬盘中新建一个文件夹,用于存放服务器端同步过来的文件,如 “svn001”,在新建好文件夹后,打开 svn001, 在其中的空白处点击右键选择:TortoiseSVN–Repo-browser,进入版本库浏览器
 在以下弹出界面中要输入 检出的 SVN 服务器的地址  SVN 服务器的地址(URL)来自于服务器,具体获取方式如下,在对应结点上右键选 copy URL to Clipboard,URL 会复制到剪贴板中:  - 如果要将”40 测试” 的内容同步到客户端,则在“40 测试”上面点右键,然后选checkout…
 - Checkout 后,弹出如下界面,注意以下红色内容(为了确保客户端检出之后的内容与服务器目录结构一致,建议检出时将其与服务器上面一一对应,注意 / 与 \ )
 - 上图中点击 ok 之后,会将内容同步,如下所示,提示成功
 - 同步完成后,逐步打开 svn001 中的文件夹,如下所示:
 - 从客户端增加文件或文件夹,并将其同步到服务器
6.1 先打开具体的文件夹,在其中新建文件或文件夹,建完之后,其图标带问号  6.2 在空白处点右键,选择SVN commit,会出现如下界面
 6.3 点击 OK 后出现如下界面  6.4 点击 OK 后,新加文件图标改变,此时,该文件与文件夹已经存在于 SVN 服务器上。 
-
修改文件 7.1直接打开要修改的文件,将其内容修改,修改完成后保存,其图标变为感叹号  7.2修改后的文件需要提交,服务器上才会同步修改:在空白处点右键, 选SVN commit 提交即可 -
删除文件:可现在本地上删除,然后在空白处点右键, 选SVN commit 提交即可,提交之后 SVN 服务器上面相应的文件会删除  -
文件的更新:当我们需要将 SVN 服务器上别人上传的内容同步到自己电脑时,按照以下步骤操作:  -
文件的锁定:当一份文件需要被多个修改时,为了避免同时修改造成冲突,那么在修改之前先锁定该文件,可以防止冲突。在 要锁定的文件上面点击右键,选TortoiseSVN–然后选get lock 锁定的文件,在修改完提交之后,会自动解锁  如果本地不需要修改提交,也可以手动释放锁定,具体方法如下:  -
查看文件的操作日志:指的是一个文件由谁创建,中途由哪些人进行了修改,均可通过查看日志获取相关信息。  具体 log 信息如下:  -
SVN 不同版本内容的比对,显示日志,然后选中想要比对的版本,点击右键  则会显示两个版本的不同之处,如下所示:  -
版本回溯:指的是不需要手工恢复文件,可将其内容回到上一个或更久的版本,操作步骤如下,打开日志,选中要退回到的版本,在其上点右键,点击 Revert to this revision,弹出确认 信息后,点击 yes.  回退需要执行提交才能正式更新到 svn 服务器
|