热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

unbuntusvn库最简操作及进阶

安装SVN先输入svn--version如果没有安装svn,则会提示你安装命令,根据提示输入sudoaptinstallsubversion在
安装SVN

先输入

svn --version

如果没有安装svn,则会提示你安装命令,根据提示输入

sudo apt install subversion

在这一步,可能会遇到一个问题:无法定位软件包。

解决方法:更新一下源,方法可参考本人的另一篇文章 ubuntu修改源 ,最后一步别忘了,要输入 sudo apt uptate 才会起效果,重启倒是不必要了。


最后,再用 svn --version 验证一下是否安装成功。


最简单的用法

1.新建一个文件夹:

sudo mkdri /opt/svn/test_rep

2.创建SVN版本库

cd /opt/svn/test_rep
sudo svnadmin create ./

然后就可以看到当前目录下多了一些文件,这些和window下创建一个库生成的文件是一样的,如下 :

一个SVN库就这么简单建好了。

conf:存放版本库所用配置文件的目录

db:版本数据存储目录

hooks:存放版本库勾子目录

locks:存储库锁目录,用来跟踪库的访问者

3.启动svn服务:

sudo svnserve -d -r /opt/svn/test_rep

然后在主机这边,输入IP后,不用输入库目录或名称,就可以checkout 一个库了。

 上面的只是最基本的功能,因为默认是有库是有读权限的,所以当什么都不配置的时候,是可以把这个库chechout下来的,但果,如果要进一步的功能,就要详细看接下来的进阶操作了。

 参考: Ubuntu上svn仓库的搭建详解_Aaron_Run的博客-CSDN博客_ubuntu 创建svn仓库

参考: Ubuntu 搭建SVN服务器(SVN Server)_卓力的博客-CSDN博客_ubuntu搭建svn服务器

停止服务器

killall svnserve

查看是否启动成功 

ps aux | grep svnserve

看到以上,就表示启动成功了。

同理,检查是否关闭则反之。

(修改完配置文件后,其实,不用重启,也会马上起作用)


配置文件夹

conf目录下有几个配置文件:

.

svnserver.conf:subversion的配置文件

passwd:subversion账户密码配置文件

hooks-env.tmpl:钩子函数的临时文件

authz:subversion账户权限配置文件

注意:在修改配置之前,请先备份配置文件,这是一个好习惯。

 svnserver.conf配置

svnserve.conf主要配置subversion整体权限和读取的对应文件

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

anon-access:控制非鉴权用户访问版本库的权限,取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 默认值:read

auth-access:控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 默认值:write

password-db:指定账户密码配置文件名,通过该文件可以实现鉴权访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 默认值:passwd

authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 默认值:authz

realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件。 默认值:一个UUID(Universal Unique IDentifier,全局唯一标示)

这次只改了3个值:

anon-access = none
auth-access = write
password-db = passwd

passwd文件配置

例如:配置多个用户和对应的密码:
    [users]
    admin = admin
    aaron = 123456

authz文件配置

该配置文件由一个[groups]配置段和若干个版本库路径权限段组成。
[groups]配置段中配置行格式如下:
<用户组> &#61; <用户列表>
版本库路径权限段的段名格式如下&#xff1a;
[<版本库名>:<路径>]
在编辑authz文件时&#xff0c;可以先将用户进行分组&#xff0c;再设置当前分组权限
注意&#xff1a;分组中的账户必须在passwd中存在&#xff0c;多个用户分为一个组时&#xff0c;只需要用逗号隔开
例如&#xff1a;
    system &#61; admin,aaron
    [repository:/]
    &#64;system &#61; rw
    * &#61;

其中&#xff1a;[repository:/]表示当前仓库的根目录&#xff0c;&#64;system &#61; rw表示分组system中的admin账户和aaron账户所拥有的权限是读写当前仓库先的更路经&#xff0c;* &#61;表示非验证分组的账户没有任何权限

注意&#xff1a;后期添加目录权限时需要先到仓库中创建提交目录之后再配置该目录权限&#xff0c;如果是先在authz文件中配置了目录权限&#xff0c;再到仓库中创建该目录时&#xff0c;提交该仓库会报错&#xff1a;Access denied
 

原文如下&#xff1a;

加入的内容为&#xff1a;

[groups]

admin_groups &#61; aaaa

[repository:/]

&#64;admin_groups &#61; rw

* &#61; rw

Subversion启动服务

命令格式&#xff1a;svnserve -d -r 目录 --listen-port 端口号

-r: 配置方式决定了版本库访问方式

--listen-port: 指定SVN监听端口&#xff0c;不加此参数&#xff0c;SVN默认监听3690

由于-r 配置方式的不一样&#xff0c;SVN启动就可以有两种不同的访问方式

方式一,单库启动

r直接指定到版本库(称之为单库svnserve方式)

# svnserve -d -r /opt/svn/repository

指定启动一个版本库&#xff0c;在这种情况下&#xff0c;一个svnserve只能为一个版本库工作

authz配置文件中对版本库权限的配置应这样写&#xff1a;

[groups]admin&#61;user1dev&#61;user2[/]&#64;admin&#61;rwuser2&#61;r

