版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://cloud.tencent.com/developer/article/1434660
[root@linuxprobe~]# yum -y install subversion
[root@linuxprobe ~]# mkdir -p /var/svn/repos/project
[root@linuxprobe ~]# svnadmin create /var/svn/repos/project # 创建源仓库
[root@linuxprobe ~]# svn mkdir file:///var/svn/repos/project/trunk -m "create"
Committed revision 1.
[root@linuxprobe ~]# svn mkdir file:///var/svn/repos/project/branches -m "create" # 创建分支
Committed revision 2.
[root@linuxprobe ~]# svn mkdir file:///var/svn/repos/project/tags -m "create" # 创建标签
Committed revision 3.
[root@linuxprobe ~]# ll /home/project/
total 0
-rw-r--r-- 1 root root 0 Nov 1 11:57 index.go
-rw-r--r-- 1 root root 0 Nov 1 11:57 index.html
-rw-r--r-- 1 root root 0 Nov 1 11:57 index.php
-rw-r--r-- 1 root root 0 Nov 1 11:58 index.py
-rw-r--r-- 1 root root 0 Nov 1 11:58 info.php
[root@linuxprobe ~]# svn import /home/project file:///var/svn/repos/project/trunk -m "initial import"
Adding /home/project/index.html
Adding /home/project/index.go
Adding /home/project/index.php
Adding /home/project/index.py
Adding /home/project/info.php
Committed revision 4.
# 确认
[root@linuxprobe ~]# svn list file:///var/svn/repos/project/trunk
index.go
index.html
index.php
index.py
info.php
# svn server 端
[root@linuxprobe ~]# systemctl start svnserve
# svn client 端
[root@vdevops ~]# yum -y install svn
[root@vdevops ~]# svn list svn://linuxprobe.org/repos/project
branches/
tags/
trunk/
# 导出代码到本地
[root@vdevops ~]# svn checkout svn://linuxprobe.org/repos/project
A project/tags
A project/trunk
A project/trunk/info.php
A project/trunk/index.html
A project/trunk/index.go
A project/trunk/index.php
A project/trunk/index.py
A project/branches
Checked out revision 4.
# svn server 端
[root@linuxprobe ~]# systemctl stop svnserve
# svn client端
[root@vdevops ~]# svn list svn+ssh://root@linuxprobe.org/var/svn/repos/project
root@linuxprobe.org's password:
branches/
tags/
trunk/
[root@linuxprobe ~]# vi /var/svn/repos/project/conf/svnserve.conf
# line 9: add (prohibit anonymous access)
[general]
anon-access = none
# line 28: uncomment
password-db = passwd
# line 35: uncomment
authz-db = authz
[root@linuxprobe ~]# vi /var/svn/repos/project/conf/passwd
# define username and password for this repository
[users]
shaon= password
wang = password
devops = password
[root@linuxprobe ~]# vi /var/svn/repos/project/conf/authz
# define groups and users
[groups]
developer = devops,wang
# allow read/write on document root for developer group
[/]
@developer = rw
# allow read on trunk folder for fedora user
[/trunk]
shaon = r
[root@vdevops trunk]# svn --username shaon list svn://linuxprobe.org/repos/project/trunk
Authentication realm: <svn://linuxprobe.org:3690> LinuxProbe Repository
Password for 'shaon':
-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:
<svn://linuxprobe.org:3690> LinuxProbe Repository # 仓库名称
can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.
You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes #记住密码
index.go
index.html
index.php
index.py
info.php
安装TortoiseSVN后,移动到一个工作文件夹,点击右键,选择“SVN Checkout”,指定存储库的URL,然后单击“确定”
如果在存储库上设置访问控制,则需要进行身份验证,如下所示,继续使用有效的用户和密码。
完成结帐后,单击确定按钮
只是完成从存储库检出。它可以从这个应用程序操作存储库
[root@linuxprobe~]# yum -y install mod_dav_svn
[root@linuxprobe run]# vi /etc/httpd/conf.d/subversion.conf
# create new
<Location /project>
DAV svn
AuthType Basic
AuthName "DAV SVN"
AuthUserFile /var/svn/.svnpasswd
Require valid-user
SVNPath /var/svn/repos/project
</Location>
[root@linuxprobe run]# htpasswd -c /var/svn/.svnpasswd wang
New password:
Re-type new password:
Adding password for user wang
[root@linuxprobe run]# chown -R apache. /var/svn/repos
[root@linuxprobe run]# systemctl restart httpd
[root@linuxprobe run]# systemctl status httpd
[root@linuxprobe ~]# vi /var/svn/repos/project/conf/authzsvn.conf
# define group
[groups]
developer = wang,devops
operator = shaon
# everyone can Read access
[/]
* = r
# only developer group can Read/Write under the trunk
[project:/trunk]
@developer = rw
# only operator can Read/Write under the branches
[project:/branches]
@operator = rw
# only operator can Read/Write under the tags
[project:/tags]
@operator = rw
[root@linuxprobe~]# vi /etc/httpd/conf.d/subversion.conf
<Location /project>
DAV svn
AuthType Basic
AuthName "DAV SVN"
AuthUserFile /var/svn/.svnpasswd
Require valid-user
SVNPath /var/svn/repos/project
AuthzSVNAccessFile /var/svn/repos/project/conf/authzsvn.conf
</Location>
[root@linuxprobe ~]# systemctl restart httpd
[root@vdevops ~]# svn --username wang list http://linuxprobe.org/project
Authentication realm: <http://linuxprobe.org:80> DAV SVN
Password for 'wang':
-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:
<http://linuxprobe.org:80> DAV SVN
can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.
You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? no
branches/
tags/
trunk/