I'm using Git, Maven, Jenkins & Nexus as my source code/build/release infrastructure. Can anyone provide pro's and con's of using tags or branches to represent application releases?
It seems using tags is a preferred approach, but the articles I've read lean towards using lightweight instead of annotated tags in their solutions. Also I get a sense that tags are mainly useful for developers as a temporary 'marker' for code changes, instead of an an authoritative marker/place in time that a release has to be.
My understanding of lightweight tags is they can be deleted or moved between commits. This seem (to me) to invalidate the whole idea of using them to define what's in a release, whereas a created branch is pretty set in stone (obviously files on it can be edited later, but the creation of it is immovable.)
Thanks for any info/advice. Dave
If you maintain only one version, then use tags.
If you want to maintain different major versions then use one branch for each major version and tags for minor versions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With