如何设计一个git存储库架构,以便在所有分支上进行统一测试? [关闭]

问题描述 投票:1回答:1

我的问题比这复杂一点,但让我们假设以下情况简单:(如果需要更详细的信息,请发表评论,我会澄清)

我有一个项目,有几个分支竞争某个功能的实现。

我想检查每个分支符合规范的程度(也在不断改进),为此,我编写了一组测试,每隔几天添加一个新的测试。

这样我的'超级项目'就必须有子项目:'图书馆'和'图书馆测试'。

我(显然)希望将它们都置于版本控制之下。

我真的不明白如何设计存储库架构。

说,现在我有一个'库'的git repo。

我可以在里面创建一个非版本化的目录'tests'并将所有测试放入其中。然后我还要添加一个文件'testbranches.bat',它将逐个检出repo中的每个分支并运行测试,将报告放在'tests'目录中。

但在这种情况下,我的测试不受版本控制。另外,每次运行'git status'时,我都会收到令人讨厌的消息。

我无法将这些'tests'和'testbranches.bat'添加到.gitignore并提交给每个分支,因为有人可能会在添加之前派生出一个分支。 (好吧,我可以为每次提交做'git filter-tree,但它总是容易出错,也是一项非常繁重的任务。)

我可以尝试不同的方法,而是将测试放在一个单独的仓库中,比如'library-tests',在目录中创建一个目录'test-subject',并将其添加到'.gitignore'中。然后我的'testbranches.bat'将'cd'到这个目录,拉出所有分支,逐个检出所有分支并为每个分支运行测试。

似乎工作,但涉及大量复制,一般看起来有点提。

在这种情况下,我如何设计我的存储库架构?

git testing version-control continuous-integration tdd
1个回答
2
投票

git worktreethat I describe here,很有趣,因为它允许克隆一次,但检查每个分支在自己的本地文件夹中。

这意味着您可以将您的测试逻辑完全置于Git仓库之外(无需管理.gitignore),并让您的测试脚本进入每个文件夹,如果需要更新内容(git pull),并进行测试。

© www.soinside.com 2019 - 2024. All rights reserved.