2

在 Bonobo Git 服务器 5.2.0.0 中,我将“存储库目录”更改为D:\Git_Repositories.

但是,它将仅直接在该文件夹下搜索存储库,并且不会在其中传播其中的文件夹。

例如:

D:\Git_Repositories\PROJECT_A_Repos\Repository_1
D:\Git_Repositories\PROJECT_A_Repos\Repository_2
etc.

可以以某种方式完成吗?
(无需为每个存储库目录创建新的 Bonobo 应用程序)

4

3 回答 3

2

可以以某种方式完成吗?

在当前实现下,否:
TheBonobo.Git.Server/Git/IGitRepositoryLocator.cs#IGitRepositoryLocatorBonobo.Git.Server/Git/GitService/GitServiceExecutor.cs#ExecuteServiceByName()这样使用的:

args += " \"" + repoLocator.GetRepositoryDirectoryPath(repositoryName).FullName + "\"";

但是没有什么能阻止你在 中添加更多智能Bonobo.Git.Server/Git/ConfigurationBasedRepositoryLocator.cs#GetRepositoryDirectoryPath(),确保找到一个子文件夹名称 repository+".git" 而不是盲目地将 repo 的名称组合到一个固定的基础文件夹中。


OP Elyahu最终(在评论中):

我刚刚创建了另一个 Bonobo 站点,该站点使用另一个文件夹作为存储库容器。
Bonobo 基本站点小于 40MB

于 2016-07-31T16:27:57.703 回答
0

另一种解决方案是链接到另一个目录

从目录:C:\inetpub\wwwroot\Bonobo.Git.Server\App_Data 输入以下命令:MKLINK /D Repositories D:\\Repositories

(有关 MKLINK 的信息,请参阅:https ://technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx )

于 2016-10-29T11:49:29.897 回答
0

我的问题需要 3 个独立的存储库,这些存储库可以被 AD 组锁定。这些存储库还需要根据公司策略进行物理分离和逻辑分离。我想出的解决方案如下。

首先,我取消了整个“虚拟应用程序”实现,并选择通过使用站点绑定通过主机名创建绑定到机器 IP 地址的新 IIS 网站,将每个实例托管在具有一个 IP 地址的 IIS 上,这样 IIS 就可以解析到适当的实例。因此 - 这需要 3 个内部 DNS 条目。如果在本地工作,您可能会摆脱编辑 LMHost 文件。

例子:

  • 实例 1 = git1.domain.com
  • 实例 2 = git2.domain.com
  • 实例 3 = git3.domain.com

创建这 3 个绑定后,我只需修改 web.config 以使用我们的 AD 组将用户映射到 Teams 的 AD Windows 身份验证。

至于存储库,我将它们放在 Web 应用程序之外的一个完全不同的目录中,并更改了 Bonobo WebApp 中的设置以指向该实例的适当存储库。

例子:

  • 实例 1 = 存储库路径:D:\Repositories\Repo1,安全性(ADGroup1,GitAdmin)
  • 实例 2 = 存储库路径:D:\Repositories\Repo2,安全性(ADGroup2,GitAdmin)
  • 实例 3 = 存储库路径:D:\Repositories\Repo3,安全性(ADGroup3,GitAdmin)

唯一的缺点是我需要管理三个网站而不是一个。我实际上并不担心,因为它完全符合公司政策的要求,即对各种存储库进行物理和逻辑隔离。

也就是说 - 我确实认为该项目的赞助商考虑支持多个存储库路径是明智的,因为这可能在支持多个存储库磁盘位置的组织中更为常见

于 2019-11-06T22:10:12.340 回答