I’m working on a major Rails project who’s code base continues to grow.
client wants to have two different versions of the software, with some
features in common between the two, and some features diverging. I’m
to figure out the best strategy for easily maintaining the features the
have in common, while allowing for differences as well.
Subversion “branches”, doing diffs and merging to maintain
between both. (Seems like a nightmare.)
One codebase, w/ configuration settings and if/else statements
on which version is running. (Also seems like a nightmare.) For example,
following type statements littered throughout the code:
if version == “A”
do version “A” logic
elsif version == “B”
do version “B” logic
Rails plugins and modules. Seems like the best way, but I’m not sure
best way to structure it. Differences will be mostly minor, but at all
levels (views, controllers, models emails)
Any feedback or shared experiences would be great.
Electro Interactive, Inc.