1

我需要了解在多个应用程序中使用相同源代码/库的最佳实践。要求是,例如,我将我的代码/库出售给某家公司,比如说xyx,然后我应该xyz在我的包裹中使用公司名称(如果需要,还可以在其他地方使用)。

稍后,如果其他公司 pqr 想要该代码/库,我需要再次手动更改所有包名称(和其他名称)并在源代码控制软件中创建另一个存储库。这项任务非常耗时,而且一点也不好。
每当我在基本代码中发现错误时,我需要在相同代码的所有副本中提交更改并将库发布给所有公司。

我试图找到我应该如何处理这种情况。

我在这里谈论一些 Java 包(包含我希望在所有公司的软件中使用的非常基本的功能),并且我使用 tortoise svn 作为存储库。

4

1 回答 1

3

如果您正在销售代码/库,则意味着您正在提供由打包操作产生的交付。
换句话说,您不提供 repo 本身,而是提供一组打包的文件(例如,存档、zip 文件)

这意味着您的存储库中版本化的源不必包含公司名称。它们可以包含一个模板字段(如@COMPANY@),以及一个脚本,能够在签出该代码时将正确的值放置在该模板字段的位置。

在 git 中,这称为内容过滤器驱动程序,使用在 a 中声明的脚本.gitattribute(如此),并将实际值存储在 git repo之外(这样,它们不会被错误推送)

弄脏

(图片来自Git Book中的“自定义 Git 属性” )

使用 SVN,您可以考虑使用“关键字替换”。

在这两种情况下(Git 或 SVN),想法是使用 @COMPANY@ 对源文件进行版本化,并在需要将该库发布给客户端时按需生成正确的文件。

不要将开发(发生在您的 Git 或 SVN 存储库中)与发布管理(可以使用不同的过程,例如代表目标公司名称的文件,用于评估源文件。如果该文件不存在)混合,源文件在结帐时保持不变)

于 2014-11-25T07:32:33.807 回答