GitLab 9.0 版本带来了子群。然而,在子群成为可能之前,我们已经通过使用前缀解决了该限制,例如
- 福/…
- FOO 酒吧/…
- FOO-bax/…
- FOO-bax-quux/…
- …
不过,正确的成员/角色管理是一场噩梦。所以现在有了新的子组,如果可以将现有组作为子组移到另一个组,那就太好了。但是,我还没有找到这样做的选项。我们可以手动创建这些子组,然后手动转移所有项目,但这似乎比应该的要复杂得多。
是否可以将现有组移动到另一个组作为子组?
答案1
有关更多当前信息,此功能现已添加到 gitlab,您可以将现有组转移到另一个现有组的子组。
@Zeta 答案中链接的问题已关闭,并且此问题(https://gitlab.com/gitlab-org/gitlab-ce/issues/31885) 成为该话题的首要问题。
在撰写本文时,将组更改为子组的方法如下:
- 转到您想要转变为子组的组。
- 转到该组的常规设置。
- 展开“路径、传输、删除”。
- 下面是一个“转移组”框,您可以在其中选择您想要管理的父组。
- 指定所需的父组后,点击转移组,它将被移动到适当的路径。
Gitlab 笔记(摘自 gitlab 网页界面):
- 小心。更改群组的父级可能会产生意外副作用。
- 您只能将该群组转移到您管理的群组。
- 您仍然需要更新所有本地存储库。
- 如果父组的可见性低于组当前可见性,则子组和项目的可见性级别将更改为匹配新父组的可见性。
答案2
截至 2017 年 4 月 29 日,不. 根据GitLab 上的子群组问题子组的转移是未来某个时候可能出现的功能。功能提案本身(“支持群组转移”)最近遇到了麻烦(六月初)计划在2-3个月内准备就绪。
作为一种解决方法,您可以:
- 创建您想要的子组(例如
FOO/BAR
)。 - 在管理面板,打开您最初想要移动的组(例如
FOO-BAR
)。 - 在新标签页中打开所有小组项目。
- 这些项目现在展示在管理员视图,因此命名空间传输不需要名称确认。此外,由于所需组是最后创建的,因此它应该是列表中的顶部。将所有项目转移到命名空间。
- 前往两个群组的成员设置,并确保
FOO-BAR
成员具有相同(或更高)的权利FOO/BAR
。 - 您的项目上的成员设置应该是完整的。
- 准备好被吼吧,因为每个人都需要使用
git remote set-url
。
我建议在正常工作时间之外执行这些步骤,因为它会生成一堆电子邮件(“项目已移动”,“已授予访问权限”),并且您可能希望自己给您的成员写一封电子邮件来解释他们必须做什么(“将其git remote set-url origin git@
粘贴到正确项目的 shell 中”)。