【问题标题】:Building from multiple respositories in visualstudioonline从 Visual Studio Online 中的多个存储库构建
【发布时间】:2023-03-20 14:17:01
【问题描述】:

我有一些 Visual Studio 解决方案依赖于另一个解决方案中的一个项目,我们称之为Utils 项目。

在 Visual Studio 中,Utils 项目根据它添加到解决方案中,一切正常。

但这意味着Utils 项目必须可用于成功构建,这是一个问题,因为它们位于不同的存储库中。在本地,我们可以通过记住克隆/拉取两个存储库来处理它,但我在 VisualStudioOnline 中找不到这样做的方法。

我知道有一些方法可以创建二进制依赖项,而不是我在其他情况下使用的项目依赖项(例如 NuGet,将 Utils 程序集添加到存储库)。如果我们有组织并且有utils 项目等的“发布”,这将起作用,但不幸的是,在这种情况下它不是这样工作的。 工作流程更像是“我需要你已经拥有的东西,你能把它移到 Utils 项目中吗?”。

我查看了 git 子模块和子树,但它们似乎太容易搞砸了。

不需要在父项目中跟踪Utils 项目的版本。最新版就好了。 (如果我确实需要编译一个确切的版本,我只会从两个存储库中挑选提交)

我需要的是这样的内容:“在克隆/拉取此存储库时,还要克隆/拉取其他存储库”。 有这种事吗?

【问题讨论】:

    标签: git visual-studio azure-devops


    【解决方案1】:

    我查看了 git 子模块和子树但它们似乎太容易搞砸了。 [强调]

    为什么你认为它们“太容易搞砸了”?

    子模块功能直接内置于 Git 中,旨在完全按照您的要求执行 - 从您的 repo 的子文件夹中引用另一个远程 repo,并以您可以指定的几种不同方式从中获取。

    如果utils 项目确实是一个文件夹或一组文件夹,其中包含许多定期更新的项目,我认为没有更好的方法来做到这一点,这不仅可以让您获得最新版本(utils 中的集体项目),还可以跟踪您的 utils 存储库并在将来需要时从任何给定存储库(与每个存储库不同)中将其还原或指向特定的提交/标记.

    【讨论】:

      【解决方案2】:

      首先,git 子模块是个好方法。

      其次,您可以通过命令行或 PowerShell 任务调用 git clone 命令克隆其他存储库。 (不支持在获取源步骤中克隆/拉取其他存储库)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-24
        • 1970-01-01
        • 1970-01-01
        • 2016-11-17
        • 2013-05-25
        • 1970-01-01
        • 1970-01-01
        • 2019-12-13
        相关资源
        最近更新 更多