Mercurial > hgbook
changeset 719:2ff0a43f1152
Update ch03
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Mon, 06 Apr 2009 23:13:53 -0700 |
parents | 4e23c220d1b0 |
children | e9ef075327c1 |
files | en/ch03-concepts.xml en/figs/filelog.svg |
diffstat | 2 files changed, 52 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/en/ch03-concepts.xml Mon Apr 06 22:05:44 2009 -0700 +++ b/en/ch03-concepts.xml Mon Apr 06 23:13:53 2009 -0700 @@ -4,14 +4,16 @@ <?dbhtml filename="behind-the-scenes.html"?> <title>Behind the scenes</title> - <para id="x_2e8">Unlike many revision control systems, the concepts upon which - Mercurial is built are simple enough that it's easy to understand - how the software really works. Knowing this certainly isn't - necessary, but I find it useful to have a <quote>mental - model</quote> of what's going on.</para> + <para id="x_2e8">Unlike many revision control systems, the concepts + upon which Mercurial is built are simple enough that it's easy to + understand how the software really works. Knowing these details + certainly isn't necessary, so it is certainly safe to skip this + chapter. However, I think you will get more out of the software + with a <quote>mental model</quote> of what's going on.</para> - <para id="x_2e9">This understanding gives me confidence that Mercurial has been - carefully designed to be both <emphasis>safe</emphasis> and + <para id="x_2e9">Being able to understand what's going on behind the + scenes gives me confidence that Mercurial has been carefully + designed to be both <emphasis>safe</emphasis> and <emphasis>efficient</emphasis>. And just as importantly, if it's easy for me to retain a good idea of what the software is doing when I perform a revision control task, I'm less likely to be @@ -436,19 +438,19 @@ a new head, because your working directory isn't synced to whatever the current tip is.</para> - <para id="x_316"> I put the word <quote>error</quote> in quotes because - all that you need to do to rectify this situation is - <command role="hg-cmd">hg merge</command>, then <command - role="hg-cmd">hg commit</command>. In other words, this - almost never has negative consequences; it just surprises - people. I'll discuss other ways to avoid this behaviour, - and why Mercurial behaves in this initially surprising way, - later on.</para> + <para id="x_316"> I put the word <quote>error</quote> in + quotes because all that you need to do to rectify this + situation is <command role="hg-cmd">hg merge</command>, then + <command role="hg-cmd">hg commit</command>. In other words, + this almost never has negative consequences; it's just + something of a surprise for newcomers. I'll discuss other + ways to avoid this behaviour, and why Mercurial behaves in + this initially surprising way, later on.</para> </note> </sect2> <sect2> - <title>Merging heads</title> + <title>Merging changes</title> <para id="x_317">When you run the <command role="hg-cmd">hg merge</command> command, Mercurial leaves the first parent @@ -518,7 +520,25 @@ merge immediately becomes overwhelming.</para> </sect2> + + <sect2> + <title>Merging and renames</title> + + <para>A surprising number of revision control systems pay little + or no attention to a file's <emphasis>name</emphasis> over + time. For instance, it used to be common that if a file got + renamed on one side of a merge, the changes from the other + side would be silently dropped.</para> + + <para>Mercurial records metadata when you tell it to perform a + rename or copy. It uses this metadata during a merge to do the + right thing in the case of a merge. For instance, if I rename + a file, and you edit it without renaming it, when we merge our + work the file will be renamed and have your edits + applied.</para> + </sect2> </sect1> + <sect1> <title>Other interesting design features</title> @@ -575,8 +595,8 @@ compression package). This combination of algorithm and compression of the entire stream (instead of a revision at a time) substantially reduces the number of bytes to be - transferred, yielding better network performance over almost - all kinds of network.</para> + transferred, yielding better network performance over most + kinds of network.</para> <para id="x_329">(If the connection is over <command>ssh</command>, Mercurial <emphasis>doesn't</emphasis> recompress the
--- a/en/figs/filelog.svg Mon Apr 06 22:05:44 2009 -0700 +++ b/en/figs/filelog.svg Mon Apr 06 23:13:53 2009 -0700 @@ -2,7 +2,7 @@ <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" + xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" @@ -13,12 +13,19 @@ height="1052.3622047" id="svg2" sodipodi:version="0.32" - inkscape:version="0.45.1" + inkscape:version="0.46" sodipodi:docname="filelog.svg" sodipodi:docbase="/home/arun/hgbook/en" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective57" /> <marker inkscape:stockid="Arrow1Mend" orient="auto" @@ -189,11 +196,12 @@ inkscape:cx="455.8122" inkscape:cy="520" inkscape:document-units="px" - inkscape:current-layer="layer1" + inkscape:current-layer="g2940" inkscape:window-width="1680" inkscape:window-height="970" - inkscape:window-x="0" - inkscape:window-y="54" /> + inkscape:window-x="3" + inkscape:window-y="46" + showgrid="false" /> <metadata id="metadata7"> <rdf:RDF> @@ -245,7 +253,7 @@ id="tspan2920" x="323.72824" y="416.7626" - style="font-family:Courier">.hg/store/data/README.i</tspan></text> + style="font-family:Courier">.hg/store/data/_r_e_a_d_m_e.i</tspan></text> </g> <g transform="translate(3.79093e-5,-80.1853)"