Hi all, need some advice with how best to branch our code.
Currently we have the following setup...
$Project
coders develop, check-in, merge etc against this one line and we label the code to signify a release. Really bad practice I know, but its been that way since I joined.
Problem with the current setup is we have customers using old versions of the code and when it comes to fixing a bug for them it is a royal pain trying to track down their version of code. Once a fix/patch or whatever has been produced it can be a bit risky checking-in a fix. So naturally branching is the way forward?
I was thinking of the following setup
$Project
so basically all development occurs in the mainline and then say once a month we create a new branch and add it to /Releases. Same applies to /Customers, when we give them a release we make a new folder for said customer.
Am I right in thinking if customer1 then needs a bug fix or some custom functionality outside of the core product I can get latest of /Customer1, code a fix and then check-in against the customer1 branch? (So I dont merge the fix with /Mainline or /Releases).
Really just asking for advice on how to best lay out the branching as I have never done it before and just want to check my thinking is logical and future proof.
Currently we have the following setup...
$Project
/MainLine
coders develop, check-in, merge etc against this one line and we label the code to signify a release. Really bad practice I know, but its been that way since I joined.
Problem with the current setup is we have customers using old versions of the code and when it comes to fixing a bug for them it is a royal pain trying to track down their version of code. Once a fix/patch or whatever has been produced it can be a bit risky checking-in a fix. So naturally branching is the way forward?
I was thinking of the following setup
$Project
/Mainline
/Releases
/release1.1
/release1.2
/release1.3
/Customers
/Customer1
/Customer2
so basically all development occurs in the mainline and then say once a month we create a new branch and add it to /Releases. Same applies to /Customers, when we give them a release we make a new folder for said customer.
Am I right in thinking if customer1 then needs a bug fix or some custom functionality outside of the core product I can get latest of /Customer1, code a fix and then check-in against the customer1 branch? (So I dont merge the fix with /Mainline or /Releases).
Really just asking for advice on how to best lay out the branching as I have never done it before and just want to check my thinking is logical and future proof.