如何维护代码以便可以在多个软件中使用?

时间:2014-11-25 07:04:01

标签: git svn code-maintainability

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

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

我试图找到如何应对这种情况。

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

1 个答案:

答案 0 :(得分:3)

如果您要销售代码/库,则表示您提供的是交付,这是因为包装操作。
换句话说,你不会给出repo本身,而是一组打包的文件(例如,档案,zip文件)

这意味着您的回购中的版本来源不必包含公司名称。它们可以包含模板字段(如@COMPANY@),以及在检查该代码时能够使用正确的值代替该模板字段的脚本。

在git中,这被称为content filter driver,使用.gitattribute中声明的脚本(作为in here),并将实际值存储在 git中回购(这样,他们不能被误推)

smudge

(图片来自" Customizing Git Attributes"来自Git Book

使用SVN,您可以考虑使用" Keyword Substitution"。

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

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