在分支机构中管理不同的客户代码
Posted
技术标签:
【中文标题】在分支机构中管理不同的客户代码【英文标题】:Managing different client codes in branches 【发布时间】:2019-10-20 01:24:33 【问题描述】:我对 git 还很陌生,这可能是一个答案很明显的问题:
所以我有一个项目/框架用于管理一堆自动化测试用例。所以文件夹代码结构如下。
Java
|-Package1
|-Common code
|-tests
|- Client1 tests
|- Client2 tests
|
|
|- ClientN tests
是否建议在不同的分支中维护特定于客户端的代码?还是制作项目副本并在每个客户的不同存储库中维护更好?基本上,每个客户端都使用 Selenium/TestNG 在同一核心之上编写不同的测试。
【问题讨论】:
这个问题与 Selenium 有什么关系?我错过了什么吗? 客户端每个 repo 在技术上是可行的....但这是一个矫枉过正(加上在他们之间共享东西的痛苦)。您应该处理每个分支的客户端或使用标志并保留单个代码库。 【参考方案1】:这两个选项都是可能的,但我认为这里更多的是可维护性问题。在这种情况下,我会采用单独的 repos 方法,但需要额外的:git submodules
选择这种方法有两个原因:
维护单独分支的复杂性。每个客户都有一个开发工作流程。这意味着当您想从现有客户端分支向您的一个客户端添加新功能并且事情变得混乱时,您可能不得不分支。在某些时候,您可能会开始混淆分支; 第二个原因是跟上通用代码;如果您的客户在不同的分支上,您如何跟上公共代码更新?定期合并/变基...?从长远来看,这比使用单独的 git 存储库要多得多。使用单独的 repos/submodule 方法,您会得到如下结果:
Common Code Repo ( referred to as CCR )
Client 1 Repo has CCR as submodule
Client 2 Repo has CCR as submodule
...
Client N Repo has CCR as submodule
像这样,一切都是独立管理的,每个项目都可以有自己的流程,而无需依赖和混乱的分支结构。
【讨论】:
以上是关于在分支机构中管理不同的客户代码的主要内容,如果未能解决你的问题,请参考以下文章