SVN安装配置与使用

来源:互联网 发布:求矩阵 a 3 1 100 编辑:程序博客网 时间:2024/05/22 20:01

一、工具

1、SVN服务器安装包:VisualSVN-Server-3.6.3-x64.msi
VisualSVN-Server-3.6.3-x64.msi
2、SVN客户端安装包:TortoiseSVN-1.9.5.27581-x64-svn-1.9.5.msi
TortoiseSVN-1.9.5.27581-x64-svn-1.9.5.msi

二、服务器的安装

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

注意:location ——为安装文件位置,Repositories——为管理的代码仓库的位置,若选中Use secure connection前面的Checkbox,则表示安全连接【https】,这里的端口有433/8433可用,若未选中Checkbox,默认端口80/81/8080,身份认证选择Subversion。

这里写图片描述

这里写图片描述

三、客户端的安装

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

点击完成安装。

四、服务端的配置和使用

注意:这里是把自己的电脑当做服务端。一般在公司会有专门的大家共用的服务端,如果你不是做运维或者需要配置服务端、创建代码库的人,以下的操作一般不用你来操作。

● 打开VisualSVN Server Manager
这里写图片描述

●添加一个代码库
这里写图片描述

●在文本框中输入代码库的名称
这里写图片描述

这里写图片描述

选中的复选框,代表建立一个空的代码库。红框内的复选框,选中代表建立三个子目录。

●设置用户权限,创建完后还可以调整
这里写图片描述

●创建完代码库后,里面内容为空
这里写图片描述

●安全性设置:点击左侧Users——Create User
这里写图片描述

●将创建的User添加到刚才创建的项目中:你创建的项目project——右键选择Properties
这里写图片描述

●点击Add
这里写图片描述

●选择创建的User,点击OK
这里写图片描述

Permissions表示选择用户权限,有四种选择1、Inherit from parent 从父用户中继承2、No Access 不允许访问3、Read Only只读访问4、Read/Write 可读可写

五、客户端的基本使用

客户端的使用在工作中是最常见的,所以这里的知识要学扎实啦。

1、签入文件到SVN服务器

●我们新建一个文件夹test,我们要把这个文件夹签入到我们新建的project版本库中,首先右键点击test——TortoiseSVN——Import.
这里写图片描述

●点击Import.
这里写图片描述

其中URL of repository为版本库的URL链接,https://PC201707111603为服务器的IP地址,svn是代码仓库的根目录,project是我们添加的代码库。这个链接我们可以再SVN服务端上找到:在project上右键——点击“Copy URL to Clipboard”,这样就把project版本库的地址复制下来了。在工作中,这个地址一般要服务器管理员提供给你。

● 输入用户名和密码
这里写图片描述

在这里我们填的用户名和密码,是自己刚刚设置的那个User的用户名和密码。如果在工作中,这个用户名和密码一般也是管理员提供给你,他也会给你开相应的读或写的权限。这个用户名和密码要记得。还有Save authentication复选框,意思是记住用户,以后就不用输入用户名密码了,这样虽然省事,但是实践证明,最好不要记住用户,要不以后反而会很麻烦的。

●点击OK
这里写图片描述

因为我们的test文件夹中放了一个txt文本,所以这里可以看到文本成功导入的提示。

●这样,test文件夹就已经导入SVN服务器上了。
这里写图片描述

2、导出SVN上的文件到本机

●首先在本机上创建文件夹testout,右键点击SVN Checkout。
这里写图片描述

在上图中URL of Repository下的文本框输入svn server中代码库的地址,其他默认,点击OK按钮,就开始导入文件了。说明:上图中Checkout Depth,有四个选项,分别是签出全部、只签出下一级子目录和文件、只签出文件、只签出空项目,默认是第一项。

●点击OK
这里写图片描述

弹出导出完成的提示。

●打开testout目录,可以看到如下的文件夹结构:
这里写图片描述

3、修改文件并提交

●我们打开testout文件夹目录下的test1文本,输入一行字:
这里写图片描述

