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. |