1

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.

Mark Bao
  • 896
  • 1
  • 10
  • 19

2 Answers2

5

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_Code_Management
  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
  • 3,540
  • 1
  • 21
  • 12
1

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
  • 58,763
  • 21
  • 123
  • 144
  • Look at subversion, git, bazaar. I hear good things about git for really distributed source management. – Jim Garrison Nov 05 '09 at 04:25
  • @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 Nov 05 '09 at 04:28