我正在开发一个移动电话应用程序,该应用程序基于移动设备提供的功能面向许多移动设备。会有一个所有电话都希望支持的基本功能集,然后会有一些附加功能,这些功能将取决于特定的一组电话。
如何从版本控制系统的角度来管理这样的代码库?
我有使用CVS和VSS的经验,但它们都不太适合我对这类应用程序的需求。我想做的最后一件事是为每个设备集分支代码。
让我通过一个例子来更清楚地说明这一点。假设我正在使用MIDP2.0开发一个J2ME应用程序。这是我期望所有支持MIDP2.0的手机都具备的基本功能集。最重要的是,我会扩展这个应用程序为特定的手机组使用他们的SDK。诺基亚S40,诺基亚S60,索尼爱立信,黑莓等。所有这些都提供了额外的功能,让你在你的基础应用程序之上构建更多,大多数时候这些都会影响你从UI到核心逻辑的整个代码库。
实现这一点的一种方法是使用具有预处理器标志的构建系统的组合,并尝试足够地分离差异以避免太多的依赖项。这有时会变得相当复杂。我想知道是否有更简单的方法来使用智能源码控制系统来处理这个问题……
发布于 2009-05-21 03:31:50
我会看看Subversion的svn:externals。
在svn 1.5中,您可以对目录使用相对引用,svn 1.6支持基于文件的外部变量。
例如像这样的结构,
使用svn:externals很容易获得。
在Subversion中,您的存储库结构非常灵活,下面是您可以使用的一种方法:
不过有一个提示:请确保为每个外部引用使用特定的Subversion修订版,开始时它可能看起来并不重要,但6个月后它将会:)
发布于 2009-05-21 03:29:13
我喜欢在没有很多开发人员参与的项目中使用Subversion。从你的问题陈述来看,在我看来,你应该能够通过一个好的构建系统来获得你想要的东西。所以我不认为源代码控制本身会有多大的不同。但我可能误解了你的问题。
赛义德·易卜拉欣·哈希米
我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build
发布于 2009-05-21 04:02:42
我不认为VCS能解决你的问题。
你最好的选择可能是尽可能地抽象出手机特定的功能和/或使用插件类型的模型。
我只有Subversion、CVS、Starteam和VSS的经验。不管怎样,树枝都是痛苦的.尤其是当您有多个活动分支时。如果对所有分支进行了更改,您将无法进行常量合并、分支比较和尝试跟踪。
https://stackoverflow.com/questions/891276
复制相似问题