SVN创建仓库

1.安装svn

Linux系统安装svn

# centos系统
yum install subversion

# ubuntu系统
apt install subversion

查看svn安装版本,验证是否安装成功,若显示类似svn,版本 1.9.7 (r1800392)表示安装成功

svnserve --version

2.创建仓库

创建文件夹svn(可以自己取名),用于保存各代码仓库,我建在/root/svn

mkdir /root/svn

创建仓库,可以在root/svn下面创建多个仓库,方便启动服务时直接启一个root/svn总服务,而不是一个个启动,方便管理(后面演示)。这里我创建3个仓库 test1test2test3

svnadmin create /root/svn/test1
svnadmin create /root/svn/test2
svnadmin create /root/svn/test3

修改文件夹权限,保证能正常读写

chmod -R 777 /root/svn

查看新建仓库。在仓库./test1/conf下有authzpasswdsvnserve.conf 3个配置文件分别表示:权限配置文件、用户名口令配置文件、svn服务配置文件

[root@localhost svn]$ cd /root/svn
[root@localhost svn]$ ls
test1  test2  test3
[root@localhost svn]$ cd test1
[root@localhost svn]$ ls
conf  db  format  hooks  locks  README.txt
[root@localhost svn]$ cd conf
[root@localhost svn]$ ls
authz  hooks-env.tmpl  passwd  svnserve.conf

3.配置SVN

这一步主要是配置上一步生成的authzpasswdsvnserve.conf 3个配置文件;将所有的仓库都执行一遍以下3步:

一、配置“authz”

[groups]下是用户分组,可以有多个组,我这里分组admin下有一个robin用户;@admin = rw表示拥有读写权限,* = 表示其他用户没有权限访问。

二、配置”passwd”

[users]下对应用户名和密码,我这里用户名robin对应密码是123456,你可以自己设置

三、配置”svnserve.conf”

[general]下有anon-access(非鉴权用户访问库的权限)、auth-access(鉴权用户访问库的权限)、password-db(指定用户名口令文件名)、authz-db(指定权限配置文件名)、realm(指定版本库的认证域),将这5处的注释”#”去掉,注意前面不要留空格,前4处无需修改,最后一处realm后面改成自己的仓库名


4.启动SVN

一、启动命令及报错解决

(推荐)前面提到过将多个仓库放在同一个文件夹的好处,可以只启动一个服务管理多个仓库

svnserve -d -r /root/svn

(不推荐)也可以启动多个服务分别对应一个仓库,依次启动test1、test2、test3三个库的服务,若端口冲突则指定不同端口号

svnserve -d -r /root/svn/test1
svnserve -d -r /root/svn/test2
svnserve -d -r /root/svn/test3

启动服务可以指定端口(默认:3690)

svnserve -d -r /root/svn/test2 --listen-port 52020

服务启动后可以通过命令netstat -antple | grep svn查看服务状态

[root@localhost svn]$ netstat -antple | grep svn
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      1000       2187961    23320/svnserve

若启动服务过程中报错svnserve: E000098: 不能绑定服务器套接字: 地址已在使用svnserve: Can't bind server socket: Address already in use,表示端口被占用,svn默认使用端口为3690,netstat -antple | grep 3690查看使用3690端口的服务ID,然后调用命令将其干掉

[root@localhost svn]$ netstat -antple | grep 3690
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      1000       2208076    52013/svnserve
[root@localhost svn]$ kill 52013

二、设置开机自启svnserve服务

我提供两种方法,任选一种

方法a:

vim /lib/systemd/system/svnserve.service
# 编辑下面文件中的“ExecStart”字段
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
ExecStart=/usr/bin/svnserve -d $OPTIONS

[Install]
WantedBy=multi-user.target                    
vim /etc/sysconfig/svnserve
# OPTIONS is used to pass command-line arguments to svnserve.
# 
# Specify the repository location in -r parameter:
OPTIONS="-r /root/svn" # 设置成自己仓库的路径,建议使用绝对路径

方法b

vim /etc/rc.d/rc.local

增加以下内容

/usr/bin/svnserve -d -r /root/svn #填写你的svn仓库路径

关闭SELinux策略

对于这两种方法我们还需要关闭SELinux策略(SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念),否则会报以下权限问题的错误

svn: E170013: Unable to connect to a repository at URL 'svn://129.201.314.200:36900/test'
svn: E000013: Can't open file '/root/svn/test/format': Permission denied

/etc/selinux/config下面设置SELINUX=disabled关闭SELinux策略

vim /etc/selinux/config

SELINUX=disabled


5.导入版本库

前面4步在svn服务器上执行完成后,接下来在本机(客户端)执行导入和检出

