【问题标题】:What is the easiest (and neatest) way to manage lots of repositories using gitosis?使用 gitosis 管理大量存储库的最简单(也是最简洁)的方法是什么?
【发布时间】:2011-06-29 16:31:02
【问题描述】:

我正在使用 gitosis 来管理一堆私有存储库。一切都很好,我对我们如何添加存储库没有任何问题。问题是我们的开发人员相对较少,但存储库却很多,特别是因为我们的一个项目大量使用了 git 子模块。

这意味着 gitosis.conf 开始变得有点笨拙,我想知道是否有任何方法可以整理它。目前我们使用类似的东西:

[group developers]
writable = repo1 repo2 repo3 (...) repo20 repo21 repo22
members = dev1 dev2

当我们想要另一个 repo 时,我们将它添加到可写列表的末尾。问题是这个列表已经变得难以阅读,我们甚至还没有我们所有的项目。我知道这在其他方面非常出色的设置中是真正的挑剔,但我只是想知道是否有人有任何方便的提示或技巧来分享更好的组织 gitosis.conf 的方法

干杯

【问题讨论】:

    标签: linux git version-control gitosis


    【解决方案1】:

    你可以像这样使用多行:

    [group developers]
    writable:
     repo1
     repo2
     repo3
     (...)
     repo20
     repo21
     repo22
    
    members:
     dev1
     dev2
    

    要在每行使用一项之前显示历史记录,您可以使用git log -p --color-words

    【讨论】:

    • 谢谢,这正是我所追求的。干杯
    【解决方案2】:

    另一种解决方案是使用您认为更方便的语法创建自己的 conf 文件,然后创建一个脚本将其转换为 gitosis.conf 文件。

    然后您可以使用通配符和正则表达式来匹配存储库名称,例如:

    repo-*repo-[\d]+ 匹配 repo-1repo-2 等。

    【讨论】:

    • 感谢您的建议。我认为上面提到的一种方法现在可能就足够了,但我会记住这个想法,因为如果前一个选项开始变得笨拙,它似乎很有用。干杯
    【解决方案3】:

    gitosis.conf 允许创建开发人员组,然后为他们分配存储库。另一种方法是配置存储库并为每个存储库分配开发人员。

    我认为在这种情况下,这两种解决方案都不会更好。这似乎是一项艰巨的任务。所以我会问:一些开发人员可以访问一个站点而不是另一个站点真的很重要吗?如果没有,那么只需创建一个组,并列出所有站点:)

    【讨论】:

    • 是的,老实说,我并没有对权限大惊小怪。我们需要知道谁改变了什么,但我们非常开放,谁可以看到或不能看到甚至承诺特定项目并没有真正的问题。更多的是关于我们在 gitosis.conf 中列出它们的方式 - 全部在一行中。我在询问更多关于诸如通配符之类的事情的可能性,打破几行,诸如此类的事情。抱歉,如果不是太清楚
    【解决方案4】:

    gitosis 不再由作者维护和支持;大多数人通常会推荐gitolite,它有更好的文档和更多的功能。

    只要我在做广告,我还不如将gitslave 做为 git-submodules 的更简单的替代品,供那些所有存储库都是本地开发且不需要紧密绑定的人使用(除了标签)主存储库和从存储库所在的修订版之间。这对某些工作流程更好,对其他工作流程更糟。

    【讨论】:

    • gitolite 很整洁,但这应该是一个评论。
    • 为此干杯。我见过 gitolite,但我现在不想干涉已经工作的设置 - 只想做一点整理。也为 gitslave 上的单挑欢呼。快速浏览了一下,看起来很有趣,所以我会记住它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2016-06-19
    • 2013-02-19
    • 2023-04-10
    • 2012-05-26
    相关资源
    最近更新 更多