Linux SVN服务器搭建详解

本文部分例子引用linux下搭建SVN服务器完全手册

一、简介
Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

二、安装与部署

yum install subversion-xxxx

在这个安装这个之前可能需要先安装

yum install perl-URI-xxxx
后面表示相应的版本号。

比如:


三、配置

这里主要涉及authz、passd、svnserve.conf三个主文件

(1)创建版本发布的主目录

mkdir -p /home/lorieskate/svn
(2)创建版本库目录(版本库与版本主目录的区别是子集的关系,好比mount命令,版本库挂载在版本主目录下。当然版本主目录下可以有多个版本库,所以它们之间是一对多的关系)

mkdir -p /home/lorieskate/svn/project
svnadmin create /home/lorieskate/svn/project
(3)配置密码

当上一步执行成功之后,会在该目录的conf目录下自动生成authz、passwd和svnserve.conf三个文件。

并不是一定要按以下的步骤来配置,可以随个人喜好。

[users]
# harry = harryssecret
# sally = sallyssecret
lorieskate = 123456
pm = pm_pw
server_group = server_pw
client_group = client_pw
test_group = test_pw

(4)配置用户授权( 这里配置的时候一定要小心,很多的问题都是源于此

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin = lorieskate
project_p = pm
project_s = server_group
project_c = client_group
project_t = test_group

[project:/]
@admin = rw
@project_p = rw
* =

[project:/server]
@project_p = rw
@project_s = rw
* =

[project:/client]
@project_p = rw
@project_c = rw
* =

[project:/test]
@project_p = rw
@project_t = rw
* =

[project:/doc]
@project_p = rw
@project_s = rw
@project_c = rw
@project_t = rw
* =
(5)配置svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
#realm = project
(6)启动服务

svnserve -d -r /home/lorieskate/svn
其中路径是指版本的主目录。顺便提一下关闭服务:

#! /bin/bash

proc=$(ps -ef | grep svn | grep -v grep | awk '{print $2}')
if [ ! -z "$proc" ]
then
        kill $proc
fi

四、测试

svn checkout svn://192.168.72.128/project

如果有需要,我们可以还原到最初的版本库。首先先找到.subversion目录,然后删除.subversion/auth/svn.simple/下的文件,最后可以重新设定了。

五、svn相关命令(所以命令后面再加上 --help,可以查看更多的命令帮助,必须得在working directory

(1)常用命令

a) checkout将文件上传到本地目录下(这里的本地目录指的就是path,有时我们经常会碰到svn: '.' is not a working copy directory这个问题,就是因为当前操作的目录不是在path下)

形式:svn checkout path
例子:svn checkout svn://192.168.72.168/project

b)  add 添加新文件到当前版本库

形式:svn add filename
例子:svn checkout test.c

c)  info 查看文件详细信息

形式:svn info filename
例子:svn info test.c

d)  commit 将改动的文件提交到版本库

形式:svn commit filename -m ''
例子:svn commit test.c -m 'testing'

e)  update 更新到某个版本

形式:svn update filename
例子:svn update 默认将当前目录及子目录下的文件更新到最新的版本。
svn update -r 200 test.c 将版本库中的文件还原到版本200。
svn update test.c 更新,于版本同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后在提交commit。     

f)  help 命令帮助

形式:svn help
例子:svn help


g) lock/unlock 加锁/解锁

形式:svn lock/unlock -m '' path
例子:svn lock/unlock -m 'lock/unlock' test.c

h) status 查看文件或目录的状态
形式:svn status path
例子:svn status test.c

i)log查看日志
形式:svn log path
例子:svn log test.c

j) diff 比较文本差异
形式:svn diff path
例子:svn diff test.c 与基础版本对比
svn diff -r 200:201 test.c 对比第200版本与第201版本的test.c文件

k) merge 合并文本
形式:svn merge -r m:n path
例子:svn merge -r 200:201 test.c 合并第200版本与第201版本的test.c文件

(2)不常用命令
a) mkdir 创建纳入版本库下的新目录
形式:svn mkdir path
例子:svn mkdir logs 

b) list 列出版本库下的目录以及文件
形式:svn list
例子:svn list

c) resolved 解决冲突
形式:svn resolved path
例子:svn resolved test.c

d) revert 恢复本地修改(原始未改变的工作副本文件)
形式:svn revert path
例子:svn revert test.c

e) switch 代码库URL变更(更新工作副本至不同的URL)
形式:svn switch path

