【SVN]Mac系统下SVN的基础配置

【SVN]Mac系统下SVN的基础配置

Subversion在MacOS系统已经默认安装,用户可以直接使用。本文主要介绍在Mac系统上SVN的一些基本
使用配置。

验证SVN是否已经存在

svn --version

已经安装了Svn,则会输入当前版本信息:

svn, version 1.9.4 (r1740329)
compiled Feb 27 2017, 18:16:16 on x86_64-apple-darwin15.0.0
......

1. 创建Svn存储库

  • 第一步:创建Svn的存储库目录

mkdir repository

cd repository

mkdir repo_app

cd repo_app

pwd

输出: /Users/master/Documents/work/repository/repo_app

说明:

repository: 该文件夹是Svn存储库基础路径,其下可以创建多个存储库
repo_app: 是我们用来存在app类应用的存储库,同样,用户可以再创建其他的存储库

  • 第二步:创建存储库

svnadmin create /Users/master/Documents/work/repository/repo_app

创建完成后,将会在 “repo_app" 目录下自动创建一系列配置文件,结构如下所示:


.
└── repo_app
    ├── README.txt
    ├── conf
    ├── db
    ├── format
    ├── hooks
    └── locks
    

2. 配置用户权限

2.1 修改主配置文件:svnserve.conf

文件路径

/Users/master/Documents/work/repository/repo_app/conf/svnserve.conf

修改如下配置项:

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

注意,修改svnserve.conf时,取消注释后,配置项前面不要有空格。

2.2 修改密码配置文件:password

文件路径

/Users/master/Documents/work/repository/repo_app/conf/password

在[users]配置项下面添加用户和密码:

[users]
admin = admin

2.3 修改用户组配置文件:authz

配置文件路径:

/Users/master/Documents/work/repository/repo_app/conf/authz

在authz文件中添加:

[/]
admin = rw

设置用户admin的权限为对所有数据具有读写权限。

3. 启动SVN

3.1 启动

典型的启动命令如下所示:

svn -d --listen-port=port --listen-host=host -r /Users/master/Documents/work/repository

参数说明:

-d: 表示以后台进程启动Svn
--listen-port:指定Svn服务的监听端口,默认为 3690
--listen-host:指定主机名
-r: 指定Svn服务监听的目录,服务启动后会暴露该目录下的存储库

本文中使用如下命令启动Svn:

svnserve -d -r /Users/master/Documents/work/repository/repo_app

如上命令表示,Svn服务将作为独立后台进程启动,并且,Svn服务自动监听的仓库为repo_app。
由此,开发人员可以向repo_app存储仓库下导入代码或文档。

3.2 验证启动是否成功

通过lsof命令查看3690端口的占用情况:


master$ lsof -i tcp:3690

COMMAND    PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
svnserve 48576 master    3u  IPv4 0x6e47ed08d6a3c8df      0t0  TCP *:svn (LISTEN)

如上表述,svserve进程已经坚挺在3690端口,表示Svn服务正常启动。

4. 初始化代码库

初始化仓库:

svn import /Users/master/Documents/work/workspace/cmm svn://localhost:3690/cmm --username=admin --password=admin -m "Import initial code"

注意:

一开始,作者比较疑惑的是启动服务后的存储库路径问题。如上所示,通过命令行的 -r 参数指定了顶层目录为 repo_app。则表示,通过该参数限定后,Svn的路径起始位置就是repo_app。因此导入代码时,直接指定代码导入的仓库的相对路径即可:

    svn://localhost/cmm 

5. 客户端Checkout代码

代码迁出命令:

svn checkout svn://localhost/cmm ./cmm --username=admin --password=admin

6. 客户端提交代码

将未处于版本控制的文件添加到Svn的版本控制中:

svn add 文件或文件夹

提交代码:

svn commit -m"Commit your changeset"

7. 客户端更新代码

客户端从服务器端拉取最新的代码到本地工作空间:

svn update

8. 如何创建多仓库?

一般情况下,开发人员会在公司局域网内搭建自己的Svn服务器,用于对项目进行集中式管理。研发团队一般会存在多个项目,基于Svn做配置管理,建议的策略是:

每个项目都建立自己的项目仓库

那么,如何在一台服务器上建立多个仓库呢?如下通过实例进行说明。

假设目前需要建立两个仓库:

/Users/master/Documents/work/repository 目录结构:
.
├── auto-di          //仓库auto-di
│   ├── README.txt
│   ├── conf
│   ├── db
│   ├── format
│   ├── hooks
│   └── locks
└── cmm             //仓库cmm
    ├── README.txt
    ├── conf
    ├── db
    ├── format
    ├── hooks
    └── locks

如果需要维护多个仓库,则启动Svn时通过“-r”参数置顶多个仓库的公共父级目录,如下所示:

svnserve -d -r /Users/master/Documents/work/repository

通过如上命令,指定了Svn服务监控的目录为 “/Users/master/Documents/work/repository”
两个仓库的访问地址是:

svn://localhost/auto-di //相对路径 auto-di

svn://localhost/cmm //相对路径 cmm

猜你喜欢

转载自www.cnblogs.com/nelson2013/p/9292140.html