首页 > 技术文章 > 介绍配置管理工具SVN的使用

color-blue 2018-03-11 20:40 原文

配置管理CM(Configuration Mangerment)

一、配置管理工具SVN的介绍

---Subversion

---是一个开放源代码的版本控制系统

---时下流行的SVN和GIT

每天开发人员从服务器上获取最新的代码——get

下班时提交代码数据至服务器——commit

优点:方便大家共享资料

 

常见的一些TortoiseSVN图标集

 

如果不使用配置管理工具的话会导致:

 

二、安装配置管理工具SVN服务器

1、双击桌面上的SVN服务器安装包

2、进入SVN服务器的安装向导界面,点击下一步

3、勾选“I accept the terms in the License Agreement”,点击下一步

4、选择第一个红框内的“服务器和管理工具”并勾选第二个红框内的“添加至环境变量”,点击下一步

5、点击“Standard Edition”(标准版)按钮

6、进入此界面后,可自定义“服务器安装路径”和“版本库安装路径”,端口号设置为:8443,设置好后点击下一步

7、点击“Install”按钮,进行安装操作

8、等待安装完成

 9、不要勾选上面两个单选框,直接点击Finish按钮即可

 10、进入SVN服务器安装路径下的bin目录,找到svnserver.exe应用程序

**此处SVN服务器安装完成

 

三、安装配置管理工具SVN客户端

1、双击桌面上的SVN客户端安装包

2、进入SVN客户端安装向导界面,点击下一步

3、点击下一步

4、可根据用户需求自定义安装路径,点击下一步

5、点击“Install”按钮,进行安装操作

6、等待安装完成

 

7、点击“Finish”按钮

**此处SVN客户端安装完成

 

四、在主机中添加文件上传至SVN服务器中,并在客户端中查看

1、SVN服务器和客户端搭建完成后,鼠标在桌面/文件夹下右击,出现如图所示的菜单,这表明SVN服务器和客户端都搭建完成

2、点击开始——所有程序——VisualSVN Server Manager,启动SVN服务器

3、进入SVN服务器界面

4、右击Users,点击“Create User...”,创建两个新用户即可

 

5、右击Groups,点击“Create Group...”,同样创建两个新组即可

6、右击Repositorys,点击“Create New Repository...”

7、进入下面添加版本库向导,选择第一个,点击下一步即可

8、输入版本库名称,点击下一步即可

9、默认选择第一个,点击下一步

 

10、选择第三个自定义权限,点击“Custom...”按钮

11、点击Add按钮,选择需要添加权限的的用户和组,点击“ok”按钮

12、对所添加的用户和组赋予相应的权限,点击确认键即可

13、设置好后,点击create按钮

14、进入下图后,可以看到自定义赋予的权限,确保无误后点击“Finish”键,完成创建

 

**此处SVN服务器创建版本库、用户和组完成

15、此处可以看到之前所创建的版本库test1访问地址

16、鼠标右击桌面/文件夹,选择“TortoiseSVN”下的“Repo-browser”

17、输入上面版本库test1的访问地址,点击ok键

18、输入之前所创建的用户名和密码,点击ok键

19、进入SVN客户端,可在客户端中进行操作了

注:我们需要将登录版本库test1的默认用户帐号清除,避免下次直接登录

(1)点击“TortoiseSVN”下的“Setings”按钮

(2)进入设置界面,点击“Saved Data”下的clean all按钮,点击确认键即可

(3)下次登录时不要勾选“保存身份验证”按钮,避免直接登录默认账户

20、接下来,我们在任意盘符位置出新建一个空文件夹zhangsan,如图所示

21、打开文件夹,鼠标右击选择“SVN Checkout...”按钮

22、进入下图界面,上面一个红框为test1版本库的URL地址,下面一个红框表示检出的路径,选择好后,点击ok键即可

23、输入相应的用户名和密码,点击ok键

24、弹出如图所示的状态提示信息,确认无误后点击ok键即可

25、此时会看到新建文件夹zhangsan图标处有一个绿色的勾,表明文件夹检出成功

26、打开该文件夹,新建一个.txt文件,如图所示,图标前面出现了一个问号,表明该文件无版本控制,需手动添加

 27、右击该文件,点击“TortoiseSVN”下“Add”增加按钮

28、此时图标变成了一个“加号”,如图所示

29、双击打开,任意编辑一些内容,保存并关闭

30、右击文件,点击“SVNCommit...”按钮,上传该文件至服务器

31、如图所示,红框内可添加一些备注信息(可有可无),添加好后,点击ok键

32、出现状态提示信息,点击ok键

33、同样,出现此图标,表示修改的文件上传至SVN服务器成功

34、接下来,分别登录至客户端和服务器查看

**上传文件至SVN服务器成功

 

五、模拟客户端之间的资料共享

         接下来,模拟两个用户同时登录到test1版本库服务器,同时对一个文件进行操作

1、在刚才创建zhangsan文件目录中再次创建另一个文件夹wangwu,(用上述检出zhangsan文件夹的方式对文件夹wangwu进行检出操作),并且用另一个帐号登录

2、如图所示,两个程序员zhangsan和wangwu同时使用服务器下的文件进行操作

3、wangwu工作效率高,提前做完工作保存后,提交至服务器

4、zhangsan工作完,保存后提交至服务器

5、发现提交失败,报错,表明需要提前更新文件方能进行操作

