如果您的服务器是Windows
系统,那么就可以选择Visual SVN Server
。
Visual SVN Server
官网:http://www.visualsvn.com/server
Visual SVN Server
配置起来非常简单。
参考:http://www.jb51.net/article/17365.htm
Subversion
这个命令行工具提供了客户端和服务器。在GNU/Linux
上可以统一使用。
参考文档:http://subversion.apache.org/docs
在线电子书:http://svnbook.red-bean.com
在Ubuntu
上安装Subversion
:
sudo apt-get install -y subversion
在CentOS
上安装Subversion
:
sudo yum install subversion
mkdir ~/svn
所有的项目都应该存放在这里。
svnserve -d -r ~/svn
参数说明:
-d 参数让svnserve运行在后台
-r 参数限定了数据仓库,在网络上可以访问的地址。
~/svn指定SVN数据仓库存放的目录位置
这样,SVN的数据仓库的URL是:svn://IP地址/数据仓库目录
svnadmin create ~/svn/xxx_for_Android
可以创建很多个项目仓库,比如:
svnadmin create ~/svn/xxx_for_Android
svnadmin create ~/svn/xxx_for_iOS
svnadmin create ~/svn/xxx_for_test
svnadmin create ~/svn/xxx_for_product
示例:
运行这个命令之后,发现在对应的文件夹中生成了一堆文件夹和文件,如下:
hooks
目录中存放的都是SVN
服务端的事件的钩子,这些都是一个可执行文件, 在GNU/Linux
和macOS
系统中就是shell
脚本或者python
脚本, 或者是用C/C++编译的二进制可执行文件。在Windows
系统上,必须是.exe
或者.bat
文件。
创建SVN
仓库的时候,已经创建安好了几个钩子模板。就是上面看到的以.tmpl
为后缀的文件, 只要将后缀名去掉,然后替换文件内容即可。
需要注意的有两点:
pre-
、post-
、start-
为前缀, 后面跟着操作或者事件名称。这些钩子非常有用,比如可以利用post-commit
这个钩子,当提交了代码之后,发起代码审查 或者触发jenkins
的触发器,以实现持续集成。
SVN
手册建议项目使用以下的目录结构:
project
├── branches
├── tags
└── trunk
进入对应项目仓库的conf
目录中:
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf 是SVN服务配置文件
打开svnserve.conf这个文件,找到以下几行,并把前面的注解符号‘#’去掉, 注意千万在每行的前面别留任何空格。
anon-access = read
auth-access = write
password-db = passwd
其中anon-access和auth-access分别为匿名和有权限用户的权限,默认给匿名用户只读的权限。 但如果想拒绝匿名用户的访问,只需把anon-access的read改成none就能达到目的。
password-db后的passwd则为定义用户名及密码的文件路径。 这个文件默认跟snvserve.conf在同一个目录。
如果设置了访问权限为anon-access = none,也就是不能匿名访问,那么就需要设置用户名和密码, 用户名和密码的设置在passwd这个文件中,默认的这个文件的内容如下:
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
在[users]块中设置用户和密码,格式:帐号=密码
harry和sally这两行分别定义了可以访问这个项目仓库的用户的用户名和密码。 我们可以在下面加上自己的用户名和密码,比如:
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
zhangsan= 123456
wangwu = 123456
这样就给了用户zhangsan和wangwu访问这个数据仓库的权限。
要通过HTTP或者HTTPS访问,需要安装Apache服务器的,并配置相应的模块。