天天看点

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

注意:win搭建仓库和linux搭建仓库,指令相同

截图 不一致 正常,因为这是不同时间写的笔记( 如 仓库名不同等。有的截图上面是shop有的是book等)

客户端安装

官网https://tortoisesvn.net/  客户端下载,安装完 鼠标右键没有小乌龟,重启下电脑

服务端安装

yum install subversion  -y

开始创建仓库

svnadmin create  /opt/shop  #在/opt下创建shop仓库,shop是仓库名,想创建到哪就可以创建到哪。

启动svnserve

svnserve  -d -r /opt/shop/ # -r是指定仓库目录; 用svnserve对shop仓库进行管理。为不同的程序项目创建对应的仓库,分别存储不同项目的程序代码文件。想同时启动多个仓库的话,就不要带具体仓库名,如ABC3个仓库都放在/opt中,那么启动时直接svnserve -d -r /opt 也就是把所有仓库的上级目录当成服务给启动起来

-d    #独立端口运行

-r     #仓库地址

该svn服务走svn协议,端口号码是3690

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

此时就可以给客户端的代码提交上来了

1、客户端先检出

检出时,会生成一个.svn的文件(这个.svn是隐藏文件,是本地电脑和远程版本库,沟通成功的标志)

假如是win环境,svn的服务端和客户端装在同一个电脑中,url写:svn://localhost/仓库名 即可

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

版本号:是该仓库的所有版本号

下图:本地目录 与 仓库联系成功

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

下图是隐藏文件,需要打开隐藏文件才能看到。打开方式“工具”->“文件夹选项”->“查看”看下图

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

因为我们都没有登录就....提交了

2、创建账号、密码(提交代码的时候使用)

注意:修改配置(顶头,不要留空格)

vim /opt/shop/conf/svnserve.conf #配置文件在你创建的仓库里

开启仓库匿名账号权限:

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

线上使用的配置权限:

anon-access = none  //禁止匿名用户的访问

password-db = passwd  //配置访问密码的文件(引入../passwd)

authz-db = authz        //配置用户名文件(引入../authz)

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

2.1、给用户配权限

vim /opt/shop/conf/authz

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

2.2、设置账号、密码

vim /opt/shop/conf/passwd

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

2.3、重启svn服务器

改完配置文件就要重启(不然不让登,点击登录又跳转到登录)

新建文件-》add-》提交-》写注释-》点ok

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

在仓库内部查看已经提交的文件

注意:这部分是win环境下的截图,linux目录是一样的都是在,仓库/db/0下(0目录下,0对应0版本号,1对应版本号1,以此类推)

因为提交的是版本是1,所以0目录下,打开1文件

下图存放的是:提交时候写的日志

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

下图存放的是:本次提交的内容(代码)

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

用户更换svn主机名地址

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

想更换主机名地址:

1、删除.svn文件

2、通过新的主机名地址checkout 与仓库联系(checkout检出时,重新填url)

同一个文件的不同版本切换

注意:这是以前笔记截的图,和上面的截图路径可能有些不符,但操作流程是一样的

一个程序文件可以在svn仓库里边形成许多不同版本,并可以随时查看、对比。

查看:

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

不同版本切换:(切换后文件的,内容是当前版本号的);

切换方式1:

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

切换方式2:

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

切换版本后,先修改在提交,冲突解决方案

方案一:可以删掉冲突文件,在update一遍(将被删的冲突文件,更新下来)

方案二:将冲突生成的2个子文件删除掉,图标就从黄色!就变成红色?了,这样提交后有点类似于回退在修改代码,容易导致版本混乱,不建议使用此方案

对比版本差异:选中俩个版本号,做对比

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

上图:选中后->右键单击Compare revisions 进行对比(弹出下图)

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

解决代码冲突

广义角度的冲突:提交程序文件 本地版本号码 小于 仓库服务器版本号码.

狭义角度的冲突:多个程序员对同一个文件、同一处代码进行修改,在他们提交文件的时候会产生冲突

总思路:修改冲突,在提交

大家修改的代码不在同一处:

       原因:有其他人提交了,才会导致,本地号码 <  仓库号码

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

       解决:1、直接执行update操作,使得本地 和 仓库的号码保持一致。

                  2、把仓库最新文件更新到本地,与本地文件做融合(非覆盖操作,会把两个人的修改内容体现在一个文件中)

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

                  3、之后继续提交给文件即可。

大家修改的代码在同一处:

       解决:先执行update更新操作,把本地冲突文件打开“稍作”调整,继续提交。

稍作调整:<<<和==都删掉,新的和旧的留一个 或者 俩人别写在同一行

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

下图中17和18是版本号。这3个文件必须删除,否则冲突文件修改后,也不让提交

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

下图 == 相等于一个分割线,上面是linken(冲突者)写的,下面是mary写的

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

手动修改,10行的剪切到8行上了

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

修改冲突的2种编辑器

第一种:随便打开一个txt编辑器

第二种:用下面的

1、在冲突的文件上(选中文件--右键菜单—TortoiseSVN—Edit conflicts(解决冲突)),出现如下窗口

