Linux基础——013_SVN使用

SVN使用

上一篇讲了SVN搭建和项目经理要进行的一些操作,现在来看一下程序员如何做》
程序员只需要同步仓库当中的代码,这步操作执行检出操作就行。(右击==》SVN Checkout)

我创建了一个root文件夹当做程序员仓库目录,下面所有的操作都是在这个文件夹下执行的。

1、常用指令

Checkout 检出指令:第一次和svn仓库进行连接的时候,下载仓库当中的代码到本地,一般情况下只执行一次。
Commit 提交指令:每次完成工作之后都需要执行一次提交操作, 把自己写的东西提交到svn服务器仓库
Update 更新指令:在开始工作之前,把仓库当中的代码同步到本地,保证本地的代码是最新的版本。
Add 添加指令 :把自己的文件添加到提交列表

2、文件的批量提交

直接在工作空间右击==》SVNCommit, 加上注释进行提交。

在这里插入图片描述


在这里插入图片描述


注意: 新增文件夹下的新增文件不能提交,需要回到上一级文件夹进行提交

现在项目已经提交到服务器仓库当中了,现在项目经理svn_client_rep当中update一下即可查看最新提交。

在这里插入图片描述


同步结果:

在这里插入图片描述

3、SVN图标认识

在这里插入图片描述

4、SVN使用细节

先来理一下思路:

在这里插入图片描述

1、SVN存储机制

svn使用差异存储,每次提交的时候,只存储跟上一个版本有差异的地方。
在仓库目录Library下的db目录如下:

在这里插入图片描述


这里存放着每个版本的具体信息的目录revprops (存放版本日志信息)和 revs(存放版本信息)

2、忽略文件

有的时候在本地工作空间会放一些和项目无关的参考文件,这些文家不需要提交到服务器仓库当中去,只是供自己参考,那么怎么不让他和其他的文件一起提交导服务器仓库当中去呢???
svn提供一种方法是忽略文件,操作方法是右击==》TortoiseSVN ==》添加到忽略列表(add to ignore list)

在这里插入图片描述


点出来之后有四个选项:(psd只是文件后缀,会随着忽略的文件的后缀改变)
(1)文件.psd 忽略当前文件
(2)* .psd 忽略当前目录下的所有的叫做.psd的文件
(3)文件.psd(recursively) 英文单词是递归的意思,所以在目录包括目录当中的文件夹当中的所有叫做这个名称的.psd文件
(4)* .psd(recursively) 递归项目所有目录当中的.psd文件。

我们选择的是第四个,遇到这种文件的时候就对其进行忽略,还有一个点需要注意:这次修改也得提交一次,属性修改也算修改。

3、版本回退(小心有坑)

在进行版本回退之前需要知道我们要返回的是哪个版本。查看历史版本的方法是直接从空白地方右击 ==> TortoiseSVN ==> show log 显示页面如下:

在这里插入图片描述

版本回退演示:
选多个选项当中的update to revision,输入版本序号,就可以更新到那个版本。

在这里插入图片描述

出现坑的地方现在才开始介绍……
假如说在这个版本上进行index.html 的修改,之后再进行一次提交会发生什么呢??

在这里插入图片描述

之后提示是否update,更新之后出现了三个新的文件:

在这里插入图片描述


这三个是错误提示文件,当中存储着每个版本当中都存在的和当前版本存在的不同。

关于冲突的几句话
(1)出现冲突的是客户端,服务端一切正常(不用担心代码受损的问题)
(2)遇到冲突去解决,不解决冲突无法提交代码
(3)保留自己要提交的代码,标记冲突为解决,提交即可

注意:在版本回退之后,不要在历史版本当中修改代码【只是用于查看,并不能用于直接修改】,先更新到最新版本,之后再写代码提交。

在这里插入图片描述


那么如何解决上述冲突,接着往下看。

4、版本冲突

内容不相同,修改一下内容就好了。

在这里插入图片描述

不相同的地方,svn使用||||||和>>>>>>进行标记,所以为了成功上交,把冲突修改掉,如果是有用的代码就进行保留,没用的就删除,我选择都保留。

现在svn还不知道我们已经解决了冲突,那么我们通过标记告诉他一下:空白处右击 ==》TortoiseSVN ==》resolve, 代表冲突已经解决了。重新Commit一次,代码提交成功。

5、配置多仓库

同一个服务器有的时候需要同时运行很多项目,但是项目都得由一个服务器进行管理,那么就在svn_server_rep 目录下创建Blog文件夹。之后在一个位置对仓库进行检出。

在这里插入图片描述

检出之后是下面这个样子滴:

在这里插入图片描述

这很明显是刚才的Library项目当中的文件,这是为什么??还记不记得checkout 的时候出现了如下页面:

