tags:

views:

59

answers:

2

Let's say I want to create a spinoff of a chat application branded under a different name, different UI, and some changed features. How would one sync changes between these to codebases which are 80% the same?

EDIT: Already use git.

+1  A: 

You should look into using a distributed code repository, if it is usually a one-way sync (main development pushes to spinoff project).

Mercurial is one of the most popular DCR There are many distributed code repository systems. The website provide a nice tutorial.

notnoop
Look at subversion, git, bazaar. I hear good things about git for really distributed source management.
Jim Garrison
@Jim, SVN isn't good for this case scenario I think. Added a reference to `hg` which is a bit easier to use than `git` for new comers IMHO.
notnoop
+5  A: 

This is a pretty generic question and one that should be covered in any basic Software Engineering course.

I'd start with:

  1. SCM (Source CodeManagement) http://en.wikipedia.org/wiki/Source%5FCode%5FManagement
  2. Separate 'shared' code into libraries (either statically or dynamically linked)

There is a whole field of experts and products on this topic - revision control and merging.

Josh
+1 very valuable suggestion. Have a library for the common code, and have the applications have the context specific-code.
notnoop
thanks! already use git. good suggestion for libraries - thanks!
Mark Bao