If we find an error in some branch, we will fix it (check the new version in the picture). But we are also interested in porting this fix to the version of Old release and Main development:
a -> b -> c (Old release)
|
A -> B -> C -> D (Main release)
|
1 -> 2 -> bugfix -> 4 (New release)
remember svn in svn: merge properties (from svn 1.6, 2009) which version merges with branches. So, next time, if you merge the scope of changes, previously merged versions were skipped from the merge patch.
How to work with modern DVCS?
Do I need to make a simple patch and apply it to each branch or is there any help from DVCS?
Note I can't just merge a new branch into the main branch, as previous changes also move to the main branch as well.
Rebase is also not possible because the new version is available to many developers.
I am interested in response to the named marriage scheme and the multi-reposition scheme.
PS. . Andy suggests finding a common parent for all branches for which the error has affected, update it, apply the correction to the error and transfer the correction to the affected branches.
When you upgrade to the old changeset and make changes, you create a new branch. I recommend creating a named branch (name it bugID ), so you can easily return to it later.
There is a problem with finding a common parent in all branches in which we have an interest in fixing a mistake.
The first solution (suggesting Andy) uses $ hg / git / bzr guilty and carefully checks the output for all affected files. This is due to the first bug of correction in some new changesets before you find the charge that will make changes to the error. Then you will need to rebase the patch for a common set of changes for parents.
Another solution uses $ hg / git / bzr bisect (you can also manually perform updates to find the first revision where the error was entered). This may be an expansive, but more accurate solution, allowing you to fill out bugfix for any branches that have an error.
I think it is better to first find the first set of BAD changes and then fix the error, instead of fixing the error first and then find the first set of BAD changes (unless you already know how to fix the error). In addition, the presence of differences that may help can help understand why this is happening.
PPS Errors show which branch was executed to allow merging of changes in any processed branch.
An interesting question arises if you ask how the backport function from a development branch frees a branch. As you can see, you should make a set of changes to functions, starting with a set of changes that goes up to the release branch. But when you develop a function, you cannot know where you need the backport function. With svn: merge, VCS will remember all backports for you. What about DVCS?