在 CI 中处理文档

dealing with documentation in CI

我们最近搬到了 Git。我们的新存储库是 350MB,其中约 215MB (61%) 是名为 Documentation 的目录。除此之外,repo 包含源代码和构建过程 (TFS Build) 用于生成安装程序的几个 WiX 项目。

初级用户(开发人员)不需要文档目录(它充满了半手工制作的 pdf 文件和其他打包到安装程序中的东西)。只有 final/CI 构建正在使用 Documentation 目录。

我正在寻找有关如何 move out 某处文档的建议:

我的一个想法是将文档移至单独的存储库并将其作为 Git 子模块导入。好像有点不方便,tbh...

One idea I have is to move docs into a separate repo and import it as a Git submodule.

就是这个想法:

  • git filter-repo can handle the split part. See for instance "Detach (move) subdirectory into separate Git repository".
    请注意,它会重写主存储库的历史记录,因此请确保每个人都知道此迁移。
  • 子模块可以 track the latest commits from a branch,因此您的 CI 进程可以通过 git submodule update --remote 构建最新的文档修订版。

OP 在评论中补充:

Problem with moving docs into a submodule is that if there are other submodules (and devs need them) -- they'll start using git clone --recurse-submodules and this will clone docs too, making this move-out somewhat pointless.

它不必“也克隆 docs”。

  1. 你可以exclude submodules when cloning your main repository

    git clone -recurse-submodules=":(exclude)docs"
    
  2. 开发者然后可以声明子模块 docs not active.

    git config submodule.docs.active false
    

所述子模块不会被克隆或更新。