SVN学习牧火驭风

现实中开发软件时可能会遇到的问题:

代码管理混乱

备份多个版本,占用磁盘空间大

解决代码冲突困难

容易引发BUG

难于恢复至以前正确版本

无法进行权限控制

项目版本发布困难

发展过程:

CVSàSVN,做不到分布式管理,相当于一个服务器,有网才行

微软的vss

现在常用的github,它与svn功能相似,针对开源项目管理代码应用较多,可以分布式管理。可以离线可以在线,只要给一个github地址就可以上传了。

版本迭代开发

在原版本的基础上开发,如果发现原版本的系统有bug,怎么办呢?

1、仓库

创建仓库:利用svnadmincreate命令创建。

上面的命令指的是在指定的目录下创建一个仓库。

仓库中都有些什么呢?

Conf:是配置文件的位置

Db:存放数据的。

hooks:里面是一系列的脚本(也叫钩子)。Svn可以编辑脚本。

locks:对文件上锁。

2、启动仓库的两种方式

1.1检查仓库是否启动:netstat–an

上面的这个命令可以检查端口号,一般svn默认的端口号是3690.

说明该端口号正在被监听

但是:

当把命令窗口关闭以后,监听就没有了,所以这种启动方式必须把命令窗口打开。

因此常用第二种启动方式。

2.Windows服务启动

2.1创建启动服务

执行启动命令:

sccreateSVN-Servicebinpath="D:\SVNInstall\bin\svnserve.exe--service-rD:\svnWorkSpace\repository"displayname="SVN-Service"start=“auto”depend=“Tcpip”

binpath为执行命令所在的路径

-r为仓库的路径:这里配置的多仓库,只查询到仓库存放的地址。

也就是说可以在svn下建立很多仓库,例如建立itcast仓库

访问的时候:svn://localhost/itcast。建立oa,则访问的时候

svn://localhost/oa

如果路径改为D:\svnWorkSpace\repository\041701,只能访问041701这一个仓库。

各选项代表的意义:

创建成功以后,会在系统的服务中产生一个service

这里是没有启动的,需要手动的点击启动。

2.2删除服务

执行命令:scdeleteSVN-Service

3、Svn命令

仓库一般放在服务器中,因此不能直接从命令行操作仓库;而是使用客户端对仓库的内容进行操作。

3.1svncheckout命令

把仓库中的某一个项目checkout出来。

svncheckoutsvn://localhost/itcastF:\develop\workroom\user

3.2建立用户

创建一个客户端操作文件夹

F:\work\course\svn\develop

在该文件夹下建立两个文件夹,分别代表用户user1和user2

Develop是相当于开发者

User1、user2是模拟两个开发者

3.3模拟用户操作仓库

使用checkout命令把itheima18仓库checkout到user1目录下

操作后

注意:这种文件有时候会被隐藏起来,因此要显示隐藏的文件夹才可以看见。从文件的属性中可以看到当前文件夹中有几个文件。

这里会默认根据库名寻找到本地的库。

3.4使用add命令

说明:把a.txt加入到了itcast仓库,加入到了版本控制中

3.5commit命令

说明:当把一个文件加入到指定仓库以后,接下来的操作就是提交。在提交的时候必须写一些说明(可以写这次提交都做了一些什么内容)

这里还是现实认证失败。

为什么会认证失败呢?

这个错误是刚才的修改的参数前面有一个空格,导致不能连接到库。

修改以后再提交:

再使用svn中checkout命令将库拷贝到user2中:

结果:

这就把库中修改后的文件拷贝下来了。

然后再修改再使用add命令和commit命令上传到库中,别人在使用checkout拷贝下来的。

这个过程的步骤:

主要用到的就是checkout、commit、update这三个命令

但是用命令太费劲了,实际应用时是用图形化界面来做的。实际在使用图形化界面做相应操作时,其底层就是用的这些命令来完成的。

4、Tortoisesvn的使用

这是svn的客户端也分为32bit和64bit。需要安装在电脑上。

怎么测试安装成功了呢?

当对着一个文件夹右键时出现下图:

这就是svn的客户端安装成功了

4.1新建一个库

右键单击需要被设置成库的文件夹:

4.2建立用户

先建立两个文件夹user3和user4

然后打开user3文件夹,右键单击

然后。。

在这里有时候会出现如下错误(尤其是64bit的)

分析:

期望文件格式是1~4之间的,但是现有格式是6。需要找这个错误。

4.3利用add把指定文件添加到版本控制

