gpt4 book ai didi

具有复杂项目结构的 Git/Hg 存储库

转载 作者:太空狗 更新时间:2023-10-29 14:27:30 25 4
gpt4 key购买 nike

目前我们正在使用 SVN(是的,我知道这很遗憾 :))并且我们正在检查迁移到 Git 或 Hg 的可能性。目前我们有一个 svn 存储库,其结构如下:

Platform 1-
. Country 1
. Customer A
. Project Z
. Project Y
. Customer B
. Project X
. Country 2
. Customer C
. Project W
Platform 2
. Country 1

等等

我们只有 2 个顶级“平台”,但国家、客户,尤其是项目的数量相当多(我确定项目数量 >100)。这种结构对我们来说非常方便,因为它很容易找到必要的项目(因为开发人员知道平台、国家和客户)。通常开发人员可以在 1 周内切换项目几次,这个组织非常重要。

基本用例:

  1. 工程师收到项目描述(通常有人已经在该项目上工作过)
  2. 工程师的硬盘上有整个 SVN 存储库副本。他转到必要的国家/客户并为客户文件夹(如果他没有项目)或项目文件夹(如果他之前已经 checkout )执行 SVN 更新
  3. 用户在项目上工作并通过提交整个项目文件夹来提交。

有些人只是浏览 TortoiseSVN Repo 浏览器,找到必要的项目并检查它。

所以现在我们需要一些同样简单但使用 Git/Hg 的东西。据我所知,在 Git 中非常常见的模式 - 1 Repo/1 Project。所以问题是:

  1. 有什么方法可以在 Git/Hg 中对 repos 进行分类吗?
  2. 有没有办法通过 GUI (Win) 浏览存储库并提取必要的一个?
  3. 关于如何使用 Git/Hg 组织我们的 repo,您​​有什么建议吗?

我创建了 BitBucket Git 存储库来使用它,但现在还不知道如何组织我们的项目。

请注意 - 分支对我们来说不是很常见的情况,因为项目在开发方面非常小。

最佳答案

As I understand in Git the very common pattern - 1 Repo/1 Project.

这不仅很常见,而且在您使用 Mercurial 或 Git 等分布式版本控制系统时实际上是强制性的。原因是这两个系统还不支持 narrow clones,也就是说,你只下载属于更大存储库中某个子目录的历史的克隆。因此,您需要 checkout 所有内容以获取存储库的一小部分。

因此,为每个项目 创建一个存储库。您可以通过创建像现在这样的文件夹结构来将项目组织成组。文件夹结构不会出现在任何存储库中——它只是对相关存储库进行分组的一种方式。

诸如 Kallithea 之类的工具还可以让您在分层组中组织存储库。这将使您的用户可以方便地浏览存储库。

所以,问题是:

  1. Is there any way to categorize repos in Git/Hg?
  2. Is there way to browse repos throug GUI (Win) and pull necessary one?
  3. Do you have any offer how to organize our repo using Git/Hg?

总结以上答案:是的,您可以组织存储库。您可以通过将它们放入目录结构来在文件系统级别执行此操作,也可以通过使用合适的存储库管理器在 HTTP 级别执行此操作。

如何浏览存储库以找到合适的存储库取决于组织。共享存储库的推荐方式是 HTTP,然后“打开存储库”对话框将不允许您在文件夹中四处浏览——因为文件夹仅存在于由 Kallithea 提供的 URL 中。因此,您的工程师通常会在浏览器中浏览存储库结构,然后将正确的 URL 复制粘贴到 TortoiseHg 中。

当他们从服务器克隆时,工程师应该将本地克隆放入与服务器上的克隆相匹配的层次结构中。此层次结构将通过其本地磁盘上的目录来完成。然后,他们当然可以像往常一样使用 Windows 资源管理器浏览此层次结构。

关于具有复杂项目结构的 Git/Hg 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8936600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com