【发布时间】:2014-05-08 16:56:49
【问题描述】:
我们有一个主要的代码存储库,分为 SQL、Websites 等子文件夹。我们希望为我们的 SSIS 包和类似项目添加一个额外的文件夹,以便我们可以保留备份。但是,它们存储在我们代码存储库外部的文件夹结构中,位于三个单独的服务器中。我们需要在这些包含 SSIS 包的服务器上维护原始文件夹结构。
通常我会将 Mercurial 放在每台托管要添加到存储库中的文件的机器上,下载我们的存储库的副本,然后将文件添加到存储库中。但是,在这种情况下,我将无法在下载副本后将文件移动到 repo 文件夹中,因为需要维护目录结构。
我能想到的唯一替代方案是为 SSIS 包创建第二个存储库,但这仍然会遇到问题,即有三台服务器要添加 SSIS 文件,它们都有自己独特的文件夹结构。这意味着我们必须要么更改三台服务器的目录结构以相互匹配,要么创建三个独立的存储库。
请注意,这里的目的不是为了将这些文件“安装”到服务器上——这些文件已经在预期的服务器上,并且(很少)在需要时在本地进行修改——纯粹是为了备份版本和维护最低限度mercurial 存储库的数量。
在将文件提交到 Mercurial 时,是否可以在本地计算机上维护唯一的单个文件夹结构?
在 cmets 中请求了一个示例文件夹结构:
当前回购结构:
- 回购
- 文档
- 报告
- SQL
- 应用
- 应用 A
- 应用程序 B
目标是添加一个新文件夹,使其如下所示:
- 回购
- 文档
- SSIS
- 服务器 1
- 服务器 2
- 报告
但是,每台服务器都将文件存储在不同的目录结构中(直接放在基本 C 驱动器中,一个在单独的子目录中,第三个在旧的 Visual Source Safe 目录中),并在外部引用,因此更改它们匹配回购是次优的。
因此问题是 - 有没有办法将文件添加到 mercurial repo 而不将它们放入 repo 的拉取副本中?
【问题讨论】:
-
3台机器上的文件是一样的,只是存放在不同的文件夹结构吗?
-
不,它们都是不同的文件。但它们属于同一类型,因此最好将它们分类到存储库中的同一文件夹中,可能带有一个子文件夹,指示它们来自哪个服务器。
-
恕我直言,如果 repo 的逻辑结构不符合部署的逻辑结构,您需要一个安装工具。 Makefiles 是旧的学校版本,但你需要一些东西。试图让你的版本控制工具成为安装工具总是以泪水告终。
-
也许您可以发布几个示例目录结构,以及您期望生成的 Mercurial 存储库的样子,这样我们就可以明白您的意思了?正如你所描述的那样,听起来很疯狂。
标签: mercurial