hgbook

changeset 625:cfdb601a3c8b

Fix imagedata fileref in xml files, and replace ':' with '.' in id attribute
author Dongsheng Song <dongsheng.song@gmail.com>
date Thu Mar 12 15:51:39 2009 +0800 (2009-03-12)
parents 3c5e1c03cc3e
children 83a687a996b2
files en/00book.xml en/appA-cmdref.xml en/appB-mq-ref.xml en/appC-srcinstall.xml en/appD-license.xml en/ch00-preface.xml en/ch01-intro.xml en/ch02-tour-basic.xml en/ch03-tour-merge.xml en/ch04-concepts.xml en/ch05-daily.xml en/ch06-collab.xml en/ch07-filenames.xml en/ch08-branch.xml en/ch09-undo.xml en/ch10-hook.xml en/ch11-template.xml en/ch12-mq.xml en/ch13-mq-collab.xml en/ch14-hgext.xml
line diff
     1.1 --- a/en/00book.xml	Thu Mar 12 15:47:15 2009 +0800
     1.2 +++ b/en/00book.xml	Thu Mar 12 15:51:39 2009 +0800
     1.3 @@ -1,7 +1,7 @@
     1.4  <?xml version="1.0" encoding="UTF-8"?>
     1.5  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
     1.6 -<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
     1.7 - "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
     1.8 +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
     1.9 + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
    1.10  [
    1.11  <!-- Below are references to files in this directory. -->
    1.12  
    1.13 @@ -39,6 +39,11 @@
    1.14  
    1.15  <book id="hg">
    1.16    <title>Mercurial: The Definitive Guide</title>
    1.17 +  
    1.18 +  <!-- hg parents &#x2d;&#x2d;template '{node|short} ({date|shortdate})' 
    1.19 +  <subtitle>Compiled from 8a1d3f1aff17 (2009-03-10)</subtitle>
    1.20 +  -->
    1.21 +  <subtitle>Compiled from $rev_id$</subtitle>
    1.22    <bookinfo>
    1.23      <authorgroup>
    1.24        <author>
     2.1 --- a/en/appA-cmdref.xml	Thu Mar 12 15:47:15 2009 +0800
     2.2 +++ b/en/appA-cmdref.xml	Thu Mar 12 15:51:39 2009 +0800
     2.3 @@ -12,7 +12,7 @@
     2.4  
     2.5  <para>Show differences between revisions for the specified files or
     2.6  directories, using the unified diff format.  For a description of the
     2.7 -unified diff format, see section <xref linkend="sec:mq:patch"/>.</para>
     2.8 +unified diff format, see section <xref linkend="sec.mq.patch"/>.</para>
     2.9  
    2.10  <para>By default, this command does not print diffs for files that Mercurial
    2.11  considers to contain binary data.  To control this behaviour, see the
    2.12 @@ -158,7 +158,7 @@
    2.13  <sect2>
    2.14  <title>Tips and tricks</title>
    2.15  
    2.16 -<sect3 id="cmdref:diff-vs-status">
    2.17 +<sect3 id="cmdref.diff-vs-status">
    2.18  <title>Why do the results of <command role="hg-cmd">hg diff</command> and <command role="hg-cmd">hg status</command> differ?</title>
    2.19  
    2.20  <para>When you run the <command role="hg-cmd">hg status</command> command, you'll see a list of files
     3.1 --- a/en/appB-mq-ref.xml	Thu Mar 12 15:47:15 2009 +0800
     3.2 +++ b/en/appB-mq-ref.xml	Thu Mar 12 15:51:39 2009 +0800
     3.3 @@ -1,10 +1,10 @@
     3.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
     3.5  
     3.6 -<appendix id="chap:mqref">
     3.7 +<appendix id="chap.mqref">
     3.8    <?dbhtml filename="mercurial-queues-reference.html"?>
     3.9    <title>Mercurial Queues reference</title>
    3.10  
    3.11 -  <sect1 id="sec:mqref:cmdref">
    3.12 +  <sect1 id="sec.mqref.cmdref">
    3.13      <title>MQ command reference</title>
    3.14  
    3.15      <para>For an overview of the commands provided by MQ, use the
    3.16 @@ -295,7 +295,7 @@
    3.17  	  role="hg-ext-mq">qpop</command>.</para>
    3.18  
    3.19      </sect2>
    3.20 -    <sect2 id="sec:mqref:cmd:qpush">
    3.21 +    <sect2 id="sec.mqref.cmd.qpush">
    3.22        <title><command role="hg-ext-mq">qpush</command>&emdash;push
    3.23  	patches onto the stack</title>
    3.24  
     4.1 --- a/en/appC-srcinstall.xml	Thu Mar 12 15:47:15 2009 +0800
     4.2 +++ b/en/appC-srcinstall.xml	Thu Mar 12 15:51:39 2009 +0800
     4.3 @@ -1,10 +1,10 @@
     4.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
     4.5  
     4.6 -<appendix id="chap:srcinstall">
     4.7 +<appendix id="chap.srcinstall">
     4.8    <?dbhtml filename="installing-mercurial-from-source.html"?>
     4.9    <title>Installing Mercurial from source</title>
    4.10  
    4.11 -  <sect1 id="sec:srcinstall:unixlike">
    4.12 +  <sect1 id="sec.srcinstall.unixlike">
    4.13      <title>On a Unix-like system</title>
    4.14  
    4.15      <para>If you are using a Unix-like system that has a sufficiently
     5.1 --- a/en/appD-license.xml	Thu Mar 12 15:47:15 2009 +0800
     5.2 +++ b/en/appD-license.xml	Thu Mar 12 15:51:39 2009 +0800
     5.3 @@ -1,6 +1,6 @@
     5.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
     5.5  
     5.6 -<appendix id="cha:opl">
     5.7 +<appendix id="cha.opl">
     5.8    <?dbhtml filename="open-publication-license.html"?>
     5.9    <title>Open Publication License</title>
    5.10  
    5.11 @@ -32,7 +32,7 @@
    5.12  
    5.13      <para>The reference must be immediately followed with any options
    5.14        elected by the author(s) and/or publisher of the document (see
    5.15 -      section <xref linkend="sec:opl:options"/>).</para>
    5.16 +      section <xref linkend="sec.opl.options"/>).</para>
    5.17  
    5.18      <para>Commercial redistribution of Open Publication-licensed
    5.19        material is permitted.</para>
    5.20 @@ -133,7 +133,7 @@
    5.21        </listitem></orderedlist>
    5.22  
    5.23    </sect1>
    5.24 -  <sect1 id="sec:opl:options">
    5.25 +  <sect1 id="sec.opl.options">
    5.26      <title>License options</title>
    5.27  
    5.28      <para>The author(s) and/or publisher of an Open
     6.1 --- a/en/ch00-preface.xml	Thu Mar 12 15:47:15 2009 +0800
     6.2 +++ b/en/ch00-preface.xml	Thu Mar 12 15:51:39 2009 +0800
     6.3 @@ -1,6 +1,6 @@
     6.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
     6.5  
     6.6 -<preface id="chap:preface">
     6.7 +<preface id="chap.preface">
     6.8    <title>Preface</title>
     6.9  
    6.10    <para>Distributed revision control is a relatively new territory,
    6.11 @@ -51,7 +51,7 @@
    6.12        example can show up as having occurred during the same second.
    6.13        You can see this occur in the <literal
    6.14  	role="hg-ext">bisect</literal> example in section <xref
    6.15 -	id="sec:undo:bisect"/>, for instance.</para>
    6.16 +	id="sec.undo.bisect"/>, for instance.</para>
    6.17  
    6.18      <para>So when you're reading examples, don't place too much weight
    6.19        on the dates or times you see in the output of commands.  But
     7.1 --- a/en/ch01-intro.xml	Thu Mar 12 15:47:15 2009 +0800
     7.2 +++ b/en/ch01-intro.xml	Thu Mar 12 15:51:39 2009 +0800
     7.3 @@ -1,6 +1,6 @@
     7.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
     7.5  
     7.6 -<chapter id="chap:intro">
     7.7 +<chapter id="chap.intro">
     7.8    <?dbhtml filename="introduction.html"?>
     7.9    <title>Introduction</title>
    7.10  
    7.11 @@ -50,7 +50,7 @@
    7.12  	    fact, a <emphasis>really</emphasis> good revision control
    7.13  	    tool will even help you to efficiently figure out exactly
    7.14  	    when a problem was introduced (see section <xref
    7.15 -	      linkend="sec:undo:bisect"/> for details).</para></listitem>
    7.16 +	      linkend="sec.undo.bisect"/> for details).</para></listitem>
    7.17  	<listitem><para>It will help you to work simultaneously on,
    7.18  	    and manage the drift between, multiple versions of your
    7.19  	    project.</para></listitem></itemizedlist>
     8.1 --- a/en/ch02-tour-basic.xml	Thu Mar 12 15:47:15 2009 +0800
     8.2 +++ b/en/ch02-tour-basic.xml	Thu Mar 12 15:51:39 2009 +0800
     8.3 @@ -1,10 +1,10 @@
     8.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
     8.5  
     8.6 -<chapter id="chap:tour-basic">
     8.7 +<chapter id="chap.tour-basic">
     8.8    <?dbhtml filename="a-tour-of-mercurial-the-basics.html"?>
     8.9    <title>A tour of Mercurial: the basics</title>
    8.10  
    8.11 -  <sect1 id="sec:tour:install">
    8.12 +  <sect1 id="sec.tour.install">
    8.13      <title>Installing Mercurial on your system</title>
    8.14  
    8.15      <para>Prebuilt binary packages of Mercurial are available for
    8.16 @@ -250,7 +250,7 @@
    8.17  	log</command> is purely a summary; it is missing a lot of
    8.18        detail.</para>
    8.19  
    8.20 -    <para>Figure <xref linkend="fig:tour-basic:history"/> provides a
    8.21 +    <para>Figure <xref linkend="fig.tour-basic.history"/> provides a
    8.22        graphical representation of the history of the <filename
    8.23  	class="directory">hello</filename> repository, to make it a
    8.24        little easier to see which direction history is
    8.25 @@ -258,9 +258,9 @@
    8.26        several times in this chapter and the chapter that
    8.27        follows.</para>
    8.28  
    8.29 -    <informalfigure id="fig:tour-basic:history">
    8.30 +    <informalfigure id="fig.tour-basic.history">
    8.31        <mediaobject>
    8.32 -	<imageobject><imagedata fileref="tour-history"/></imageobject>
    8.33 +	<imageobject><imagedata fileref="images/tour-history.png"/></imageobject>
    8.34  	<textobject><phrase>XXX add text</phrase></textobject>
    8.35  	<caption><para>Graphical history of the <filename
    8.36  	      class="directory">hello</filename>
    8.37 @@ -361,7 +361,7 @@
    8.38  	<option role="hg-opt-log">--patch</option>) option.  This
    8.39  	displays the content of a change as a <emphasis>unified
    8.40  	  diff</emphasis> (if you've never seen a unified diff before,
    8.41 -	see section <xref linkend="sec:mq:patch"/> for an
    8.42 +	see section <xref linkend="sec.mq.patch"/> for an
    8.43  	overview).</para>
    8.44  
    8.45        &interaction.tour.log-vp;
    8.46 @@ -519,7 +519,7 @@
    8.47  	    <envar role="rc-item-ui">username</envar> entry, that will
    8.48  	    be used next.  To see what the contents of this file
    8.49  	    should look like, refer to section <xref
    8.50 -	      linkend="sec:tour-basic:username"/>
    8.51 +	      linkend="sec.tour-basic.username"/>
    8.52  	    below.</para></listitem>
    8.53  	<listitem><para>If you have set the <envar>EMAIL</envar>
    8.54  	    environment variable, this will be used
    8.55 @@ -543,7 +543,7 @@
    8.56  	and most robust way to set a username for yourself is by
    8.57  	creating a <filename role="special">.hgrc</filename> file; see
    8.58  	below for details.</para>
    8.59 -      <sect3 id="sec:tour-basic:username">
    8.60 +      <sect3 id="sec.tour-basic.username">
    8.61  	<title>Creating a Mercurial configuration file</title>
    8.62  
    8.63  	<para>To set a user name, use your favourite editor
    8.64 @@ -684,7 +684,7 @@
    8.65  	look at a few ways that we can propagate this change into
    8.66  	other repositories.</para>
    8.67  
    8.68 -    <sect2 id="sec:tour:pull">
    8.69 +    <sect2 id="sec.tour.pull">
    8.70        <title>Pulling changes from another repository</title>
    8.71        <para>To get started, let's clone our original
    8.72  	  <filename class="directory">hello</filename> repository,
    8.73 @@ -734,7 +734,7 @@
    8.74        <para>We have so far glossed over the relationship between a
    8.75  	repository and its working directory.  The <command
    8.76  	  role="hg-cmd">hg pull</command> command that we ran in
    8.77 -	section <xref linkend="sec:tour:pull"/> brought changes
    8.78 +	section <xref linkend="sec.tour.pull"/> brought changes
    8.79  	into the repository, but if we check, there's no sign of those
    8.80  	changes in the working directory.  This is because <command
    8.81  	  role="hg-cmd">hg pull</command> does not (by default) touch
    8.82 @@ -761,7 +761,7 @@
    8.83  
    8.84        <para>If you look back at the output of <command
    8.85  	  role="hg-cmd">hg pull</command> in section <xref
    8.86 -	    linkend="sec:tour:pull"/> when we ran it without <option
    8.87 +	    linkend="sec.tour.pull"/> when we ran it without <option
    8.88  	  role="hg-opt-pull">-u</option>, you can see that it printed
    8.89  	a helpful reminder that we'd have to take an explicit step to
    8.90  	update the working directory:</para>
    8.91 @@ -775,7 +775,7 @@
    8.92        &interaction.tour.parents;
    8.93  
    8.94        <para>If you look back at figure <xref
    8.95 -	  linkend="fig:tour-basic:history"/>,
    8.96 +	  linkend="fig.tour-basic.history"/>,
    8.97  	you'll see arrows connecting each changeset.  The node that
    8.98  	the arrow leads <emphasis>from</emphasis> in each case is a
    8.99  	parent, and the node that the arrow leads
     9.1 --- a/en/ch03-tour-merge.xml	Thu Mar 12 15:47:15 2009 +0800
     9.2 +++ b/en/ch03-tour-merge.xml	Thu Mar 12 15:51:39 2009 +0800
     9.3 @@ -1,6 +1,6 @@
     9.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
     9.5  
     9.6 -<chapter id="chap:tour-merge">
     9.7 +<chapter id="chap.tour-merge">
     9.8    <?dbhtml filename="a-tour-of-mercurial-merging-work.html"?>
     9.9    <title>A tour of Mercurial: merging work</title>
    9.10  
    9.11 @@ -38,13 +38,13 @@
    9.12        <filename>hello.c</filename> with different contents.  The
    9.13        histories of the two repositories have also diverged, as
    9.14        illustrated in figure <xref
    9.15 -	linkend="fig:tour-merge:sep-repos"/>.</para>
    9.16 +	linkend="fig.tour-merge.sep-repos"/>.</para>
    9.17  
    9.18      &interaction.tour.merge.cat;
    9.19  
    9.20 -    <informalfigure id="fig:tour-merge:sep-repos">
    9.21 +    <informalfigure id="fig.tour-merge.sep-repos">
    9.22        <mediaobject>
    9.23 -	<imageobject><imagedata fileref="tour-merge-sep-repos"/></imageobject>
    9.24 +	<imageobject><imagedata fileref="images/tour-merge-sep-repos.png"/></imageobject>
    9.25  	<textobject><phrase>XXX add text</phrase></textobject>
    9.26  	<caption><para>Divergent recent histories of the <filename
    9.27  	      class="directory">my-hello</filename> and <filename
    9.28 @@ -71,9 +71,9 @@
    9.29  	children, but a repository can contain more than one
    9.30  	head.</para>
    9.31  
    9.32 -      <informalfigure id="fig:tour-merge:pull">
    9.33 +      <informalfigure id="fig.tour-merge.pull">
    9.34  	<mediaobject><imageobject><imagedata
    9.35 -				    fileref="tour-merge-pull"/></imageobject><textobject><phrase>XXX 
    9.36 +				    fileref="images/tour-merge-pull.png"/></imageobject><textobject><phrase>XXX 
    9.37  	      add text</phrase></textobject>
    9.38  	  <caption><para>Repository contents after pulling from
    9.39  	      <filename class="directory">my-hello</filename> into
    9.40 @@ -82,14 +82,14 @@
    9.41  	</mediaobject>
    9.42        </informalfigure>
    9.43  
    9.44 -      <para>In figure <xref linkend="fig:tour-merge:pull"/>, you can
    9.45 +      <para>In figure <xref linkend="fig.tour-merge.pull"/>, you can
    9.46  	see the effect of the pull from <filename
    9.47  	  class="directory">my-hello</filename> into <filename
    9.48  	  class="directory">my-new-hello</filename>.  The history that
    9.49  	was already present in <filename
    9.50  	  class="directory">my-new-hello</filename> is untouched, but
    9.51  	a new revision has been added.  By referring to figure <xref
    9.52 -	  linkend="fig:tour-merge:sep-repos"/>, we can see that the
    9.53 +	  linkend="fig.tour-merge.sep-repos"/>, we can see that the
    9.54  	<emphasis>changeset ID</emphasis> remains the same in the new
    9.55  	repository, but the <emphasis>revision number</emphasis> has
    9.56  	changed.  (This, incidentally, is a fine example of why it's
    9.57 @@ -118,10 +118,10 @@
    9.58  
    9.59        &interaction.tour.merge.merge;
    9.60  
    9.61 -      <informalfigure id="fig:tour-merge:merge">
    9.62 +      <informalfigure id="fig.tour-merge.merge">
    9.63  
    9.64  	<mediaobject><imageobject><imagedata
    9.65 -				    fileref="tour-merge-merge"/></imageobject><textobject><phrase>XXX 
    9.66 +				    fileref="images/tour-merge-merge.png"/></imageobject><textobject><phrase>XXX 
    9.67  	      add text</phrase></textobject>
    9.68  	  <caption><para>Working directory and repository during
    9.69  	      merge, and following commit</para></caption>
    9.70 @@ -155,7 +155,7 @@
    9.71        &interaction.tour.merge.tip;
    9.72  
    9.73        <para>In figure <xref
    9.74 -	  linkend="fig:tour-merge:merge"/>, you can see a
    9.75 +	  linkend="fig.tour-merge.merge"/>, you can see a
    9.76  	representation of what happens to the working directory during
    9.77  	the merge, and how this affects the repository when the commit
    9.78  	happens.  During the merge, the working directory has two
    9.79 @@ -176,14 +176,14 @@
    9.80  
    9.81      <informalfigure>
    9.82  
    9.83 -      <mediaobject id="fig:tour-merge:conflict">
    9.84 -	<imageobject><imagedata fileref="tour-merge-conflict"/></imageobject>
    9.85 +      <mediaobject id="fig.tour-merge.conflict">
    9.86 +	<imageobject><imagedata fileref="images/tour-merge-conflict.png"/></imageobject>
    9.87  	<textobject><phrase>XXX add text</phrase></textobject>
    9.88  	<caption><para>Conflicting changes to a
    9.89  	    document</para></caption>      </mediaobject>
    9.90      </informalfigure>
    9.91  
    9.92 -    <para>Figure <xref linkend="fig:tour-merge:conflict"/> illustrates
    9.93 +    <para>Figure <xref linkend="fig.tour-merge.conflict"/> illustrates
    9.94        an instance of two conflicting changes to a document.  We
    9.95        started with a single version of the file; then we made some
    9.96        changes; while someone else made different changes to the same
    9.97 @@ -213,7 +213,7 @@
    9.98  	<command>kdiff3</command>, which I'll use to describe the
    9.99  	features that are common to graphical file merging tools.  You
   9.100  	can see a screenshot of <command>kdiff3</command> in action in
   9.101 -	figure <xref linkend="fig:tour-merge:kdiff3"/>.  The kind of
   9.102 +	figure <xref linkend="fig.tour-merge.kdiff3"/>.  The kind of
   9.103  	merge it is performing is called a <emphasis>three-way
   9.104  	  merge</emphasis>, because there are three different versions
   9.105  	of the file of interest to us.  The tool thus splits the upper
   9.106 @@ -243,9 +243,9 @@
   9.107  	in any of them, the others are updated to display the
   9.108  	corresponding sections of their respective files.</para>
   9.109  
   9.110 -      <informalfigure id="fig:tour-merge:kdiff3">
   9.111 -	<mediaobject><imageobject><imagedata
   9.112 -				    fileref="kdiff3"/></imageobject><textobject><phrase>XXX 
   9.113 +      <informalfigure id="fig.tour-merge.kdiff3">
   9.114 +	<mediaobject><imageobject><imagedata width="100%"
   9.115 +				    fileref="images/kdiff3.png"/></imageobject><textobject><phrase>XXX 
   9.116  	      add text</phrase></textobject>
   9.117  	  <caption><para>Using <command>kdiff3</command> to merge
   9.118  	      versions of a file</para></caption>
   9.119 @@ -270,7 +270,7 @@
   9.120        <title>A worked example</title>
   9.121  
   9.122        <para>In this example, we will reproduce the file modification
   9.123 -	history of figure <xref linkend="fig:tour-merge:conflict"/>
   9.124 +	history of figure <xref linkend="fig.tour-merge.conflict"/>
   9.125  	above.  Let's begin by creating a repository with a base
   9.126  	version of our document.</para>
   9.127  
   9.128 @@ -331,7 +331,7 @@
   9.129  
   9.130      </sect2>
   9.131    </sect1>
   9.132 -  <sect1 id="sec:tour-merge:fetch">
   9.133 +  <sect1 id="sec.tour-merge.fetch">
   9.134      <title>Simplifying the pull-merge-commit sequence</title>
   9.135  
   9.136      <para>The process of merging changes as outlined above is
    10.1 --- a/en/ch04-concepts.xml	Thu Mar 12 15:47:15 2009 +0800
    10.2 +++ b/en/ch04-concepts.xml	Thu Mar 12 15:51:39 2009 +0800
    10.3 @@ -1,6 +1,6 @@
    10.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
    10.5  
    10.6 -<chapter id="chap:concepts">
    10.7 +<chapter id="chap.concepts">
    10.8    <?dbhtml filename="behind-the-scenes.html"?>
    10.9    <title>Behind the scenes</title>
   10.10  
   10.11 @@ -47,11 +47,11 @@
   10.12  	file.  The correspondence between a file in the working
   10.13  	directory and the filelog that tracks its history in the
   10.14  	repository is illustrated in figure <xref
   10.15 -	  linkend="fig:concepts:filelog"/>.</para>
   10.16 -
   10.17 -      <informalfigure id="fig:concepts:filelog">
   10.18 +	  linkend="fig.concepts.filelog"/>.</para>
   10.19 +
   10.20 +      <informalfigure id="fig.concepts.filelog">
   10.21  	<mediaobject><imageobject><imagedata
   10.22 -				    fileref="filelog"/></imageobject><textobject><phrase>XXX 
   10.23 +				    fileref="images/filelog.png"/></imageobject><textobject><phrase>XXX 
   10.24  	      add text</phrase></textobject>
   10.25  	  <caption><para>Relationships between files in working
   10.26  	      directory and filelogs in
   10.27 @@ -97,11 +97,11 @@
   10.28  	manifest.  A revision of the manifest stores a pointer to a
   10.29  	single revision of each filelog tracked when that changeset
   10.30  	was created.  These relationships are illustrated in figure
   10.31 -	<xref linkend="fig:concepts:metadata"/>.</para>
   10.32 -
   10.33 -      <informalfigure id="fig:concepts:metadata">
   10.34 +	<xref linkend="fig.concepts.metadata"/>.</para>
   10.35 +
   10.36 +      <informalfigure id="fig.concepts.metadata">
   10.37  	<mediaobject><imageobject><imagedata
   10.38 -				    fileref="metadata"/></imageobject><textobject><phrase>XXX 
   10.39 +				    fileref="images/metadata.png"/></imageobject><textobject><phrase>XXX 
   10.40  	      add text</phrase></textobject><caption><para>Metadata
   10.41  	      relationships</para></caption>
   10.42  	</mediaobject>
   10.43 @@ -145,7 +145,7 @@
   10.44  	doesn't need to treat text as special.</para>
   10.45  
   10.46      </sect2>
   10.47 -    <sect2 id="sec:concepts:txn">
   10.48 +    <sect2 id="sec.concepts.txn">
   10.49        <title>Safe operation</title>
   10.50  
   10.51        <para>Mercurial only ever <emphasis>appends</emphasis> data to
   10.52 @@ -184,9 +184,9 @@
   10.53  	file accumulates, the more revisions you must read, hence the
   10.54  	longer it takes to reconstruct a particular revision.</para>
   10.55  
   10.56 -      <informalfigure id="fig:concepts:snapshot">
   10.57 +      <informalfigure id="fig.concepts.snapshot">
   10.58  	<mediaobject><imageobject><imagedata
   10.59 -				    fileref="snapshot"/></imageobject><textobject><phrase>XXX 
   10.60 +				    fileref="images/snapshot.png"/></imageobject><textobject><phrase>XXX 
   10.61  	      add text</phrase></textobject><caption><para>Snapshot of
   10.62  	      a revlog, with incremental
   10.63  	      deltas</para></caption></mediaobject>
   10.64 @@ -201,7 +201,7 @@
   10.65  	quickly.  This approach works so well that it has since been
   10.66  	copied by several other revision control systems.</para>
   10.67  
   10.68 -      <para>Figure <xref linkend="fig:concepts:snapshot"/> illustrates
   10.69 +      <para>Figure <xref linkend="fig.concepts.snapshot"/> illustrates
   10.70  	the idea.  In an entry in a revlog's index file, Mercurial
   10.71  	stores the range of entries from the data file that it must
   10.72  	read to reconstruct a particular revision.</para>
   10.73 @@ -273,7 +273,7 @@
   10.74        <quote>there is no parent here</quote>.  This hash is simply a
   10.75        string of zeroes.</para>
   10.76  
   10.77 -    <para>In figure <xref linkend="fig:concepts:revlog"/>, you can see
   10.78 +    <para>In figure <xref linkend="fig.concepts.revlog"/>, you can see
   10.79        an example of the conceptual structure of a revlog.  Filelogs,
   10.80        manifests, and changelogs all have this same structure; they
   10.81        differ only in the kind of data stored in each delta or
   10.82 @@ -288,9 +288,9 @@
   10.83        revision that represents a merge between branches has two normal
   10.84        revision IDs in its parent slots.</para>
   10.85  
   10.86 -    <informalfigure id="fig:concepts:revlog">
   10.87 +    <informalfigure id="fig.concepts.revlog">
   10.88        <mediaobject><imageobject><imagedata
   10.89 -				  fileref="revlog"/></imageobject><textobject><phrase>XXX 
   10.90 +				  fileref="images/revlog.png"/></imageobject><textobject><phrase>XXX 
   10.91  	    add text</phrase></textobject></mediaobject>
   10.92      </informalfigure>
   10.93  
   10.94 @@ -337,23 +337,23 @@
   10.95  	dirstate as <emphasis>the parents of a new
   10.96  	  changeset</emphasis> when you perform a commit.</para>
   10.97  
   10.98 -      <informalfigure id="fig:concepts:wdir">
   10.99 +      <informalfigure id="fig.concepts.wdir">
  10.100  	<mediaobject><imageobject><imagedata
  10.101 -				    fileref="wdir"/></imageobject><textobject><phrase>XXX 
  10.102 +				    fileref="images/wdir.png"/></imageobject><textobject><phrase>XXX 
  10.103  	      add text</phrase></textobject><caption><para>The working
  10.104  	      directory can have two
  10.105  	      parents</para></caption></mediaobject>
  10.106        </informalfigure>
  10.107  
  10.108 -      <para>Figure <xref linkend="fig:concepts:wdir"/> shows the
  10.109 +      <para>Figure <xref linkend="fig.concepts.wdir"/> shows the
  10.110  	normal state of the working directory, where it has a single
  10.111  	changeset as parent.  That changeset is the
  10.112  	<emphasis>tip</emphasis>, the newest changeset in the
  10.113  	repository that has no children.</para>
  10.114  
  10.115 -      <informalfigure id="fig:concepts:wdir-after-commit">
  10.116 +      <informalfigure id="fig.concepts.wdir-after-commit">
  10.117  	<mediaobject><imageobject><imagedata
  10.118 -				    fileref="wdir-after-commit"/></imageobject><textobject><phrase>XXX 
  10.119 +				    fileref="images/wdir-after-commit.png"/></imageobject><textobject><phrase>XXX 
  10.120  	      add text</phrase></textobject><caption><para>The working
  10.121  	      directory gains new parents after a
  10.122  	      commit</para></caption></mediaobject>
  10.123 @@ -370,7 +370,7 @@
  10.124        <para>After a commit, Mercurial will update the parents of the
  10.125  	working directory, so that the first parent is the ID of the
  10.126  	new changeset, and the second is the null ID.  This is shown
  10.127 -	in figure <xref linkend="fig:concepts:wdir-after-commit"/>.
  10.128 +	in figure <xref linkend="fig.concepts.wdir-after-commit"/>.
  10.129  	Mercurial
  10.130  	doesn't touch any of the files in the working directory when
  10.131  	you commit; it just modifies the dirstate to note its new
  10.132 @@ -389,11 +389,11 @@
  10.133  	interested in, and then examine the files in the working
  10.134  	directory directly to see their contents as they were when you
  10.135  	committed that changeset.  The effect of this is shown in
  10.136 -	figure <xref linkend="fig:concepts:wdir-pre-branch"/>.</para>
  10.137 -
  10.138 -      <informalfigure id="fig:concepts:wdir-pre-branch">
  10.139 +	figure <xref linkend="fig.concepts.wdir-pre-branch"/>.</para>
  10.140 +
  10.141 +      <informalfigure id="fig.concepts.wdir-pre-branch">
  10.142  	<mediaobject><imageobject><imagedata
  10.143 -				    fileref="wdir-pre-branch"/></imageobject><textobject><phrase>XXX 
  10.144 +				    fileref="images/wdir-pre-branch.png"/></imageobject><textobject><phrase>XXX 
  10.145  	      add text</phrase></textobject><caption><para>The working
  10.146  	      directory, updated to an older
  10.147  	      changeset</para></caption></mediaobject>
  10.148 @@ -408,11 +408,11 @@
  10.149  	contains two changesets that have no children; we call these
  10.150  	<emphasis>heads</emphasis>.  You can see the structure that
  10.151  	this creates in figure <xref
  10.152 -	  linkend="fig:concepts:wdir-branch"/>.</para>
  10.153 -
  10.154 -      <informalfigure id="fig:concepts:wdir-branch">
  10.155 +	  linkend="fig.concepts.wdir-branch"/>.</para>
  10.156 +
  10.157 +      <informalfigure id="fig.concepts.wdir-branch">
  10.158  	<mediaobject><imageobject><imagedata
  10.159 -				    fileref="wdir-branch"/></imageobject><textobject><phrase>XXX 
  10.160 +				    fileref="images/wdir-branch.png"/></imageobject><textobject><phrase>XXX 
  10.161  	      add text</phrase></textobject><caption><para>After a
  10.162  	      commit made while synced to an older
  10.163  	      changeset</para></caption></mediaobject>
  10.164 @@ -449,11 +449,11 @@
  10.165  	command, Mercurial leaves the first parent of the working
  10.166  	directory unchanged, and sets the second parent to the
  10.167  	changeset you're merging with, as shown in figure <xref
  10.168 -	  linkend="fig:concepts:wdir-merge"/>.</para>
  10.169 -
  10.170 -      <informalfigure id="fig:concepts:wdir-merge">
  10.171 +	  linkend="fig.concepts.wdir-merge"/>.</para>
  10.172 +
  10.173 +      <informalfigure id="fig.concepts.wdir-merge">
  10.174  	<mediaobject><imageobject><imagedata
  10.175 -				    fileref="wdir-merge"/></imageobject><textobject><phrase>XXX 
  10.176 +				    fileref="images/wdir-merge.png"/></imageobject><textobject><phrase>XXX 
  10.177  	      add text</phrase></textobject><caption><para>Merging two
  10.178  	      heads</para></caption></mediaobject>
  10.179        </informalfigure>
  10.180 @@ -582,7 +582,7 @@
  10.181  
  10.182        <para>Appending to files isn't the whole story when it comes to
  10.183  	guaranteeing that a reader won't see a partial write.  If you
  10.184 -	recall figure <xref linkend="fig:concepts:metadata"/>,
  10.185 +	recall figure <xref linkend="fig.concepts.metadata"/>,
  10.186  	revisions in the
  10.187  	changelog point to revisions in the manifest, and revisions in
  10.188  	the manifest point to revisions in filelogs.  This hierarchy
    11.1 --- a/en/ch05-daily.xml	Thu Mar 12 15:47:15 2009 +0800
    11.2 +++ b/en/ch05-daily.xml	Thu Mar 12 15:51:39 2009 +0800
    11.3 @@ -1,6 +1,6 @@
    11.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
    11.5  
    11.6 -<chapter id="chap:daily">
    11.7 +<chapter id="chap.daily">
    11.8    <?dbhtml filename="mercurial-in-daily-use.html"?>
    11.9    <title>Mercurial in daily use</title>
   11.10  
   11.11 @@ -274,7 +274,7 @@
   11.12        &interaction.daily.copy.merge;
   11.13  
   11.14      </sect2>
   11.15 -    <sect2 id="sec:daily:why-copy">
   11.16 +    <sect2 id="sec.daily.why-copy">
   11.17        <title>Why should changes follow copies?</title>
   11.18  
   11.19        <para>This behaviour, of changes to a file propagating out to
   11.20 @@ -328,7 +328,7 @@
   11.21  	Unix-like systems, that's <command>cp</command>) to make a
   11.22  	copy of a file, then <command role="hg-cmd">hg add</command>
   11.23  	the new copy by hand.  Before you do so, though, please do
   11.24 -	reread section <xref linkend="sec:daily:why-copy"/>, and make
   11.25 +	reread section <xref linkend="sec.daily.why-copy"/>, and make
   11.26  	an informed
   11.27  	decision that this behaviour is not appropriate to your
   11.28  	specific case.</para>
   11.29 @@ -532,7 +532,7 @@
   11.30      <para>For more information about the <command role="hg-cmd">hg
   11.31  	revert</command> command, and details about how to deal with
   11.32        changes you have already committed, see chapter <xref
   11.33 -	linkend="chap:undo"/>.</para>
   11.34 +	linkend="chap.undo"/>.</para>
   11.35  
   11.36    </sect1>
   11.37  </chapter>
    12.1 --- a/en/ch06-collab.xml	Thu Mar 12 15:47:15 2009 +0800
    12.2 +++ b/en/ch06-collab.xml	Thu Mar 12 15:51:39 2009 +0800
    12.3 @@ -1,6 +1,6 @@
    12.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
    12.5  
    12.6 -<chapter id="cha:collab">
    12.7 +<chapter id="cha.collab">
    12.8    <?dbhtml filename="collaborating-with-other-people.html"?>
    12.9    <title>Collaborating with other people</title>
   12.10  
   12.11 @@ -47,12 +47,12 @@
   12.12        first is using the <command role="hg-cmd">hg serve</command>
   12.13        command, which is best suited to short-term
   12.14        <quote>lightweight</quote> serving.  See section <xref
   12.15 -	linkend="sec:collab:serve"/> below for details of how to use
   12.16 +	linkend="sec.collab.serve"/> below for details of how to use
   12.17        this command.  If you have a long-lived repository that you'd
   12.18        like to make permanently available, Mercurial has built-in
   12.19        support for the CGI (Common Gateway Interface) standard, which
   12.20        all common web servers support.  See section <xref
   12.21 -	linkend="sec:collab:cgi"/> for details of CGI
   12.22 +	linkend="sec.collab.cgi"/> for details of CGI
   12.23        configuration.</para>
   12.24  
   12.25    </sect1>
   12.26 @@ -120,7 +120,7 @@
   12.27  	  role="hg-cmd">hg serve</command> does not require any fancy
   12.28  	server infrastructure.  You can get started with <command
   12.29  	  role="hg-cmd">hg serve</command> in moments, by reading
   12.30 -	section <xref linkend="sec:collab:serve"/> below.  Then simply
   12.31 +	section <xref linkend="sec.collab.serve"/> below.  Then simply
   12.32  	tell
   12.33  	the person next to you that you're running a server, send the
   12.34  	URL to them in an instant message, and you immediately have a
   12.35 @@ -165,9 +165,9 @@
   12.36        <para>In this kind of scenario, people usually use the
   12.37  	<command>ssh</command> protocol to securely push changes to
   12.38  	the central repository, as documented in section <xref
   12.39 -	  linkend="sec:collab:ssh"/>.  It's also
   12.40 +	  linkend="sec.collab.ssh"/>.  It's also
   12.41  	usual to publish a read-only copy of the repository over HTTP
   12.42 -	using CGI, as in section <xref linkend="sec:collab:cgi"/>.
   12.43 +	using CGI, as in section <xref linkend="sec.collab.cgi"/>.
   12.44  	Publishing over HTTP
   12.45  	satisfies the needs of people who don't have push access, and
   12.46  	those who want to use web browsers to browse the repository's
   12.47 @@ -270,9 +270,9 @@
   12.48  	People working on an individual branch are typically quite
   12.49  	isolated from developments on other branches.</para>
   12.50  
   12.51 -      <informalfigure id="fig:collab:feature-branches">
   12.52 +      <informalfigure id="fig.collab.feature-branches">
   12.53  	<mediaobject><imageobject><imagedata
   12.54 -				    fileref="feature-branches"/></imageobject><textobject><phrase>XXX 
   12.55 +				    fileref="images/feature-branches.png"/></imageobject><textobject><phrase>XXX 
   12.56  	      add text</phrase></textobject><caption><para>Feature
   12.57  	      branches</para></caption></mediaobject>
   12.58        </informalfigure>
   12.59 @@ -408,7 +408,7 @@
   12.60  	in which your team may be moving at once.  Even though this
   12.61  	subject is intimately related to how your team collaborates,
   12.62  	it's dense enough to merit treatment of its own, in chapter
   12.63 -	<xref linkend="chap:branch"/>.</para>
   12.64 +	<xref linkend="chap.branch"/>.</para>
   12.65  
   12.66      </sect2>
   12.67    </sect1>
   12.68 @@ -419,7 +419,7 @@
   12.69        serving data to your collaborators.</para>
   12.70  
   12.71    </sect1>
   12.72 -  <sect1 id="sec:collab:serve">
   12.73 +  <sect1 id="sec.collab.serve">
   12.74      <title>Informal sharing with <command role="hg-cmd">hg
   12.75  	serve</command></title>
   12.76  
   12.77 @@ -498,7 +498,7 @@
   12.78  
   12.79      </sect2>
   12.80    </sect1>
   12.81 -  <sect1 id="sec:collab:ssh">
   12.82 +  <sect1 id="sec.collab.ssh">
   12.83      <title>Using the Secure Shell (ssh) protocol</title>
   12.84  
   12.85      <para>You can pull and push changes securely over a network
   12.86 @@ -859,7 +859,7 @@
   12.87  
   12.88      </sect2>
   12.89    </sect1>
   12.90 -  <sect1 id="sec:collab:cgi">
   12.91 +  <sect1 id="sec.collab.cgi">
   12.92      <title>Serving over HTTP using CGI</title>
   12.93  
   12.94      <para>Depending on how ambitious you are, configuring Mercurial's
   12.95 @@ -951,7 +951,7 @@
   12.96  	must not be writable by others.</para>
   12.97        <programlisting>chmod 755 ~/public_html</programlisting>
   12.98  
   12.99 -      <sect3 id="sec:collab:wtf">
  12.100 +      <sect3 id="sec.collab.wtf">
  12.101  	<title>What could <emphasis>possibly</emphasis> go
  12.102  	  wrong?</title>
  12.103  
  12.104 @@ -1118,7 +1118,7 @@
  12.105  	display an empty list of repositories.  If you get a blank
  12.106  	window or error message, try walking through the list of
  12.107  	potential problems in section <xref
  12.108 -	  linkend="sec:collab:wtf"/>.</para>
  12.109 +	  linkend="sec.collab.wtf"/>.</para>
  12.110  
  12.111        <para>The <filename role="special">hgwebdir.cgi</filename>
  12.112  	script relies on an external configuration file.  By default,
  12.113 @@ -1317,7 +1317,7 @@
  12.114  	    <literal>default</literal> and <literal>gitweb</literal>
  12.115  	    (the latter is much more visually attractive).  You can
  12.116  	    also specify a custom template of your own; see chapter
  12.117 -	    <xref linkend="chap:template"/> for details.
  12.118 +	    <xref linkend="chap.template"/> for details.
  12.119  	    Here, you can see how to enable the
  12.120  	    <literal>gitweb</literal> style.</para>
  12.121  	  <programlisting>[web] style = gitweb</programlisting>
    13.1 --- a/en/ch07-filenames.xml	Thu Mar 12 15:47:15 2009 +0800
    13.2 +++ b/en/ch07-filenames.xml	Thu Mar 12 15:51:39 2009 +0800
    13.3 @@ -1,6 +1,6 @@
    13.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
    13.5  
    13.6 -<chapter id="chap:names">
    13.7 +<chapter id="chap.names">
    13.8    <?dbhtml filename="file-names-and-pattern-matching.html"?>
    13.9    <title>File names and pattern matching</title>
   13.10  
   13.11 @@ -274,7 +274,7 @@
   13.12      <para>XXX.</para>
   13.13  
   13.14    </sect1>
   13.15 -  <sect1 id="sec:names:case">
   13.16 +  <sect1 id="sec.names.case">
   13.17      <title>Case sensitivity</title>
   13.18  
   13.19      <para>If you're working in a mixed development environment that
    14.1 --- a/en/ch08-branch.xml	Thu Mar 12 15:47:15 2009 +0800
    14.2 +++ b/en/ch08-branch.xml	Thu Mar 12 15:51:39 2009 +0800
    14.3 @@ -1,6 +1,6 @@
    14.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
    14.5  
    14.6 -<chapter id="chap:branch">
    14.7 +<chapter id="chap.branch">
    14.8    <?dbhtml filename="managing-releases-and-branchy-development.html"?>
    14.9    <title>Managing releases and branchy development</title>
   14.10  
    15.1 --- a/en/ch09-undo.xml	Thu Mar 12 15:47:15 2009 +0800
    15.2 +++ b/en/ch09-undo.xml	Thu Mar 12 15:51:39 2009 +0800
    15.3 @@ -1,6 +1,6 @@
    15.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
    15.5  
    15.6 -<chapter id="chap:undo">
    15.7 +<chapter id="chap.undo">
    15.8    <?dbhtml filename="finding-and-fixing-mistakes.html"?>
    15.9    <title>Finding and fixing mistakes</title>
   15.10  
   15.11 @@ -27,17 +27,17 @@
   15.12  	less annoying.</para>
   15.13  
   15.14      </sect2>
   15.15 -    <sect2 id="sec:undo:rollback">
   15.16 +    <sect2 id="sec.undo.rollback">
   15.17        <title>Rolling back a transaction</title>
   15.18  
   15.19 -      <para>In section <xref linkend="sec:concepts:txn"/>, I mentioned
   15.20 +      <para>In section <xref linkend="sec.concepts.txn"/>, I mentioned
   15.21  	that Mercurial treats each modification of a repository as a
   15.22  	<emphasis>transaction</emphasis>.  Every time you commit a
   15.23  	changeset or pull changes from another repository, Mercurial
   15.24  	remembers what you did.  You can undo, or <emphasis>roll
   15.25  	  back</emphasis>, exactly one of these actions using the
   15.26  	<command role="hg-cmd">hg rollback</command> command.  (See
   15.27 -	section <xref linkend="sec:undo:rollback-after-push"/> for an
   15.28 +	section <xref linkend="sec.undo.rollback-after-push"/> for an
   15.29  	important caveat about the use of this command.)</para>
   15.30  
   15.31        <para>Here's a mistake that I often find myself making:
   15.32 @@ -111,7 +111,7 @@
   15.33  	need to undo this mistake.</para>
   15.34  
   15.35      </sect2>
   15.36 -    <sect2 id="sec:undo:rollback-after-push">
   15.37 +    <sect2 id="sec.undo.rollback-after-push">
   15.38        <title>Rolling back is useless once you've pushed</title>
   15.39  
   15.40        <para>The value of the <command role="hg-cmd">hg
   15.41 @@ -214,7 +214,7 @@
   15.42  	  the file to its unmodified contents.</para>
   15.43        </listitem></itemizedlist>
   15.44  
   15.45 -    <sect2 id="sec:undo:mgmt">
   15.46 +    <sect2 id="sec.undo.mgmt">
   15.47        <title>File management errors</title>
   15.48  
   15.49        <para>The <command role="hg-cmd">hg revert</command> command is
   15.50 @@ -306,7 +306,7 @@
   15.51        modifying or erasing it.  It's the right tool to use if you're
   15.52        fixing bugs, but not if you're trying to undo some change that
   15.53        has catastrophic consequences.  To deal with those, see section
   15.54 -      <xref linkend="sec:undo:aaaiiieee"/>.</para>
   15.55 +      <xref linkend="sec.undo.aaaiiieee"/>.</para>
   15.56  
   15.57      <sect2>
   15.58        <title>Backing out a changeset</title>
   15.59 @@ -354,13 +354,13 @@
   15.60  	that <command role="hg-cmd">hg backout</command> has created
   15.61  	is a child of the changeset we backed out.  It's easier to see
   15.62  	this in figure <xref
   15.63 -	  linkend="fig:undo:backout"/>, which presents a graphical
   15.64 +	  linkend="fig.undo.backout"/>, which presents a graphical
   15.65  	view of the change history.  As you can see, the history is
   15.66  	nice and linear.</para>
   15.67  
   15.68 -      <informalfigure id="fig:undo:backout">
   15.69 +      <informalfigure id="fig.undo.backout">
   15.70  	<mediaobject><imageobject><imagedata
   15.71 -				    fileref="undo-simple"/></imageobject><textobject><phrase>XXX 
   15.72 +				    fileref="images/undo-simple.png"/></imageobject><textobject><phrase>XXX 
   15.73  	      add text</phrase></textobject><caption><para>Backing out
   15.74  	      a change using the <command role="hg-cmd">hg
   15.75  		backout</command>
   15.76 @@ -393,7 +393,7 @@
   15.77        &interaction.backout.non-tip.cat;
   15.78  
   15.79        <para>As the graphical history in figure <xref
   15.80 -	  linkend="fig:undo:backout-non-tip"/> illustrates, Mercurial
   15.81 +	  linkend="fig.undo.backout-non-tip"/> illustrates, Mercurial
   15.82  	actually commits <emphasis>two</emphasis> changes in this kind
   15.83  	of situation (the box-shaped nodes are the ones that Mercurial
   15.84  	commits automatically).  Before Mercurial begins the backout
   15.85 @@ -406,9 +406,9 @@
   15.86        <para>% TODO: to me it looks like mercurial doesn't commit the
   15.87  	second merge automatically!</para>
   15.88  
   15.89 -      <informalfigure id="fig:undo:backout-non-tip">
   15.90 +      <informalfigure id="fig.undo.backout-non-tip">
   15.91  	<mediaobject><imageobject><imagedata
   15.92 -				    fileref="undo-non-tip"/></imageobject><textobject><phrase>XXX 
   15.93 +				    fileref="images/undo-non-tip.png"/></imageobject><textobject><phrase>XXX 
   15.94  	      add text</phrase></textobject><caption><para>Automated
   15.95  	      backout of a non-tip change using the <command
   15.96  		role="hg-cmd">hg backout</command>
   15.97 @@ -465,15 +465,15 @@
   15.98  
   15.99        <para>Again, it's easier to see what has happened by looking at
  15.100  	a graph of the revision history, in figure <xref
  15.101 -	  linkend="fig:undo:backout-manual"/>.  This makes it clear
  15.102 +	  linkend="fig.undo.backout-manual"/>.  This makes it clear
  15.103  	that when we use <command role="hg-cmd">hg backout</command>
  15.104  	to back out a change other than the tip, Mercurial adds a new
  15.105  	head to the repository (the change it committed is
  15.106  	box-shaped).</para>
  15.107  
  15.108 -      <informalfigure id="fig:undo:backout-manual">
  15.109 +      <informalfigure id="fig.undo.backout-manual">
  15.110  	<mediaobject><imageobject><imagedata
  15.111 -				    fileref="undo-manual"/></imageobject><textobject><phrase>XXX 
  15.112 +				    fileref="images/undo-manual.png"/></imageobject><textobject><phrase>XXX 
  15.113  	      add text</phrase></textobject><caption><para>Backing out
  15.114  	      a change using the <command role="hg-cmd">hg
  15.115  		backout</command>
  15.116 @@ -509,11 +509,11 @@
  15.117  
  15.118        <para>Afterwards, the graphical history of our repository looks
  15.119  	like figure
  15.120 -	<xref linkend="fig:undo:backout-manual-merge"/>.</para>
  15.121 -
  15.122 -      <informalfigure id="fig:undo:backout-manual-merge">
  15.123 +	<xref linkend="fig.undo.backout-manual-merge"/>.</para>
  15.124 +
  15.125 +      <informalfigure id="fig.undo.backout-manual-merge">
  15.126  	<mediaobject><imageobject><imagedata
  15.127 -				    fileref="undo-manual-merge"/></imageobject><textobject><phrase>XXX 
  15.128 +				    fileref="images/undo-manual-merge.png"/></imageobject><textobject><phrase>XXX 
  15.129  	      add text</phrase></textobject><caption><para>Manually
  15.130  	      merging a backout change</para></caption></mediaobject>
  15.131  	
  15.132 @@ -584,7 +584,7 @@
  15.133  	are likely to have <quote>broken the context</quote> that
  15.134  	<command>patch</command> uses to determine whether it can
  15.135  	apply a patch (if this sounds like gibberish, see <xref
  15.136 -	  linkend="sec:mq:patch"/> for a
  15.137 +	  linkend="sec.mq.patch"/> for a
  15.138  	discussion of the <command>patch</command> command).  Also,
  15.139  	Mercurial's merge machinery will handle files and directories
  15.140  	being renamed, permission changes, and modifications to binary
  15.141 @@ -593,7 +593,7 @@
  15.142  
  15.143      </sect2>
  15.144    </sect1>
  15.145 -  <sect1 id="sec:undo:aaaiiieee">
  15.146 +  <sect1 id="sec.undo.aaaiiieee">
  15.147      <title>Changes that should never have been</title>
  15.148  
  15.149      <para>Most of the time, the <command role="hg-cmd">hg
  15.150 @@ -623,7 +623,7 @@
  15.151        been pushed or pulled into another repository.  That's when you
  15.152        can safely use the <command role="hg-cmd">hg rollback</command>
  15.153        command, as I detailed in section <xref
  15.154 -	linkend="sec:undo:rollback"/>.</para>
  15.155 +	linkend="sec.undo.rollback"/>.</para>
  15.156  
  15.157      <para>After you've pushed a bad change to another repository, you
  15.158        <emphasis>could</emphasis> still use <command role="hg-cmd">hg
  15.159 @@ -664,7 +664,7 @@
  15.160  	central repository.</para>
  15.161  
  15.162        <para>By configuring some hooks on that repository to validate
  15.163 -	incoming changesets (see chapter <xref linkend="chap:hook"/>),
  15.164 +	incoming changesets (see chapter <xref linkend="chap.hook"/>),
  15.165  	you can
  15.166  	automatically prevent some kinds of bad changeset from being
  15.167  	pushed to the central repository at all.  With such a
  15.168 @@ -679,7 +679,7 @@
  15.169  
  15.170      </sect2>
  15.171    </sect1>
  15.172 -  <sect1 id="sec:undo:bisect">
  15.173 +  <sect1 id="sec.undo.bisect">
  15.174      <title>Finding the source of a bug</title>
  15.175  
  15.176      <para>While it's all very well to be able to back out a changeset
    16.1 --- a/en/ch10-hook.xml	Thu Mar 12 15:47:15 2009 +0800
    16.2 +++ b/en/ch10-hook.xml	Thu Mar 12 15:51:39 2009 +0800
    16.3 @@ -1,6 +1,6 @@
    16.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
    16.5  
    16.6 -<chapter id="chap:hook">
    16.7 +<chapter id="chap.hook">
    16.8    <?dbhtml filename="handling-repository-events-with-hooks.html"?>
    16.9    <title>Handling repository events with hooks</title>
   16.10  
   16.11 @@ -19,7 +19,7 @@
   16.12  
   16.13      <para>Here is a brief list of the hooks that Mercurial supports.
   16.14        We will revisit each of these hooks in more detail later, in
   16.15 -      section <xref linkend="sec:hook:ref"/>.</para>
   16.16 +      section <xref linkend="sec.hook.ref"/>.</para>
   16.17  
   16.18      <itemizedlist>
   16.19        <listitem><para><literal role="hook">changegroup</literal>: This
   16.20 @@ -343,7 +343,7 @@
   16.21  
   16.22      </sect2>
   16.23    </sect1>
   16.24 -  <sect1 id="sec:hook:simple">
   16.25 +  <sect1 id="sec.hook.simple">
   16.26      <title>A short tutorial on using hooks</title>
   16.27  
   16.28      <para>It is easy to write a Mercurial hook.  Let's start with a
   16.29 @@ -400,11 +400,11 @@
   16.30  	message that contains the hook name and extension, so using a
   16.31  	descriptive extension could give you an immediate hint as to
   16.32  	why the hook failed (see section <xref
   16.33 -	  linkend="sec:hook:perm"/> for an example).
   16.34 -      </para>
   16.35 -
   16.36 -    </sect2>
   16.37 -    <sect2 id="sec:hook:perm">
   16.38 +	  linkend="sec.hook.perm"/> for an example).
   16.39 +      </para>
   16.40 +
   16.41 +    </sect2>
   16.42 +    <sect2 id="sec.hook.perm">
   16.43        <title>Controlling whether an activity can proceed</title>
   16.44  
   16.45        <para>In our earlier examples, we used the <literal
   16.46 @@ -459,7 +459,7 @@
   16.47        message before it calls each hook.
   16.48      </para>
   16.49  
   16.50 -    <sect2 id="sec:hook:lang">
   16.51 +    <sect2 id="sec.hook.lang">
   16.52        <title>Choosing how your hook should run</title>
   16.53  
   16.54        <para>You can write a hook either as a normal
   16.55 @@ -490,7 +490,7 @@
   16.56        </para>
   16.57  
   16.58      </sect2>
   16.59 -    <sect2 id="sec:hook:param">
   16.60 +    <sect2 id="sec.hook.param">
   16.61        <title>Hook parameters</title>
   16.62  
   16.63        <para>Mercurial calls each hook with a set of well-defined
   16.64 @@ -888,7 +888,7 @@
   16.65  	  </para>
   16.66  	</listitem></itemizedlist>
   16.67  
   16.68 -      <sect3 id="sec:hook:bugzilla:config">
   16.69 +      <sect3 id="sec.hook.bugzilla.config">
   16.70  	<title>Configuring the <literal role="hook">bugzilla</literal>
   16.71  	  hook</title>
   16.72  
   16.73 @@ -1101,7 +1101,7 @@
   16.74  	</para>
   16.75  
   16.76  	<para>Recall from section <xref
   16.77 -	    linkend="sec:hook:bugzilla:config"/> above that the user
   16.78 +	    linkend="sec.hook.bugzilla.config"/> above that the user
   16.79  	  that runs the Mercurial process on the server is also the
   16.80  	  one that will run the <filename>processmail</filename>
   16.81  	  script.  The <filename>processmail</filename> script
   16.82 @@ -1259,7 +1259,7 @@
   16.83  	      out email about changes that remote users pushed into
   16.84  	      this repository via a server, for example.  See section
   16.85  	      <xref
   16.86 -		linkend="sec:hook:sources"/> for the sources you can
   16.87 +		linkend="sec.hook.sources"/> for the sources you can
   16.88  	      specify here.
   16.89  	    </para>
   16.90  	  </listitem></itemizedlist>
   16.91 @@ -1318,7 +1318,7 @@
   16.92        </sect3>
   16.93      </sect2>
   16.94    </sect1>
   16.95 -  <sect1 id="sec:hook:ref">
   16.96 +  <sect1 id="sec.hook.ref">
   16.97      <title>Information for writers of hooks</title>
   16.98  
   16.99      <sect2>
  16.100 @@ -1426,7 +1426,7 @@
  16.101  	transferred to or from.
  16.102        </para>
  16.103  
  16.104 -      <sect3 id="sec:hook:sources">
  16.105 +      <sect3 id="sec.hook.sources">
  16.106  	<title>Sources of changesets</title>
  16.107  
  16.108  	<para>Mercurial will tell a hook what means are, or were, used
  16.109 @@ -1458,7 +1458,7 @@
  16.110  	  </listitem></itemizedlist>
  16.111  
  16.112        </sect3>
  16.113 -      <sect3 id="sec:hook:url">
  16.114 +      <sect3 id="sec.hook.url">
  16.115  	<title>Where changes are going&emdash;remote repository
  16.116  	  URLs</title>
  16.117  
  16.118 @@ -1500,7 +1500,7 @@
  16.119    <sect1>
  16.120      <title>Hook reference</title>
  16.121  
  16.122 -    <sect2 id="sec:hook:changegroup">
  16.123 +    <sect2 id="sec.hook.changegroup">
  16.124        <title><literal role="hook">changegroup</literal>&emdash;after
  16.125  	remote changesets added</title>
  16.126  
  16.127 @@ -1535,26 +1535,26 @@
  16.128  	</listitem>
  16.129  	<listitem><para><literal>source</literal>: A string.  The
  16.130  	    source of these changes.  See section <xref
  16.131 -	      linkend="sec:hook:sources"/> for details.
  16.132 +	      linkend="sec.hook.sources"/> for details.
  16.133  	  </para>
  16.134  	</listitem>
  16.135  	<listitem><para><literal>url</literal>: A URL.  The location
  16.136  	    of the remote repository, if known.  See section <xref
  16.137 -	      linkend="sec:hook:url"/> for more
  16.138 +	      linkend="sec.hook.url"/> for more
  16.139  	    information.
  16.140  	  </para>
  16.141  	</listitem></itemizedlist>
  16.142  
  16.143        <para>See also: <literal role="hook">incoming</literal> (section
  16.144 -	<xref linkend="sec:hook:incoming"/>), <literal
  16.145 +	<xref linkend="sec.hook.incoming"/>), <literal
  16.146  	  role="hook">prechangegroup</literal> (section <xref
  16.147 -	  linkend="sec:hook:prechangegroup"/>), <literal
  16.148 +	  linkend="sec.hook.prechangegroup"/>), <literal
  16.149  	  role="hook">pretxnchangegroup</literal> (section <xref
  16.150 -	  linkend="sec:hook:pretxnchangegroup"/>)
  16.151 -      </para>
  16.152 -
  16.153 -    </sect2>
  16.154 -    <sect2 id="sec:hook:commit">
  16.155 +	  linkend="sec.hook.pretxnchangegroup"/>)
  16.156 +      </para>
  16.157 +
  16.158 +    </sect2>
  16.159 +    <sect2 id="sec.hook.commit">
  16.160        <title><literal role="hook">commit</literal>&emdash;after a new
  16.161  	changeset is created</title>
  16.162  
  16.163 @@ -1580,13 +1580,13 @@
  16.164  	</listitem></itemizedlist>
  16.165  
  16.166        <para>See also: <literal role="hook">precommit</literal>
  16.167 -	(section <xref linkend="sec:hook:precommit"/>), <literal
  16.168 +	(section <xref linkend="sec.hook.precommit"/>), <literal
  16.169  	  role="hook">pretxncommit</literal> (section <xref
  16.170 -	  linkend="sec:hook:pretxncommit"/>)
  16.171 -      </para>
  16.172 -
  16.173 -    </sect2>
  16.174 -    <sect2 id="sec:hook:incoming">
  16.175 +	  linkend="sec.hook.pretxncommit"/>)
  16.176 +      </para>
  16.177 +
  16.178 +    </sect2>
  16.179 +    <sect2 id="sec.hook.incoming">
  16.180        <title><literal role="hook">incoming</literal>&emdash;after one
  16.181  	remote changeset is added</title>
  16.182  
  16.183 @@ -1599,7 +1599,7 @@
  16.184  
  16.185        <para>You can use this hook for the same purposes as the
  16.186  	<literal role="hook">changegroup</literal> hook (section <xref
  16.187 -	  linkend="sec:hook:changegroup"/>); it's simply
  16.188 +	  linkend="sec.hook.changegroup"/>); it's simply
  16.189  	more convenient sometimes to run a hook once per group of
  16.190  	changesets, while other times it's handier once per changeset.
  16.191        </para>
  16.192 @@ -1613,26 +1613,26 @@
  16.193  	</listitem>
  16.194  	<listitem><para><literal>source</literal>: A string.  The
  16.195  	    source of these changes.  See section <xref
  16.196 -	      linkend="sec:hook:sources"/> for details.
  16.197 +	      linkend="sec.hook.sources"/> for details.
  16.198  	  </para>
  16.199  	</listitem>
  16.200  	<listitem><para><literal>url</literal>: A URL.  The location
  16.201  	    of the remote repository, if known.  See section <xref
  16.202 -	      linkend="sec:hook:url"/> for more
  16.203 +	      linkend="sec.hook.url"/> for more
  16.204  	    information.
  16.205  	  </para>
  16.206  	</listitem></itemizedlist>
  16.207  
  16.208        <para>See also: <literal role="hook">changegroup</literal>
  16.209 -	(section <xref linkend="sec:hook:changegroup"/>) <literal
  16.210 +	(section <xref linkend="sec.hook.changegroup"/>) <literal
  16.211  	  role="hook">prechangegroup</literal> (section <xref
  16.212 -	  linkend="sec:hook:prechangegroup"/>), <literal
  16.213 +	  linkend="sec.hook.prechangegroup"/>), <literal
  16.214  	  role="hook">pretxnchangegroup</literal> (section <xref
  16.215 -	  linkend="sec:hook:pretxnchangegroup"/>)
  16.216 -      </para>
  16.217 -
  16.218 -    </sect2>
  16.219 -    <sect2 id="sec:hook:outgoing">
  16.220 +	  linkend="sec.hook.pretxnchangegroup"/>)
  16.221 +      </para>
  16.222 +
  16.223 +    </sect2>
  16.224 +    <sect2 id="sec.hook.outgoing">
  16.225        <title><literal role="hook">outgoing</literal>&emdash;after
  16.226  	changesets are propagated</title>
  16.227  
  16.228 @@ -1656,7 +1656,7 @@
  16.229  	</listitem>
  16.230  	<listitem><para><literal>source</literal>: A string.  The
  16.231  	    source of the of the operation (see section <xref
  16.232 -	      linkend="sec:hook:sources"/>).  If a remote
  16.233 +	      linkend="sec.hook.sources"/>).  If a remote
  16.234  	    client pulled changes from this repository,
  16.235  	    <literal>source</literal> will be
  16.236  	    <literal>serve</literal>.  If the client that obtained
  16.237 @@ -1669,17 +1669,17 @@
  16.238  	</listitem>
  16.239  	<listitem><para><literal>url</literal>: A URL.  The location
  16.240  	    of the remote repository, if known.  See section <xref
  16.241 -	      linkend="sec:hook:url"/> for more
  16.242 +	      linkend="sec.hook.url"/> for more
  16.243  	    information.
  16.244  	  </para>
  16.245  	</listitem></itemizedlist>
  16.246  
  16.247        <para>See also: <literal role="hook">preoutgoing</literal>
  16.248 -	(section <xref linkend="sec:hook:preoutgoing"/>)
  16.249 -      </para>
  16.250 -
  16.251 -    </sect2>
  16.252 -    <sect2 id="sec:hook:prechangegroup">
  16.253 +	(section <xref linkend="sec.hook.preoutgoing"/>)
  16.254 +      </para>
  16.255 +
  16.256 +    </sect2>
  16.257 +    <sect2 id="sec.hook.prechangegroup">
  16.258        <title><literal
  16.259  	  role="hook">prechangegroup</literal>&emdash;before starting
  16.260  	to add remote changesets</title>
  16.261 @@ -1706,26 +1706,26 @@
  16.262        <itemizedlist>
  16.263  	<listitem><para><literal>source</literal>: A string.  The
  16.264  	    source of these changes.  See section <xref
  16.265 -	      linkend="sec:hook:sources"/> for details.
  16.266 +	      linkend="sec.hook.sources"/> for details.
  16.267  	  </para>
  16.268  	</listitem>
  16.269  	<listitem><para><literal>url</literal>: A URL.  The location
  16.270  	    of the remote repository, if known.  See section <xref
  16.271 -	      linkend="sec:hook:url"/> for more
  16.272 +	      linkend="sec.hook.url"/> for more
  16.273  	    information.
  16.274  	  </para>
  16.275  	</listitem></itemizedlist>
  16.276  
  16.277        <para>See also: <literal role="hook">changegroup</literal>
  16.278 -	(section <xref linkend="sec:hook:changegroup"/>), <literal
  16.279 +	(section <xref linkend="sec.hook.changegroup"/>), <literal
  16.280  	  role="hook">incoming</literal> (section <xref
  16.281 -	  linkend="sec:hook:incoming"/>), , <literal
  16.282 +	  linkend="sec.hook.incoming"/>), , <literal
  16.283  	  role="hook">pretxnchangegroup</literal> (section <xref
  16.284 -	  linkend="sec:hook:pretxnchangegroup"/>)
  16.285 -      </para>
  16.286 -
  16.287 -    </sect2>
  16.288 -    <sect2 id="sec:hook:precommit">
  16.289 +	  linkend="sec.hook.pretxnchangegroup"/>)
  16.290 +      </para>
  16.291 +
  16.292 +    </sect2>
  16.293 +    <sect2 id="sec.hook.precommit">
  16.294        <title><literal role="hook">precommit</literal>&emdash;before
  16.295  	starting to commit a changeset</title>
  16.296  
  16.297 @@ -1759,13 +1759,13 @@
  16.298        </para>
  16.299  
  16.300        <para>See also: <literal role="hook">commit</literal> (section
  16.301 -	<xref linkend="sec:hook:commit"/>), <literal
  16.302 +	<xref linkend="sec.hook.commit"/>), <literal
  16.303  	  role="hook">pretxncommit</literal> (section <xref
  16.304 -	  linkend="sec:hook:pretxncommit"/>)
  16.305 -      </para>
  16.306 -
  16.307 -    </sect2>
  16.308 -    <sect2 id="sec:hook:preoutgoing">
  16.309 +	  linkend="sec.hook.pretxncommit"/>)
  16.310 +      </para>
  16.311 +
  16.312 +    </sect2>
  16.313 +    <sect2 id="sec.hook.preoutgoing">
  16.314        <title><literal role="hook">preoutgoing</literal>&emdash;before
  16.315  	starting to propagate changesets</title>
  16.316  
  16.317 @@ -1783,27 +1783,27 @@
  16.318  	<listitem><para><literal>source</literal>: A string.  The
  16.319  	    source of the operation that is attempting to obtain
  16.320  	    changes from this repository (see section <xref
  16.321 -	      linkend="sec:hook:sources"/>).  See the documentation
  16.322 +	      linkend="sec.hook.sources"/>).  See the documentation
  16.323  	    for the <literal>source</literal> parameter to the
  16.324  	    <literal role="hook">outgoing</literal> hook, in section
  16.325 -	    <xref linkend="sec:hook:outgoing"/>, for possible values
  16.326 +	    <xref linkend="sec.hook.outgoing"/>, for possible values
  16.327  	    of
  16.328  	    this parameter.
  16.329  	  </para>
  16.330  	</listitem>
  16.331  	<listitem><para><literal>url</literal>: A URL.  The location
  16.332  	    of the remote repository, if known.  See section <xref
  16.333 -	      linkend="sec:hook:url"/> for more
  16.334 +	      linkend="sec.hook.url"/> for more
  16.335  	    information.
  16.336  	  </para>
  16.337  	</listitem></itemizedlist>
  16.338  
  16.339        <para>See also: <literal role="hook">outgoing</literal> (section
  16.340 -	<xref linkend="sec:hook:outgoing"/>)
  16.341 -      </para>
  16.342 -
  16.343 -    </sect2>
  16.344 -    <sect2 id="sec:hook:pretag">
  16.345 +	<xref linkend="sec.hook.outgoing"/>)
  16.346 +      </para>
  16.347 +
  16.348 +    </sect2>
  16.349 +    <sect2 id="sec.hook.pretag">
  16.350        <title><literal role="hook">pretag</literal>&emdash;before
  16.351  	tagging a changeset</title>
  16.352  
  16.353 @@ -1834,15 +1834,15 @@
  16.354        <para>If the tag to be created is revision-controlled, the
  16.355  	<literal role="hook">precommit</literal> and <literal
  16.356  	  role="hook">pretxncommit</literal> hooks (sections <xref
  16.357 -	  linkend="sec:hook:commit"/> and <xref
  16.358 -	  linkend="sec:hook:pretxncommit"/>) will also be run.
  16.359 +	  linkend="sec.hook.commit"/> and <xref
  16.360 +	  linkend="sec.hook.pretxncommit"/>) will also be run.
  16.361        </para>
  16.362  
  16.363        <para>See also: <literal role="hook">tag</literal> (section
  16.364 -	<xref linkend="sec:hook:tag"/>)
  16.365 -      </para>
  16.366 -    </sect2>
  16.367 -    <sect2 id="sec:hook:pretxnchangegroup">
  16.368 +	<xref linkend="sec.hook.tag"/>)
  16.369 +      </para>
  16.370 +    </sect2>
  16.371 +    <sect2 id="sec.hook.pretxnchangegroup">
  16.372        <title><literal
  16.373  	  role="hook">pretxnchangegroup</literal>&emdash;before
  16.374  	completing addition of remote changesets</title>
  16.375 @@ -1889,26 +1889,26 @@
  16.376  	</listitem>
  16.377  	<listitem><para><literal>source</literal>: A string.  The
  16.378  	    source of these changes.  See section <xref
  16.379 -	      linkend="sec:hook:sources"/> for details.
  16.380 +	      linkend="sec.hook.sources"/> for details.
  16.381  	  </para>
  16.382  	</listitem>
  16.383  	<listitem><para><literal>url</literal>: A URL.  The location
  16.384  	    of the remote repository, if known.  See section <xref
  16.385 -	      linkend="sec:hook:url"/> for more
  16.386 +	      linkend="sec.hook.url"/> for more
  16.387  	    information.
  16.388  	  </para>
  16.389  	</listitem></itemizedlist>
  16.390  
  16.391        <para>See also: <literal role="hook">changegroup</literal>
  16.392 -	(section <xref linkend="sec:hook:changegroup"/>), <literal
  16.393 +	(section <xref linkend="sec.hook.changegroup"/>), <literal
  16.394  	  role="hook">incoming</literal> (section <xref
  16.395 -	  linkend="sec:hook:incoming"/>), <literal
  16.396 +	  linkend="sec.hook.incoming"/>), <literal
  16.397  	  role="hook">prechangegroup</literal> (section <xref
  16.398 -	  linkend="sec:hook:prechangegroup"/>)
  16.399 -      </para>
  16.400 -
  16.401 -    </sect2>
  16.402 -    <sect2 id="sec:hook:pretxncommit">
  16.403 +	  linkend="sec.hook.prechangegroup"/>)
  16.404 +      </para>
  16.405 +
  16.406 +    </sect2>
  16.407 +    <sect2 id="sec.hook.pretxncommit">
  16.408        <title><literal role="hook">pretxncommit</literal>&emdash;before
  16.409  	completing commit of new changeset</title>
  16.410  
  16.411 @@ -1951,11 +1951,11 @@
  16.412  	</listitem></itemizedlist>
  16.413  
  16.414        <para>See also: <literal role="hook">precommit</literal>
  16.415 -	(section <xref linkend="sec:hook:precommit"/>)
  16.416 -      </para>
  16.417 -
  16.418 -    </sect2>
  16.419 -    <sect2 id="sec:hook:preupdate">
  16.420 +	(section <xref linkend="sec.hook.precommit"/>)
  16.421 +      </para>
  16.422 +
  16.423 +    </sect2>
  16.424 +    <sect2 id="sec.hook.preupdate">
  16.425        <title><literal role="hook">preupdate</literal>&emdash;before
  16.426  	updating or merging working directory</title>
  16.427  
  16.428 @@ -1983,11 +1983,11 @@
  16.429  	</listitem></itemizedlist>
  16.430  
  16.431        <para>See also: <literal role="hook">update</literal> (section
  16.432 -	<xref linkend="sec:hook:update"/>)
  16.433 -      </para>
  16.434 -
  16.435 -    </sect2>
  16.436 -    <sect2 id="sec:hook:tag">
  16.437 +	<xref linkend="sec.hook.update"/>)
  16.438 +      </para>
  16.439 +
  16.440 +    </sect2>
  16.441 +    <sect2 id="sec.hook.tag">
  16.442        <title><literal role="hook">tag</literal>&emdash;after tagging a
  16.443  	changeset</title>
  16.444  
  16.445 @@ -2016,15 +2016,15 @@
  16.446  
  16.447        <para>If the created tag is revision-controlled, the <literal
  16.448  	  role="hook">commit</literal> hook (section <xref
  16.449 -	  linkend="sec:hook:commit"/>) is run before this hook.
  16.450 +	  linkend="sec.hook.commit"/>) is run before this hook.
  16.451        </para>
  16.452  
  16.453        <para>See also: <literal role="hook">pretag</literal> (section
  16.454 -	<xref linkend="sec:hook:pretag"/>)
  16.455 -      </para>
  16.456 -
  16.457 -    </sect2>
  16.458 -    <sect2 id="sec:hook:update">
  16.459 +	<xref linkend="sec.hook.pretag"/>)
  16.460 +      </para>
  16.461 +
  16.462 +    </sect2>
  16.463 +    <sect2 id="sec.hook.update">
  16.464        <title><literal role="hook">update</literal>&emdash;after
  16.465  	updating or merging working directory</title>
  16.466  
  16.467 @@ -2054,7 +2054,7 @@
  16.468  	</listitem></itemizedlist>
  16.469  
  16.470        <para>See also: <literal role="hook">preupdate</literal>
  16.471 -	(section <xref linkend="sec:hook:preupdate"/>)
  16.472 +	(section <xref linkend="sec.hook.preupdate"/>)
  16.473        </para>
  16.474  
  16.475      </sect2>
    17.1 --- a/en/ch11-template.xml	Thu Mar 12 15:47:15 2009 +0800
    17.2 +++ b/en/ch11-template.xml	Thu Mar 12 15:51:39 2009 +0800
    17.3 @@ -1,6 +1,6 @@
    17.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
    17.5  
    17.6 -<chapter id="chap:template">
    17.7 +<chapter id="chap.template">
    17.8    <?dbhtml filename="customizing-the-output-of-mercurial.html"?>
    17.9    <title>Customising the output of Mercurial</title>
   17.10  
   17.11 @@ -10,7 +10,7 @@
   17.12      command, or to customise the entire appearance of the built-in web
   17.13      interface.</para>
   17.14  
   17.15 -  <sect1 id="sec:style">
   17.16 +  <sect1 id="sec.style">
   17.17      <title>Using precanned output styles</title>
   17.18  
   17.19      <para>Packaged with Mercurial are some output styles that you can
   17.20 @@ -106,7 +106,7 @@
   17.21        <emphasis>escape sequence</emphasis>, telling Mercurial to print
   17.22        a newline at the end of each template item.  If you omit this
   17.23        newline, Mercurial will run each piece of output together.  See
   17.24 -      section <xref linkend="sec:template:escape"/> for more details
   17.25 +      section <xref linkend="sec.template.escape"/> for more details
   17.26        of escape sequences.</para>
   17.27  
   17.28      <para>A template that prints a fixed string of text all the time
   17.29 @@ -124,10 +124,10 @@
   17.30        and text with the expansion of whatever is inside.  To print a
   17.31        literal curly brace, you must escape it, as described in section
   17.32        <xref
   17.33 -	linkend="sec:template:escape"/>.</para>
   17.34 -
   17.35 -  </sect1>
   17.36 -  <sect1 id="sec:template:keyword">
   17.37 +	linkend="sec.template.escape"/>.</para>
   17.38 +
   17.39 +  </sect1>
   17.40 +  <sect1 id="sec.template.keyword">
   17.41      <title>Common template keywords</title>
   17.42  
   17.43      <para>You can start writing simple templates immediately using the
   17.44 @@ -149,7 +149,7 @@
   17.45  	  committed.  This is <emphasis>not</emphasis> human-readable;
   17.46  	  you must pass it through a filter that will render it
   17.47  	  appropriately.  See section <xref
   17.48 -	    linkend="sec:template:filter"/> for more information
   17.49 +	    linkend="sec.template.filter"/> for more information
   17.50  	  on filters. The date is expressed as a pair of numbers.  The
   17.51  	  first number is a Unix UTC timestamp (seconds since January
   17.52  	  1, 1970); the second is the offset of the committer's
   17.53 @@ -197,12 +197,12 @@
   17.54        human-readable output, so we must treat it specially.  This
   17.55        involves using a <emphasis>filter</emphasis>, about which more
   17.56        in section <xref
   17.57 -	linkend="sec:template:filter"/>.</para>
   17.58 +	linkend="sec.template.filter"/>.</para>
   17.59  
   17.60      &interaction.template.simple.datekeyword;
   17.61  
   17.62    </sect1>
   17.63 -  <sect1 id="sec:template:escape">
   17.64 +  <sect1 id="sec.template.escape">
   17.65      <title>Escape sequences</title>
   17.66  
   17.67      <para>Mercurial's templating engine recognises the most commonly
   17.68 @@ -244,7 +244,7 @@
   17.69        it.</para>
   17.70  
   17.71    </sect1>
   17.72 -  <sect1 id="sec:template:filter">
   17.73 +  <sect1 id="sec.template.filter">
   17.74      <title>Filtering keywords to change their results</title>
   17.75  
   17.76      <para>Some of the results of template expansion are not
    18.1 --- a/en/ch12-mq.xml	Thu Mar 12 15:47:15 2009 +0800
    18.2 +++ b/en/ch12-mq.xml	Thu Mar 12 15:51:39 2009 +0800
    18.3 @@ -1,10 +1,10 @@
    18.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
    18.5  
    18.6 -<chapter id="chap:mq">
    18.7 +<chapter id="chap.mq">
    18.8    <?dbhtml filename="managing-change-with-mercurial-queues.html"?>
    18.9    <title>Managing change with Mercurial Queues</title>
   18.10  
   18.11 -  <sect1 id="sec:mq:patch-mgmt">
   18.12 +  <sect1 id="sec.mq.patch-mgmt">
   18.13      <title>The patch management problem</title>
   18.14  
   18.15      <para>Here is a common scenario: you need to install a software
   18.16 @@ -37,7 +37,7 @@
   18.17      <para>When you have few changes to maintain, it is easy to manage
   18.18        a single patch using the standard <command>diff</command> and
   18.19        <command>patch</command> programs (see section <xref
   18.20 -	linkend="sec:mq:patch"/> for a discussion of these
   18.21 +	linkend="sec.mq.patch"/> for a discussion of these
   18.22        tools). Once the number of changes grows, it starts to make
   18.23        sense to maintain patches as discrete <quote>chunks of
   18.24  	work,</quote> so that for example a single patch will contain
   18.25 @@ -61,7 +61,7 @@
   18.26        simplifies the patch management problem.</para>
   18.27  
   18.28    </sect1>
   18.29 -  <sect1 id="sec:mq:history">
   18.30 +  <sect1 id="sec.mq.history">
   18.31      <title>The prehistory of Mercurial Queues</title>
   18.32  
   18.33      <para>During the late 1990s, several Linux kernel developers
   18.34 @@ -76,7 +76,7 @@
   18.35        successfully using these scripts to manage hundreds (sometimes
   18.36        thousands) of patches on top of the Linux kernel.</para>
   18.37  
   18.38 -    <sect2 id="sec:mq:quilt">
   18.39 +    <sect2 id="sec.mq.quilt">
   18.40        <title>A patchwork quilt</title>
   18.41  
   18.42        <para>In early 2003, Andreas Gruenbacher and Martin Quinson
   18.43 @@ -120,7 +120,7 @@
   18.44  	Subversion working copy.</para>
   18.45  
   18.46      </sect2>
   18.47 -    <sect2 id="sec:mq:quilt-mq">
   18.48 +    <sect2 id="sec.mq.quilt-mq">
   18.49        <title>From patchwork quilt to Mercurial Queues</title>
   18.50  
   18.51        <para>In mid-2005, Chris Mason took the features of quilt and
   18.52 @@ -183,7 +183,7 @@
   18.53        And so on.</para>
   18.54  
   18.55    </sect1>
   18.56 -  <sect1 id="sec:mq:patch">
   18.57 +  <sect1 id="sec.mq.patch">
   18.58      <title>Understanding patches</title>
   18.59  
   18.60      <para>Because MQ doesn't hide its patch-oriented nature, it is
   18.61 @@ -241,12 +241,12 @@
   18.62        represented by one deletion and one insertion.</para>
   18.63  
   18.64      <para>We will return to some of the more subtle aspects of patches
   18.65 -      later (in section <xref linkend="sec:mq:adv-patch"/>), but you
   18.66 +      later (in section <xref linkend="sec.mq.adv-patch"/>), but you
   18.67        should have
   18.68        enough information now to use MQ.</para>
   18.69  
   18.70    </sect1>
   18.71 -  <sect1 id="sec:mq:start">
   18.72 +  <sect1 id="sec.mq.start">
   18.73      <title>Getting started with Mercurial Queues</title>
   18.74  
   18.75      <para>Because MQ is implemented as an extension, you must
   18.76 @@ -400,12 +400,12 @@
   18.77  	but the patch no longer has a corresponding changeset in the
   18.78  	repository, and the working directory does not contain the
   18.79  	changes made by the patch.  Figure <xref
   18.80 -	  linkend="fig:mq:stack"/> illustrates
   18.81 +	  linkend="fig.mq.stack"/> illustrates
   18.82  	the difference between applied and tracked patches.</para>
   18.83  
   18.84 -      <informalfigure id="fig:mq:stack">
   18.85 +      <informalfigure id="fig.mq.stack">
   18.86  	<mediaobject><imageobject><imagedata
   18.87 -				    fileref="mq-stack"/></imageobject><textobject><phrase>XXX 
   18.88 +				    fileref="images/mq-stack.png"/></imageobject><textobject><phrase>XXX 
   18.89  	      add text</phrase></textobject><caption><para>Applied and
   18.90  	      unapplied patches in the MQ patch
   18.91  	      stack</para></caption></mediaobject>
   18.92 @@ -440,7 +440,7 @@
   18.93  	  role="hg-ext-mq-cmd-qpop-opt">-a</option> option to <command
   18.94  	  role="hg-ext-mq">qpop</command> causes it to pop all applied
   18.95  	patches.  (For some more ways to push and pop many patches,
   18.96 -	see section <xref linkend="sec:mq:perf"/>
   18.97 +	see section <xref linkend="sec.mq.perf"/>
   18.98  	below.)</para>
   18.99  
  18.100  &interaction.mq.tutorial.qpush-a;
  18.101 @@ -501,7 +501,7 @@
  18.102  
  18.103      </sect2>
  18.104    </sect1>
  18.105 -  <sect1 id="sec:mq:adv-patch">
  18.106 +  <sect1 id="sec.mq.adv-patch">
  18.107      <title>More about patches</title>
  18.108  
  18.109      <para>MQ uses the GNU <command>patch</command> command to apply
  18.110 @@ -700,7 +700,7 @@
  18.111  	and no longer does because you've changed the underlying code
  18.112  	that your patches are based on, Mercurial Queues can help; see
  18.113  	section <xref
  18.114 -	  linkend="sec:mq:merge"/> for details.</para>
  18.115 +	  linkend="sec.mq.merge"/> for details.</para>
  18.116  
  18.117        <para>Unfortunately, there aren't any great techniques for
  18.118  	dealing with rejected hunks.  Most often, you'll need to view
  18.119 @@ -747,7 +747,7 @@
  18.120  
  18.121      </sect2>
  18.122    </sect1>
  18.123 -  <sect1 id="sec:mq:perf">
  18.124 +  <sect1 id="sec.mq.perf">
  18.125      <title>Getting the best performance out of MQ</title>
  18.126  
  18.127      <para>MQ is very efficient at handling a large number of patches.
  18.128 @@ -801,7 +801,7 @@
  18.129        is zero, the second is one, and so on.</para>
  18.130  
  18.131    </sect1>
  18.132 -  <sect1 id="sec:mq:merge">
  18.133 +  <sect1 id="sec.mq.merge">
  18.134      <title>Updating your patches when the underlying code
  18.135        changes</title>
  18.136  
  18.137 @@ -945,7 +945,7 @@
  18.138  	<programlisting>hg email qbase:qtip
  18.139  	</programlisting>
  18.140  	<para>  (Don't know what <quote>patchbombing</quote> is?  See
  18.141 -	  section <xref linkend="sec:hgext:patchbomb"/>.)</para>
  18.142 +	  section <xref linkend="sec.hgext.patchbomb"/>.)</para>
  18.143        </listitem>
  18.144        <listitem><para>Need to see all of the patches since
  18.145  	  <literal>foo.patch</literal> that have touched files in a
  18.146 @@ -987,7 +987,7 @@
  18.147  	  that represents the patch after the pop/push will have a
  18.148  	  <emphasis>different identity</emphasis> than the changeset
  18.149  	  that represented the hash beforehand.  See section <xref
  18.150 -	    linkend="sec:mqref:cmd:qpush"/> for
  18.151 +	    linkend="sec.mqref.cmd.qpush"/> for
  18.152  	  information as to why this is.</para>
  18.153        </listitem>
  18.154        <listitem><para>It's not a good idea to <command
  18.155 @@ -1000,7 +1000,7 @@
  18.156        </listitem></itemizedlist>
  18.157  
  18.158    </sect1>
  18.159 -  <sect1 id="sec:mq:repo">
  18.160 +  <sect1 id="sec.mq.repo">
  18.161      <title>Managing patches in a repository</title>
  18.162  
  18.163      <para>Because MQ's <filename role="special"
  18.164 @@ -1108,7 +1108,7 @@
  18.165  
  18.166      </sect2>
  18.167    </sect1>
  18.168 -  <sect1 id="sec:mq:tools">
  18.169 +  <sect1 id="sec.mq.tools">
  18.170      <title>Third party tools for working with patches</title>
  18.171  
  18.172      <para>Once you've been working with patches for a while, you'll
  18.173 @@ -1140,7 +1140,7 @@
  18.174        invocation of <command>filterdiff</command> can generate a
  18.175        smaller patch that only touches files whose names match a
  18.176        particular glob pattern.  See section <xref
  18.177 -	linkend="mq-collab:tips:interdiff"/> for another
  18.178 +	linkend="mq-collab.tips.interdiff"/> for another
  18.179        example.</para>
  18.180  
  18.181    </sect1>
  18.182 @@ -1177,7 +1177,7 @@
  18.183  
  18.184      <para>For this reason, it is very much worth investing a little
  18.185        time to learn how to use some of the third-party tools I
  18.186 -      described in section <xref linkend="sec:mq:tools"/>,
  18.187 +      described in section <xref linkend="sec.mq.tools"/>,
  18.188        particularly
  18.189        <command>diffstat</command> and <command>filterdiff</command>.
  18.190        The former will give you a quick idea of what changes your patch
  18.191 @@ -1226,7 +1226,7 @@
  18.192        &interaction.mq.tarball.repush;
  18.193  
  18.194      </sect2>
  18.195 -    <sect2 id="sec:mq:combine">
  18.196 +    <sect2 id="sec.mq.combine">
  18.197        <title>Combining entire patches</title>
  18.198  
  18.199        <para>MQ provides a command, <command
  18.200 @@ -1299,7 +1299,7 @@
  18.201  
  18.202        <para>Once you have this hunk, you can concatenate it onto the
  18.203  	end of your destination patch and continue with the remainder
  18.204 -	of section <xref linkend="sec:mq:combine"/>.</para>
  18.205 +	of section <xref linkend="sec.mq.combine"/>.</para>
  18.206  
  18.207      </sect2>
  18.208    </sect1>
    19.1 --- a/en/ch13-mq-collab.xml	Thu Mar 12 15:47:15 2009 +0800
    19.2 +++ b/en/ch13-mq-collab.xml	Thu Mar 12 15:51:39 2009 +0800
    19.3 @@ -1,6 +1,6 @@
    19.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
    19.5  
    19.6 -<chapter id="chap:mq-collab">
    19.7 +<chapter id="chap.mq-collab">
    19.8    <?dbhtml filename="advanced-uses-of-mercurial-queues.html"?>
    19.9    <title>Advanced uses of Mercurial Queues</title>
   19.10  
   19.11 @@ -430,12 +430,12 @@
   19.12  	path separators.</para>
   19.13  
   19.14      </sect2>
   19.15 -    <sect2 id="mq-collab:tips:interdiff">
   19.16 +    <sect2 id="mq-collab.tips.interdiff">
   19.17        <title>Viewing the history of a patch</title>
   19.18  
   19.19        <para>If you're developing a set of patches over a long time,
   19.20  	it's a good idea to maintain them in a repository, as
   19.21 -	discussed in section <xref linkend="sec:mq:repo"/>.  If you do
   19.22 +	discussed in section <xref linkend="sec.mq.repo"/>.  If you do
   19.23  	so, you'll quickly
   19.24  	discover that using the <command role="hg-cmd">hg
   19.25  	  diff</command> command to look at the history of changes to
   19.26 @@ -506,7 +506,7 @@
   19.27        <para>The <literal role="hg-ext">extdiff</literal> extension is
   19.28  	useful for more than merely improving the presentation of MQ
   19.29  	patches.  To read more about it, go to section <xref
   19.30 -	  linkend="sec:hgext:extdiff"/>.</para>
   19.31 +	  linkend="sec.hgext.extdiff"/>.</para>
   19.32  
   19.33      </sect2>
   19.34    </sect1>
    20.1 --- a/en/ch14-hgext.xml	Thu Mar 12 15:47:15 2009 +0800
    20.2 +++ b/en/ch14-hgext.xml	Thu Mar 12 15:51:39 2009 +0800
    20.3 @@ -1,6 +1,6 @@
    20.4  <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
    20.5  
    20.6 -<chapter id="chap:hgext">
    20.7 +<chapter id="chap.hgext">
    20.8    <?dbhtml filename="adding-functionality-with-extensions.html"?>
    20.9    <title>Adding functionality with extensions</title>
   20.10  
   20.11 @@ -15,13 +15,13 @@
   20.12      <emphasis>plugins</emphasis>).  We've already discussed a few of
   20.13      these extensions in earlier chapters.</para>
   20.14    <itemizedlist>
   20.15 -    <listitem><para>Section <xref linkend="sec:tour-merge:fetch"/>
   20.16 +    <listitem><para>Section <xref linkend="sec.tour-merge.fetch"/>
   20.17  	covers the <literal role="hg-ext">fetch</literal> extension;
   20.18  	this combines pulling new changes and merging them with local
   20.19  	changes into a single command, <command
   20.20  	  role="hg-ext-fetch">fetch</command>.</para>
   20.21      </listitem>
   20.22 -    <listitem><para>In chapter <xref linkend="chap:hook"/>, we covered
   20.23 +    <listitem><para>In chapter <xref linkend="chap.hook"/>, we covered
   20.24  	several extensions that are useful for hook-related
   20.25  	functionality: <literal role="hg-ext">acl</literal> adds
   20.26  	access control lists; <literal
   20.27 @@ -32,10 +32,10 @@
   20.28      </listitem>
   20.29      <listitem><para>The Mercurial Queues patch management extension is
   20.30  	so invaluable that it merits two chapters and an appendix all
   20.31 -	to itself. Chapter <xref linkend="chap:mq"/> covers the
   20.32 +	to itself. Chapter <xref linkend="chap.mq"/> covers the
   20.33  	basics; chapter <xref
   20.34 -	  linkend="chap:mq-collab"/> discusses advanced topics;
   20.35 -	and appendix <xref linkend="chap:mqref"/> goes into detail on
   20.36 +	  linkend="chap.mq-collab"/> discusses advanced topics;
   20.37 +	and appendix <xref linkend="chap.mqref"/> goes into detail on
   20.38  	each
   20.39  	command.</para>
   20.40      </listitem></itemizedlist>
   20.41 @@ -45,13 +45,13 @@
   20.42      machinery you'll need to know about if you want to write an
   20.43      extension of your own.</para>
   20.44    <itemizedlist>
   20.45 -    <listitem><para>In section <xref linkend="sec:hgext:inotify"/>,
   20.46 +    <listitem><para>In section <xref linkend="sec.hgext.inotify"/>,
   20.47  	we'll discuss the possibility of <emphasis>huge</emphasis>
   20.48  	performance improvements using the <literal
   20.49  	  role="hg-ext">inotify</literal> extension.</para>
   20.50      </listitem></itemizedlist>
   20.51  
   20.52 -  <sect1 id="sec:hgext:inotify">
   20.53 +  <sect1 id="sec.hgext.inotify">
   20.54      <title>Improve performance with the <literal
   20.55  	role="hg-ext">inotify</literal> extension</title>
   20.56  
   20.57 @@ -188,7 +188,7 @@
   20.58        <listitem><para>Make sure that you have the Mercurial Queues
   20.59  	  extension, <literal role="hg-ext">mq</literal>, enabled.  If
   20.60  	  you've never used MQ, read section <xref
   20.61 -	    linkend="sec:mq:start"/> to get started
   20.62 +	    linkend="sec.mq.start"/> to get started
   20.63  	  quickly.</para>
   20.64        </listitem>
   20.65        <listitem><para>Go into the <filename
   20.66 @@ -263,7 +263,7 @@
   20.67        these situations occurs, please report a bug.</para>
   20.68  
   20.69    </sect1>
   20.70 -  <sect1 id="sec:hgext:extdiff">
   20.71 +  <sect1 id="sec.hgext.extdiff">
   20.72      <title>Flexible diff support with the <literal
   20.73  	role="hg-ext">extdiff</literal> extension</title>
   20.74  
   20.75 @@ -360,7 +360,7 @@
   20.76        example of such scripting in action with the <literal
   20.77  	role="hg-ext">mq</literal> extension and the
   20.78        <command>interdiff</command> command, see section <xref
   20.79 -	linkend="mq-collab:tips:interdiff"/>.</para>
   20.80 +	linkend="mq-collab.tips.interdiff"/>.</para>
   20.81  
   20.82      <sect2>
   20.83        <title>Defining command aliases</title>
   20.84 @@ -402,14 +402,14 @@
   20.85  
   20.86      </sect2>
   20.87    </sect1>
   20.88 -  <sect1 id="sec:hgext:transplant">
   20.89 +  <sect1 id="sec.hgext.transplant">
   20.90      <title>Cherrypicking changes with the <literal
   20.91  	role="hg-ext">transplant</literal> extension</title>
   20.92  
   20.93      <para>Need to have a long chat with Brendan about this.</para>
   20.94  
   20.95    </sect1>
   20.96 -  <sect1 id="sec:hgext:patchbomb">
   20.97 +  <sect1 id="sec.hgext.patchbomb">
   20.98      <title>Send changes via email with the <literal
   20.99  	role="hg-ext">patchbomb</literal> extension</title>
  20.100  
  20.101 @@ -504,7 +504,7 @@
  20.102  	    use.</para>
  20.103  	</listitem>
  20.104  	<listitem><para>The default behaviour is to send unified diffs
  20.105 -	    (see section <xref linkend="sec:mq:patch"/> for a
  20.106 +	    (see section <xref linkend="sec.mq.patch"/> for a
  20.107  	    description of the
  20.108  	    format), one per message.  You can send a binary bundle
  20.109  	    instead with the <option