We are considering a switch in VCS distributed from SVN to our workplace.
I have been familiar with all the reasons for using DVC for day-to-day development: local version control, easy branches and merger, etc., but I have not seen that in the case of software release management There is a lot of strength. Here's our release process:
- Find out what changes are available for merger.
- Run a query to find faults / tickets related to these changes.
- Filter the change related to "open" tickets In our environment, the merger in the release branch should be in the closed state of the ticket.
- Filter the changes that we do not want in the release branch when we talk of merging changes, we are very conservative if any change is not absolutely necessary, then it does not get merged. .
- Combine available changes, if we are connected to the same ticket in priority chronological order, then we change groups together.
- Block unwanted changes from the branch of release (
svnmerge block
), so we do not have to deal with them again.
Sometimes we can make 3 to 5 different milestones in one go. Some milestones have very different obstacles, and the list of blocks can be quite long.
I am walking with guit, mercurial and plastic, and as far as I can tell that none of them address this model well. It seems that when you have only one product that you are releasing you will work very well, but I can not imagine them to trap many, many different products from the same codebase. For example, a surge in cherry bounce starts to happen. (You must use the 'implant' extension, which is disabled by default). When you choose a change in a branch, it appears as an available integration. The fun way of working cherry-picking breaks.
The DVCS facility looks better suited for branches. There is no need for cherry-picking if you can merge directly from the trunk and release branch from a convenience branch. But who want to merge all the time? What is available for merge and how can you ask? And how do you ensure that all the changes in the facility branch are simultaneously? It seems like total chaos.
I torn because the encoder in me wants DVC to work day-to-day work. I really want it. But I am scared that day when I have to put a Release Manager cap and it needs to be sorted out how to merge and what does not need. I want to write code, I do not want to be a merge monkey.
You really want to use GIT in this situation, because it's merging and managing Very good to release. Allows signoff process for changes to be released for the guit; It actually provides support for many layers of release management, just like that because Linux is managed.
Put each release in just one branch instead of blocking those changes which you do not want, only accept those people that you do, just sign them for issuing those changes By up, who are going in a release.
Git also allows you to cherry the collection due to the change in a patch that will be sent to the upstream, you only have to take a 'good job' patches in the release bracket or repository It is only good clean facility or patch to fix.
Comments
Post a Comment