Introduction
Release management is very important when you are creating a new project repository. In this blog I am trying to demonstrate the best way to create a project repository.
You can plan to create
- multiple repositories for multiple projects OR
- Single repository for multiple projects OR
- Mix and match of the above approach
All the abobe mentioned approaches have some pros and cons.
multiple repository is more moduler but maintainability of the projects is very difficult.
Where as the single repository approach will help you to manage projects more smoothly. However, if you set triggr of checked-in files, then there is a chance that unrelated people or group of perople will receive email notifications as multiple projects are managed under same repository.
In case of Mix and match approach, you can goup logical projects into single repository so number of repository will get reduced.
Repository Layout
Suppose you have three projects called Calculator, calendar and spreadsheet. You can layout your project in one of the following ways
Also know the below important terminologies
- Trunk: Development takes place here.
- Trunk Tags: Places on the trunk that are stable (can be checked out as a set and will build). Trunk tags look like European dates (year.month.day)
- Branch: Releases are each on their own branch. Each release is denoted by ‘‘major’’.’‘minor’’ and for any release we might have several beta versions, several release candidates and then several final versions. Ideally, there would be just one version, but reality often has other ideas…
- Branch tags: Places on the branch that mark beta versions, release candidates and the final version(s). Branch tags look like software version numbers of the form ‘‘major’’.’‘minor’’.’‘change’’ ‘‘[modifier]’’ where ‘‘modifier’’ is ‘‘b’’ for beta or ‘‘rc’’ for a release candidate.
Recomended Approaches
The trunk will have the stable code. Once you branch out from trunk, continue your development in branch. Once done, merge back to the trunk. Then, if possible kill/destroy the branch as your code is available in trunk. Below are the steps to merge your code from branch to trunk.
- Checkout trunk code. Right click on the trunk parent folder that you have checked out.->TortoiseSVN->merge->Select merge a range of rivision (radio button) -> Next
- Select the branch that you want to merge with trunk (select the other options most suitable for you) -> Merge
- Commit code into trunk.