在 CI 中处理文档
dealing with documentation in CI
我们最近搬到了 Git。我们的新存储库是 350MB,其中约 215MB (61%) 是名为 Documentation
的目录。除此之外,repo 包含源代码和构建过程 (TFS Build) 用于生成安装程序的几个 WiX 项目。
初级用户(开发人员)不需要文档目录(它充满了半手工制作的 pdf 文件和其他打包到安装程序中的东西)。只有 final/CI 构建正在使用 Documentation
目录。
我正在寻找有关如何 move out
某处文档的建议:
- 不妨碍开发人员(即 git 克隆只需要提取 ~135MB+ 的压缩数据)
- 保持构建过程简单并且不干扰正常的 CI 过程
我的一个想法是将文档移至单独的存储库并将其作为 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
”。
你可以exclude submodules when cloning your main repository
git clone -recurse-submodules=":(exclude)docs"
开发者然后可以声明子模块 docs
not active.
git config submodule.docs.active false
所述子模块不会被克隆或更新。
我们最近搬到了 Git。我们的新存储库是 350MB,其中约 215MB (61%) 是名为 Documentation
的目录。除此之外,repo 包含源代码和构建过程 (TFS Build) 用于生成安装程序的几个 WiX 项目。
初级用户(开发人员)不需要文档目录(它充满了半手工制作的 pdf 文件和其他打包到安装程序中的东西)。只有 final/CI 构建正在使用 Documentation
目录。
我正在寻找有关如何 move out
某处文档的建议:
- 不妨碍开发人员(即 git 克隆只需要提取 ~135MB+ 的压缩数据)
- 保持构建过程简单并且不干扰正常的 CI 过程
我的一个想法是将文档移至单独的存储库并将其作为 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 clonedocs
too, making this move-out somewhat pointless.
它不必“也克隆 docs
”。
你可以exclude submodules when cloning your main repository
git clone -recurse-submodules=":(exclude)docs"
开发者然后可以声明子模块
docs
not active.git config submodule.docs.active false
所述子模块不会被克隆或更新。