|
|
|
|
|
by da_chicken
3086 days ago
|
|
The major feature of git is that it's distributed, not that it's decentralized. Git's got two big features over SVN: 1. Automatic, private, per-user branching. Git's even nice enough to keep the private branches out of the main repository, and lets you pretend to be the authoritative repository without creating a branch if you really want to. This is what clone/push/pull actually does, and it's what a distributed VCS really brings to the table. It lets every dev pretend to be the project manager when they're writing their own code. 2. A much improved merging model. The graph model of git is just much better than the linear model of SVN. The second one is what people thought they wanted when they started using git. The first one is what they didn't know they wanted before they started using git. Git gets around the problem of "Well, if we do #1, how do we know which repository is authoritative then?" by saying, "We're not solving that problem. This is an exercise for the users that's easily solved by file permissions." So by refusing to solve that (rather hard) problem, the VCS becomes internally decentralized. That doesn't mean you can't or shouldn't centrally manage your repositories or have an authoritative repository. It's just that git itself doesn't care about knowing which repository is authoritative. |
|