When I first started using revision control systems like CVS and SVN, I didn’t really understand the concepts of the ‘trunk’, branching, merging and tagging. I’m now starting to understand these concepts, and really get the importance and power behind them.
So, I’m starting to do it properly. Or so I think… This is what I understand so far: The latest release/stable version of your code should sit in /trunk/ while beta versions or bleeding edge versions sit inside the /branches/ directory as different directories for each beta release, and then merged into the trunk when you release.
Is this too simplistic a view on things? What repository layouts do you guys recommend? If it makes a difference, I’m using Subversion.
See these two questions on SO for more information: