环境:OS X EI Capitan 10.11.3 + svnserve 1.7.19 + svn 1.7.19
MAC 默认已经自带了 svn 服务器和客户端,因此不需要安装了。
1. 确认安装了 svn 服务器:svnserve
$ svnserve --version
输出如下:
svnserve, version 1.7.19 (r1643991)
compiled Mar 10 2015, 12:33:03
Copyright (C) 2014 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repositories back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repositories.
2. 创建本地仓库
(1)$ mkdir -p /Users/maping/svn/repositories/local
(2)$ svnadmin create /Users/maping/svn/repositories/local
(3)$ ll /Users/maping/svn/repositories/local
-rw-r--r-- 1 maping staff 229 2 25 08:35 README.txt
drwxr-xr-x 5 maping staff 170 2 25 08:35 conf
drwxr-sr-x 15 maping staff 510 2 25 08:35 db
-r--r--r-- 1 maping staff 2 2 25 08:35 format
drwxr-xr-x 11 maping staff 374 2 25 08:35 hooks
drwxr-xr-x 4 maping staff 136 2 25 08:35 locks
3. 配置
(1)$ vim /Users/maping/svn/repositories/local/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
注意:
(1)这里除了要去掉四行前面的#号外,并且要顶到行头,否则有空格,会报错。
(2)这里必须设置 anon-access = none,否则和Jenkins集成时,会报错:svn: E220001: Item is not readable,详见参考文献 3.
(2)$ vim /Users/maping/svn/repositories/local/conf/passwd
在[users]后面加入以下内容
administrator = admin@svnserve
maping = maping
说明:这里添加了两个用户,并分别设置了密码。
(3)$ vim /Users/maping/svn/repositories/local/conf/authz
[groups]
admin = administrator
user = maping
[/]
# * = r
@admin = rw
@user = r
[local:/]
@admin = rw
@user = rw
说明:
(1)这里定义了两个组:admin 和 user
(2)admin这个组里面有 administrator 这个用户(一个组里面可以有多个用户,多个用户用逗号隔开),user 这个组里面有 maping 这个用户。
(3)设置根目录的权限,这里的 / 目录指的是 /Users/maping/svn/repositories/ 目录。
(4)设置 local 这个仓库的根目录权限。
4. 启动/停止
(1)启动
$ svnserve -d -r /Users/maping/svn/repositories
如果写系统日志,比如/var/log/svn.log,需要root权限。
$ sudo svnserve -d -r /Users/maping/svn/repositories --log-file=/var/log/svn.log
svnserve 默认使用3690端口,检查起来没有
$ netstat -an | grep 3690
(2)停止
$ ps -ef | grep svnserve
$ kill SVNSERVE_PID
5. 创建默认目录结构
(1)首先在本地把目录结构建立好
$ mkdir -p /tmp/svntemp/tags /tmp/svntemp/trunk /tmp/svntemp/branches
(2)把本地目录结构导入到 svn 仓库中
$ svn import -m 'init repo' /tmp/svntemp/ svn://localhost/local
输出如下:
Authentication realm: e37f735f-9e1b-4882-a177-fa4ba113d199
Password for 'maping':
Authentication realm: e37f735f-9e1b-4882-a177-fa4ba113d199
Username: maping
Password for 'maping':
Adding /tmp/svntemp/tags
Adding /tmp/svntemp/trunk
Adding /tmp/svntemp/branches
Committed revision 1.
说明:
(1)尽管Subversion的灵活性允许你自由布局版本库,但推荐的方式是:创建一个trunk目录来保存开发的主线,一个branches目录存放分支拷贝,tags目录保存标签拷贝。
(2)第一个提示的 maping,是 MAC 用户的账户。后面的 maping 是 svn 中定义的账户。
(3)导入一个已有的 Maven 项目
$ svn import -m "initial import" /Users/maping/Apache/maven/my-webapp/ svn://localhost/local/trunk/my-webapp
输出如下:
Adding Apache/maven/my-webapp/src
Adding Apache/maven/my-webapp/src/main
Adding Apache/maven/my-webapp/src/main/resources
Adding Apache/maven/my-webapp/src/main/webapp
Adding Apache/maven/my-webapp/src/main/webapp/index.jsp
Adding Apache/maven/my-webapp/src/main/webapp/WEB-INF
Adding Apache/maven/my-webapp/src/main/webapp/WEB-INF/web.xml
Adding Apache/maven/my-webapp/pom.xml
Committed revision 2.
(4)从 svn 仓库导出项目
在导入之后,原来的目录并没有转化成工作拷贝,为了开始工作,需要运行 svn checkout 导出一个工作拷贝。
$ svn checkout svn://localhost/local/ --username=maping --password=maping /Users/maping/mysvn
$ svn list svn://localhost/local/
$ svn list svn://localhost/local/trunk/my-webapp
$ svn delete svn://localhost/local/trunk/my-webapp -m delete
参考文献:
1. http://xiayong.blog.51cto.com/6292420/1088790
2. http://www.cnblogs.com/onlyfu/archive/2012/05/08/2489814.html
3. http://www.2cto.com/os/201211/171663.html
MAC 默认已经自带了 svn 服务器和客户端,因此不需要安装了。
1. 确认安装了 svn 服务器:svnserve
$ svnserve --version
输出如下:
svnserve, version 1.7.19 (r1643991)
compiled Mar 10 2015, 12:33:03
Copyright (C) 2014 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repositories back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repositories.
2. 创建本地仓库
(1)$ mkdir -p /Users/maping/svn/repositories/local
(2)$ svnadmin create /Users/maping/svn/repositories/local
(3)$ ll /Users/maping/svn/repositories/local
-rw-r--r-- 1 maping staff 229 2 25 08:35 README.txt
drwxr-xr-x 5 maping staff 170 2 25 08:35 conf
drwxr-sr-x 15 maping staff 510 2 25 08:35 db
-r--r--r-- 1 maping staff 2 2 25 08:35 format
drwxr-xr-x 11 maping staff 374 2 25 08:35 hooks
drwxr-xr-x 4 maping staff 136 2 25 08:35 locks
3. 配置
(1)$ vim /Users/maping/svn/repositories/local/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
注意:
(1)这里除了要去掉四行前面的#号外,并且要顶到行头,否则有空格,会报错。
(2)这里必须设置 anon-access = none,否则和Jenkins集成时,会报错:svn: E220001: Item is not readable,详见参考文献 3.
(2)$ vim /Users/maping/svn/repositories/local/conf/passwd
在[users]后面加入以下内容
administrator = admin@svnserve
maping = maping
说明:这里添加了两个用户,并分别设置了密码。
(3)$ vim /Users/maping/svn/repositories/local/conf/authz
[groups]
admin = administrator
user = maping
[/]
# * = r
@admin = rw
@user = r
[local:/]
@admin = rw
@user = rw
说明:
(1)这里定义了两个组:admin 和 user
(2)admin这个组里面有 administrator 这个用户(一个组里面可以有多个用户,多个用户用逗号隔开),user 这个组里面有 maping 这个用户。
(3)设置根目录的权限,这里的 / 目录指的是 /Users/maping/svn/repositories/ 目录。
(4)设置 local 这个仓库的根目录权限。
4. 启动/停止
(1)启动
$ svnserve -d -r /Users/maping/svn/repositories
如果写系统日志,比如/var/log/svn.log,需要root权限。
$ sudo svnserve -d -r /Users/maping/svn/repositories --log-file=/var/log/svn.log
svnserve 默认使用3690端口,检查起来没有
$ netstat -an | grep 3690
(2)停止
$ ps -ef | grep svnserve
$ kill SVNSERVE_PID
5. 创建默认目录结构
(1)首先在本地把目录结构建立好
$ mkdir -p /tmp/svntemp/tags /tmp/svntemp/trunk /tmp/svntemp/branches
(2)把本地目录结构导入到 svn 仓库中
$ svn import -m 'init repo' /tmp/svntemp/ svn://localhost/local
输出如下:
Authentication realm:
Password for 'maping':
Authentication realm:
Username: maping
Password for 'maping':
Adding /tmp/svntemp/tags
Adding /tmp/svntemp/trunk
Adding /tmp/svntemp/branches
Committed revision 1.
说明:
(1)尽管Subversion的灵活性允许你自由布局版本库,但推荐的方式是:创建一个trunk目录来保存开发的主线,一个branches目录存放分支拷贝,tags目录保存标签拷贝。
(2)第一个提示的 maping,是 MAC 用户的账户。后面的 maping 是 svn 中定义的账户。
(3)导入一个已有的 Maven 项目
$ svn import -m "initial import" /Users/maping/Apache/maven/my-webapp/ svn://localhost/local/trunk/my-webapp
输出如下:
Adding Apache/maven/my-webapp/src
Adding Apache/maven/my-webapp/src/main
Adding Apache/maven/my-webapp/src/main/resources
Adding Apache/maven/my-webapp/src/main/webapp
Adding Apache/maven/my-webapp/src/main/webapp/index.jsp
Adding Apache/maven/my-webapp/src/main/webapp/WEB-INF
Adding Apache/maven/my-webapp/src/main/webapp/WEB-INF/web.xml
Adding Apache/maven/my-webapp/pom.xml
Committed revision 2.
(4)从 svn 仓库导出项目
在导入之后,原来的目录并没有转化成工作拷贝,为了开始工作,需要运行 svn checkout 导出一个工作拷贝。
$ svn checkout svn://localhost/local/ --username=maping --password=maping /Users/maping/mysvn
$ svn list svn://localhost/local/
$ svn list svn://localhost/local/trunk/my-webapp
$ svn delete svn://localhost/local/trunk/my-webapp -m delete
参考文献:
1. http://xiayong.blog.51cto.com/6292420/1088790
2. http://www.cnblogs.com/onlyfu/archive/2012/05/08/2489814.html
3. http://www.2cto.com/os/201211/171663.html
没有评论:
发表评论