When we initially setup version control we had very limited time and only basic knowledge how to set it up. We don’t understand branches, trunks or tags. All we have been dealing with is Checkout, Update and Commit (oh, and the occasionally conflicts).
But now, we have gotten to a stage where we think we need to understand it better and probably rethink the way our repositories are setup and worked in.
Currently we have 4 different folders on our server which each contain a checkout. These 4 areas have the source code that is used for production. 2 of these checkouts are worked on directly as bug fixes checkout areas. The other 2 are used as development checkouts. Places where a team member may work on a longer development. Once they are done with the development they Commit it to the repository and thus the production code which will be updated to all the other checkouts.
But, when reading about branching it sounds like there is a missing level here. A trunk I think it what its called.
Can someone give this newb a bit of a quick crash corse in how to the correct way is to setup a repository for a team or developers who need a way to do quick bug fixes to production code but as well run a couple of developments?
Try to read some articles first. Then come back with more particular questions. I think this is good article: http://nvie.com/posts/a-successful-git-branching-model/
In short, you manage your source code as a bucket of patches. Each change you made as a commit is a set of patches. Then you could compose these patches into particular product versions. Also VCS allows keep all history and provide you reproducibility of each published build.