svn and git versioning models difference -
I would like to know what the difference between approaches suggested by GIT (or other DCCs) and undertaking (or other CVCS) ).
This topic has been found about me:
The form of a pre-order mananges is the version of trees as the first order object (an array of repository trees) , And changes are things that compare adjacent trees. Systems like Arc or Betacitor are created in another way: they are designed to manage changes in the form of first order objects (a bag of repository patches), and trees are obtained by preparing the sets with patches .
But it is not clear how the subdivision store reserves change, even if it is the oldest version of the current file and so on. In the case of git, for example, why can not you create a bunch of patches? It is always mentioned as the main difference between SVN and GIT which makes merge simplified / complex, but unfortunately, I still do not get the idea.
There is a good explanation about the main difference between the changes and VCS based on snapshots. I will not repeat it here.
However, I want to put pressure on a point which can not be clear before. Changeset-based VCSs really make it easy to track mergers, which is very difficult for systems like subversion, which is based on snapshots.
VCS based on one of the changes, only changes in merges (or, as they are called in 'GIT') in which there are more than one parent changes, the graphical representation of the repository is usually Shows a DAG (guided escal graph) where nodes represent changes and arrows represent parent-child relationships. When you see a node with more than one parent, then you know what kind of merge has happened.
In the subdivision, "Merge tracking" is something new, up to version 1.4, there was no such concept, so you had to note in the log messages of your commodity to know about the merger history. Version 1.5 used merge tracking to make it easy to disseminate the user from one branch to another, to make it clear about the modified categories and preference, tracking applied it with a property (svn: mergeinfo) Which is linked to the directory receiving the merge. It tracks which branches are already merged. It is enough to estimate which modification should be merged in the subsequent merger. But it does not make it easy to attract the graph showing merge history, which you would like to see often while working in a complex project with some developers.
Comments
Post a Comment