Mercurial Repo组织

时间:2016-12-15 22:24:01

标签: mercurial repository

我真的不知道如何搜索这个问题,所以如果已经被问过,请指导我。

我是mercurial的新手,我们目前的回购组织存在问题:

我们目前的回购组织是我们每个人都拥有自己的工作存储库(对于每个项目),我们将其拉入并推送到主仓库(也适用于每个项目)。

问题是我们的工作回购位于公司服务器上(与主仓库一起),并且从我们在服务器上的工作仓库构建导致我们的构建时间非常高(即在构建时为40-50秒)我们的本地硬盘大约需要1秒钟。

显而易见的解决方案似乎是将我们的工作回购移动到我们的本地硬盘驱动器,并在服务器上推送/拉出主存储库。

这方面的一个问题是,工作仓库现在已经在我们的本地硬盘上,并且不会在公司服务器上备份。

有没有办法创建一个“影子”工作仓库(位于服务器端),永久保持同步到我们每个工作仓库(位于我们的本地硬盘上),然后推送/拉出一个这些来自主回购?

这样,除了在服务器上备份工作库中的所有数据外,我们还将受益于缩短的构建时间。

感谢您的任何意见/建议, 肖恩

2 个答案:

答案 0 :(得分:1)

通常,您只能在存储库之间交换已提交的更改集。此外,他们必须至少是阶段性选秀。 mercurial内部无法共享工作目录的状态。

你可能想习惯经常和原子地提交。您可以通过提交挂钩轻松自动将您在本地提交的每个提交推送到中央服务器。

此外,您可能应考虑将中央服务器设为non-publishing server。这意味着您可以在草稿阶段推送提交,并且它们将保持在该阶段,因此是可变的。这样你也可以在那里推送草稿,以后可以编辑。您必须在您认为已完成的变更集上手动将阶段更改为公开。 changeset evolution extension mercurial可能会派上用场

答案 1 :(得分:0)

您在公司服务器上保留了存储库的副本(以便备份它),并在本地驱动器上保留一份副本(以便您可以轻松编译)。您可以将副本与推/拉同步。