This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Please help me with git/dvsdk source code control ideas

I've been developing a custom DM6467T product, running Arago Linux and developed using an Ubuntu Linux host (a VM formerly on WinXP, now Win7).  I've been doing software development for DECADES, and have never had a source code control problem.  However, now I do and I am seeking advice on what to do about it.

The problem relates to customization of existing software.  In the past, I wrote software and saved versions of the source.  Pretty simple.  That was mostly but not exclusively on the PC and with dozens of programming languages.  For example, if I was writing an MFC (Microsoft Foundation Classes) program and needed to customize something, I would write my own class, even if I copied it to begin with from the MFC source.  Thus, that new class was in MY code, that already fell under my source code control.

My prior experience has NOT, however, included "git" or the TI "dvsdk".  From what I was able to learn a year ago when first doing this, the way to go about this is to simply modify the source code directly, under the git or dvsdk folders.  I've had to write new chip drivers (git), modify the board-dm646x-evm.c file (git), make minor makefile modifications (git), as well as enhance lots of shortcomings where DMAI (dvsdk) was only partially finished in some aspects, and make minor makefile  modifications there (dvsdk), too.  This has resulted in a big mess.  I have hundreds and hundreds of source code files that came to me originally in git or dvsdk, and I have modified many of them.  I have NO version control at all.  And now I find I need to recreate a state from half a year ago as two similar products are now going to diverge.  

I do have detailed dated backups, and so I will be able to do what I need.  But how do I version control this moving forward?  I don't even know if the makefiles can cope with a simple root folder level rename, the most fundamental of version control methods.  And what I would like most is to have a backup of the virgin git and dvsdk, and then only my incremental changes associated with each version.  Yes, I realize now I could push the whole stuff into a source code control system, and get incremental versioning from that.  But this is a LOT of source.  And it also locks me into that version of git and dvsdk.  To move to a newer version of git and dvsdk, I would need to closely analyze all the incremental versions.  This differs from my prior MFC customization example as follows.  My MFC customization was in MY folder, not MFC's.  I could install a new version of MFC, and then my own class definition would still override it.  I would still have to confirm compatibility of the new MFC with the old developed modified class, of course.

Oh, and I've also seen some kind of few-line patch capability that I've never further learned about.  Perhaps that integrates in here.

So, after all this rambling as well as an interrupting phone call, I'm asking for your advice.  How should I organize all this so that I can better keep track of my source and versions.  Right now, the best I have is actually a nightly backup of the Ubuntu VM files themselves, not even separately accessible with my backup software.  I would have to restore the VM, boot it up, and then look in the file system.

Thanks very much,

Helmut