●我们发现文件或文件夹的显示图片由绿色对号变为红色叹号:
这里写图片描述
这里写图片描述

●现在我们要将修改后的test1.txt文档提交到SVN服务器,首先找到带有红色叹号的最外层文件夹,然后右键选择SVN Commit:
这里写图片描述

●点击OK,弹出如下对话框
这里写图片描述

这里我们发现,修改后版本已经改为2.

4、添加新文件到SVN服务器

●在testout文件夹下新建文本test2.txt:
这里写图片描述

●在testout文件夹上右键——SVN Commit就可以了,这样以下步骤可以直接省略,效果是一样的。

●在test2.txt上右键——TortoiseSVN——Add
TortoiseSVN

图标变为蓝色加号,这样并没有将这个文件提交到SVN服务器,只是将这个文件标记为版本库中的文件,并将其状态设置为添加状态。

●之后在test2.txt上右键——SVN Commit一次
这里写图片描述

●点击OK
这里写图片描述

这里注意,我演示的每次提交文件时都没有写说明,这是很不好的,每次只要有提交的动作,最好都要写一点说明,表示你做了什么修改。这样同伴们才能及时清楚代码修改了什么地方。

5、更新本机代码与SVN服务器上最新的版本一致

这个只需要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVN Update,就可以了。注意:更新操作可能会因为版本冲突而失败,这时可以使用合并【Merge】或其他解决方法,也可能因为锁定【Get Lock】而失败,这是需要先解锁【Release Lock】。

6、重命名文件或文件夹,并将修改提交到SVN服务器

只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>>Rename…,在弹出的窗体中输入新名称。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后的名称,也需要我们使用SVN Commit提交到SVN服务器。

7、重命名文件或文件夹,并将修改提交到SVN服务器

最简单的是直接删除文件或文件夹,然后使用SVN Commit提交更新到SVN服务器。另外一种方法是在你要删除的文件或文件夹上点击右键Tortoise=>>Delete删除,此方法也不是直接删除,而是将文件或文件夹的状态设置为删除,也需要我们使用SVN Commit提交到SVN服务器后才真正删除。

8、SVN还原(SVN Revert)

右击想要回退的文件或者文件夹,在TortoiseSVN弹出菜单中选择”Update to reversion…” 然后会弹出一个窗口,输入你想回退到的版本,点击OK即可:

这里写图片描述

9、说明

●1)实际上,从你把源代码签入SVN服务器开始,每一个版本的数据和文件,就是你已经删除了的,也都可以随时签出。

●2)向SVN服务器提交源代码的时候,一定不要提交bin,obj等文件夹,Android Studio项目代码不要提交build文件,否则很麻烦,但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。

●3)如果项目中引用其他的第三方控件的程序集,最好不要简单的从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目录,将需要的程序集复制到这里,然后从Library目录引用。

六、主干、分支合并等操作

1、项目中为何要创建分支,里程碑?

在实际的项目中,版本库通常分为三个子目录:trunk、branch、tags。trunk:一般来讲,项目所有的文件放在主干上(trunk)中。branch:由于需求的变更,需要增加新的需求,但是我们主干上还要继续往下开发,在此我们可以新建一个分支(branch),来做增加新的需求那一块,主干上继续开发,等分支上代码没有问题的时候,再合并到主干上来。创建分支的最大的目的就是跟主线进行并行开发时候不影响主线的开发。    tags: 类似工作中的一个快照,保存特定版本,可以是Trunk,Branch的一个特定点上的快照。在实际的项目中,基本上每次上线前,都会把代码放到tags中。

2、合并分支到主干上

●在主干(trunk)文件夹下,鼠标右键该文件夹——TortoiseSVN——Merge
这里写图片描述

●弹出的窗口如下:
这里写图片描述

●接着点击【Next】下一步,如下图所示:
这里写图片描述

●再接着【Next】下一步,如下图所示:
这里写图片描述

●可以看到主干trunk上多加了一个文件,就是从分支上合并过来的。