Reputation: 21098
I have a question about best practice to make our software "patch-able".
Some information abour our product/company:
Every time we create a release, we put it into a new branch in the tfs, so that the structure look like this:
Now i have the problem, that i don't know how to make our product patch-able, without making a patch for every version. Because if a bug is in version 1.0.0.0 and 2.2.0.0 and i don't want to install the newest version (3.3.0.0), i need to fix both versions (1.x and 2.x).
Is there a way to make this more elegant and comfortable for me?
Thank you!
Upvotes: 3
Views: 1625
Reputation: 23434
You should move to a continuous delivery model. You need to Change the way that you have engineered your product so that you can install any version over the top of any other version. If you also make sure that you have a solid definition of done, and a short delivery cycle then you will never need to install a patch. Just ship a new version with features that you are not ready to show turned off.
Check out http://stories.visualstudio.com to see howba large product solved the issue.
If you are thinking "that looks too hard" then you are likely have too much technical debt (or more acuratly unhedged fund) and you need to address that first.
Look into feature flags for code and Ready Roll or SSDT for databases.
Upvotes: 1
Reputation: 5194
from my experience, not really - I used to work on a very large project which had clients using many different versions, bug fixes were applied to all versions and patched - this was often a manual (and tedious) process, as the code base had often changed sufficiently between versions so you couldn't simply merge changes. Try to encourage clients to upgrade when possible, and where possible make use of TFS' merge functionality.
Upvotes: 3