1.先在user3的仓库中新建一个文件aa.txt

2.然后commit

然后会出现如下对话框,在commit时需要说明

但是报错了,说认证失败

更改以后。。

3.然后再user4中checkout

4.更改user4中的aa.txt文件

5.user4中commit该文件

6.在user3中update该文件

5、权限问题

权限不管在哪都有这两个问题

5.1Svnserve.conf文件

Svn中权限的设置在conf文件夹下的svnserve.conf文件中

在哪进行认证

5.1.1anon-access

匿名用户的访问权限,应该是什么访问权限都没有

anon-access=none

5.1.2auth-access

auth-access=write

5.1.3password-db

指定用户的认证文件为passwd文件

password-db=passwd

5.1.4authz-db

authz-db=authz

5.2passwd文件

存放项目成员账户信息

[users]

#harry=harryssecret

#sally=sallyssecret

等号左边代表用户名,等号右边代表密码,所以可以这么添加:

user1=user1pwd

user2=user2pwd

这样系统中有两个用户user1,user2,密码分别是user1pwd,user2pwd。

添加用户名和密码:

5.3authz文件

[groups]

#harry_and_sally=harry,sally

#harry_sally_and_joe=harry,sally,&joe

groups是组的意思

等号左边的是组名,等号右边的是组的成员

所以可以写

svn_group=user1把user1加入到svn_group组中

#[repository:/baz/fuz]

#@harry_and_sally=rw

#*=r

#[repository:/baz/fuz]:指出针对哪个仓库

[itcast:/]:针对itcast仓库

[itcast:/doc]

user1=rw

*=

以上配置说明:针对itcast仓库的doc目录,只有user1有读写权利,其他的用户都没有。

修改了这些以后,再对user3中的aa.txt文件进行更新,commit,会出现下面的对话框

这里需要填写用户名和密码了,因为刚才已经将匿名用户权限设置了。

然后在user4中进行更新,输入user4的用户名和密码

6、上锁

可以针对user1用户中的aa.txt文件进行上锁的操作。

当输入用户名和密码的时候,就上锁了,上锁的突变如下所示:

当用户user2试图再次修改此文件时,会报如下的错误:

6.1解锁

6.2needs-lock

将aa.txt文件变成needs-lock

添加一个属性:svn:need-lock,值为true,确定以后变成如下的图标:

这个图标表明再次修改必须上锁。

6.2.1当一个文件needs-lock以后,就不能再进行上锁,修改,和commit操作了;必须要得到锁才能进行这些操作。

6.2.2去除needs-lock属性

点击remove就可以了

7、冲突问题

5.当选择update文件时,出现以下几个文件

6.然后选择冲突的文件

Theirs表示服务器上的

Mine表示自己的

Merged表示合并以后的版本

然后选择resolve就解决了冲突

最后commit就可以了。

8、SVN嵌入到myeclipse

8.1下载插件

8.2创建插件目录

在F:\work\course\svn下创建插件目录myplugins\svn\eclipse,把下载完的解压后的两个文件夹放入到该目录下

8.3创建SVN.link文件

在myeclipse安装的dropins目录下创建svn.link文件

Link文件中的path

path的值就是svn插件的目录所在。

8.4重启myeclipse

9、SVN在myeclipse中的使用

1.把库添加到myeclipse中

打开如下的视图:

准备新建一个资源库的位置

输入库的url:

2把SVN的项目检出到myeclipse中

在新建项目的时候,选择从svn上检出项目

选择现有资源库的位置

检出的项目在myeclipse中

3对a.txt文件进行编辑

4commit

5comparewith

可以利用Comparewith的功能的子功能

基本修订版

最新版本的上一个版本

6replesasewith

可以选择某一个版本的内容覆盖当前版本的内容

7把项目添加到SVN中

新建一个项目,做如下操作:

选择svn

把项目保存在itcast资源库

9.2分支、可并、切换

1、Trunk:开发主线

存放开发的主线,团队成员在开发的时候一直要用这个库中的内容

2、Branches:存放修复版本

存放支线副本:当项目稳定以后,先发布到tags下,如果发现了bug,再从tags下检出到branches下。在该版本下进行bug的修复,把修复完毕的稳定的版本重新发布到tags下。

3、Tags:存放稳定版本

存放标签副本,也就是存放稳定版本

9.3开发需求

一个公司开发了一个oa系统,随后发布了一个版本v1.0,由于这个版本还是比较成功的,然后客户提出了更多的需求,随后开发团地准备开发下一个版本v2.0,当开发团队

