svn安装:
centos下
yum install subversion
Ubuntu下
apt-get install subversion
服务端命令:
svnserver:控制svn系统服务的启动等
svnadmin:版本库的创建、导出、导入、删除等
svnlook:查看版本库的信息等
客户端命令:
svn:版本库的检出、更新、提交、重定向等
在/root/hbk/目录创建一个本地SVN仓库(svnserver)
[root@localhost hbk]# pwd
/root/hbk
[root@localhost hbk]# svnadmin create svnserver
可以看到自动新建了一些目录及文件
[root@localhost hbk]# cd svnserver/
[root@localhost svnserver]# tree .
.
├── conf
│ ├── authz
│ ├── passwd
│ └── svnserve.conf
├── db
│ ├── current
│ ├── format
│ ├── fsfs.conf
│ ├── fs-type
│ ├── min-unpacked-rev
│ ├── revprops
│ │ └── 0
│ │ └── 0
│ ├── revs
│ │ └── 0
│ │ └── 0
│ ├── transactions
│ ├── txn-current
│ ├── txn-current-lock
│ ├── txn-protorevs
│ ├── uuid
│ └── write-lock
├── format
├── hooks
│ ├── post-commit.tmpl
│ ├── post-lock.tmpl
│ ├── post-revprop-change.tmpl
│ ├── post-unlock.tmpl
│ ├── pre-commit.tmpl
│ ├── pre-lock.tmpl
│ ├── pre-revprop-change.tmpl
│ ├── pre-unlock.tmpl
│ └── start-commit.tmpl
├── locks
│ ├── db.lock
│ └── db-logs.lock
└── README.txt
10 directories, 27 files
其中conf目录保存的仓库配置信息
svnserve.conf:守护进程配置文件
authz :保存了用户名和权限
passwd :保存了用户名的密码
hooks-env.tmpl :钩子脚本环境配置文件
修改svnserv.conf文件如下:
[root@localhost conf]# egrep -v "#|^$" svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
[sasl]
anon-access 设置none表示不允许匿名访问。
修改auth文件
[root@localhost conf]# egrep -v "#|^$" authz
[aliases]
[groups]
harry_and_sally = harry,sally
[/]
@harry_and_sally = rw
* = r
表示创建两个用户并组成
一个group,并给予此group所有成员
根目录的读写权限
[root@localhost conf]# egrep -v "#|^$" passwd
[users]
harry = 123
sally = 123
设置harry和sally的密码
启动svn服务器(默认端口3690)
[root@localhost conf]# svnserve -d -r /root/hbk/svnserver/
[root@localhost conf]# ps -ef|grep svn
root 92720 1 0 15:17 ? 00:00:00 svnserve -d -r /root/hbk/svnserver/
root 92726 90481 0 15:17 pts/1 00:00:00 grep --color=auto svn
对于多版本库,启动的时候需要改变端口
svnserv -d -r /root/hello --listen-port 3691
检出仓库,我本地虚拟机地址为192.168.8.194
[root@localhost test]# svn checkout svn://192.168.8.194
认证领域: <svn://192.168.8.194:3690> 9bd6fb08-55de-4064-be47-656f60e6e79a
“root”的密码:
认证领域: <svn://192.168.8.194:3690> 9bd6fb08-55de-4064-be47-656f60e6e79a
用户名: harry
“harry”的密码:
-----------------------------------------------------------------------
注意! 你的密码,对于认证域:
<svn://192.168.8.194:3690> 9bd6fb08-55de-4064-be47-656f60e6e79a
只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。
你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?no
取出版本 0。
[root@localhost test]# ls -a
. .. .svn
可以看到一个隐藏文件目录.svn
也可以在检出的时候带上用户名和密码
举例:
svn checkout svn://192.168.8.194 --username harry --password 123
检出目录名称自定义
svn co svn://192.168.8.194:3691 hello3691
检出checkout 和export的区别参考 https://blog.csdn.net/huangbaokang/article/details/89381869