Mercurial > CVu-Mercurial
comparison Hg.tex @ 11:03d0ebf7ce0b
More speeling fixes. Thanks Dirk.
| author | Jim Hague <jim.hague@acm.org> |
|---|---|
| date | Fri, 22 May 2009 21:14:57 +0100 |
| parents | 2e4d690ffabb |
| children | b8b1e594670d |
comparison
equal
deleted
inserted
replaced
| 10:2e4d690ffabb | 11:03d0ebf7ce0b |
|---|---|
| 48 you'll at least have become vaguely aware in the last few years of the | 48 you'll at least have become vaguely aware in the last few years of the |
| 49 growing maturity of the latest group of version control systems | 49 growing maturity of the latest group of version control systems |
| 50 offering funky new stuff. These are the distributed version control | 50 offering funky new stuff. These are the distributed version control |
| 51 systems (DVCS). There is more to them than just their headline | 51 systems (DVCS). There is more to them than just their headline |
| 52 attributes, being able to check history and do checkins while | 52 attributes, being able to check history and do checkins while |
| 53 disconnected from a central server, but these are damm useful to start | 53 disconnected from a central server, but these are damn useful to start |
| 54 with. | 54 with. |
| 55 | 55 |
| 56 When I first heard about DVCS, it wasn't immediately obvious to me (to | 56 When I first heard about DVCS, it wasn't immediately obvious to me (to |
| 57 put it mildly) how they would work. After years of using a centralised | 57 put it mildly) how they would work. After years of using a centralised |
| 58 version control system, I had rough mental model of what went on. But | 58 version control system, I had rough mental model of what went on. But |
| 511 or merge, as you please. | 511 or merge, as you please. |
| 512 | 512 |
| 513 In practice this is more manageable then you might think. Consider a | 513 In practice this is more manageable then you might think. Consider a |
| 514 typical Mercurial usage, where the 'master' repo sits on a known | 514 typical Mercurial usage, where the 'master' repo sits on a known |
| 515 server, and everyone pulls changes from the master and pushes their | 515 server, and everyone pulls changes from the master and pushes their |
| 516 own efforts to the master. But default Mercurial won't let you push if | 516 own efforts to the master. By default Mercurial won't let you push if |
| 517 the receiving repo will gain an extra head as a result, so you | 517 the receiving repo will gain an extra head as a result, so you |
| 518 typically pull (and do any required merging) just before | 518 typically pull (and do any required merging) just before |
| 519 pushing. Subversion users will recognised this pattern. Subversion | 519 pushing. Subversion users will recognise this pattern. Subversion |
| 520 won't let you commit a change if your working copy is not at the very | 520 won't let you commit a change if your working copy is not at the very |
| 521 latest revision, so the Subversion user will update, and merge if | 521 latest revision, so the Subversion user will update, and merge if |
| 522 necessary, just before committing. | 522 necessary, just before committing. |
| 523 | 523 |
| 524 What, then, about a branch in the conventional sense of '1.0 | 524 What, then, about a branch in the conventional sense of '1.0 |
| 659 head that it already present in the target repo, and get any remaining | 659 head that it already present in the target repo, and get any remaining |
| 660 changes after that point. These changes are then copied over and | 660 changes after that point. These changes are then copied over and |
| 661 applied. | 661 applied. |
| 662 | 662 |
| 663 The Mercurial revlog format has proved remarkably durable. Since the | 663 The Mercurial revlog format has proved remarkably durable. Since the |
| 664 first release of Mercurial in April 2005, these have been a total of 5 | 664 first release of Mercurial in April 2005, there have been a total of 5 |
| 665 changes to the file format. However, of those, all but one have been | 665 changes to the file format. However, of those, all but one have been |
| 666 changes to the handling of file names. The most recent change, in | 666 changes to the handling of file names. The most recent change, in |
| 667 October 2008, and its predecessor in December 2006, were both | 667 October 2008, and its predecessor in December 2006, were both |
| 668 introduced purely to cope with Windows specific issues. The one change | 668 introduced purely to cope with Windows specific issues. The one change |
| 669 that touched the data structures described above was in April 2006. The | 669 that touched the data structures described above was in April 2006. The |
| 684 By this stage, I hope you can see that distributing version control | 684 By this stage, I hope you can see that distributing version control |
| 685 works by introducing branches where development takes place in | 685 works by introducing branches where development takes place in |
| 686 parallel. Mercurial treats these branches as arising naturally from | 686 parallel. Mercurial treats these branches as arising naturally from |
| 687 the commits made and transferred between repositories. Both Git and | 687 the commits made and transferred between repositories. Both Git and |
| 688 Bazaar take a slightly different viewpoint, and explicitly generate a | 688 Bazaar take a slightly different viewpoint, and explicitly generate a |
| 689 fresh branch for work in a particular repositories. But in both cases | 689 fresh branch for work in a particular repository. But in both cases |
| 690 the underlying principle of identifying changes by a globally unique | 690 the underlying principle of identifying changes by a globally unique |
| 691 identifier and resolving parallel development by merges between | 691 identifier and resolving parallel development by merges between |
| 692 overlapping changes is the same. And all three can be used in a truly | 692 overlapping changes is the same. And all three can be used in a truly |
| 693 distributed manner, with full history and the ability to commit being | 693 distributed manner, with full history and the ability to commit being |
| 694 available locally. | 694 available locally. |
