• Ubuntu1604创建SVN服务器


    Ubuntu1604创建SVN服务器

    1.背景

    ubuntu 16.04 LTS 64位。

    2.安装SVN

    • 如果SVN安装了的话 可以用如下命令删除
    $ sudo apt-get remove --purge subversion
    
    • 1
    • 安装之前更新一下
    $ sudo apt-get update
    
    • 1
    • 安装SVN
    $ sudo apt-get install subversion
    
    • 1
    • 安装好之后 查看是否安装成功
    $ svnserve --version
    svnserve,版本 1.9.3 (r1718519)
       编译于 Jul 26 2019,15:51:17 在 x86_64-pc-linux-gnu
       ......
       ......
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.创建SVN版本库

    在用户的家目录下创建SVN版本库。操作代码如下:

    $ cd ~
    $ mkdir svn-repository/
    $ chmod 777 svn-repository/
    $ cd svn-repository/
    
    # 创建 仓库
    $ svnadmin create  svntest
    
    $ ls -al
    总用量 12
    drwxrwxrwx  3 git git 4096 524 17:03 ./
    drwxr-xr-x 28 git git 4096 524 17:01 ../
    drwxrwxr-x  6 git git 4096 524 17:03 svntest/
    
    
    $ cd svntest
    $ ls -al
    总用量 32
    drwxrwxr-x 6 git git 4096 524 17:03 ./
    drwxrwxrwx 3 git git 4096 524 17:03 ../
    drwxrwxr-x 2 git git 4096 524 17:03 conf/
    drwxrwsr-x 6 git git 4096 524 17:03 db/
    -r--r--r-- 1 git git    2 524 17:03 format
    drwxrwxr-x 2 git git 4096 524 17:03 hooks/
    drwxrwxr-x 2 git git 4096 524 17:03 locks/
    -rw-rw-r-- 1 git git  246 524 17:03 README.txt
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    创建成功。可以在svn-repository/目录下执行 svnadmin create XXXXXXX 创建不同名称的仓库。

    4.设置仓库的访问权限

    • 修改svntest仓库的配置文件conf/svnserve.conf
    $ cd ~/svn-repository/
    $ cd svntest/conf
    
    #  修改配置文件。
    $ vi svnserve.conf
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 放开四行注释:
      anon-access = read
      auth-access = write
      password-db = passwd
      authzauthz-db = authz

    修改的后配置内容如下:

    ### This file controls the configuration of the svnserve daemon, if you
    ### use it to allow access to this repository.  (If you only allow
    ### access through http: and/or file: URLs, then this file is
    ### irrelevant.)
    
    ### Visit http://subversion.apache.org/ for more information.
    
    [general]
    ### The anon-access and auth-access options control access to the
    ### repository for unauthenticated (a.k.a. anonymous) users and
    ### authenticated users, respectively.
    ### Valid values are "write", "read", and "none".
    ### Setting the value to "none" prohibits both reading and writing;
    ### "read" allows read-only access, and "write" allows complete
    ### read/write access to the repository.
    ### The sample settings below are the defaults and specify that anonymous
    ### users have read-only access to the repository, while authenticated
    ### users have read and write access to the repository.
    anon-access = read
    auth-access = write
    ### The password-db option controls the location of the password
    ### database file.  Unless you specify a path starting with a /,
    ### the file's location is relative to the directory containing
    ### this configuration file.
    ### If SASL is enabled (see below), this file will NOT be used.
    ### Uncomment the line below to use the default password file.
    password-db = passwd
    ### The authz-db option controls the location of the authorization
    ### rules for path-based access control.  Unless you specify a path
    ### starting with a /, the file's location is relative to the
    ### directory containing this file.  The specified path may be a
    ### repository relative URL (^/) or an absolute file:// URL to a text
    ### file in a Subversion repository.  If you don't specify an authz-db,
    ### no path-based access control is done.
    ### Uncomment the line below to use the default authorization file.
    authz-db = authz
    ### The groups-db option controls the location of the groups file.
    ### Unless you specify a path starting with a /, the file's location is
    ### relative to the directory containing this file.  The specified path
    ### may be a repository relative URL (^/) or an absolute file:// URL to a
    ### text file in a Subversion repository.
    # groups-db = groups
    ### This option specifies the authentication realm of the repository.
    ### If two repositories have the same authentication realm, they should
    ### have the same password database, and vice versa.  The default realm
    ### is repository's uuid.
    # realm = My First Repository
    ### The force-username-case option causes svnserve to case-normalize
    ### usernames before comparing them against the authorization rules in the
    ### authz-db file configured above.  Valid values are "upper" (to upper-
    ### case the usernames), "lower" (to lowercase the usernames), and
    ### "none" (to compare usernames as-is without case conversion, which
    ### is the default behavior).
    # force-username-case = none
    ### The hooks-env options specifies a path to the hook script environment
    ### configuration file. This option overrides the per-repository default
    ### and can be used to configure the hook script environment for multiple
    ### repositories in a single file, if an absolute path is specified.
    ### Unless you specify an absolute path, the file's location is relative
    ### to the directory containing this file.
    # hooks-env = hooks-env
    
    [sasl]
    ### This option specifies whether you want to use the Cyrus SASL
    ### library for authentication. Default is false.
    ### This section will be ignored if svnserve is not built with Cyrus
    ### SASL support; to check, run 'svnserve --version' and look for a line
    ### reading 'Cyrus SASL authentication is available.'
    # use-sasl = true
    ### These options specify the desired strength of the security layer
    ### that you want SASL to provide. 0 means no encryption, 1 means
    ### integrity-checking only, values larger than 1 are correlated
    ### to the effective key length for encryption (e.g. 128 means 128-bit
    ### encryption). The values below are the defaults.
    # min-encryption = 0
    # max-encryption = 256
    ~
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 添加访问用户
    $ cd ~/svn-repository/
    $ cd svntest/conf
    
    # 修改 用户和密码
    $ vi passwd 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    增加用户:admin、shen、zhang、wang 密码均为123456。
    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
    admin = 123456
    shen = 123456
    zhang = 123456
    wang = 123456
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 设置用户权限
    $ cd ~/svn-repository/
    $ cd svntest/conf
    
    # 修改 用户组权限
    $ vi authz
    
    • 1
    • 2
    • 3
    • 4
    • 5

    增加用户组develop,成员有admin,shen,zhang,wang,根目录:组权限读写, 其它组权限只有读。
    authz文件内容如下:

    ### This file is an example authorization file for svnserve.
    ### Its format is identical to that of mod_authz_svn authorization
    ### files.
    ### As shown below each section defines authorizations for the path and
    ### (optional) repository specified by the section name.
    ### The authorizations follow. An authorization line can refer to:
    ###  - a single user,
    ###  - a group of users defined in a special [groups] section,
    ###  - an alias defined in a special [aliases] section,
    ###  - all authenticated users, using the '$authenticated' token,
    ###  - only anonymous users, using the '$anonymous' token,
    ###  - anyone, using the '*' wildcard.
    ###
    ### A match can be inverted by prefixing the rule with '~'. Rules can
    ### grant read ('r') access, read-write ('rw') access, or no access
    ### ('').
    
    [aliases]
    # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
    
    [groups]
    # harry_and_sally = harry,sally
    # harry_sally_and_joe = harry,sally,&joe
    
    # [/foo/bar]
    # harry = rw
    # &joe = r
    # * =
    
    # [repository:/baz/fuz]
    # @harry_and_sally = rw
    # * = r
    develop = admin,shen,zhang,wang
    
    [/]
    @develop = rw
    * = r
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    5.启动与测试SVN服务器

    • 启动SVN服务器
    $ svnserve -d -r /home/git/svn-repository/
    
    • 1

    -d:表示在后台运行
    -r:指定服务器的根目录

    • 查看是否启动成功
    $ ps aux | grep svnserve
    
    #执行如下:
    git@git-desktop:~/svn-repository$ svnserve -d -r /home/git/svn-repository/
    git@git-desktop:~/svn-repository$ ps aux | grep svnserve
    git      30096  0.0  0.0  75232   940 ?        Ss   08:53   0:00 svnserve -d -r /home/git/svn-repository/
    git      30098  0.0  0.0  15984   944 pts/8    S+   08:54   0:00 grep --color=auto svnserve
    git@git-desktop:~/svn-repository$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 停止SVN服务

    直接杀掉进程即可。

    $ killall svnserve
    
    #执行如下:
    git@git-desktop:~/svn-repository$ killall svnserve
    git@git-desktop:~/svn-repository$ ps aux | grep svnserve
    git      30102  0.0  0.0  15984  1016 pts/8    S+   08:58   0:00 grep --color=auto svnserve
    git@git-desktop:~/svn-repository$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    至此,可以windows下使用SVN了。

    6.windows使用SVN

    1. SVN下载 连接有问题的,话请自行搜索SVN的下载。
    2. 下载后,安装TortoiseSVN。
    3. 右键菜单–>svn checkout–>“svn://服务器ip/repository”–> OK
      填入有效地址。
      例如我的服务地址:svn://192.168.55.22/svntest

    7.后记

    此文档介绍的环境,弄了一台PC电脑当服务器,< 10人在用,感觉还行。

    完毕。

  • 相关阅读:
    Stimulsoft Reports.PHP 2022.4.3 Crack
    组件通信的方法
    【Leetcode每日一题:1668.最大重复子字符串~~~暴力枚举遍历】
    关于GTPU
    Codeforces Round 902 Div 1 (CF 1876)
    SpringBoot 下载 docx 文档
    RK3588平台开发系列讲解(项目篇)实时显示摄像头
    查找算法【二叉查找树】 - 二叉查找树的插入
    数据结构初步(六)- 复杂链表的分析与C语言实现
    说说TIME_WAIT和CLOSE_WAIT区别
  • 原文地址:https://blog.csdn.net/qs521/article/details/130860947