使用类似这样的URL&#xff1a;svn://192.168.0.1/即可访问repository版本库

 
方式二&#xff0c;多库启动&#xff08;只用这个&#xff09;

指定到版本库的上级目录(称之为多库svnserve方式)

-d&#xff1a;表示在后台运行

-r&#xff1a;指定服务器的根目录&#xff08;多个库的上一级目录路径&#xff09;

# svnserve -d -r /opt/svn

查看是否启动成功 

ps aux | grep svnserve

看到以上&#xff0c;就表示启动成功了。

到这里就行了完成了&#xff0c; 相对于单库启动&#xff0c;多库启动命令的差别在于多库启动的是库的上一级目录。

试了一下&#xff0c;如果在新建一个库&#xff0c;只要把旧库复制一份&#xff0c;改个文件名就行&#xff0c;再重启svn服务器&#xff0c;就好了&#xff0c;只不过&#xff0c;这两个库都要分别输入密码去登录。

猜测&#xff1a;conf这个文件是可以放在众多库的根目录&#xff0c;这样&#xff0c;当新建一个库时&#xff0c;就不需要把旧库的conf文件夹复制进来&#xff0c;因为库根目录下的conf文件会作用于所有库。如下&#xff1a;

实际验证&#xff0c;没有效果。

不过&#xff0c;win7下创建的svn库&#xff0c;直接复制进ubuntu里&#xff0c;也是可以直接使用的&#xff0c;当然&#xff0c;如果要加密码&#xff0c;只要修改conf文件里的内容就行&#xff0c;或者直接复制旧的进来。当然&#xff0c;修改前还是要备份一下的。

下面这一小步骤应该是非必要的&#xff0c;具体没看懂&#xff0c;待日后再研究&#xff08;可能是批量管理库的方法吧&#xff09;。

指定版本库的上级目录&#xff0c;这种情况&#xff0c;一个svnserve可以为多个版本库工作

authz配置文件中对版本库权限的配置应这样写&#xff1a;

[groups]admin&#61;user1dev&#61;user2[repository:/]&#64;admin&#61;rwuser2&#61;r#[repository01:/]&#64;admin&#61;rwuser2&#61;r

如果此时你还用[/]&#xff0c;则表示所有库的根目录&#xff0c;同理&#xff0c;[/src]表示所有库的根目录下的src目录

使用类似这样的URL&#xff1a;svn://192.168.0.1/repository即可访问repository版本库

注意&#xff1a;该中启动方式的访问URL中需要添加需要访问的仓库

1.虚拟机改为仅主机模式就行。把屏保和锁屏去掉&#xff0c;否则一屏保就连不上了。
2.conf文件配置完后改为只读模式&#xff0c;这样的复制密码时不会失误改错。


删除旧的验证密码

比如&#xff0c;你在电脑上登陆了远程库&#xff0c;这里&#xff0c;远程库的用户名和密码改了&#xff0c;这该这么办&#xff1f;因为这里只会一直提示验证错误&#xff0c;却不会提示你去从新输入用户名及密码。不用慌&#xff0c;在SVN的设置里是有清空先前验证信息的功能的&#xff0c;如下&#xff1a;



推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 如何配置mysql双主_MySQL双主配置_MySQL
    准备环境:服务器操作系统为RHEL6.4x86_64,为最小化安装。主机A和主机B均关闭防火墙和SELINUX,IP地址分别为192.168.131.1 ... [详细]
  • delphi控件大全
    本文章已收录于:delphi控件查询:http:www.torry.nethttp:www.jrsoftware.orgTb97最有名的工具条(ToolBar) ... [详细]
  • linux filesystem_如何使用cgdb + qemu调试linux内核模块
    如何使用cgdbqemu调试linux内核模块前言Linux代码庞大而繁杂,光看代码会使人头晕目眩,如果能通过调试工具对其代码执行流程进行调试ÿ ... [详细]
  • mongodb复制集部署文档 ... [详细]
  • 十一、构建我们自己的包在本章中,我们将学习如何构建自己的包。编写包可以让我们创建可以在许多应用 ... [详细]
  • ImportError:cannotimportnameadd_newdocs如果在ipythonbook中,importnumpy时报这个错误,而spyder中却能正常使用,那么 ... [详细]
  • 一、如果使用默认的1521端口,让实例自动注册到该监听上,那么local_listener无需设置,listener.ora文件按照正常方 ... [详细]
  • 一、域名解析记录说明记录类型A:用来指定域名的IPv4地址(如:8.8.8.8),如果需要将域名指向一个IP ... [详细]
  • linux树莓派和n1,树莓派 斐讯N1 搭建NFS
    什么是NFS?1台Linux主机的磁盘可以通过网络挂载到其他Linux主机上,实现云盘效果。NFS是一套软件和协议,同时也是一种文件系统& ... [详细]
  • Docker从安装到入门到项目部署
    容器化的时代你怎么可 ... [详细]
  • 大数据学习环境安装关于防火墙​centos7使用的是firewalld,centos之前使用的是iptablesCentOS7关闭防火墙查看防火墙状态sudosy ... [详细]
  • 1.1.1. Ifacrashhappensthisconfigurationdoesnotguaranteethattherelayloginfowillbeconsistent ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
author-avatar
mobiledu2502884523
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有