6、接下来,zhangsan需要进行处理,解决冲突。右击文件选择“TortoiseSVN”下的“Edit conflicts”按钮

7、进入下图界面,右键选中所有的红色字体,选择下图红框内的选项(将wangwu的操作放在zhangsan的前面)

8、操作完成后,点击界面中间的“√”,关闭页面即可

9、再次提交,成功提交

**此处两个重要的命令:“SVNUpdate”(更新)和“TortoiseSVN”下的“Edit conflicts”(解决冲突)

以后工作中要切记进行更新操作

1、zhangsan学聪明了,将文件夹锁定起来进行操作,此时文件上增加了一把锁的图标

2、wangwu工作完后发现提交不了,得知被其他人锁了,于是登录到客户端中查看锁文件的人为:zhangsan

3、wangwu找zhangsan,让其解锁,wangwu好提交工作。zhangsan进行解锁,右键文件夹选择“TortoiseSVN”下的Release lock...按钮,将文件解锁

**锁定文件夹命令:Get lock,解锁的命令:Release lock

   解锁方式有两种:用户主动解锁/用户上传文件至服务器后可自动解锁

1、zhangsan用户需要更改文件名,右击文件

 2、进入下图界面,更改文件名,文件名变成“+”号

3、右键文件夹空白处(不要点击文件名)选择“SVNCommit...”,成功改名

**重命名命令:Rename

 1、zhangsan修改文件后,发现做错了,想回到之前的版本。对没有上传的文件进行操作,右击文件夹空白处(不要点击文件名)选择“TortoiseSVN”下的“Revert...”按钮

2、选择上一版本文件后,点击ok键。成功回到上版本

注:返回的只是当前客户端的旧版本,如果服务器与客户端不同步,也不会直接返回并与服务器同步。

**返回刚修改前的内容命令:revert

1、zhangsan想看当前文件修改的历史记录。右击文件夹空白处选择“TortoiseSVN”下的“Show log”

**查看当前文件修改的历史记录命令:Show log

1、zhangsan想删除文件。右击文件选择“TortoiseSVN”下的“Delete”按钮。删除完,右击文件夹空白处的“SVN Commit”,显示文件状态为deleted

**文件删除命令:Delete

 1、zhangsan用户想导入文件至服务器。右键需要导入的文件所在文件夹下的空白处,选择“TortoiseSVN”下的Import...

2、选择目标版本库的URL地址,点击ok键

3、导入成功,点击ok键

注:如果文件夹下只有一个文件,那么只会上传单个文件,如果选中文件夹下有包含文件夹,会连文件夹一同上传。

**导入命令:Import

1、zhangsan用户想导出文件夹。右击zhangsan文件夹下的空白处,选择“TortoiseSVN”下的Export...

2、输入目标版本库的URL地址,点击ok键

3、导出成功

 4、文件上面没有绿色小勾图标,表明该文件与服务器无关联

 

**导出命令:Export

1、zhangsan用户想更新版本。右击需要更新版本的文件,选择“TortoiseSVN”下的“Update to revision...”

2、点击“Show log”查看版本信息

3、选择需要返回的版本,点击ok键即可

4、显示更新版本成功

**更新版本命令:Update to revision

***

diff(比对)
选中文件右击,有三种模式
Previous version 与以前的版本进行比对
或者
选中两个文件右键diff,比对两个文件不同的地方


relocate(重新指向服务器的地址)
搬运服务器,ip变更后使用


tags(建立分支)/merge(合并分支)
多是开发使用

 

 

六、命令模式操作

1、创建版本库开始菜单—cmd进入dos窗口

     如图所示,切换版本库路径E:\Reporsitories目录下,输入创建版本库test2的命令:svnadmin create test2

2、版本库创建完成之后,需要创建用户、组以及配置对应的权限了

     linux系统中直接cd 到对应配置文件目录下,采用vi命令去编辑即可,此处还是以windows系统下进行操作讲解。

     如本机已创建一个Test2的仓库:E:\Repositories\Test2,在conf文件夹下配置以下3个文件

     1)svnserve.conf:SVN服务的配置文件,将以下配置取消注释:

          anon-access = non

          auth-access = write

          password-db = passwd

          authz-db = authz

          

 

     2)authz:存放用户或组的权限(读、写),配置如下:

          

    3)passwd: 存放用户和密码,如增加以下用户和密码

          

---以上3个文件的配置信息只针对通过svn://方式去访问时才有效,通过http://或file://方式访问时无效。

 3、配置完成后,在cmd窗口启动svn服务

      Svnserve -d -r E:\Repositories\test2

      -d 指服务作为一个独立的端口监控进程

      -r 即批定要暴露的仓库路径     

      如本机仓库路径为E:\Repositories\test2,那么客户端svn访问时只需采用如下地址即可访问:svn://ip/test2,E:\Repositories 就不需要展示出来。(注意,ip后面不要跟端号)

      

      

4、右击鼠标-》tortoise SVN ->Rebo - browse

     在地址栏输入:svn://T420-PC/Test2/,输入authz文件中授权的用户名和密码登录。
    (T420-PC 是服务器的计算机名,通常客户端访问时是替换成该机器IP)

     如图所示,能成功登录客户端

        

     注:在本地新建一个空文件夹,通过SVN客户端将上述仓库checkout到该文件夹中,能成功checkout代表配置无问题了。

 

 

 

 

 

        

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

推荐阅读