一个解决方案需要多个Git仓库

4

我正在处理分布在多个Git仓库中的解决方案。

每个项目都有自己的Git仓库,一个工具会构建所需的工作区并生成一个解决方案文件。这是我们公司的工作框架。

例如:

<root>
├─── solution.sln (generated by checkout tool)
├─── project group 1
│       ├─── project 1.1
|       |       ├─── .git
|       |       └─── <project files>
│       └─── project 1.2
|               ├─── .git
|               └─── <project files>
└─── project group 2
        ├─── project 2.1
        |       ├─── .git
        |       └─── <project files>
        └─── project 2.2
                ├─── .git
                └─── <project files>

请注意,根目录下没有仓库(项目不是子模块)。
Visual Studio似乎只能在Team Explorer视图中连接到一个仓库。但是,我有时会编辑来自多个项目的文件。
我想要(至少)当前解决方案的变更聚合视图(即跨所有仓库)。如果可能的话,我想能够从该视图中查看差异。
JetBrain的Rider可以做到这一点,但现在,我更喜欢使用Visual Studio。
是否有任何扩展可以做到这一点?
2个回答

1
我写了一个命令行工具来管理多个代码库。您可以查看所有代码库的状态,包括编辑状态、与远程分支的关系等。它还可以批量执行任何工作目录下的命令。
您还可以对代码库进行分组。对于您的项目结构,您可以运行:
gita add -a <root>

此工具将自动生成分层组:

  • root:包含所有的版本库
  • root-project-group-1:版本库 1.1 和 1.2
  • root-project-group-2:版本库 2.1 和 2.2

然后,gita ll rootgita ll root-project-group-1 等都会显示相关信息。 gita <command> root 将批量在根组中运行该命令。您也可以从任何工作目录运行指定版本库的命令。

有其他功能,例如设置上下文、定义自定义命令等。安装方法为 pip3 install -U gita。您可以在 github 上找到更多信息。

enter image description here


0

该死,不支持VS2017 :( 无论如何,没有子模块(根文件夹不是Git仓库):你认为它可能会作为副作用工作吗? - Alban Dericbourg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接