代码托管 CodeArts Repo
代码托管 CodeArts Repo
- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 代码托管(CodeArts Repo)使用流程
- 购买并授权使用Repo
- 环境和个人配置
- 访问CodeArts Repo首页
- 新建并配置CodeArts项目
- 配置Repo项目级设置
- 管理Repo成员权限
- 管理Repo代码仓库
- 迁移代码与同步仓库
- 配置Repo代码仓库设置
- 分层管理代码仓
- 查看代码仓库信息
- 克隆/下载代码仓库到本地
- 上传代码文件到Repo
- 开发协作工作流
- 提交代码到Repo并管理合并请求
- 管理代码文件
- Repo代码仓的安全管理
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
API
-
V4
-
WebHook
- 获取仓库下指定Webhook的日志列表
- 获取仓库下指定Webhook的指定日志详情
- 获取项目下指定Webhook的日志列表
- 获取项目下指定Webhook的指定日志详情
- 获取代码组下指定Webhook的日志列表
- 获取代码组下指定Webhook的指定日志详情
- 获取代码组下Webhook列表
- 添加代码组下Webhook
- 获取代码组下单个Webhook数据
- 更新代码组下单个Webhook数据
- 删除代码组下单个Webhook
- 获取项目下Webhook列表
- 添加项目下Webhook
- 获取项目下单个Webhook数据
- 更新项目下单个Webhook数据
- 删除项目下单个Webhook
- 获取仓库下Webhook列表
- 添加仓库下Webhook
- 获取仓库下单个Webhook数据
- 更新仓库下单个Webhook数据
- 删除仓库下单个Webhook
-
Repository
- 获取项目下当前用户有管理权限的代码组列表
- 关联仓库与成员组
- 锁定仓库
- 解锁仓库
- 获取仓库ip白名单
- 添加仓库ip白名单
- 修改仓库ip白名单
- 删除仓库ip白名单
- 仓库下载
- 获取仓库指定分支或者标签子模块列表
- 创建子模块
- 获取文件内容
- 获取仓库指定分支的提交统计信息
- 获取仓库默认分支语言统计
- 获取仓库动态
- 查看分支文件列表
- 分支、tags、提交对比
- 按行数查询提交文件内容
- 获取仓库通知设置
- 修改仓库通知设置
- 获取仓库通知设置启用状态
- 获取仓库统计任务状态
- 删除仓库部署秘钥
- 启动仓库镜像同步
- 获取仓库镜像详情
- 查看仓库继承设置源
- 创建指定分支下的目录
- 获取仓库贡献者列表
- 查看仓库继承设置
- 修改仓库继承设置
- 将普通仓库与远程镜像关联
- 查看仓库通用策略
- 修改仓库通用策略
- 查看仓库通用提交规则
- 查看仓库提交规则
- 查看当前用户仓库导入任务列表
- 获取仓库最近推送事件
- 获取仓库统计摘要
- 获取CR仓库用户分支或标签级权限
- 获取仓库水印设置
- 更新仓库水印设置
- 获取仓库详情
- 获取当前登录用户仓库
- 获取仓库Fork列表
- 模板仓列表
- ProtectedTag
- FilePushPermission
- Label
- ProtectedBranch
- Project
- ThirdParty
- Group
- Permission
- Tenant
-
MergeRequest
- 获取合并请求关联的最新流水线
- 获取合并请求打分
- 更新合并请求打分
- 删除合并请求打分
- 获取MR详情
- 更新合并请求
- 获取合并请求的可合入状态
- 合入合并请求
- 获取仓库MR列表
- 创建合并请求
- 获取合并请求审核设置列表
- 创建合并请求审核设置
- 更新合并请求审核设置
- 删除合并请求审核配置
- 获取合并请求commit列表
- 获取合并请求文件变更列表树
- 获取合并请求文件变更列表
- 导入合并请求
- 获取分支代码冲突
- 更新仓库合并请求设置
- 获取仓库合并请求设置
- 获取代码组合并请求设置
- 获取项目合并请求设置
- 创建合并请求模板
- 获取合并请求模板列表
- 获取检视意见模板列表
- 更新合并请求模板
- 获取单个合并请求模板
- 删除合并请求模板
- 获取代码组合并请求审核设置列表
- 创建代码组合并请求审核设置
- 获取项目合并请求审核设置列表
- 创建项目合并请求审核设置
- 更新代码组合并请求审核设置
- 删除代码组合并请求审核配置
- 更新项目合并请求审核设置
- 删除项目合并请求审核配置
- 获取代码组审核人或合并人
- 获取项目审核人或合并人
- 获取代码组检视人
- 获取项目检视人
- 获取合并请求审核人列表
- 获取合并请求检视人列表
- 更新合并请求的审核人列表
- 更新合并请求的检视人列表
- 审核合并请求
- 检视合并请求
- 获取可选的合并请求检视人
- 变基合并请求
- 在线解决合并请求冲突
- 获取所有的冲突文件
- 获取合并请求的平均评价
- 获取合并请求文件变更页单个文件下的检视意见
- Discussion
- Commit
- Member
- Branch
- Tag
- File
- User
- Pipeline
- MergeRequestList
- MergeRequestParticipants
- Ref
-
WebHook
- SSH Key
- Repository
- V2Project
- RepoMember
- Commit
- File
- User
- Project
-
V4
- 应用示例
- 附录
-
历史API
- SSHKey
-
Repository
- 获取分支目录下的文件(废弃)
- 根据仓库短ID和合并请求短ID获取检视人信息(废弃)
- 查询某仓库对应的分支(废弃)
- 新建标签(废弃)
- 查询某仓库的标签列表(废弃)
- 下载仓库
- 删除保护分支(废弃)
- 批量删除保护分支(废弃)
- 获取仓库分支列表(废弃)
- 获取变更文件列表(废弃)
- 设置仓库是公开状态还是私有状态(废弃)
- 获取公开示例模板列表(废弃)
- 添加部署密钥(废弃)
- 删除仓库部署密钥(废弃)
- 查询项目下的某个仓库(废弃)
- 获取代码提交行数(废弃)
- 审核合并请求(废弃)
- 获取仓库合并请求详情
- 获取仓库合并请求列表(废弃)
- 删除保护tag(废弃)
- 新建保护tag(废弃)
- 新建保护分支(废弃)
- 查询某个仓库的详细信息(废弃)
- 获取公开示例模板列表(废弃)
- Commit
- Webhook
- RepoMember
- User
- Project
- File
- v2仓库管理
- Discussion
-
常见问题
- 认证鉴权问题
- 成员权限问题
-
代码上传下载问题
- 从本地推送代码仓到CodeArts Repo时,报错"Error: Deny by project hooks setting 'default': message of commit"
- 用户推送二进制文件到CodeArts Repo失败
- 执行git push 命令时,报错'origin' does not appear to be a git repository...
- 在CentOS系统下使用HTTPS协议克隆代码时,报错"The requested URL returned error: 401"
- 使用git pull拉取CodeArts Repo的代码失败,报错"Merge branch 'master' of https://test.com Please Enter a commit"
- push文件时客户端提示连接断开
- fatal: refusing to merge unrelated histories
- 如何阻止涉密文件被推送到CodeArts Repo代码仓库
- 仓库迁移问题
- 合并请求问题
- Fork同步问题
- 仓库容量问题
- 常见问题汇总
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
迁移SVN代码仓
约束限制
- 该功能需要保证被导入的仓库域名和服务节点网络连通。
- 用户需要新建项目或者已有项目。
- 用户需要有新建仓库的权限,如果用户没有权限,可以参考配置代码仓库级的权限。
在线导入SVN平台的代码仓库到CodeArts Repo
- 进入CodeArts Repo首页后,单击“新建仓库”,在“归属项目”下拉框中选择已有的项目或者“新建项目”。
- 仓库类型选择“导入仓库”,导入方式选择“SVN”,参数填写请参考表1。
表1 导入SVN平台代码仓库的参数表格
字段名称
说明
源仓库路径
该参数必填,该参数表示要导入的仓库路径。源仓库路径需要以(http://)开头。
源仓库访问权限
必填。分两种情况填写:
- 如果用户导入的源仓可见范围是对所有访客公开,勾选“不需要校验权限”。
- 如果用户导入的源仓可见范围是私仓,请勾选“需要校验权限”。当前支持两种鉴权方式,“通过服务扩展点”和“通过用户名密码授权”,参数填写请参考校验导仓权限。
- 单击“下一步”,进入“填写基本信息”页,请参考表格填写参数。
- 请参考表1 同步仓库设置的参数表格,填写“同步仓库”设置参数。
相关文档
- 如果仓库过大或者网络较差时,仓库导入时间可能会超过30min。如果出现导入超时,建议使用客户端clone/push来处理,具体可参考通过Git Bash导入SVN平台的代码仓库到CodeArts Repo。
- 在线导入的操作方式简单,且将SVN中的分支、Tags进行平移,如果后续想在此代码仓的基础上继续开发,请利用Git Bash客户端导入,具体可参考通过Git Bash导入SVN平台的代码仓库到CodeArts Repo。
通过Git Bash导入SVN平台的代码仓库到CodeArts Repo
- 获取SVN代码库提交者信息。
- 通过TortoiseSVN将待迁移的代码仓库下载到本地。
- 进入本地SVN代码仓库(本文为KotlinGallery),在Git Bash客户端执行如下命令:
svn log --xml | grep "^<author" | sort -u | \awk -F '<author>' '{print $2}' | awk -F '</author>' '{print $1}' > userinfo.txt
执行完毕后,“KotlinGallery”目录下将生成文件“userinfo.txt”,如下图所示。
- 打开文件“userinfo.txt”,可看到文件中显示所有对该仓库有提交操作的提交者信息。
- 因为Git是用邮箱来标识一个提交者的,为了更好地将SVN已有的信息映射到Git仓库里,需要从SVN用户名到Git做一个映射关系。
修改“userinfo.txt”,使每一行中,svn作者 = Git作者昵称 <邮箱地址>,映射关系的格式如下图所示。
- 建立本地Git仓库。
- 执行命令git init,在本地新建一个空的Git代码仓库目录。
- 将步骤1中的“userinfo.txt”文件复制到该目录下,并执行如下命令切换到该目录下。
cd 目标目录地址
- 在该目录下启动Git Bash客户端,并执行如下命令克隆一个Git版本库。
git svn clone SVN仓库地址 --no-metadata --authors-file=userinfo.txt --trunk=trunk --tags=tags --branches=branches
命令行中的参数说明如下,请根据实际情况选择相应参数:
参数
说明
--no-metadata
表示不将 SVN 的元数据导入到Git仓库中,这样能有效减少Git仓库的大小,但是可能会丢失一些SVN的历史信息。
--authors-file=userinfo.txt
表示使用指定的用户信息文件来进行作者信息的映射。
--trunk=trunk
表示将SVN仓库中的“trunk”分支作为Git代码仓库的主分支。
--tags=tags
表示将SVN代码仓库中的tags目录作为Git代码仓库的标签。
--branches=branches
表示将SVN代码仓库中的branches目录作为Git代码仓库的分支。
执行成功后,本地将生成一个名为KotlinGallery的Git代码仓库。
- 执行以下命令,进入“KotlinGallery”文件夹,并验证当前Git仓库分支结构。
cd KotlinGallery git branch -a
如上图所示,所有SVN中的目录结构均以Git分支的形式迁移成功。
- 本地分支修正。
因此在上传到代码托管仓库前,需要先对本地分支进行调整,使之符合Git使用规范。
- 进入本地Git代码仓库目录下,在Git Bash客户端执行如下命令,把Tags分支变成合适的Git标签。
cp -Rf .git/refs/remotes/origin/tags/* .git/refs/tags/ rm -Rf .git/refs/remotes/origin/tags git branch -a git tag
- 执行以下命令,把“refs/remotes”下面剩下的索引变成本地分支。
cp -Rf .git/refs/remotes/origin/* .git/refs/heads/ rm -Rf .git/refs/remotes/origin git branch -a git tag
- 执行以下命令,将trunk分支合入master分支,并删除trunk分支。
git merge trunk git branch -d trunk git branch -a git tag
- 进入本地Git代码仓库目录下,在Git Bash客户端执行如下命令,把Tags分支变成合适的Git标签。
- 上传本地代码仓到CocdeArts Repo。
- 参考配置SSH密钥,设置代码仓库的SSH密钥。
- 进入CodeArts Repo首页,单击“新建仓库”,在“归属项目”下拉框中选择已有的项目或者“新建项目”。
- 仓库类型选择“普通仓库”,填写对应参数信息并去勾选“允许生成README文件”和“选择gitignore”,完成新的代码仓库创建,并自动跳转到该代码仓库首页。
- 选择右上角的“克隆/下载” > “用HTTPS克隆”,复制HTTPS地址。
- 执行以下命令,将本地代码仓库与CodeArts Repo进行关联,并推送master分支到CodeArts Repo的代码仓库。在执行命令时,需要用户输入CoeArts Repo的HTTPS账号和密码。
git remote add origin 新建的代码仓库的HTTPS地址 git push --set-upstream origin master
推送成功后,进入该代码仓库首页,选择“代码” > “分支”,查看到当前代码仓库下的master分支。
- 继续执行以下命令,把本地其余分支推送到CodeArts Repo。
git push origin --all
推送成功后,进入该代码仓库首页,选择“代码” > “分支”,代码仓库下新增了r1.1_hotfix分支。
- 执行以下命令,从本地推送tags到CodeArts Repo。
git push origin --tags
推送成功后,进入该代码仓库首页,选择“代码” > “Tags”,代码仓库下已有标签“r1.0”与“r1.1”。
父主题: 迁移代码与同步仓库