不同分支的具体代码

Specific code for different branches

我们有一个适用于多种设备的 backbone.js 应用程序。虽然大多数代码对于每个设备都是通用的,但有些部分是特定于其中一些设备的。可以是一些js代码,也可以是一些模板。

目前我们有一个分支(master)保存上述所有内容,每个设备都有一个单独的分支,每次我们将 master 合并到设备分支时,我们都必须手动删除与该分支无关的所有内容。

有没有办法自动做到这一点?也许将特定代码部分包装在注释中,并为不相关的分支删除它?

//samsung_platform_code
someJS()...
//samsung_platform_code_end

//panasonic_platform_code
someJS()...
//panasonic_platform_code_end

master 分支必须在所有设备上工作,所以我们在代码中有一堆 if 和 case。

是否有用于 jetBrains php/webStorm、git 的任何插件,或者可以通过 Grunt 以某种方式实现?

每个设备都有一个分支是可行的。然而,这可能很快就会成为一种痛苦,特别是因为您拥有的设备越多,每次在 master 上推送后续更改时,您就必须进行更多的合并。 您似乎刚刚开始感受到此工作流程的局限性。

一个更简单的工作流程可能是只使用一个分支(即:仅 master)并使用 Grunt preprocess:根据它的文档,你似乎可以做你想做的事想要:

// @ifdef SAMSUNG
someJS()...
// @endif

//@ifdef PANASONIC
someJS()...
//@endif

如果您使用持续集成,这种单分支工作流程的另一个优点是,在 master 的每次推送时,可以很容易地 运行 测试每个设备。