不同分支的具体代码

时间:2015-02-14 10:37:23

标签: javascript git gruntjs branch

我们为许多设备提供了backbone.js应用程序。虽然大多数代码对于每个设备都是通用的,但是有些部分是针对其中一些设备特定的。它可以是一些js代码或一些模板。

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

有没有办法自动完成?也许将特定的代码部分包装在注释中并将其删除以用于不相关的分支?

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

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

主分支必须在所有设备上运行,因此我们在代码中有很多if和#case。

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

1 个答案:

答案 0 :(得分:0)

每个设备都有一个分支可以工作。然而,它可能很快变得很痛苦,特别是因为你拥有的设备越多,每次推动master上的后续更改时你就必须进行更多的合并。 看起来你刚刚开始感受到这个工作流程的局限性。

更简单的工作流程可能只使用一个分支(即:仅master)并使用Grunt preprocess:根据其文档,您似乎可以执行您想要的操作:

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

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

如果您使用持续集成,这种单分支工作流程的另一个优势是,每次按下master都可以轻松地为每个设备运行测试。