在如火如荼的工作的时候,客户突然提出了在v1.0版本有一个bug,需要改进,而且必须把这个改进引入到v2.0版本中。用svn怎么样解决这个问题呢?

9.3.1解决问题

1、在svn库中建立一个项目oa

2、让oa成为svn项目

3、修改权限,让匿名用户具有写的权限

4、在客户端准备一个oa文件夹

5、在oa文件夹下建立三个文件夹

6、把oa里面的内容导入到svn库中

7、查看仓库的结构

从上面可以看出,branches,tags,trunk已经被加入到仓库中了。

8、把正在开发的一个项目导入到trunk(主线)中

这样该项目的基本代码就加入到了trunk中。

9、把trunk的项目checkout到myeclipse中。

10、发布v1.0版本

选择发布到tags目录

在tags下建立一个文件夹V1.0

11、开发V2.0版本

在A.java类上稍微做一下修改即可。

12、现在V1.0有bug,对V1.0的版本做出检出

13、对V1.0的版本进行修改

14、对修改后的内容进行提交

15、以上操作不对,因为tags的内容不能进行修改

16、

17、对tags中的V1.0做分支

对tags中的V1.0做分支,然后移动到branches中,为V1.0_fixup。

18、切换版本库的路径

把路径切换到branches/V1.0_fixup。

19、提交

因为版本库已经切换到了branches/V1.0_fixup,所以这个时候可以提交了。

20、把修复好的V1.0_fixup发布

选择branches中的版本做分支标记。

发布到稳定库中(tags),并且版本的名字为V1.1

21、把V1.1版本加入到原来的版本中

在trunk版本中,选择合并。

从tags/V1.1中进行merge

22、在企业的应用

项目经理会发一个word文档

1、svn的仓库的地址

2、使用svn的用户名和密码

3、把svn上的项目导入到myelicpse中

4、做自己的模块,把自己写的东西上传到svn上

5、版本的对比,合并版本

**************************************************特此说明************************************************