新建的仓库中什么也没有,这时候拉取下来则是空文件夹,我们可以向仓库中导入我们的项目

将本地文件夹/home/robin/project/test1导入仓库所在服务器”129.201.314.200″

svn import /home/robin/project/test1 svn://129.201.314.200/test1 -m "new project" --username=robin

可以指定svn服务的端口号(默认是3690)

svn import /home/robin/project/test2 svn://129.201.314.200:52020/test2 -m "new project" --username=robin

报错svn:E170001:Authorization failed,Subversion里面并没有找到相关账号信息,输入以下命令清除已经保存的错误账号信息,连接时重新输入密码;若仍然报错,则检查authz配置文件

rm -rf ~/.subversion/auth

如果我们关闭了SELinux策略仍然遇到以下报错,检查ip地址和端口号是否正确,查看服务器上svn服务是否已经启动,检查仓库”conf”文件下3个配置文件是否正确,修改以上错误重启svn服务。若仍然报错,则可能是访问不到svn服务器所在网络和端口,你的svn服务器和主机可能不在一个局域网内,需要做ip和端口映射,将内网ip端口映射到外网ip端口,我遇到这个错误时,做了ip端口映射:128.116.72.218:36900->129.201.314.200:3690/tcp,错误就解决了,访问这个地址即可:128.116.72.218:36900。

svn: E170013: Unable to connect to a repository at URL 'svn://129.201.314.200/test1'
svn: E000111: 无法连接主机“129.201.314.200”: 拒绝连接

若发现项目上传到仓库时某些文件无法上传(被忽略),比如我上传时就有一个文件无法上传:

 原因是linux 下svn 忽略某类文件和目录,我们修改其配置文件

vim ~/.subversion/config

 找到包含global-ignores的那一行,去掉被忽略的文件格式


6.检出

命令格式:svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名

其中checkout可以简写为co

svn checkout svn://128.116.72.218:36900/test1 /home/robin/project_test --username robin
谢谢你长得这么好看还能支持我~(〃'▽'〃)

评论

  1. Elias1121
    Windows Chrome 120.0.0.0
    3周前
    2024-2-12 21:34:20

    The Beatles – легендарная британская рок-группа, сформированная в 1960 году в Ливерпуле. Их музыка стала символом эпохи и оказала огромное влияние на мировую культуру. Среди их лучших песен: “Hey Jude”, “Let It Be”, “Yesterday”, “Come Together”, “Here Comes the Sun”, “A Day in the Life”, “Something”, “Eleanor Rigby” и многие другие. Их творчество отличается мелодичностью, глубиной текстов и экспериментами в звуке, что сделало их одной из самых влиятельных групп в истории музыки. Музыка 2024 года слушать онлайн и скачать бесплатно mp3.

  2. Haley4813
    Windows Chrome 120.0.0.0
    4天前
    2024-2-27 5:39:19
  3. Ricky1544
    Windows Chrome 120.0.0.0
    4天前
    2024-2-27 7:51:04
  4. Harry2835
    Windows Chrome 120.0.0.0
    2天前
    2024-2-29 5:26:11
  5. Mike1467
    Windows Chrome 120.0.0.0
    2天前
    2024-3-01 0:10:19

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
w(゚Д゚)w
(ノへ ̄、)
(๑•̀ㅂ•́)و✧
o(* ̄3 ̄)o
(* ̄3 ̄)╭
(づ ̄3 ̄)づ╭❤~
(*  ̄3)(ε ̄ *)
( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)
Σ(°△°|||)︴
凸(艹皿艹 )
(u‿ฺu✿ฺ)
o(*≧▽≦)ツ┏━┓
╰(*°▽°*)╯
o( ̄ヘ ̄o#)
~~( ﹁ ﹁ ) ~~~
(ーー゛)
(ー`′ー)
o(一︿一+)o
(o_ _)ノ
(ノへ ̄、)
(ˉ▽ ̄~) 切~~
(@_@;)
( =•ω•= )m
(✿◡‿◡)
┭┮﹏┭┮
ヾ( ̄▽ ̄)Bye~Bye~
Ψ( ̄∀ ̄)Ψ
✧(≖ ◡ ≖✿)
━( ̄ー ̄*|||━━
ヽ(*。>Д<)o゜
(;′⌒`)
X﹏X
(′▽`ʃ♡ƪ)
♪(^∇^*)
φ(≧ω≦*)♪
o(* ̄︶ ̄*)o
o(^▽^)o
(*^-^*)
n(*≧▽≦*)n
Ψ( ̄∀ ̄)Ψ
o(〃'▽'〃)o
(〃'▽'〃)
╰(*°▽°*)╯
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
颜文字
Emoji
小恐龙
花!
表情包
下一篇