在这里插入图片描述

刚才启动的服务是Library仓库的服务,所以第一个框的localhost定位的就是Library仓库,所以检出的就都是Library仓库里面的文件。

对于这种情况我们使用二级目录进行解决,什么意思??
就是重新定位,把localhost定位到svn_server_rep文件夹,检出的时候使用localhost/Blog 或者是localhost/Library 进行仓库的定位。

既然是这样,那么重新启动服务器,svnserve -d -r D:\svn\svn_server_rep
之后检出使用二级路径:svn://localhost/Blog

在这里插入图片描述

那么我们刚才使用的Library更新的时候会怎么样呢??

在这里插入图片描述

不出所料,的确是错的,因为localhost定位的是svn_server_rep文件夹,所以出现了错误,解决办法是重新定位:右击 ==》 TortoiseSVN ==》 Relocate

在这里插入图片描述

再进行一次更新,更新成功:

在这里插入图片描述

6、权限控制

012当中,提到过svn默认是不能进行匿名提交的,我为了方便操作,就把access设置成了write,但是这样是相当危险的,这要是别人对我们的仓库进行一顿提交,那还得了???

所以svn拥有权限控制机制,可以限制用户对仓库的读写权限。
权限控制分为认证(Authentication)和授权(Authorization)
认证:用户名和密码 【鉴别用户身份】 对应文件:passwd
授权:判断用户是否拥有某种权限 对应文件:authz

在这里插入图片描述

这些文件都存在于服务器仓库的Library文件夹下面的conf目录下。

现在要做的是把svnserve.conf文件当中的access = write修改掉。

在这里插入图片描述


access = none 不允许匿名用户连接
passwd-db = passwd 【指定账户密码的数据库】
authz-db = authz 【指定认证参考的数据库】

接下来开始设置密码和执行权限。打开passwd文件夹,写入用户和密码(按照他的提示进行编写):

在这里插入图片描述


在authz文件当中设置用户权限

在这里插入图片描述


我自己设定的Library仓库的权限是admin读写,mr.white只读。

重启都不需要重启,直接进行update,出现了如下页面:

在这里插入图片描述


这样权限管理就完成了。

5、SVN服务的自启动和批处理命令

1、创建自启动

有时候需要服务器开启的时候就启动SVN服务来管理项目,而且小黑框一直开着也很碍事,不小心关了就尴尬了。所以需要设置开机自启动。

创建svn服务的命令:sc create 服务名称 binPath= “服务器安装目录\svnserve.exe -r 服务器地址目录 --service” start= auto
管理员权限运行cmd,输入增加服务指令

sc create svn binPath= (记得这里有空格)“D:\svn\svn_server\bin -r D:\svn\svn_server_rep --service” start= (注意这里也有空格)auto

在这里插入图片描述


–service 说明是服务
start= auto 说明是自动启动

通过服务查看到svn服务已经添加

在这里插入图片描述

2、批处理指令

net start svn 启动服务
net stop svn 停止服务
net restart svn 重启服务

在这里插入图片描述

回到目录:Linux基础14篇

爱出bug的代码小白 发布了72 篇原创文章 · 获赞 15 · 访问量 3255 私信 关注

原文地址:https://blog.csdn.net/qq_43073128/article/details/104495841

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


首先介绍下什么是git和svnGIT(分布式版本控制系统)Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。SVNSVN是Subversion的简
注意点:系统环境:centos7,python,django,svn,jenkins首先安装好svn版本控制服务,svn安装和配置,也可以通过yum进行安装,安装方式如下yum-yinstallsubversionjenkins安装:jenkins安装参考链接开发ide:pycharm创建项目:django-adminstartprojectcmdbjenkins配置源码管理配置:构
  我使用过的版本控制工具有两种:早期的时候使用的是SVN,现在主要使用git,我就我个人的观点,简单的说下两者的区别:1.Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;2.Git下载下来后,在本