f) cat 指定输出文件或URL的内容
形式:svn cat 目标[@版本] 如果指定了版本,将从指定的版本开始查找

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Linux上安装SVN服务器并进行配置,可以按照以下步骤进行操作: 1. 安装SVN服务器软件 可以使用以下命令在Linux上安装Subversion软件包: ``` sudo apt-get update sudo apt-get install subversion ``` 2. 创建版本库 使用以下命令创建SVN版本库: ``` sudo svnadmin create /svn/repos ``` 其中,`/svn/repos` 是版本库的路径,可以根据需要进行更改。 3. 配置访问权限 使用以下命令设置版本库的访问权限: ``` sudo chown -R www-data:www-data /svn/repos sudo chmod -R 775 /svn/repos ``` 其中,`www-data` 是Web服务器的用户名,可以根据需要进行更改。 4. 配置SVN服务 编辑 `svnserve.conf` 文件,该文件位于版本库的 `conf` 子目录下: ``` sudo nano /svn/repos/conf/svnserve.conf ``` 取消以下行的注释: ``` anon-access = none auth-access = write password-db = passwd authz-db = authz ``` 其中,`passwd` 和 `authz` 分别是用户认证文件和访问控制文件的路径。 5. 配置用户认证 编辑 `passwd` 文件,该文件位于版本库的 `conf` 子目录下: ``` sudo nano /svn/repos/conf/passwd ``` 添加以下行: ``` [users] username = password ``` 其中,`username` 和 `password` 分别是SVN用户的用户名和密码。 6. 配置访问控制 编辑 `authz` 文件,该文件位于版本库的 `conf` 子目录下: ``` sudo nano /svn/repos/conf/authz ``` 添加以下行: ``` [groups] groupname = username [/] @groupname = rw ``` 其中,`groupname` 和 `username` 分别是SVN用户组和SVN用户的用户名。 7. 启动SVN服务 使用以下命令启动SVN服务: ``` sudo svnserve -d -r /svn/repos ``` 其中,`-d` 选项表示在后台运行,`-r` 选项指定版本库的路径。 现在,您已经在Linux上成功安装和配置了SVN服务器,可以开始使用SVN来管理您的项目了。 ### 回答2: 一、安装SVN服务器: 1. 安装SVN服务器 打开终端,执行命令: sudo apt-get install subversion 2. 创建SVN仓库 创建SVN仓库的位置,一般会选择在/home目录下,执行如下命令: sudo mkdir /home/svn 3. 初始化SVN仓库 执行如下命令: sudo svnadmin create /home/svn/repos 二、配置SVN服务器: 1. 修改SVN配置文件 打开SVN配置文件,执行如下命令: sudo vi /home/svn/repos/conf/svnserve.conf 在“[general]”下添加如下内容: anon-access = read auth-access = write password-db = passwd realm = My First Repository 2. 添加用户帐号和密码 执行如下命令: sudo vi /home/svn/repos/conf/passwd 在文件中添加用户名和密码,格式如下: [users] user1 = password1 user2 = password2 3. 启动SVN服务器 执行如下命令: sudo svnserve -d -r /home/svn/repos 可以看到SVN服务器已启动,可以通过“svn://localhost/My First Repository”进行访问。 三、安装SVN客户端: 1. 安装SVN客户端 打开终端,执行如下命令: sudo apt-get install subversion 2. 下载SVN仓库 执行如下命令: svn checkout svn://localhost/My First Repository myproject 可以看到已经下载了名为“myproject”的文件夹,里面包含SVN仓库中的所有内容。 四、配置SVN客户端: 1. 编辑SVN配置文件 打开SVN配置文件,执行如下命令: sudo vi ~/.subversion/config 2. 添加配置 在文件中添加如下配置: [auth] password-stores = gnome-keyring [helpers] editor-cmd = gedit 3. 配置用户名和密码 执行如下命令: cd myproject svn propedit svn:externals . 在文件中添加如下配置: mylibrary http://svn.example.com/httpdocs/libraries/mylibrary 保存文件,退出。 4. 提交文件 执行如下命令: svn commit -m "Initial import." 可以看到已经提交了一个名为“Initial import.”的更新记录。 以上就是关于如何在Linux上安装SVN服务器搭建的全部内容。通过这些步骤,你就可以轻松地在自己的Linux系统上搭建一个SVN服务器,并使用SVN客户端进行版本管理。 ### 回答3: 作为一种开源的版本控制系统,Subversion(简称 SVN)已经为许多开发人员所熟悉和广泛使用。为了建立一个数据中心或者进行组织协作,搭建 SVN 服务器成为了发挥 SVN 所有功能的重要途径。在本文中,我们将为大家介绍如何在 Linux 系统中安装 SVN 服务器,以 Ubuntu 为例。 首先,我们需要使用 sudo 命令才能管理 Ubuntu 中的软件包,可以使用下面的命令更新软件包列表: sudo apt-get update 接下来,我们就可以安装 SVN 服务器了。在 Ubuntu 中,我们可以使用 aptget 包管理器来进行安装: sudo apt-get install subversion libapache2-mod-svn 安装完成后,我们需要在 Apache 中启用 mod_dav_svn 模块。可以使用下面的命令来启用: sudo a2enmod dav_svn 接着,我们就可以创建 SVN 仓库了。在 Ubuntu 中,所有仓库都保存在 /var/svn 目录下,我们可以使用下面的命令创建一个名为 svnrepo 的仓库: sudo svnadmin create /var/svn/svnrepo 接下来,我们需要设置 SVN 仓库的访问权限。可以使用下面的命令设置: sudo chown www-data:www-data /var/svn/svnrepo -R sudo chmod g+w /var/svn/svnrepo -R 最后,我们需要在 Apache 的 virtualhost 中添加一个 SVN 仓库配置。可以使用下面的命令来添加配置: sudo nano /etc/apache2/sites-available/default-ssl.conf <VirtualHost _default_:443> ... <Location /svnrepo> DAV svn SVNPath /var/svn/svnrepo AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location> ... </VirtualHost> 保存配置文件并重启 Apache 服务器: sudo systemctl restart apache2 最后,在 /etc/apache2 目录下创建一个 dav_svn.passwd 文件,并添加相应的用户名和密码: sudo htpasswd -c /etc/apache2/dav_svn.passwd username 完成后,我们就可以启动 SVN 服务器了。在使用 SVN 的客户端访问 SVN 仓库时,需要使用以下 URL: https://yourserver/svnrepo 以上就是在 Linux 系统中安装 SVN 服务器的全部过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值