THE END
1.说明某公司2014年初承接了一个周期为一年的OA信息系统项目,并...某公司2014年初承接了一个周期为一年的OA信息系统项目,并指派项目经理小张负责。该项目属于定制型项目,涉及的用户方较多,小张根据自己的经验预测到项目可能会涉及频繁的需求变更,因此小张在将项目组分成了业务组、实施组、开发组后,定义了如下需求管理及控制流程:(1)指派专门的业务组进行需求分析,分析完成后马上与用户...https://www.ruantiku.com/shiti/212038920.html
2.一个小企业需要不需要OA协同办公系统人工不行,何不试一试软件系统来操作工作流程呢,一个OA协同办公系统完全可以做到;OA系统可以干什么呢? 1、 培养员工的良好习惯。 日常上的工作中,大部分工作都是公司里的人配合来完成、向其他部门协调资源、或者向领导进行请示汇报。虽然小企业的流程节点并不多,流程走起来没有那么复杂,但通过OA协同办公系统工作模块...http://www.weichuangsoft.com/html/n6/oa_6862.php
3.OA是什么意思?一、OA代表什么意思? OA含意:办公系统(英语全称为OfficeAutomation)。 实质上,OA是把现代化办公和电子信息技术结合在一起的一种新型的工作方法。但凡在传统公司办公室中使用各种各样新技术应用、新机器、新机器从业办公室业务流程,都是属于办公系统的行业。OA能够满足更有效地完成一个组织目标而创造出来的软件系统。从...https://www.hua-mi.cn/v-app/oa_info/t-5572.001.html
1.为什么说OA办公系统很重要?一、OA办公系统是什么? OA办公系统(Office Automation)是指利用计算机技术、网络技术以及信息技术,将办公自动化、信息管理和业务流程等办公活动数字化处理的系统。 通过系统化、标准化的管理,OA办公系统能够高效整合企业内外的信息流、文档流、工作流和业务流,实现办公任务的自动化和智能化。 https://blog.csdn.net/BeWorkingMan/article/details/143726375
2.公司OA是什么?一般公司OA有什么样功能?零代码知识中心一、公司oa是什么? oa通常是指企业内部的一个信息化平台,我们口中常说的走公司oa流程,许多时候是应用领域于告假审核,或者申请审核等等。对于许多身在校场的人员来说,可能已经很熟识了,因为许多人在日常办公设备中就会遇到。 像人们口中常说的oa,中文叫办公设备自动化,英语叫Office Automation,它的主要作用是把现代...https://www.jiandaoyun.com/fe/abzgh/
3.(实用)新员工入职培训内容不管你们公司的企业文化是什么,你都不需要把你们公司的发展或者你们公司的辉煌告诉给他,因为这对于一个新员工来讲,也许对他是一种压力,也许在他眼里看来这根本不值得一提,所以公司文化渗透必须要渗透的是精华,必须要把整个企业文化的精髓渗透给你的员工,这样才会让他有一个真正的认识。 https://www.yjbys.com/tuozhan/ruzhi/4396743.html
4.java一个oa系统一般写多久oa项目是什么意思javajava一个oa系统一般写多久 oa项目是什么意思 java 1 绪论 1.1 课题背景 公司基础业务在线办公管理软件分析与设计,这里的基础业务云办公管理软件可以简称OA(Office Automation),即办公自动化。所谓OA系统就是用网络和OA软件构建的一个单位内部的办公通信平台,用于辅助办公。OA系统完成单位内部的邮件通信、信息发布、文档...https://blog.51cto.com/u_16099346/6838581
5.OA平台是什么意思OA协同办公平台介绍随着移动互联网的快速发展,越来越多的企业意识到想要推进企业更大的发展,就要借助先进的系统软件来代替传统的办公模式,来辅助企业办公。OA平台能为企业带来什么价值呢? ? ? OA平台介绍 OA平台是指在OA(office automation,办公自动化)的基础上,通过加强和...https://www.bnocode.com/article/xtbk416.html
6.如何设计一套OA系统中的薪资核算系统薪资系统属于 OA 系统中的一个模块,目标为准确计算员工薪资。为了满足各公司不同的业务规则,这套系统需要支持用户自主可配置。 2. 产品架构 如图 通俗的解释,可以分为这 5 块:有哪些钱 - 薪资项目,谁、什么时候、需要发哪些钱 - 薪资方案,每人每月这些钱是多少 - 薪资档案、社保公积金、补贴扣款,计算每人每月...http://www.myzaker.com/article/66c6d4838e9f09361f6e020a
7.什么是oa(详解办公室OA可以干什么)那么哪些公司适合采用办公自动化(OA)系统呢? 办公自动化(OA)系统几乎适用于所有的企业,但是不同的企业其目的性也会不一样,尤其如此: 信息化还没有入门的企业由于没有信息化应用基础,网上办公自动化(OA),注OA的成功率几乎为100%,有助于提升企业不同层次员工的基本素质和在计算机上实际操作能力以及未来业务领域中...https://www.yulinglongsj.com/tel/84337.html
8.企业oa是什么意思企业OA也称为办公自动化(Office Automation),是一门将计算机技术、通信技术、系统科学与行为科学应用于用传统的数据处理技术难以处理的量非常大而结构又不明确的那些业务上的一项综合技术。 企业oa是什么意思 企服解答 企业OA也称为办公自动化(Office Automation),是一门将计算机技术、通信技术、系统科学与行为科学应用于...https://36kr.com/p/1495913749016962
9.职场新人有哪些经验需要学习?可以在多个渠道多个方面来进行,比如说我有一个朋友他每次完成了任务都会在公司的OA系统,部门任务分配平台(tower),工作报告,官网,社交平台(微信)这些地方展示一遍,然后再在公司部门的每天例会,周例会和其他部门总结会议工作周报(书面),季度报告(书面)里面换着花样地包装提及,而且把完成的过程渲染得异常艰辛且峰回路转,...https://www.jianshu.com/p/79b87a22cfcd
10.信息科年度考核个人总结(精选19篇)3、完成了PACS系统调研、采购、上线等工作:为更快推进我院信息化建设进程,按照院领导指示及根据临床、影像科室的需求,经过信息科、放射科、临床工作人员及中联公司工程师两个多月的共同努力,我院医学影像存档与传输系统已全面上线,临床医生只需轻点鼠标即可在第一时间获得患者的影像信息以及检查报告资料,方便医生快速诊...https://www.wenshubang.com/gongzuozongjie/gerenzongjie/2754264.html
11.作为HRBP,你了解“组织”吗?谈起“组织”,大家最容易理解的是“组织架构”,而业内讨论最热的是“组织能力”和“组织发展”,如何正确理解“组织”?小编认为,“组织”核心有四个内容:OA、OB、OC、OD。 一、OA组织能力(Organizational Ability) 其实,“组织能力”,常见的翻译都是OC(organizational capacity),比如杨国安的《组织能力杨三角》,这里...https://www.ruthout.com/information/19401.html