炒沙作縻终不饱,缕冰文章费工巧。这篇文章主要讲述#导入MD文档图片#一步一步搭建Svn服务之windows相关的知识,希望能为你提供帮助。
H3SVN全称Subversion ,是个开放源代码的版本控制系统,Subversion在2000年由CollabNet Inc开发,现在发展成为Apache软件基会的个项,同样是个丰富的开发者和户社区的部分。
SVN是个开放源代码的版本控制系统,管理着随时间改变的数据。这些数据放置在个资料档案库(repository)中。这个档案库很像个普通的件服务器,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。说得简单点SVN就是于多个共同开发同一个项目,实现共用资源。
二、主要作用
1、录版本控制
Subversion实现了一个"
虚拟"
的版本控管文件系统, 能够依时间跟踪整个录的变动。 目录和文件都能进版本控制。
2、真实的版本历史
Subversion中,可以增加(add)、删除(delete)、复制(copy)和重命名(rename),论是文件还是目录。所有的新加的文件都从一个新的、干净的版本开始。
3、自动提交
一个提交动作,不是全部更新到了档案库中,就是完全不更新。这允许开发员以逻辑区间建立并提交变动,以防当部分提交成功时出现的问题。
三、基本概念
1、Repository(源代码库)
源代码统一存放的地
2、Checkout(提取)
当你手上没有源代码的时候,你需要从repository中checkout一份
3、Commit(提交)
当你已经修改了代码,你就需要Commit到repository
4、Update(更新)
当你已经Checkout了一份源代码,Update后就可以和Repository上的源代码同步
四、工作流程
1、开始新一天的作
a、从服务器下载项目组最新代码(Checkout)
b、如果已经Checkout并且有人已Commit了代码,你可以更新以获得最新代码(Update)
c、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时修改了哪些代码,就需要这样做了)(Commit)
d、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器(Commit)
2、注意
如果两个程序员同时修改了同一个文件,SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两个修改。 如果是同一行,SVN会提示文件Confict,冲突,需要手动确认。
3、流程示意图
文章图片
五、生命周期 1、创建版本库
版本库相当于一个集中的空间,用于存放开发者所有的工作成果。版本库不仅能存放文件,还包括了每次修改的历史,即每个文件的变动历史。
Create操作是用来创建一个新的版本库。大多数情况下这个操作只会执行一次。当你创建一个新的版本库的时候,你的版本控制系统会让你提供一些信息来标识版本库,例如创建的位置和版本库的名字。
2、检出
Checkout操作是用来从版本库创建一个工作副本。工作副本是开发者私人的工作空间,可以进行内容的修改,然后提交到版本库中。
3、更新
顾名思义,update操作是用来更新版本库的。这个操作将工作副本与版本库进行同步。由于版本库是由整个团队共用的,当其他人提交了他们的改动之后,你的作副本就会过期。
让我们假设Tom和Jerry是一个项目的两个开发者。他们同时从版本库中检出了最新的版本并开始工作。此时,工作副本是与版本库完全同步的。然后,Jerry很高效的完成了他的工作,并提交了更改到版本库中。
此时Tom的工作副本就过期了。更新操作将会从版本库中,拉取Jerry的最新改动,并将Tom的工作副本进更新。
4、执变更
当检出之后,你就可以做很多操作来执行变更。编辑是最常的操作,你可以编辑已存在的文件夹,例如进行文件的添加/删除操作。
你可以添加文件/目录。但是这些添加的文件目录不会立刻成为版本库的一部分,而是被添加进待变更列表中,直到执行了commit 操作后,才会成为版本库的一部分。
同样你可以删除文件/目录。删除操作立刻将文件从工作副本中删除掉,但该文件的实际删除,只是被添加到了待变更列表中,直到执行了commit 操作后,才会真正删除。
Rename操作可以更改文件/目录的名字。" 移动" 操作用来将文件/目录从一处移动到版本库中的另一处。
5、复查变化
当你检出工作副本或者更新工作副本后,你的工作副本就跟版本库完全同步了。但是当你对工作副本进行一些修改之后,你的工作副本会比版本库要新。在commit操作之前,复查一下你的修改,这是一个很好的习惯。
Status操作列出了工作副本中所进行的变动。正如我们之前提到的,你对工作副本的任何改动,都会成为待变更列表的一部分。Status操作就是用来查看这个待变更列表。
Status操作只是提供了一个变动列表,但并不提供变动的详细信息。你可以用diff操作来查看这些变动的详细信息。
6、修复错误
我们来假设你对工作副本做了许多修改,但是现在你不想要这些修改了,这时候revert操作将会帮助你。
Revert操作重置了对工作副本的修改。它可以重置一个或多个文件/目录。当然它也可以重置整个工作副本。在这种情况下,revert操作将会销毁待变更列表,并将工作副本恢复到原始状态。
7、解决冲突
合并的时候可能会发生冲突。Merge操作会自动处理可以安全合并的东西。其它的会被当做冲突。例如:" hello.c" 文件在一个分上被修改,在另一个分支上被删除了。这种情况就需要人为处理。Resolve操作就是来帮助用户找出冲突,并告诉版本库如何处理这些冲突。
8、提交更改
Commit操作,用来将更改从工作副本同步到版本库的。这个操作会修改版本库的内容,其它开发者可以通过更新他们的工作副本,来查看这些修改。
在提交之前,你必须将文件/目录添加到待变更列表中。列表中记录了将会被提交的改动。当提交的时候,我们通常会提供一个注释,来说明为什么会进行这些改动。这个注释也会成为版本库历史记录的一部分。Commit是一个原子操作,也就是说要么完全提交成功,要么失败回滚。户不会看到提交一半的情况。
七、SVN服务器搭建和使用 使用 VisualSVN Server来实现主要的 SVN功能则要比使用原始的 SVN和Apache相配合来实现源代码的 SVN管理简单的多,VisualSVN Server是免费的。
对应的安装包,我已经上传到百度网盘中了,永久分享,大家可以自动下载
链接:https://pan.baidu.com/s/1rJ9-cTWRH0X0-5MVLZ9b3w
提取码:feig
大家也可以去官方下载,练习一下,如下给出官方下载方式。
1、官方下载Svn Server软件
下载地址如下: http://subversion.apache.org/packages.html,进入网址后,滚动到浏览器最底部,看到如下截图:
文章图片
根据自己的操作系统,下载对应的版本,我这里是64位操作系统,我下载的是图形界面的版本。
2、安装VisualSVN Server
双击安装程序VisualSVN-Server-4.2.1-x64.msi
文章图片
勾选复选框选择同意,然后选择Next
文章图片
选择 VisualVSN服务器和管理控制台
文章图片
设置服务器的安装路径、资源的存放目录及端口。端口号可以任意定义,对于HTTPS的端口号默认可以选择443和8443,对于HTTP默认可以选择80、8080和81。记住此处你配置的仓库位置,后期如果有配置操作,会来到这配置。
文章图片
指定身份验证方式,默认设置使用svn身份验证即可
文章图片
开始安装
文章图片
如果出现这个弹窗,选择Ignore忽略即可(不一定会出现)
文章图片
等待安装,安装完成后可勾选复选框,然后选择Finish
文章图片
启动SVN来到主界面
文章图片
修改网络配置
文章图片
文章图片
3、新建一个Repository代码库
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
创建完代码库后,里面没有任何内容
文章图片
4、安全性设置
4.1、创建1个用户
文章图片
文章图片
文章图片
4.2、创建1个用户组
文章图片
文章图片
文章图片
文章图片
文章图片
输入上面的信息,点击OK,我们就创建一个用户组了。如果有多个项目,按照上面的过程,创建多个用户组,分别添加用户到指定用户组就可以了。
4.3、给代码库增加权限
文章图片
修改lenovo这个项目,默认所有人是不能访问的
文章图片
指定lipengfei用户可以访问lenovo这个项目(可读可写)
文章图片
文章图片
文章图片
此处只演示了,指定用户访问指定项目组。控制用户组的权限一样的,在此我就不赘述了。
4.4、通过浏览器访问代码库(SVN服务本机操作)在安装SVN Server的本机,通过浏览器访问SVN
文章图片
文章图片
文章图片
至此,可以通过lipengfei用户成功访问SVN的代码库,注意只能访问你有权限的代码库。
4.5、通过浏览器访问代码库(远程操作)
文章图片
文章图片
文章图片
远程通过网络访问SVN Server,操作报错。
4.6、访问协议https改成http
文章图片
文章图片
文章图片
文章图片
4.7、再次通过浏览器访问代码库(远程操作)【#导入MD文档图片#一步一步搭建Svn服务之windows】
文章图片
文章图片
文章图片
至此,恭喜你兄弟,已经成功的在windows环境下,成功的安装了属于你的SVN服务平台。文章中演示的环境是windows server2019,其实windowsXP、windows7、windows10也都是可以的。
本套文章分3部分:后面我会再续写SVN的客户安装、SVN的日常操作,欢迎各位继续支持。
推荐阅读
- 百度BaikalDB在同程艺龙的成功应用实践剖析
- 如何使用JavaScript从DOM元素捕获图像
- 如何创建自己的JavaScript库
- 使用javascript将highcharts图表导出为图像的3种方法(客户端解决方案)
- 如何在ReactJS中创建同步和异步自动完成输入
- 如何在Django中返回JSON响应
- 如何在ReactJS中使用Bootstrap 3的组件
- 如何将Markdown渲染为纯React组件
- React Native –为什么它是移动应用程序开发的最佳选择()