2

我们为多个客户部署了这个 webapp 产品,并考虑从 svn 切换到 mercurial。在 svn 中,我们将主干视为我们项目的“核心”,而为每个客户设置分支。

现在我想知道在 mercurial 中最好的 repo 布局是什么。

可以说该项目基本上由三个主要文件夹组成:html, css, js.

虽然/html客户之间的内容保持不变,但我们在/css&中进行了自定义/js
现在,这些定制存在于单独的文件中,例如skin.css,因此我们可以清楚地分辨出真正的定制定制,从修复/更改到核心/通用文件。

然后,SVN 让我们将部分更改从客户分支提交回主干,这样我们就可以在处理客户项目时修复全局问题。据我了解,mercurial 目前不支持部分提交。

那么,我们如何在 mercurial 中最好地处理这种情况呢?我们是否应该拥有一个中央核心存储库(可能带有发布分支)并将客户项目克隆为单独的(远程)存储库?在一个仓库中拥有所有核心和客户分支会更好吗?

非常感谢任何指针!

4

1 回答 1

4

我会将项目拆分为两个存储库:核心(html)和客户(css,js)。“核心”很容易理解。对于“客户”,我会从一组通用或后备样式开始。然后为每个客户复制通用样式。要为一个客户进行构建,您需要从核心和客户克隆中提取。通过这种方式,不同的客户被隔离,但仍然通过通用风格相互了解。因此,如果您想跨所有客户更改任何样式,您只需要提交通用样式并让每个客户克隆拉。我不会让不同的客户完全不同的回购。

拥有一个单一仓库的问题是,每当您为一位客户进行克隆时,您都会随身携带一个不相关的部分 (html)。并且意外的修改很容易泄露到 html 中。出于同样的原因,即使在 SVN 中,您的项目也可能应该被拆分为两个项目。

于 2011-04-05T15:59:00.367 回答