【问题标题】:Storing PCB files *and* software files in the same Mercurial repo将 PCB 文件 * 和 * 软件文件存储在同一个 Mercurial 存储库中
【发布时间】:2020-02-04 18:16:32
【问题描述】:

我将 Banana Pi 设置为 Mercurial 服务器。它适用于我的软件,因为一般来说我有固件,这就是我的存储库中的内容。我可以从世界任何地方通过开放式 VPN 访问它。然而,我现在也开始对我的 PCB 文件使用版本控制,因为新的 CAD 系统使我旧的、粗糙但有效的 PCB 存档和备份方式变得复杂。 (此外,我的新 CAD 系统中的所有内容,所有 PCB 和图表,都是文本文件,可以很好地进行版本控制。)

所以,我开始使用 Mercurial,就像我使用软件一样,为我正在为客户更新的一块电路板创建一个新的 PCB 存储库,并立即遇到了一个 svn 似乎可以轻松应对的问题,并且我想知道 Mercurial 是否可以做到这一点。

我有我的 BH0001 项目存储库,其中包含所有嵌入式 C,我已经开始创建使用 C 代码的 PCB 的新问题。我必须创建一个名为 BH0001_pcb 的新 Mercurial 存储库来区分代码和 PCB。使用 svn,您可以在项目编号中拥有一个项目 repo,然后是硬件和软件目录,但仍然能够独立地将两种不同类型的文件检出到不同的位置。

当然,我可以将 BH0001 软件存储库克隆到本地计算机,将 PCB 信息添加到本地 Mercurial 存储库的新文件夹中,然后将其全部发送回服务器,它会非常高兴。然后在检查时出现问题,因为当我可能只需要一个或另一个时,我会将固件和 PCB 克隆到机器上。

此外,这与我在本地存储内容的方式背道而驰。在我的 /username/home 目录中,我有一个 Software 目录和一个 CAD 目录,其中我有项目。所以我会:

主页/CAD/客户名称/BH0001

home/Software/CustomerName/BH0001.

如果我要继续使用我目前的方法,我必须:

  1. 将我的本地目录结构更改为:

主页/项目/客户名称/BH0001/CAD

主页/项目/客户名称/BH0001/软件

  1. 收起它并使用 ProjectName_pcb 之类的东西作为单独的存储库。

  2. 我想不出/找不到/不知道的其他方式?例如有一种方法可以将 Mercurial 存储库的一部分检出到一个目录,并将 repo 的不同部分检出到另一个目录。

如果我真的想继续我的工作,我应该只使用 svn 吗?

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    使用默认的 mercurial,您目前无法像使用 SVN 那样进行部分存储库克隆。因此,您使用单独存储库的方法是一个不错的选择。

    但是有一些方法可以达到类似的效果:sub-repositories。在您的情况下,我将创建一个父存储库,其中包含您的两个当前存储库作为子存储库。但请注意,子存储库有一些粗糙的边缘,因此请仔细阅读链接页面 - 我想特别强调,拥有一个基本上只包含“真实”存储库但本身不多的父存储库是一种很好的做法。

    存在一些想法,如瘦或 narrow clone(这与 SVN 所做的有些相同),但我还没有在生产中看到它们。

    【讨论】:

    • 谢谢,我会研究一下这种方法。
    猜你喜欢
    • 2011-03-25
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多