用于公共代码的SVN存储库-phonegap

时间:2012-08-29 08:47:10

标签: android ios svn cordova

我正在创建一个将由

支持的phonegap应用
Android 
Windows phone
iOS 
BlackBerry

到目前为止,主要开发都发生在Android上,所有JS / HTML都被复制到其他平台。继续,我们必须为所有平台保留不同的存储库,以便于维护。

我能想到的显而易见的方法是为每个平台创建一个文件夹并在那里维护代码。但在这种情况下,如果我们要修改任何www(JS / HTML / CSS / Images)内容,我们需要手动复制到所有repos。

有没有更好的方法来处理常见文件,或者将同一文件复制到4个位置是唯一的出路?

3 个答案:

答案 0 :(得分:2)

您可以使用"Externals"。外部存储库允许您在给定的存储库中包含一个单独的存储库 - 因此在特定于设备的存储库中,您可以包含通用的“JS / HTML”存储库。

我们实际上已经放弃了这种方法,因为它确实意味着每次有人在共享仓库中提交新版本时,该更改会立即传播到其他存储库。这可能会导致管理这些依赖项的问题 - 因此我们使用构建脚本从共享存储库中检出特定版本,作为构建过程的一部分。

答案 1 :(得分:2)

一种可能的解决方案是将您的代码拆分为以下文件夹/存储库:

  • common - 包含所有与平台无关的文件
  • android - 包含特定于Android的文件
  • windows - 包含特定于Windows的文件
  • ios - 包含ios特定文件
  • 黑莓 - 包含黑莓特定文件

然后通过执行以下步骤创建一个可以从这些文件中创建有效项目的小脚本:

  • common文件夹的所有文件复制到target文件夹
  • 将平台文件夹(例如android)的文件复制到target文件夹(并覆盖现有文件)
  • 将目标文件夹打包到应用程序包并部署在设备上

因此,您必须仅在一个位置更改平台独立性,并且仍然需要更改以添加特定于平台的代码(或覆盖特定平台的公共代码)。

答案 2 :(得分:0)

您应该使用gruntjs构建应用