How is dvcs (git/mercurial) branching and merging support better than svn's? -
lots of articles on dvcs systems claim superior branching , merging support 1 reason move svn dvcs systems. how these systems branching , merging differently makes better?
historically, difference between merge-tracking in git , svn this: git has merge-tracking, , until version 1.5, svn didn't. @ all. if wanted make merge had specify changes merged, , if merged 1 branch more once, have manually keep track of revisions had , hadn't been merged, , manually select changes hadn't been merged yet, avoid conflicts. luck if ever cherry-picked changes.
beginning version 1.5 (released in 2008), if client, server, , repository up-to-date, svn capable of acting lot more intelligently; uses properties keep track of branch came , changes have been merged it. upshot in many cases can svn merge branchname
, have right thing happen. due "bolted on" nature it's still not fast , not entirely robust. git, on other hand, has handle merge scenarios because of dvcs nature, , designed beginning data structures (like particular kind of dag uses) , algorithms (such recursive-merge , octopus-merge) suited task.
Comments
Post a Comment