Prev | Current Page 443 | Next

Brad Ediger

"Advanced Rails"

A new paradigm,
decentralized version control, is attempting to fix some of these issues. Though it is
not widely used among Rails developers, it is worth knowing about, as it is extremely
useful for certain situations.
In contrast to the hierarchical structure of centralized versioning systems, decentralized
systems provide a more egalitarian approach. (It??™s the cathedral versus the
bazaar, if you will.) Rather than having many working copies that all must communicate
their changes back to the repository, each working copy is in fact a full repository.
Any of the local repositories can pull and push changes to and from each other,
and changesets destined for production will ultimately be pushed back to the authoritative
repository.
In fact, the only thing that designates a repository as authoritative is community support:
project administrators set up a repository as the master and publish its network
address. Developers can pull changes from any repository that decides to
publish them. Interestingly, this parallels the meritocracy inherent in open source
software: your worth is measured by how much you contribute and how many people
listen to you.
The decentralized development model can be more complicated to learn, but it is
much more flexible, especially with large projects that have many contributors. The
Mercurial wiki gives an example of distributed development best practices based on
the development style of the Linux kernel.


Pages:
431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455