Subversion combines information, how important is it?

I'm a little curious about how Subversion merge information is used, and what problems can be performed if the merge information is incorrect?

For example, I have forked branch1 and branch2 from trunk . I also have subbranch1 and a subbranch2 originating from branch1 . Think of it, I did some development in branch2 and then integrated it back into trunk again using svn merge --reintegrate ^/branch2 . Then I wanted to add these changes to subbranch1 (pulling them from trunk ) and the erroneously used svn merge --reintegrate ^/trunk command (thus adding the --reintegrate flag to the merge command, even if subbranch1 not the immediate ancestor of trunk ).

What problems may arise in the future?

+6
source share
2 answers

This answer is deprecated. Use Subversion> = 1.6.


You forked approach is generally dangerous, but because of the accident it is even worse.

You will have trouble reintegrating all branches.

  • changes made by branch2 may look like delegation to subversion.
  • deletions you make may look like subversion additions.
  • tripartite comparison may give you odd results (for example, the same piece of code in a file)

You can no longer trust tripartite support, you need to check each change manually!

See Mother never told you about svn branching and merging for more information.

PS I had to do something once. Since then we have been using bunny jump (see Link).

+2
source

Association information tracks this information:

  • Relations between branches ( subbranch1 originated from branch1 , which originated from trunk , etc.)
  • What changes have already been combined.

If merge information is missing or incorrect, you will have to manually track the mergers, and this may be error prone. Using merge information, you simply let Subversion keep track of all this information.

+3
source

Source: https://habr.com/ru/post/911475/


All Articles