svn版本管理软件——创建svn私人仓库

来源:互联网 发布:腾讯网络主播大揭秘 编辑:程序博客网 时间:2024/03/28 18:16

用svn客户端新建svn仓库

svn与git不同,git可以没有仓库,直接在代码里面创建git版本管理,但svn为集中式版本管理系统,比不要有仓库统一管理代码。

新建仓库的方法很简单,只要是在空白文件夹里面新建仓库即可。操作如下图所示。
创建版本库

新建版本时,需要创建目录树结构,如下图所示,这样版本库可以用树形方式寻找文件
这里写图片描述

创建的版本库会出现一些文件,如下图所示。

这里写图片描述

创建完版本库后,可以直接浏览版本库里面的文件,如下图所示,从版本库的作者来看,作者与Windows的用户名关联。
这里写图片描述
这里写图片描述

同时可以看到版本库地址:

file:///E:/工作/技术文档/源码/SVN_warehouse/Project_test

以及各个目录树结构

trunk       :存放代码主干branches    :存放代码分支tags        :存放代码中的各种标记

版本库地址是将代码push和pull的地址。

将代码推向svn仓库

将新的项目推送至新建的svn仓库

通过检出的方式将代码推送至svn仓库

在任何一个想放代码的地方,将新建的svn仓库的主干checkout检出,如下图所示,检出后该文件夹就成为svn的工作区

这里写图片描述
这里写图片描述
这里写图片描述

将代码放进刚刚检出的svn工作区中,在该代码文件夹中单击右键,点击提交代码,如下图所示,最新消息框里面是提交代码的注释。
这里写图片描述
这里写图片描述

下图显示提交成功
这里写图片描述

提交完代码之后,文件的图标会被svn重载,如下图所示
这里写图片描述

通过导入的方式将代码推送至svn仓库

svn还可以通过导入的形式将代码添加进svn仓库中,选中代码文件夹,单击右键,在svn菜单中选择导入,将代码导入到主干trunk中,如下图所示。
这里写图片描述
这里写图片描述

导入完成,在版本库中查看版本库,可以看到代码的加入。如下图所示。
这里写图片描述
这里写图片描述

与通过检出的方式不同的是,该方法仅仅是导入代码,还没有svn工作区,需要用到svn版本管理的工作区还需要将导入的代码检出才可以。

在任意地方检出刚刚导入的代码,就可以用svn管理开发。

用svn服务器端新建svn版本库

用svn客户端创建的版本库是不完全的svn版本库,仅仅可以自己检出和提交,而使用svn服务器创建的svn版本库才可以发挥svn的功能。用svn服务器端创建svn版本库需要安装svn服务器端,不同于svn客户端,svn服务器端是管理多个svn版本库的软件,还可以对用户授权使用,进行权限控制。

Windows端安装svn服务器

安装svn服务器端有一下几个步骤
1、 安装svn标准版

svn有标准版和企业版,标准版免费,企业版收费,如下图所示

这里写图片描述

标准版与企业版的不同

这里写图片描述

2、 配置svn存储库。

svn服务器端需要有一个地方统一存放svn的所有代码,因此在安装svn服务器端的时候需要配置这个存储库,如下图所示。

这里写图片描述

端口如果被占用了(安装虚拟机VMware或VirtualBox会占用),则需要在端口配置的下拉菜单中重新选择,如下图所示。

这里写图片描述
这里写图片描述

3、 安装完之后如下图所示。
这里写图片描述

Linux端安装svn服务器

本次以Ubuntu的版本作为Linux端来搭建svn服务器
安装svn 的Linux版本,在Linux部分服务端与客户端,两者结合在一起。

命令:sudo apt-get install subversion

在合适的目录下新建一个文件夹当做svn的仓库文件夹,然后新建svn仓库如下所示

ghost@ghost-virtual-machine:~/warehouse$ mkdir svn_Repositoriesghost@ghost-virtual-machine:~/warehouse$ lssvn_Repositoriesghost@ghost-virtual-machine:~/warehouse$ svnadmin create ./svn_Repositories/ghost@ghost-virtual-machine:~/warehouse$ ls svn_Repositories/conf  db  format  hooks  locks  README.txtghost@ghost-virtual-machine:~/warehouse$

Windows端svn服务器端配置

svn服务器端可以管理很多svn版本库,同时对每个svn版本库进行用户访问的权限设定。

新建版本库

新建svn版本库步骤如下图所示。

这里写图片描述

创建时输入版本库名称,版本库可以创建为空,也可以创建带有分支、标签和主干版本的版本库,不过创建为空的版库的话也可以手动创建这些文件夹,权限暂时设置为所有用户可读可写
创建完之后如下图所示,可以在空白地方创建文件夹。
这里写图片描述

