使用Mercurial维护单独的文件夹结构



我们有一个代码的主存储库,分为子文件夹,如SQL,网站等。我们希望为我们的SSIS包和类似的项目添加一个额外的文件夹,以便我们可以保持备份。但是,它们存储在三个独立服务器的代码存储库外部的文件夹结构中。我们需要在这些服务器上保持包含SSIS包的原始文件夹结构。

通常我会在每台机器上安装Mercurial,这些机器上有要添加到存储库的文件,拉下我们的repo的副本,并将文件添加到repo。然而,在这种情况下,我将无法移动文件到repo文件夹后,我拉下一个副本,因为目录结构需要维护。

我能想到的唯一替代方案是为SSIS包创建第二个存储库,但这仍然会遇到要添加SSIS文件的三个服务器的问题,所有服务器都有自己独特的文件夹结构。这意味着我们必须改变三个服务器的目录结构以使其相互匹配,或者创建三个独立的存储库。

请注意,这里的目标不是将这些文件"安装"到服务器上——这些文件已经在预期的服务器上,并且(很少)在需要时在本地修改——它纯粹是为了备份版本和维护最少数量的mercurial存储库。

在向Mercurial提交文件时,是否有可能在本地机器上维护唯一的单独文件夹结构?

在注释中请求了一个示例文件夹结构:

当前回购结构:

  • 回购
    • SQL
    • 应用程序
      • 应用程序A
      • 应用程序B
目标是添加一个新文件夹,使其看起来像这样:
  • 回购
    • SSIS
        服务器1
      • 服务器2

但是,每个服务器将文件存储在不同的目录结构中(直接放在基本C驱动器中,一个在单独的子目录中,第三个在遗留的Visual Source Safe目录中),并且在外部引用,因此更改它们以匹配repo是次优的。

于是问题来了——有没有一种方法可以将文件添加到mercurial repo中,而不需要将它们放入到一个pull - copy的repo中?

首先,我觉得你想做的事不是个好主意。我认为你可以在文件系统中使用符号链接来做你想做的事情。

Mercurial知道如何管理符号链接,您可以为每台机器创建一个符号链接树,以不同的方式指向实际文件树。

所以,这是可能的,但对我来说这似乎是一个非常容易出错的过程。我认为你最好使用安装工具,把"Makefile"或rake任务,或者…在你的回购中。

最新更新