1. 持续集成
  2. 词汇表

SVN 支持

功能介绍

目前 CODING 已支持原生的 SVN 仓库,客户端通过 SVN+SSH 协议连接到 CODING 的服务器,数据传输全程走 SSH 加密通道。

创建 SVN 仓库

  1. 进入一个项目之后,点击左侧导航栏「代码仓库」进入代码仓库管理页面。

  2. 点击页面右上角「创建代码仓库」,选择仓库类型为「SVN 仓库」。


3. 选择 创建 SVN 仓库推荐布局 时,将会自动创建 tags branches trunk 三个目录。这是多数 SVN 仓库的推荐目录布局。

仓库初始化完成之后,即可在代码浏览界面看到 SVN 仓库的内容。

在「代码浏览」界面可以看到这个仓库的 SVN 地址:svn://subversion.e.coding.net/StrayBirds/svn

注:目前只支持在创建项目中开启 SVN 仓库,不支持在 Git 仓库中新建 SVN 仓库。

访问 SVN 仓库

SVN 仓库服务目前支持大多数主流 SVN 客户端。推荐使用各客户端的最新稳定版本。

在 Mac 环境安装使用 SVN 客户端

在 Mac 环境,可使用 Homebrew 安装 SVN 客户端。

  1. 运行下面命令安装 Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. Homebrew 安装好之后,在终端输入以下命令完成 SVN 安装:
$ brew install subversion
  1. 使用命令 svn --version 验证 SVN 是否已正确安装:
svn, version 1.9.7 (r1800392)
compiled Feb 28 2018, 15:54:50 on x86_64-apple-darwin17.3.0
Copyright (C) 2017 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository access (RA) modules are available:

* ra_svn : Module for accessing a repository using the svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
- using serf 1.3.9 (compiled with 1.3.9)
- handles 'http' scheme
- handles 'https' scheme
The following authentication credential caches are available:
* Plaintext cache in /Users/Liwenqiu/.subversion
* Mac OS X Keychain
  1. 使用命令 svn checkout svn://subversion.e.coding.net/example/example-project (请将地址替换为你的 SVN 仓库地址)来检出 SVN 仓库:

img

  1. 接下来可以使用 addcommit 命令往仓库中新添加内容:

img

  1. 除了使用 svn 协议之外,还可以使用 svn+ssh 协议来访问仓库,如下图所示:

img

使用 Cornerstone 访问 SVN 仓库

您可以通过 Cornerstone 来使用 SVN 仓库。

  1. 打开 Cornerstone 后,点击 Add Repostory 来添加 SVN 仓库(请将地址替换为你的 SVN 仓库地址)引用:

img

然后可以看到仓库的内容:

img

  1. 把仓库 checkout 出来,并且编辑文件之后,就可以 commit 进仓库,如下图:

img

在 Windows 环境安装使用 SVN 客户端

在 Windows 平台,推荐使用 TortoiseSVN

  1. 下载 安装完成之后,在任意文件目录单机鼠标右键,选择 Checkout 把 SVN 仓库 checkout 到本地(请将地址替换为你的 SVN 仓库地址):


  1. 第一次 checkout 需要输入用户名和密码。勾选 Save authentication 保存认证信息之后就不需要每次都输入密码。

  1. 进入检出的文件夹,新建 README.md 文件,在空白处右键鼠标,选择SVN commit... 将新建的文件保存进版本库:


在 Linux 环境安装使用 SVN 客户端

在 Linux 下可以直接用系统的包管理工具安装 SVN。

在 Fedora 上用 yum 安装
$ sudo yum install subversion
在 Ubuntu 或 Debian 上用 apt-get 安装
$ sudo apt-get install subversion

安装成功之后,就可以用 svn checkout / commit 来访问 SVN 仓库,使用方法与在 Mac 平台使用命令行没有太大区别,这里就不再一一举例。

Ubuntu 下使用 SVN 命令行出现协商认证机制错误

在 ubuntu 下使用 SVN 命令行客户端可能出现以下错误:

svn: E210007: Cannot negotiate authentication mechanism

这是由于 SVN 的认证过程使用到了 SASL 库来完成,所以需要运行以下命令安装依赖库来使用 SASL 认证:

$ sudo apt-get install cyrus-sasl2-dbg

管理 SVN 目录权限

SVN 仓库现支持权限控制,管理员能够为单独的用户设置指定目录的权限。管理员可以为仓库及子目录单独设置以下 3 种权限:

  • 只读:只能查看设置的目录,不能写入,允许检出。
  • 读写:可对设置的目录进行查看和写入,允许检出。
  • 无权限:不能查看也不能写入,禁止检出。

设置权限

因每个用户默认对仓库都有读写权限,若需对 SVN 仓库中的某一目录进行权限控制,点击该目录的更多操作按钮,选择「权限」。

在弹出的权限设置页面,您可以为该目录添加单独的用户与相应权限。

设置完成后,已配置了权限控制的目录将以不同颜色来区分。若没有对目录配置过权限控制,目录默认显示为黑色,用户拥有对其的读写权限。

  • 读写:黑色(默认)
  • 只读:黄色
  • 无权限:灰色

权限覆盖说明

在某些场景下,可能会存在父目录与子级目录均设置了权限,且权限不一致的情况(例如,父目录权限为只读而子目录权限为读写)。

SVN 仓库中父目录与子目录的权限覆盖规则如下:

  • 若父目录设置了权限,子目录未设置权限,则子目录继承父目录权限。
  • 若父目录与子目录均设置了权限,以子目录的权限为准。例如:
    1. 父目录权限为读写,子目录权限为只读,则子目录实际为只读权限。
    2. 父目录权限为只读,子目录权限为读写,则子目录实际为读写权限。
    3. 父目录权限为读写只读,子目录无权限,则子目录实际为无权限

上一篇文件 / 路径锁定
最近更新
感谢反馈有用
感谢反馈没用

在阅读中是否遇到以下问题?

您希望我们如何改进?