7

使用 gitlab-ce-12.x,Geo 需要对存储路径进行哈希处理 ( https://docs.gitlab.com/ee/administration/repository_storage_types.html )

因此,对于给定的存储库,数据将存储在:“@hashed/#{hash[0..1]}/#{hash[2..3]}/#{hash}.git”

从实际的角度来看,假设我有一个存储库,其 URL 是

https://my-gitlab-server/Group1/project1.git

如何计算出服务器上存储的路径?即我如何找到

#{hash[0..1]}/#{hash[2..3]}/#{hash}

谢谢

4

1 回答 1

10

我找到了我的问题的答案。

为了获取项目的哈希存储位置,首先需要获取项目存储库的项目id。

获得该项目 ID 后,假设您的项目 ID 为 1,您可以通过以下方式获得哈希:

说 project.id 是 1

回声-n 1 | sha256sum

=> 你得到哈希 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b

因此,服务器上存储库的散列存储位置将是:

服务器/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git

gitlab 开发人员已在 https://gitlab.com/gitlab-org/gitlab-ce/issues/63250中对此进行了讨论

于 2019-07-29T09:48:39.913 回答