My team uses SVN to manage their source. I was tasked with figuring out if there is a way to improve the way I use SVN.
I read most of the SVN book and did a lot of research on how others use SVN.
I will talk about how we use svn, and hopefully someone has suggestions for me.
First of all, we have a release every month or two. Therefore, we are currently using the trunk as our production copy of the code, and we are creating a release branch for each planned delivery and for each production patch.
Usually we have two, sometimes three, planned deliveries going at the same time. For example, I could code release 3, but I or others are testing release 2 and make final bug fixes for release 1. A production fix could happen at the same time.
Now we are doing a lot of merges to synchronize branches (each version). Version 3 needs a code from 2 and 1, but we obviously do not want the new code from release 3 to hit release 1. Thus, we would make a series of mergers from release 1 to release 2 and from release 2 to release 3 This must be repeated on a regular basis so that the third release encoders have and correct errors from 2 or 1.
Whenever a release or production fix goes into production, we merge the code back into the trunk. Then we will combine it with the trunk (or the liberation branch that just went into production) into all active branches.
As you may have noticed, we spend a lot of time merging.
This is a big job for the person who controls the initial control. They constantly merge and make sure to keep track of which branches are merging there.
It seems that SVN is our source code management system (I know that this is only version control, but we use it to manage our source code) should be able to help us with this.
For example, it would be great if the developer working on release 3 knew that something had changed in version 2, release 1, or the body, and that developer could be automatically notified, and he could merge to make changes to his branch. But instead, someone should know to do all the merges manually ... It seems like a person is doing too much work and the machine is not doing enough.
Does anyone have any ideas on how we could make better use of the SVN features so that we can save ourselves from this headache and make sure everyone always works with the code versions that they should be!
Thanks!