开放 API 与 Webhook
  1. 个人访问令牌
  2. WebHook
文件管理与 Wiki
  1. 项目文件管理
  2. 项目 Wiki

SVN 支持

产品功能介绍

CODING 上的 git 仓库也支持通过标准的 subversion (以下简称 svn)客户端来访问,CODING 在服务器端实现了 svn 协议到 git 的透明转换,svn 客户端通过 svn+ssh 协议连接到 CODING 的服务器,数据传输全程走 ssh 加密通道。

创建 SVN 仓库

在创建项目的界面,选择【仓库类型】下的【SVN 仓库(Beta)】:

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

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

在【代码浏览】界面可以看到这个仓库的 SVN 地址:svn://subversion.e.coding.net/codingcorp/svn-repo

SVN 仓库的使用

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

Mac 下的 SVN 客户端的安装使用

安装使用 SVN 命令行客户端

使用 Homebrew 安装。运行下面命令安装 Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Homebrew 安装好之后,在终端输入

1
$ brew install subversion

命令完成 SVN 安装。

使用命令 svn --version 验证 SVN 正确安装完成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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

使用命令 svn checkout svn://subversion.e.coding.net/example/example-project (请将地址替换为你的 SVN 仓库地址)来检出 SVN 仓库:
img

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

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

使用 Cornerstone 来访问 SVN 仓库

也可以通过 Cornerstone 来使用。
打开 Cornerstone 后,点击 Add Repostory 来添加 SVN 仓库(请将地址替换为你的 SVN 仓库地址)引用:
img

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

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

Windows 下的 SVN 客户端的安装使用

在 Windows 平台,推荐使用 TortoiseSVN下载 安装完成之后,在任意文件目录单机鼠标右键,选择 Checkout 就可以把 SVN 仓库 checkout 到本地(请将地址替换为你的 SVN 仓库地址):

第一次 checkout 需要输入用户名和密码:

勾选 Save authentication 保存认证信息之后就不需要每次都输入密码了。

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


Linux 下的 SVN 客户端的安装使用

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

在 Fedora 上用 yum 安装

$ yum install subversio

在 Ubuntu 或 Debian 上用 apt-get 安装

1
$ apt-get install subversion

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

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

在 ubunt 下使用 svn 命令行客户端出现一下错误:
svn: E210007: Cannot negotiate authentication mechanism
因为 svn 的认证过程使用到了 sasl 库来完成认证过程,所以需要安装依赖库来使用 sasl 认证,用如命令安装
sudo apt-get install cyrus-sasl2-dbg

Git 仓库开启 SVN 支持

仅项目管理员可以设置 SVN。

进入项目的【设置】→【代码托管】→【开启 SVN 服务】,点击开启

分支标签映射规则

git 仓库的分支和标签按照如下规则映射到 svn 路径:

  • master -> /trunk,即:svn checkout <仓库地址>/trunk 可以检出 master 分支
  • 分支 -> /branches/分支,例如:svn checkout <仓库地址>/branches/test 可以检出 test 分支
  • 标签 -> /tags/标签,例如:svn checkout <仓库地址>/tags/v1.0 可以检出 v1.0 标签
  • 暂不支持分支标签的创建删除和合并,git submodule 检出为空目录

如何查看某个 svn 版本对应的 git commit?

执行

1
svn propget git-commit –revprop -r HEAD svn+ssh://subversion.e.coding.net/user/repo

将 HEAD 替换为版本号数字可以查看该版本号对应的 git commit。

提示:本功能目前处于测试阶段,尚未实现完整 SVN 功能,如您在使用中遇到问题请向我们反馈。

上一篇代码对比与合并请求
文档是否对您有用?
感谢反馈有用
感谢反馈没用