首页 > 解决方案 > 无法从 SVN > Git 翻译分支触发 Gitlab-CI 管道 [Subgit]

问题描述

我们正在使用 Subgit 从 Subversion > Gitlab 创建一个单向镜像。这工作得很好。我们在这个存储库中也有一些分支,我们可以从这些分支中手动触发 gitlab 管道。

当我们在 Subversion 中创建一个新分支时,它的翻译没有问题。但是,当我们尝试从新创建的分支手动触发 gitlab 管道时,它不会出现在分支列表中。如果我们使用 Gitlab API 进行尝试,我们会得到以下响应: {"message":{"base":["Reference not found"]}}

新分支是主线分支的一个分支,它包含一个 .gitlab-ci.yml 文件。就 gitlab-ci/gitlab runner 而言,该分支不存在。但是在存储库中我可以看到它,并且它会在新的提交上更新就好了。我很迷茫,因为据我所知是否有分支,gitlab 应该能够从该分支启动管道。

希望有人能指出我正确的方向。欢迎任何关于为什么这样做的想法。

标签: svngitlab-cipipelinegitlab-ci-runnersubgit

解决方案


这可能与权限问题有关。

如果 Gitaly 无法读取 SubGit 创建或修改的文件,您将遇到问题。确保以与 gitaly 相同的用户(通常是“git”)运行 SubGit,并修复任何权限问题。

完成后,在 Gitlab rails 控制台中运行它:

project = Project.find(<ID OF PROJECT>)

project.repository.branch_names(您的分支不应在此命令的输出中可见)

project.repository.expire_branches_cache project.repository.branch_names(您的分支现在应该在此命令的输出中可见)


推荐阅读