-
Notifications
You must be signed in to change notification settings - Fork 0
Goals and Benefits
- Distributed
- Reliable
- High-performance
- Reliable Because Hash of objects has built-in file corruption checks
- High-performance Because Snapshot method
- Distributed Because Repositories are cloned so that all branches and history are maintained
In CVS, when you merge, you plan ahead for a week and then you decide on a day for doing it.
By being distributed, you automatically get to be more trustworthy. I have a theory on backup systems: I don't do backups. I put my code up and everyone else mirrors it. If I crash my machine, I just request my code back.
- Freed from needing an always on server and connection
- Freed from public branches name-spacing (not really a big issue with tfs)
- each person has their own branch
- obviates need for commit-access class of people and psychology of limited access
- allows for a model of a network of trust (in competence)
- pull in changes, rather than many people pushing them
- good for maintenance: easy to work off old branches then merge back
- faster because not going over the network
-
speed because each file version is its own object (not calculated by diffs)
-
smaller repository size
-
Reliable because sha-1 hash is checked every time. You are certain there is no corruption.
-
The Linux community has a very cool network of trust model: Linus trusts a handful of lieutenants who specialize in specific areas; those lieutenants do the same within their own team.
-
Merging takes less than a second
-
Easy to Remerge
-
Multiple parents allows for better history and annotating
It [the network of trust] is not just easy to do technically, it is how everyone is wired up to work.
You don't have to have a metal model; it is how we are wired up.
Distribution means nobody is special.
Not having to go over the network is a huge performance saver.
It's the kind of performance that changes how you work: it no longer doing the same thing faster; it's allowing you to work in a completely different manner.
Doing it well is really complicated, but the basics are really simple.
moving out from a per file mentality to a group of files mentality