This week, I am watching some screencasts about TFS and heard about shelves. Googled about this feature in SVN, GIT, Bazaar, etc. and in most links returned people recommends creating a shelves folder and a folder for each team member inside the shelves folder, which is good. The problem is that people recommend checking out from trunk directly to shelves subfolders, but I think it is not the way to go because when team need to synchronize unfinished changes they have to check in to trunk and having unfinished (defective) code on trunk is not acceptable, at least for me.
In my opinion, every change request must be worked out on branches.
When change requests are worked out by a team and they need to check in/out often, shelves might be created based on the branch related to the
specific change request. When anyone has finished their tasks, they shall
merge to the branch and when everybody has finished, someone from the team should take responsibility of merging
the branch to the trunk. To sum up: To check out, follow from trunk to
branch and from branch to shelf (when needed -> team working on that
branch). To check in, from shelf to branch (when needed -> team working on that
branch) from branch to trunk when everybody is finished, code is functional and satisfies the change request.
Based on the above I would have structures like the one below:
What do you think about it?
Luciano Evaristo Guerche (Gorše)
Taboão da Serra, SP, Brazil