用好Git和SVN,轻松驾驭版本管理本文从Git与SVN的对比入手,介绍如何通过Git-SVN开始使用Git,并总结平时工作高频率使用到的Git常用命令。 一、GitvsSVNGit和SVN孰优孰好,每个人有不同的体验。Git是分布式的,SVN是集中式的这是Git和SVN最大的区别。若能掌
01.jenkins安装jenkins网站:https://jenkins.io/安装:资料/jenkins.msi安装完成:自动打开浏览器使用8080端口02.jenkins系统配置修改端口号,不能使用8080打开安装目录jenkins.xml --httpPort=18080重启服务器系统管理/系统设置:配置jdk和ant环境  03.jenkins项目自
软件环境:centos7jdk1.8svn1.9maven3.5tomcat8jenkins2.80 以上软件安装过程省略... tomcat增加一个管理员账号和密码jenkins通过maven命令打好的war包,copy到tomcat中,这要求tomcat开启热部署,说白了就是在tomcat的conf目录下的tomcat-users.xml中增加tomcat的用户密码
第一步:通过yum命令安装svnserve,命令如下:yum-yinstallsubversion此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行若需查看svn安装位置,可以用以下命令:rpm-qlsubversion第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)选择在var路
一、git是什么   1、git二、git和svn的对比     1、git创建分支简单,可以快速创建分支,隔绝自己修改的代码,svn的版本分支     2、git本地就是一个完整独立的分布式的版本库,不需要联网;但是svn需要联网才可以查看    3、git本地包含了完整的日志,svn需要从服
这里碰到svn更新时,提示清理,清理时报错:只需进行以下几个步骤即可解决:(原理即是清除掉svn数据库里的lock记录)1、下载SQLiteManager,svn用的是sqlite数据库,需要一款管理工具。我是在这个地址下载的,破解版(http://www.xue51.com/soft/6213.html#xzdz):①默认安装完成后,点击finish
1、验证是否有安装svn[root@192~]#svnserve--version2、yum安装svn[root@192~]#yuminstall-ysubversion3、创建一个svn的工作目录[root@192~]#mkdir/usr/local/svn4、创建一个测试用的资源仓库[root@192svn]#svnadmincreatetest5、conf目录下
1.SVN版本控制简介版本控制[Revisioncontrol],最初来源于工程设计领域,是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。Subversion就是一款实现版本控制的工具软件,通常也称为版本控制器,简称SVN
一、GitvsSVNGit和SVN孰优孰好,每个人有不同的体验。Git是分布式的,SVN是集中式的这是Git和SVN最大的区别。若能掌握这个概念,两者区别基本搞懂大半。因为Git是分布式的,所以Git支持离线工作,在本地可以进行很多操作,包括接下来将要重磅推出的分支功能。而SVN必须联网才
利用svnadminhotcopy可以实现完全备份,但不能进行增量备份。svnadminhotcopy是将整个库都“热”拷贝一份出来,包括库的钩子脚本、配置文件等;任何时候运行这个脚本都得到一个版本库的安全拷贝,不管是否有其他进程正在使用版本库。优点是:备份过程较快,灾难恢复也很快;如果备份机上已经
1》安装1>下载服务端Setup-subversion.msi文件,下载客户端程序TortoiseSVN.mis文件,下载eclipse插件eclipse_svn_site.zip。2》利用服务端在windows下SVN服务,注意事项:1.cmd必须使用管理员权限打开(创建,开启,停止,删除服务操作都需要管理员权限)2.注册svn服务的命令,参考如下
1、错误描述 org.apache.subversion.javahl.ClientException:Itemisnotwritablesvn:Commitfailed(detailsfollow):svn:Accessdeniedorg.apache.subversion.javahl.ClientException:Itemisnotwritablesvn:Commitfailed(detailsfollow):svn:Accessdeni
问题场景:1记得提交的日志信息中包含openssl,但是不记得这次提交的版本号revesion,是svn初始化后中间的某次提交;2svn环境的操作系统平台为Fedora,即命令行下;而且svnlog的提交记录有12659条;[root@localhostv2.1]#svnlog|grepr|wc-l12659解决办法:step1 查找提交日志
将项目上传到SVN弹出框提示Oneadded/editedTODOitemwasfound.Wouldyouliketoreviewit?然后百度说这样解决:造成这个原因是因为代码里有个自动生成的注释代码块://TODOAuto-generatedmethodstub我们在写方法是自动生成,就有可能自动生成这句话,导致上传SVN时弹出那个
说在前面的话: 从接到任务到完成共用了7天的时间。正常人用不到这个时间。此时的功能表现是:登录本地JenKins对项目进行构建,能够自动从SVN读取最新代码并按照Maven项目构建,构建完成能够自动使用SonarQube分析代码质量,并将构建的War包部署到指定容器中。版权声明:此博客纯手打,个人
javaweb上正式的时候总是会需要更新代码,但是要求不能全量更新代码,只能提供增量更新包,减少不必要的更新。但是呢,自己修改的文件那么多,怎么破,一个个的找出来,新建文件夹,按位置放好,这种做法不是我们这群懒人的方式,我们要的都是一键解决问题。因此有了这个项目。小编整理了一些java进
Oracle12CR2forCentos7背景介绍安装配置这东西吧,真没啥可写的,但是你说不写详细点吧,真的好多学员搞不懂,所以呢,熊熊思前想后,打算把自己从头到尾怎么安装的,完全写一下,希望能让大家有个全面的基础认知准备工作安装Xmanager这个软件功能很强大,熊熊安装他主要是用于把远程服务器的