svn创建用户

svn可以创建自己的用户,也可以关联window的登录用户,若使用window的登录用户,建议不使用电脑的administrator用户,而是自己创建一个window登录用户并设置密码,但这里介绍创建svn自己的用户创建svn用户如下图所示,两个创建用户都是一样的。

这里写图片描述

用户授权管理

svn最大的特点是用户授权管理,git也有用户授权,但git以开源为主流,每个人都是代码库的所有者,可以任意修改。但svn的用户管理可以做到对每个文件夹每个文件进行授权管理,只有授权的用户才能访问或修改。svn为向下授权,即对某个用户授权某个文件夹可读可写,那这个文件夹内的所有文件夹以及文件都授权给该用户可读可写。在想授权的文件夹或版本库单击右键,选择properties,对现有的用户进行授权,如下图所示。

这里写图片描述
这里写图片描述

为svn版本库赋予地址

既然是svn版本库,需要给外部访问的接口,此时将svn服务端的接口配置上该电脑的IP地址即可,如果对该服务器电脑有dns解析,就可以用域名映射去配置,这里只介绍IP地址配置配置选项右键单击VisualSVN Server,选择Properties,或在操作中选择properties,如下图所示。

这里写图片描述
这里写图片描述

在选项中选择network标签,修改svn访问地址,将地址修改为服务器端电脑的IP如下图所示。
这里写图片描述

将代码推向svn仓库

将项目代码推向svn版本库,每个svn文件夹都可以成为svn的版本库源,和git不同的是,git只能clone出整个版本的全部内容,而svn却可以checkout出整个版本或版本中的部分内容,这个和svn权限管理分不开的,svn可以做到只能让部分用户阅读和修改属于自己模块的部分代码。因此上传时对地址的选择很重要。

将新建项目的代码推向svn版本库

需要将代码上传到Project_test的master中,右键单击master文件夹复制该地址即可,如下图所示。

这里写图片描述

有了仓库地址之后,即可通过检出的形式将代码推送至svn仓库,也可以通过导入的方式将代码推送至svn仓库,参照上节初始化svn的方式将代码放入版本库中,此时的URL地址就是复制出来的版本库地址。

检出时需要输入svn的用户名以及密码,如下图所示
这里写图片描述

将已有的svn项目推向svn版本库

svn服务器端可以将已有的svn项目导入svn版本库中。在操作或Repository中选择Import Existing Repository,如下图所示。

这里写图片描述

在选择版本库时要注意,选择的是现有版本库的位置而不是检出的正在开发的代码库的位置,svn是以库为基础操作的,而代码的开发不属于库的部署。在导入时选择copy Repository from another location选项,将整个代码库导入,导入时还可以重命名版本库。

导入后如下图所示,这样将新导入的代码复制地址,在工作的文件夹中检出代码就可以了,若检出不成功,说明还没将自己的用户授权。
这里写图片描述

svn仓库迁移

当服务器需要变更时,服务器里面的SVN仓库数据需要转移到新的服务器中。

项目迁移

如下图所示,转移前原先的仓库状况

这里写图片描述

在硬盘中的存储位置如下图所示

这里写图片描述

这里写图片描述

1、 直接移植

将该仓库所有内容压缩保存,在新的服务器仓库中,有选择的移动覆盖新仓库,如仅仅需要转移Project_test,那就将该文件夹移动到新的仓库中,如下图所示。

这里写图片描述

2、 新仓库导入

如下图所示,在整个项目中选择导入选项

这里写图片描述

在第二项选择将项目copy进仓库,选择需要导入的项目文件夹,如下图所示。

这里写图片描述

选择下一步,文件名称不变,这样就导入完成。

将导入的两个项目重新通过svn检出,可以看到以前的提交都保存着,如下图所示。
这里写图片描述
这里写图片描述

项目人员迁移

迁移项目后,其开发的项目人员信息也需要迁移,可以直接新建新的员工信息,但如果员工太多的话则需要迁移过去。将库中的htpasswd文件里面的信息复制到新的库的同文件下。

旧仓库的信息:

zx:$apr1$3vo$1GZpMVj8gN5HKem29O8680zx_work:$apr1$430$7ccQT1M6mXKWHrtBQqhn//

复制到新仓库中的信息:

admin:$apr1$6b9$09wWzYfTcufR61B9C1eJm.zx:$apr1$3vo$1GZpMVj8gN5HKem29O8680zx_work:$apr1$430$7ccQT1M6mXKWHrtBQqhn//

在新的仓库人员管理中就可以看到,如下图所示。
这里写图片描述

原创粉丝点击