Theirs窗口为服务器上当前最新版本

Mine窗口为本地修改后的版本

Merged窗口为合并后的文件内容显示

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

2、如果要使用服务器版本,在Theirs窗口选中差异内容,右键,选择第1个选项,Use this text block(使用theirs的文本块做融合,也就是放弃Mine的了)。

第2个选项,和1个差不多

注意:1和2是覆盖,3和4才是融合

第3个选项是:融合时,服务器最新版本在后

第4个选项是:融合时,服务器最新版本在前

以上选项,如果是在Mine那操作,3和4的效果取反

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

分支合并到主干

合并的意思是:把A的版本记录,复制到B的版本仓库中

注意:先更新 在合并

要合并到prd,就在prd的项目目录下合并

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

将代码从sat环境上合并到prd

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

点击show log选择合并哪些版本号

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

在prd上在提交下(如果是php的项目,提交完还要svn up一下,

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

svn回滚

总思路:在哪里出错,就在哪回滚,回滚后就在那提交-》提交完进行svn up

1、先打开show log

2.1、直接回滚到某个旧的版本,这个版本后的变更都会被删除(一般使用这种)

恢复后,要重新提交-》进行svn up。相当于上次提交白提交了

2.2 删除中间的几个版本,执行"Revert chages from these revisions"  

此是回退到多选的上一个版本,回退、修改完,还是要提交的-》进行svn up。而不是删除commit记录 

                (假如提交错误了,也可以使用这个方法,重新提交)

3、未提交的撤回

如果你只是修改了很多文件,并没有commit到SVN,想放弃修改,更新为仓库中最新版本。可右键Tortoise SVN,然后从列表选择 revert。

Svn服务端运行方式

Svn服务常见的运行访问方式有3种:

1、 独立服务器访问:我用的这种

访问地址:svn://svn.mingshi.org/sadoc;

2、 借助apache等http服务

访问地址:http:// svn.mingshi.org/sadoc;

a、 单独安装apache+svn

b、 Csvn(apache+svn)是一个单独的整合的软件,带web界面管理的Svn软件

3、本地直接访问(列如:file://application/svndata/sadoc)

svn up更新之后U和G什么意思

U:表示从服务器收到文件更新了 

G:表示本地文件以及服务器文件都已更新,而且成功的合并了 

其他的如下: 

A:表示有文件或者目录添加到工作目录 

R:表示文件或者目录被替换了. 

C:表示文件的本地修改和服务器修改发生冲突

客户端图标

① 蓝色问号:新建的一个文件,本地.svn 和 远程仓库 对该文件都没有记录-》add后变蓝色加号

② 蓝色加号:本地的.svn对该文件有形成管理(远程仓库 还没有该文件记录) -》只能变红色叹号(修改过)

③ 红色叹号:本地文件  与  .svn和仓库文件 不一致(用户自己修改了该文件)-》提交后,只能变绿色对号

④ 绿色对号:本地文件、.svn管理的版本文件、仓库文件 三者内部一致

⑤ 黄色叹号:表示该文件正处于冲突状态-》解决冲突、融合代码后,会变成红色叹号,然后提交代码,会变成绿色对号

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

错误集锦:

1、目标计算机积极拒绝,无法连接

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

解决方案:svnserve  -d  -r 仓库的绝对路径  #使用该命令启动仓库

2、新目录内部的文件不能直接提交,必须是目录本身已经提交给仓库了,该目录的文件才可以单独进行(add/)commit提交动作。

win上账号和权限

操作哪个仓库、设置哪个仓库的账号和密码

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

引入对应的辅助配置文件:

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

1、账号设置

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

2、给账号 设置权限

2.1、给具体用户设置权限

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

操作svn提示输入用户名和密码:

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

2.1、给一个组别 设置权限

如果有许多程序员,他们是属于同一个小组的,

他们的针对一个项目的权限还都是一样的,权限的设置 和 取消都完全一致,管理员对这个小组全部人员进行权限控制就比较繁琐。

为了权限分配比较方便、后期维护也非常便捷,就给他们设置到一个组别里边去,给组别设置权限,就等于给每个用户设置权限了,权限操作非常方便。

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

2.3、开启只操作某个目录的权限

步骤:

① 管理员先把该目录video给创建出来并提交给svn仓库

② 给外部团队 设置账号 和 设置工作目录、和其分支目录权限

③ 外包团队 建立与仓库分支目录 的联系(checkout)

④ 外包团队给该 目录提交文件

⑤ 管理员执行update更新操作,把该分支目录从仓库更新下来即可查看外包团队的工作情况。

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

给外包人员设置只可以操作Video目录的权限:

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

win将svn设置成,开机启动项服务

把svn也做成开机启动项服务,类似apache服务:

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

有的系统禁止使用sc等比较底层的指令,可以把创建、删除服务的指令设置为“批处理”文件(在liunx里叫shell文件)执行即可。右键点击以管理员身份运行

linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务
linux搭建svn服务器修改冲突的2种编辑器win上账号和权限win将svn设置成,开机启动项服务

继续阅读