On 25 September 2013 22:23, Michael Weise <[email protected]> wrote: > > Thanks a lot guys, this was exactly the kind of information I was looking for!
Hi again Michael I just came across this today, I recommend it: https://github.com/pluralsight/git-internals-pdf/releases (click on the pdf download button) Also, I'm writing again because I'm feeling its necessary to clarify my previous message ... its aim was to convey my view that git would assist your project, and that point stands. However, as part of illustrating that for you in terms that you would relate to your project, I gave an example of how you might use git to create separate branches for each customer. But ... the more I think about this as a proposed architecture, the more I dislike it. It is not zero work to manage all those branches, and I feel sure there must be simpler ways to solve the problem. So I still encourage you to use git, but I suggest you could use it to plan and implement a transition towards a better code structure than the one I used in that example. Restating what I wrote before: > It might be much cleaner to handle some of the > customer difference logic in the executable C, rather than conditional > compiles. You could implement a set of meaningful flags, and use > combinations of those flags to describe the requirements for each customer. That way, the codebase could be the same for every customer. There could be one file that defines what feature flags are enabled for each customer. You could do that with #ifdefs, or preferably in other nicer ways. #ifdefs are ugly. They are good for keeping code out of the build, to keep it small or ensure that customers can't reverse engineer access to features they haven't paid for. If those issues are not important, then in your situation I would work towards refactoring out the #ifdefs in favour of some other method that is clearer and easier to maintain. -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
