hgbook
changeset 654:1c13ed2130a7
Merge with http://hg.serpentine.com/mercurial/book
author | Dongsheng Song <dongsheng.song@gmail.com> |
---|---|
date | Mon Mar 30 16:23:33 2009 +0800 (2009-03-30) |
parents | 6b1577ef5135 9e8e5292acaa |
children | 65e9a18d2c7e |
files | .hgignore Makefile en/00book.xml en/Makefile en/appA-cmdref.xml en/appB-mq-ref.xml en/appC-srcinstall.xml en/appD-license.xml en/ch00-preface.xml en/ch01-tour-basic.xml en/ch02-tour-merge.xml en/ch03-concepts.xml en/ch04-daily.xml en/ch05-collab.xml en/ch06-filenames.xml en/ch07-branch.xml en/ch08-undo.xml en/ch09-hook.xml en/ch10-template.xml en/ch11-mq.xml en/ch12-mq-collab.xml en/ch13-hgext.xml en/examples/auto-snippets.xml en/examples/results/backout.init.out en/examples/results/backout.manual.backout.out en/examples/results/backout.manual.cat.out en/examples/results/backout.manual.clone.out en/examples/results/backout.manual.heads.out en/examples/results/backout.manual.log.out en/examples/results/backout.manual.merge.out en/examples/results/backout.manual.parents.out en/examples/results/backout.non-tip.backout.out en/examples/results/backout.non-tip.cat.out en/examples/results/backout.non-tip.clone.out en/examples/results/backout.simple.log.out en/examples/results/backout.simple.out en/examples/results/bisect.commits.out en/examples/results/bisect.help.out en/examples/results/bisect.init.out en/examples/results/bisect.search.bad-init.out en/examples/results/bisect.search.good-init.out en/examples/results/bisect.search.init.out en/examples/results/bisect.search.mytest.out en/examples/results/bisect.search.reset.out en/examples/results/bisect.search.rest.out en/examples/results/bisect.search.step1.out en/examples/results/bisect.search.step2.out en/examples/results/branch-named.branch.out en/examples/results/branch-named.branches.out en/examples/results/branch-named.commit.out en/examples/results/branch-named.create.out en/examples/results/branch-named.foo-commit.out en/examples/results/branch-named.merge.out en/examples/results/branch-named.parents.out en/examples/results/branch-named.rebranch.out en/examples/results/branch-named.status.out en/examples/results/branch-named.update-bar.out en/examples/results/branch-named.update-foo.out en/examples/results/branch-named.update-nothing.out en/examples/results/branch-named.update-switchy.out en/examples/results/branch-named.update.out en/examples/results/branch-repo.bugfix.out en/examples/results/branch-repo.clone.out en/examples/results/branch-repo.merge.out en/examples/results/branch-repo.new.out en/examples/results/branch-repo.pull.out en/examples/results/branch-repo.tag.out en/examples/results/branching.clone.out en/examples/results/branching.init.out en/examples/results/branching.main.out en/examples/results/branching.merge.out en/examples/results/branching.stable.out en/examples/results/branching.tag.out en/examples/results/branching.update.out en/examples/results/cmdref.diff-p.out en/examples/results/daily.copy.after.out en/examples/results/daily.copy.cat.out en/examples/results/daily.copy.clone.out en/examples/results/daily.copy.copy.out en/examples/results/daily.copy.dir-dest.out en/examples/results/daily.copy.dir-src-dest.out en/examples/results/daily.copy.dir-src.out en/examples/results/daily.copy.init.out en/examples/results/daily.copy.merge.out en/examples/results/daily.copy.other.out en/examples/results/daily.copy.simple.out en/examples/results/daily.copy.status-copy.out en/examples/results/daily.copy.status.out en/examples/results/daily.files.add-dir.out en/examples/results/daily.files.add.out en/examples/results/daily.files.addremove.out en/examples/results/daily.files.commit-addremove.out en/examples/results/daily.files.hidden.out en/examples/results/daily.files.missing.out en/examples/results/daily.files.recover-missing.out en/examples/results/daily.files.remove-after.out en/examples/results/daily.files.remove.out en/examples/results/daily.rename.rename.out en/examples/results/daily.rename.status-copy.out en/examples/results/daily.rename.status.out en/examples/results/daily.revert.add.out en/examples/results/daily.revert.copy.out en/examples/results/daily.revert.missing.out en/examples/results/daily.revert.modify.out en/examples/results/daily.revert.remove.out en/examples/results/daily.revert.rename-orig.out en/examples/results/daily.revert.rename.out en/examples/results/daily.revert.status.out en/examples/results/daily.revert.unmodify.out en/examples/results/extdiff.diff.out en/examples/results/extdiff.extdiff-ctx.out en/examples/results/extdiff.extdiff.out en/examples/results/filenames.dirs.out en/examples/results/filenames.files.out en/examples/results/filenames.filter.exclude.out en/examples/results/filenames.filter.include.out en/examples/results/filenames.glob.group.out en/examples/results/filenames.glob.question.out en/examples/results/filenames.glob.range.out en/examples/results/filenames.glob.star-starstar.out en/examples/results/filenames.glob.star.out en/examples/results/filenames.glob.starstar.out en/examples/results/filenames.wdir-relname.out en/examples/results/filenames.wdir-subdir.out en/examples/results/hook.msglen.go.out en/examples/results/hook.msglen.run.out en/examples/results/hook.simple.ext.out en/examples/results/hook.simple.init.out en/examples/results/hook.simple.pretxncommit.out en/examples/results/hook.ws.better.out en/examples/results/hook.ws.simple.out en/examples/results/issue29.go.out en/examples/results/mq.dodiff.diff.out en/examples/results/mq.guards.init.out en/examples/results/mq.guards.qguard.neg.out en/examples/results/mq.guards.qguard.out en/examples/results/mq.guards.qguard.pos.out en/examples/results/mq.guards.qselect.cat.out en/examples/results/mq.guards.qselect.error.out en/examples/results/mq.guards.qselect.foo.out en/examples/results/mq.guards.qselect.foobar.out en/examples/results/mq.guards.qselect.qpush.out en/examples/results/mq.guards.qselect.quux.out en/examples/results/mq.guards.series.out en/examples/results/mq.id.out.out en/examples/results/mq.id.output.out en/examples/results/mq.qinit-help.help.out en/examples/results/mq.tarball.download.out en/examples/results/mq.tarball.newsource.out en/examples/results/mq.tarball.qinit.out en/examples/results/mq.tarball.repush.out en/examples/results/mq.tools.lsdiff.out en/examples/results/mq.tools.tools.out en/examples/results/mq.tutorial.add.out en/examples/results/mq.tutorial.qinit.out en/examples/results/mq.tutorial.qnew.out en/examples/results/mq.tutorial.qnew2.out en/examples/results/mq.tutorial.qpop.out en/examples/results/mq.tutorial.qpush-a.out en/examples/results/mq.tutorial.qrefresh.out en/examples/results/mq.tutorial.qrefresh2.out en/examples/results/mq.tutorial.qseries.out en/examples/results/rename.divergent.clone.out en/examples/results/rename.divergent.merge.out en/examples/results/rename.divergent.rename.anne.out en/examples/results/rename.divergent.rename.bob.out en/examples/results/rollback.add.out en/examples/results/rollback.commit.out en/examples/results/rollback.rollback.out en/examples/results/rollback.status.out en/examples/results/rollback.tip.out en/examples/results/rollback.twice.out en/examples/results/tag.init.out en/examples/results/tag.log.out en/examples/results/tag.log.v1.0.out en/examples/results/tag.remove.out en/examples/results/tag.replace.out en/examples/results/tag.tag.out en/examples/results/tag.tags.out en/examples/results/tag.tip.out en/examples/results/template.simple.changelog.out en/examples/results/template.simple.combine.out en/examples/results/template.simple.compact.out en/examples/results/template.simple.datekeyword.out en/examples/results/template.simple.keywords.out en/examples/results/template.simple.manyfilters.out en/examples/results/template.simple.normal.out en/examples/results/template.simple.rev.out en/examples/results/template.simple.simplest.out en/examples/results/template.simple.simplesub.out en/examples/results/template.svnstyle.id.out en/examples/results/template.svnstyle.result.out en/examples/results/template.svnstyle.short.out en/examples/results/template.svnstyle.simplest.out en/examples/results/template.svnstyle.style.out en/examples/results/template.svnstyle.syntax.error.out en/examples/results/template.svnstyle.syntax.input.out en/examples/results/template.svnstyle.template.out en/examples/results/tour-merge-conflict.commit.out en/examples/results/tour-merge-conflict.cousin.out en/examples/results/tour-merge-conflict.merge.out en/examples/results/tour-merge-conflict.pull.out en/examples/results/tour-merge-conflict.son.out en/examples/results/tour-merge-conflict.wife.out en/examples/results/tour.clone-pull.out en/examples/results/tour.clone-push.out en/examples/results/tour.clone.out en/examples/results/tour.commit.out en/examples/results/tour.diff.out en/examples/results/tour.help.out en/examples/results/tour.incoming.out en/examples/results/tour.log-r.out en/examples/results/tour.log-v.out en/examples/results/tour.log-vp.out en/examples/results/tour.log.out en/examples/results/tour.log.range.out en/examples/results/tour.ls-a.out en/examples/results/tour.ls.out en/examples/results/tour.merge.cat.out en/examples/results/tour.merge.clone.out en/examples/results/tour.merge.commit.out en/examples/results/tour.merge.heads.out en/examples/results/tour.merge.merge.out en/examples/results/tour.merge.parents.out en/examples/results/tour.merge.pull.out en/examples/results/tour.merge.tip.out en/examples/results/tour.merge.update.out en/examples/results/tour.older.out en/examples/results/tour.outgoing.net.out en/examples/results/tour.outgoing.out en/examples/results/tour.parents.out en/examples/results/tour.pull.out en/examples/results/tour.push.net.out en/examples/results/tour.push.nothing.out en/examples/results/tour.push.out en/examples/results/tour.reclone.out en/examples/results/tour.sed.out en/examples/results/tour.status.out en/examples/results/tour.tip.out en/examples/results/tour.update.out en/examples/results/tour.version.out en/images/feature-branches.dot en/images/filelog.svg en/images/kdiff3.png en/images/metadata.svg en/images/mq-stack.svg en/images/note.png en/images/revlog.svg en/images/snapshot.svg en/images/tour-history.svg en/images/tour-merge-conflict.svg en/images/tour-merge-merge.svg en/images/tour-merge-pull.svg en/images/tour-merge-sep-repos.svg en/images/undo-manual-merge.dot en/images/undo-manual.dot en/images/undo-non-tip.dot en/images/undo-simple.dot en/images/wdir-after-commit.svg en/images/wdir-branch.svg en/images/wdir-merge.svg en/images/wdir-pre-branch.svg en/images/wdir.svg stylesheets/base-html-stylesheet.xsl web/index.html |
line diff
1.1 --- a/.hgignore Fri Mar 20 17:17:55 2009 +0800 1.2 +++ b/.hgignore Mon Mar 30 16:23:33 2009 +0800 1.3 @@ -1,7 +1,4 @@ 1.4 -[^/]+/build/ 1.5 -[^/]+/fop/ 1.6 -[^/]+/hello/ 1.7 -[^/]+/html/ 1.8 +[^/]+/htdocs/ 1.9 1.10 syntax: glob 1.11 1.12 @@ -13,13 +10,17 @@ 1.13 *.pyc 1.14 *.rej 1.15 *.run 1.16 -*-tmp.svg 1.17 *~ 1.18 -.*.swp 1.19 +.*.sw[op] 1.20 .\#* 1.21 .run 1.22 .validated-00book.xml 1.23 en/all-ids.dat 1.24 web/hgbook/.database.sqlite3 1.25 web/hgbook/secrets.py 1.26 +web/index-read.html.in 1.27 stylesheets/system-xsl 1.28 +build 1.29 +en/html 1.30 +en/examples/results 1.31 +tools 1.32 \ No newline at end of file
2.1 --- a/Makefile Fri Mar 20 17:17:55 2009 +0800 2.2 +++ b/Makefile Mon Mar 30 16:23:33 2009 +0800 2.3 @@ -20,26 +20,26 @@ 2.4 rev_id = $(shell hg parents --template '{node|short} ({date|shortdate})') 2.5 2.6 images := \ 2.7 - en/images/feature-branches.png \ 2.8 - en/images/filelog.png \ 2.9 - en/images/metadata.png \ 2.10 - en/images/mq-stack.png \ 2.11 - en/images/revlog.png \ 2.12 - en/images/snapshot.png \ 2.13 - en/images/tour-history.png \ 2.14 - en/images/tour-merge-conflict.png \ 2.15 - en/images/tour-merge-merge.png \ 2.16 - en/images/tour-merge-pull.png \ 2.17 - en/images/tour-merge-sep-repos.png \ 2.18 - en/images/undo-manual-merge.png \ 2.19 - en/images/undo-manual.png \ 2.20 - en/images/undo-non-tip.png \ 2.21 - en/images/undo-simple.png \ 2.22 - en/images/wdir-after-commit.png \ 2.23 - en/images/wdir-branch.png \ 2.24 - en/images/wdir-merge.png \ 2.25 - en/images/wdir.png \ 2.26 - en/images/wdir-pre-branch.png 2.27 + en/figs/feature-branches.png \ 2.28 + en/figs/filelog.png \ 2.29 + en/figs/metadata.png \ 2.30 + en/figs/mq-stack.png \ 2.31 + en/figs/revlog.png \ 2.32 + en/figs/snapshot.png \ 2.33 + en/figs/tour-history.png \ 2.34 + en/figs/tour-merge-conflict.png \ 2.35 + en/figs/tour-merge-merge.png \ 2.36 + en/figs/tour-merge-pull.png \ 2.37 + en/figs/tour-merge-sep-repos.png \ 2.38 + en/figs/undo-manual-merge.png \ 2.39 + en/figs/undo-manual.png \ 2.40 + en/figs/undo-non-tip.png \ 2.41 + en/figs/undo-simple.png \ 2.42 + en/figs/wdir-after-commit.png \ 2.43 + en/figs/wdir-branch.png \ 2.44 + en/figs/wdir-merge.png \ 2.45 + en/figs/wdir.png \ 2.46 + en/figs/wdir-pre-branch.png 2.47 2.48 help: 2.49 @echo " make html [LINGUA=en|zh|...]" 2.50 @@ -53,30 +53,30 @@ 2.51 @echo " make clean # Remove the build files." 2.52 2.53 clean: 2.54 - @rm -fr build po/*.mo hello en/hello en/html en/.validated-00book.xml \ 2.55 - stylesheets/system-xsl en/images/*-tmp.svg \ 2.56 - en/images/feature-branches.png \ 2.57 - en/images/filelog.png \ 2.58 - en/images/feature-branches.png \ 2.59 - en/images/filelog.png \ 2.60 - en/images/metadata.png \ 2.61 - en/images/mq-stack.png \ 2.62 - en/images/revlog.png \ 2.63 - en/images/snapshot.png \ 2.64 - en/images/tour-history.png \ 2.65 - en/images/tour-merge-conflict.png \ 2.66 - en/images/tour-merge-merge.png \ 2.67 - en/images/tour-merge-pull.png \ 2.68 - en/images/tour-merge-sep-repos.png \ 2.69 - en/images/undo-manual-merge.png \ 2.70 - en/images/undo-manual.png \ 2.71 - en/images/undo-non-tip.png \ 2.72 - en/images/undo-simple.png \ 2.73 - en/images/wdir-after-commit.png \ 2.74 - en/images/wdir-branch.png \ 2.75 - en/images/wdir-merge.png \ 2.76 - en/images/wdir-pre-branch.png \ 2.77 - en/images/wdir.png 2.78 + @rm -fr build po/*.mo hello en/hello en/html en/.validated-00book.xml en/examples/.run en/examples/results \ 2.79 + stylesheets/system-xsl en/figs/*-tmp.svg \ 2.80 + en/figs/feature-branches.png \ 2.81 + en/figs/filelog.png \ 2.82 + en/figs/feature-branches.png \ 2.83 + en/figs/filelog.png \ 2.84 + en/figs/metadata.png \ 2.85 + en/figs/mq-stack.png \ 2.86 + en/figs/revlog.png \ 2.87 + en/figs/snapshot.png \ 2.88 + en/figs/tour-history.png \ 2.89 + en/figs/tour-merge-conflict.png \ 2.90 + en/figs/tour-merge-merge.png \ 2.91 + en/figs/tour-merge-pull.png \ 2.92 + en/figs/tour-merge-sep-repos.png \ 2.93 + en/figs/undo-manual-merge.png \ 2.94 + en/figs/undo-manual.png \ 2.95 + en/figs/undo-non-tip.png \ 2.96 + en/figs/undo-simple.png \ 2.97 + en/figs/wdir-after-commit.png \ 2.98 + en/figs/wdir-branch.png \ 2.99 + en/figs/wdir-merge.png \ 2.100 + en/figs/wdir-pre-branch.png \ 2.101 + en/figs/wdir.png 2.102 2.103 all: 2.104 ifdef LINGUA 2.105 @@ -133,23 +133,24 @@ 2.106 xmllint --nonet --noout --postvalid --xinclude $< 2.107 2.108 ifneq "$(findstring $(LINGUA),$(DBK_LANGUAGES))" "" 2.109 -build/$(LINGUA)/source/hgbook.xml: $(wildcard $(LINGUA)/*.xml) $(images) 2.110 - mkdir -p build/$(LINGUA)/source 2.111 - cp -r $(LINGUA)/* build/$(LINGUA)/source 2.112 - xmllint --nonet --noent --xinclude --postvalid --output $@.tmp $(LINGUA)/00book.xml 2.113 +$(LINGUA)/examples/.run: 2.114 + (cd $(LINGUA)/examples; ./run-example -v -a) 2.115 + 2.116 +build/$(LINGUA)/source/hgbook.xml: $(wildcard $(LINGUA)/*.xml) $(images) $(LINGUA)/examples/.run $(images) 2.117 + mkdir -p build/$(LINGUA)/source/figs 2.118 + cp $(LINGUA)/figs/*.png build/$(LINGUA)/source/figs 2.119 + (cd $(LINGUA); xmllint --nonet --noent --xinclude --postvalid --output ../$@.tmp 00book.xml) 2.120 cat $@.tmp | sed 's/\$$rev_id\$$/${rev_id}/' > $@ 2.121 else 2.122 -build/$(LINGUA)/source/hgbook.xml: $(wildcard en/*.xml) po/$(LINGUA).po $(images) 2.123 - mkdir -p build/$(LINGUA)/source 2.124 - cp -r en/images build/$(LINGUA)/source 2.125 - cp -r en/examples build/$(LINGUA)/source 2.126 - cp en/book-shortcuts.xml build/$(LINGUA)/source 2.127 - for f in en/*.xml; do \ 2.128 - if [ $$f != "en/book-shortcuts.xml" ]; then \ 2.129 - $(TRANSLATE) -m $$f -p po/$(LINGUA).po -l build/$(LINGUA)/source/`basename $$f`; \ 2.130 - fi \ 2.131 - done 2.132 - xmllint --nonet --noent --xinclude --postvalid --output $@.tmp build/$(LINGUA)/source/00book.xml 2.133 +en/examples/.run: 2.134 + (cd en/examples; ./run-example -v -a) 2.135 + 2.136 +build/en/source/hgbook.xml: 2.137 + ${MAKE} LINGUA=en $@ 2.138 + 2.139 +build/$(LINGUA)/source/hgbook.xml: build/en/source/hgbook.xml po/$(LINGUA).po $(images) 2.140 + mkdir -p build/$(LINGUA)/source/figs 2.141 + $(TRANSLATE) -m build/en/source/hgbook.xml -p po/$(LINGUA).po -l $@.tmp 2.142 cat $@.tmp | sed 's/\$$rev_id\$$/${rev_id}/' > $@ 2.143 endif 2.144 2.145 @@ -164,8 +165,8 @@ 2.146 html: build/$(LINGUA)/html/index.html 2.147 2.148 build/$(LINGUA)/html/index.html: build/$(LINGUA)/source/hgbook.xml stylesheets/html.xsl stylesheets/$(LINGUA)/html.xsl 2.149 - mkdir -p build/$(LINGUA)/html/images 2.150 - cp en/images/*.png build/$(LINGUA)/html/images 2.151 + mkdir -p build/$(LINGUA)/html/figs 2.152 + cp en/figs/*.png build/$(LINGUA)/html/figs 2.153 cp stylesheets/hgbook.css build/$(LINGUA)/html 2.154 xsltproc --output build/$(LINGUA)/html/ \ 2.155 stylesheets/$(LINGUA)/html.xsl build/$(LINGUA)/source/hgbook.xml 2.156 @@ -180,8 +181,8 @@ 2.157 html-single: build/$(LINGUA)/html-single/hgbook.html 2.158 2.159 build/$(LINGUA)/html-single/hgbook.html: build/$(LINGUA)/source/hgbook.xml stylesheets/html-single.xsl stylesheets/$(LINGUA)/html-single.xsl 2.160 - mkdir -p build/$(LINGUA)/html-single/images 2.161 - cp en/images/*.png build/$(LINGUA)/html-single/images 2.162 + mkdir -p build/$(LINGUA)/html-single/figs 2.163 + cp en/figs/*.png build/$(LINGUA)/html-single/figs 2.164 cp stylesheets/hgbook.css build/$(LINGUA)/html-single 2.165 xsltproc --output build/$(LINGUA)/html-single/hgbook.html \ 2.166 stylesheets/$(LINGUA)/html-single.xsl build/$(LINGUA)/source/hgbook.xml 2.167 @@ -210,9 +211,9 @@ 2.168 (cd build/$(LINGUA)/source && ../../../tools/fop/fop.sh hgbook.fo ../pdf/hgbook.pdf) 2.169 endif 2.170 2.171 -en/images/%.png: en/images/%.svg en/fixsvg 2.172 +en/figs/%.png: en/figs/%.svg en/fixsvg 2.173 en/fixsvg $< 2.174 inkscape -D -d 120 -e $@ $<-tmp.svg 2.175 2.176 -en/images/%.svg: en/images/%.dot 2.177 +en/figs/%.svg: en/figs/%.dot 2.178 dot -Tsvg -o $@ $<
3.1 --- a/en/00book.xml Fri Mar 20 17:17:55 2009 +0800 3.2 +++ b/en/00book.xml Mon Mar 30 16:23:33 2009 +0800 3.3 @@ -1,7 +1,7 @@ 3.4 <?xml version="1.0" encoding="UTF-8"?> 3.5 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 3.6 -<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3.7 - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" 3.8 +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 3.9 + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" 3.10 [ 3.11 <!-- Below are references to files in this directory. --> 3.12
4.1 --- a/en/Makefile Fri Mar 20 17:17:55 2009 +0800 4.2 +++ b/en/Makefile Mon Mar 30 16:23:33 2009 +0800 4.3 @@ -1,28 +1,6 @@ 4.4 # This makefile requires GNU make. 4.5 4.6 -image-sources := \ 4.7 - feature-branches.dot \ 4.8 - filelog.svg \ 4.9 - kdiff3.png \ 4.10 - metadata.svg \ 4.11 - mq-stack.svg \ 4.12 - note.png \ 4.13 - revlog.svg \ 4.14 - snapshot.svg \ 4.15 - tour-history.svg \ 4.16 - tour-merge-conflict.svg \ 4.17 - tour-merge-merge.svg \ 4.18 - tour-merge-pull.svg \ 4.19 - tour-merge-sep-repos.svg \ 4.20 - undo-manual.dot \ 4.21 - undo-manual-merge.dot \ 4.22 - undo-non-tip.dot \ 4.23 - undo-simple.dot \ 4.24 - wdir.svg \ 4.25 - wdir-after-commit.svg \ 4.26 - wdir-branch.svg \ 4.27 - wdir-merge.svg \ 4.28 - wdir-pre-branch.svg 4.29 +image-sources := $(wildcard figs/*.dot figs/*.gif figs/*.png figs/*.svg) 4.30 4.31 xml-src-files := \ 4.32 00book.xml \ 4.33 @@ -31,9 +9,16 @@ 4.34 4.35 image-dot := $(filter %.dot,$(image-sources)) 4.36 image-svg := $(filter %.svg,$(image-sources)) 4.37 -image-png := $(filter %.png,$(image-sources)) 4.38 - 4.39 -image-html := $(image-dot:%.dot=%.png) $(image-svg:%.svg=%.png) $(image-png) 4.40 +image-oth := $(filter %.gif %.png,$(image-sources)) 4.41 + 4.42 +obj-web := html 4.43 +obj-websup := $(obj-web)/support 4.44 +obj-web-read := $(obj-web)/read 4.45 + 4.46 +image-web := \ 4.47 + $(image-dot:%.dot=$(obj-web-read)/%.png) \ 4.48 + $(image-svg:%.svg=$(obj-web-read)/%.png) \ 4.49 + $(image-oth:%=$(obj-web-read)/%) 4.50 4.51 example-sources-by-name := \ 4.52 backout \ 4.53 @@ -71,9 +56,6 @@ 4.54 $(example-sources-by-name:%=examples/%) \ 4.55 $(wildcard examples/ch*/*) 4.56 4.57 -obj-web := html 4.58 -obj-websup := html/support 4.59 - 4.60 extras-web-base := \ 4.61 $(obj-web)/index.html \ 4.62 $(obj-web)/robots.txt \ 4.63 @@ -130,24 +112,30 @@ 4.64 4.65 all: web 4.66 4.67 -../xsl/system-xsl: $(system-xsl-dir) 4.68 +../stylesheets/system-xsl: $(system-xsl-dir) 4.69 ln -s $< $@ 4.70 4.71 -web: ../xsl/system-xsl websup html 4.72 - 4.73 -html: ../xsl/system-xsl $(xml-src-files) valid 4.74 - xsltproc $(xsltproc-opts) -o html/read/x ../xsl/chunk-stylesheet.xsl 00book.xml 4.75 - for i in html/read/*.html; do \ 4.76 +web: ../stylesheets/system-xsl websup html 4.77 + 4.78 +html: $(obj-web-read)/index.html 4.79 + 4.80 +../web/index-read.html.in: ../web/genindex.py $(xml-src-files) 4.81 + $< 4.82 + 4.83 +$(obj-web-read)/index.html: ../stylesheets/system-xsl .validated-00book.xml ../web/index-read.html.in 4.84 + xsltproc $(xsltproc-opts) -o $(obj-web-read)/x ../stylesheets/chunk-stylesheet.xsl 00book.xml 4.85 + python ../web/texpand.py ../web/index-read.html.in html/read/index.html 4.86 + for i in $(obj-web-read)/*.html; do \ 4.87 gzip -9 -c $$i > $$i.gz; \ 4.88 done 4.89 4.90 -websup: $(extras-web) 4.91 - mkdir -p $(obj-websup)/figs 4.92 - cp ../xsl/system-xsl/images/*.png $(obj-websup)/figs 4.93 +websup: $(extras-web) $(image-web) 4.94 + mkdir -p $(obj-websup)/figs $(obj-web-read)/figs 4.95 + cp ../stylesheets/system-xsl/images/*.png $(obj-websup)/figs 4.96 cp -f ../web/icons/*.png $(obj-websup)/figs 4.97 4.98 -all-ids.dat: ../xsl/all-ids.xsl $(xml-src-files) 4.99 - $(xsltproc) $(xsltproc-opts) -o $@ ../xsl/all-ids.xsl 00book.xml 4.100 +all-ids.dat: ../stylesheets/all-ids.xsl $(xml-src-files) 4.101 + $(xsltproc) $(xsltproc-opts) -o $@ ../stylesheets/all-ids.xsl 00book.xml 4.102 4.103 web: websup 4.104 4.105 @@ -159,12 +147,26 @@ 4.106 4.107 # Produce 90dpi PNGs for the web. 4.108 4.109 -%.png: %.svg fixsvg 4.110 +$(obj-web-read)/figs/%.png: $(obj-web-read)/figs/%.svg fixsvg 4.111 + mkdir -p $(dir $@) 4.112 ./fixsvg $< 4.113 inkscape -D -e $@ $<-tmp.svg 4.114 rm $<-tmp.svg 4.115 4.116 -%.svg: %.dot 4.117 +$(obj-web-read)/figs/%.png: figs/%.svg fixsvg 4.118 + mkdir -p $(dir $@) 4.119 + ./fixsvg $< 4.120 + inkscape -D -e $@ $<-tmp.svg 4.121 + rm $<-tmp.svg 4.122 + 4.123 +$(obj-web-read)/figs/%.gif: figs/%.gif 4.124 + cp $< $@ 4.125 + 4.126 +$(obj-web-read)/figs/%.png: figs/%.png 4.127 + cp $< $@ 4.128 + 4.129 +$(obj-web-read)/figs/%.svg: figs/%.dot 4.130 + mkdir -p $(dir $@) 4.131 dot -Tsvg -o $@ $< 4.132 4.133 examples: $(example-prereqs) examples/.run 4.134 @@ -188,6 +190,7 @@ 4.135 rsync -avz --delete dist sp.red-bean.com:public_html/hgbook 4.136 4.137 vpath %.css ../web 4.138 +vpath %.html.in ../web 4.139 vpath %.js ../web/javascript 4.140 4.141 $(obj-websup)/%.css: %.css
5.1 --- a/en/appA-cmdref.xml Fri Mar 20 17:17:55 2009 +0800 5.2 +++ b/en/appA-cmdref.xml Mon Mar 30 16:23:33 2009 +0800 5.3 @@ -1,6 +1,7 @@ 5.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 5.5 5.6 <appendix id="cmdref"> 5.7 + <?dbhtml filename="command-reference.html"?> 5.8 <title>Command reference</title> 5.9 5.10 <para id="x_653">\cmdref{add}{add files at the next commit} 5.11 @@ -12,7 +13,7 @@ 5.12 5.13 <para id="x_655">Show differences between revisions for the specified files or 5.14 directories, using the unified diff format. For a description of the 5.15 -unified diff format, see section <xref linkend="sec.mq.patch"/>.</para> 5.16 +unified diff format, see <xref linkend="sec:mq:patch"/>.</para> 5.17 5.18 <para id="x_656">By default, this command does not print diffs for files that Mercurial 5.19 considers to contain binary data. To control this behaviour, see the 5.20 @@ -20,7 +21,7 @@ 5.21 5.22 <sect2> 5.23 <title>Options</title> 5.24 - 5.25 +x 5.26 <para id="x_657">\loptref{diff}{nodates}</para> 5.27 5.28 <para id="x_658">Omit date and time information when printing diff headers.</para> 5.29 @@ -158,7 +159,7 @@ 5.30 <sect2> 5.31 <title>Tips and tricks</title> 5.32 5.33 -<sect3 id="cmdref.diff-vs-status"> 5.34 +<sect3 id="cmdref:diff-vs-status"> 5.35 <title>Why do the results of <command role="hg-cmd">hg diff</command> and <command role="hg-cmd">hg status</command> differ?</title> 5.36 5.37 <para id="x_676">When you run the <command role="hg-cmd">hg status</command> command, you'll see a list of files
6.1 --- a/en/appB-mq-ref.xml Fri Mar 20 17:17:55 2009 +0800 6.2 +++ b/en/appB-mq-ref.xml Mon Mar 30 16:23:33 2009 +0800 6.3 @@ -1,10 +1,10 @@ 6.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 6.5 6.6 -<appendix id="chap.mqref"> 6.7 +<appendix id="chap:mqref"> 6.8 <?dbhtml filename="mercurial-queues-reference.html"?> 6.9 <title>Mercurial Queues reference</title> 6.10 6.11 - <sect1 id="sec.mqref.cmdref"> 6.12 + <sect1 id="sec:mqref:cmdref"> 6.13 <title>MQ command reference</title> 6.14 6.15 <para id="x_5e8">For an overview of the commands provided by MQ, use the 6.16 @@ -296,7 +296,7 @@ 6.17 role="hg-ext-mq">qpop</command>.</para> 6.18 6.19 </sect2> 6.20 - <sect2 id="sec.mqref.cmd.qpush"> 6.21 + <sect2 id="sec:mqref:cmd:qpush"> 6.22 <title><command role="hg-ext-mq">qpush</command>&emdash;push 6.23 patches onto the stack</title> 6.24
7.1 --- a/en/appC-srcinstall.xml Fri Mar 20 17:17:55 2009 +0800 7.2 +++ b/en/appC-srcinstall.xml Mon Mar 30 16:23:33 2009 +0800 7.3 @@ -1,10 +1,10 @@ 7.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 7.5 7.6 -<appendix id="chap.srcinstall"> 7.7 +<appendix id="chap:srcinstall"> 7.8 <?dbhtml filename="installing-mercurial-from-source.html"?> 7.9 <title>Installing Mercurial from source</title> 7.10 7.11 - <sect1 id="sec.srcinstall.unixlike"> 7.12 + <sect1 id="sec:srcinstall:unixlike"> 7.13 <title>On a Unix-like system</title> 7.14 7.15 <para id="x_5e0">If you are using a Unix-like system that has a sufficiently
8.1 --- a/en/appD-license.xml Fri Mar 20 17:17:55 2009 +0800 8.2 +++ b/en/appD-license.xml Mon Mar 30 16:23:33 2009 +0800 8.3 @@ -1,6 +1,6 @@ 8.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 8.5 8.6 -<appendix id="cha.opl"> 8.7 +<appendix id="cha:opl"> 8.8 <?dbhtml filename="open-publication-license.html"?> 8.9 <title>Open Publication License</title> 8.10 8.11 @@ -32,7 +32,7 @@ 8.12 8.13 <para id="x_63c">The reference must be immediately followed with any options 8.14 elected by the author(s) and/or publisher of the document (see 8.15 - section <xref linkend="sec.opl.options"/>).</para> 8.16 + <xref linkend="sec:opl:options"/>).</para> 8.17 8.18 <para id="x_63d">Commercial redistribution of Open Publication-licensed 8.19 material is permitted.</para> 8.20 @@ -133,7 +133,7 @@ 8.21 </listitem></orderedlist> 8.22 8.23 </sect1> 8.24 - <sect1 id="sec.opl.options"> 8.25 + <sect1 id="sec:opl:options"> 8.26 <title>License options</title> 8.27 8.28 <para id="x_64e">The author(s) and/or publisher of an Open
9.1 --- a/en/ch00-preface.xml Fri Mar 20 17:17:55 2009 +0800 9.2 +++ b/en/ch00-preface.xml Mon Mar 30 16:23:33 2009 +0800 9.3 @@ -1,6 +1,6 @@ 9.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 9.5 9.6 -<preface id="chap.preface"> 9.7 +<preface id="chap:preface"> 9.8 <?dbhtml filename="preface.html"?> 9.9 <title>Preface</title> 9.10 9.11 @@ -61,8 +61,8 @@ 9.12 can revert to an earlier version of one or more files. In 9.13 fact, a <emphasis>really</emphasis> good revision control 9.14 tool will even help you to efficiently figure out exactly 9.15 - when a problem was introduced (see section <xref 9.16 - linkend="sec.undo.bisect"/> for details).</para></listitem> 9.17 + when a problem was introduced (see <xref 9.18 + linkend="sec:undo:bisect"/> for details).</para></listitem> 9.19 <listitem><para id="x_75">It will help you to work simultaneously on, 9.20 and manage the drift between, multiple versions of your 9.21 project.</para></listitem> 9.22 @@ -167,8 +167,8 @@ 9.23 <para id="x_87">As an instance of this, several consecutive commits in an 9.24 example can show up as having occurred during the same second. 9.25 You can see this occur in the <literal 9.26 - role="hg-ext">bisect</literal> example in section <xref 9.27 - linkend="sec.undo.bisect"/>, for instance.</para> 9.28 + role="hg-ext">bisect</literal> example in <xref 9.29 + linkend="sec:undo:bisect"/>, for instance.</para> 9.30 9.31 <para id="x_88">So when you're reading examples, don't place too much weight 9.32 on the dates or times you see in the output of commands. But
10.1 --- a/en/ch01-tour-basic.xml Fri Mar 20 17:17:55 2009 +0800 10.2 +++ b/en/ch01-tour-basic.xml Mon Mar 30 16:23:33 2009 +0800 10.3 @@ -1,27 +1,27 @@ 10.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 10.5 10.6 -<chapter id="chap.tour-basic"> 10.7 +<chapter id="chap:tour-basic"> 10.8 <?dbhtml filename="a-tour-of-mercurial-the-basics.html"?> 10.9 <title>A tour of Mercurial: the basics</title> 10.10 10.11 - <sect1 id="sec.tour.install"> 10.12 + <sect1 id="sec:tour:install"> 10.13 <title>Installing Mercurial on your system</title> 10.14 10.15 - <para>Prebuilt binary packages of Mercurial are available for 10.16 + <para id="x_1">Prebuilt binary packages of Mercurial are available for 10.17 every popular operating system. These make it easy to start 10.18 using Mercurial on your computer immediately.</para> 10.19 10.20 <sect2> 10.21 <title>Linux</title> 10.22 10.23 - <para>Because each Linux distribution has its own packaging 10.24 + <para id="x_2">Because each Linux distribution has its own packaging 10.25 tools, policies, and rate of development, it's difficult to 10.26 give a comprehensive set of instructions on how to install 10.27 Mercurial binaries. The version of Mercurial that you will 10.28 end up with can vary depending on how active the person is who 10.29 maintains the package for your distribution.</para> 10.30 10.31 - <para>To keep things simple, I will focus on installing 10.32 + <para id="x_3">To keep things simple, I will focus on installing 10.33 Mercurial from the command line under the most popular Linux 10.34 distributions. Most of these distributions provide graphical 10.35 package managers that will let you install Mercurial with a 10.36 @@ -29,15 +29,15 @@ 10.37 <literal>mercurial</literal>.</para> 10.38 10.39 <itemizedlist> 10.40 - <listitem><para>Debian:</para> 10.41 + <listitem><para id="x_4">Debian:</para> 10.42 <programlisting>apt-get install mercurial</programlisting></listitem> 10.43 - <listitem><para>Fedora Core:</para> 10.44 + <listitem><para id="x_5">Fedora Core:</para> 10.45 <programlisting>yum install mercurial</programlisting></listitem> 10.46 - <listitem><para>Gentoo:</para> 10.47 + <listitem><para id="x_6">Gentoo:</para> 10.48 <programlisting>emerge mercurial</programlisting></listitem> 10.49 - <listitem><para>OpenSUSE:</para> 10.50 + <listitem><para id="x_7">OpenSUSE:</para> 10.51 <programlisting>yum install mercurial</programlisting></listitem> 10.52 - <listitem><para>Ubuntu: Ubuntu's Mercurial package is based on 10.53 + <listitem><para id="x_8">Ubuntu: Ubuntu's Mercurial package is based on 10.54 Debian's. To install it, run the following 10.55 command.</para> 10.56 <programlisting>apt-get install mercurial</programlisting></listitem> 10.57 @@ -47,7 +47,7 @@ 10.58 <sect2> 10.59 <title>Solaris</title> 10.60 10.61 - <para>SunFreeWare, at <ulink 10.62 + <para id="x_9">SunFreeWare, at <ulink 10.63 url="http://www.sunfreeware.com">http://www.sunfreeware.com</ulink>, 10.64 is a good source for a large number of pre-built Solaris 10.65 packages for 32 and 64 bit Intel and Sparc architectures, 10.66 @@ -57,7 +57,7 @@ 10.67 <sect2> 10.68 <title>Mac OS X</title> 10.69 10.70 - <para>Lee Cantey publishes an installer of Mercurial for Mac OS 10.71 + <para id="x_a">Lee Cantey publishes an installer of Mercurial for Mac OS 10.72 X at <ulink 10.73 url="http://mercurial.berkwood.com">http://mercurial.berkwood.com</ulink>. 10.74 This package works on both Intel- and Power-based Macs. Before 10.75 @@ -66,7 +66,7 @@ 10.76 is easy to do; simply follow the instructions on Lee's 10.77 site.</para> 10.78 10.79 - <para>It's also possible to install Mercurial using Fink or 10.80 + <para id="x_b">It's also possible to install Mercurial using Fink or 10.81 MacPorts, two popular free package managers for Mac OS X. If 10.82 you have Fink, use <command>sudo apt-get install 10.83 mercurial-py25</command>. If MacPorts, <command>sudo port 10.84 @@ -76,14 +76,14 @@ 10.85 <sect2> 10.86 <title>Windows</title> 10.87 10.88 - <para>Lee Cantey publishes an installer of Mercurial for Windows 10.89 + <para id="x_c">Lee Cantey publishes an installer of Mercurial for Windows 10.90 at <ulink 10.91 url="http://mercurial.berkwood.com">http://mercurial.berkwood.com</ulink>. 10.92 This package has no external dependencies; it <quote>just 10.93 works</quote>.</para> 10.94 10.95 <note> 10.96 - <para> The Windows version of Mercurial does not 10.97 + <para id="x_d"> The Windows version of Mercurial does not 10.98 automatically convert line endings between Windows and Unix 10.99 styles. If you want to share work with Unix users, you must 10.100 do a little additional configuration work. XXX Flesh this 10.101 @@ -95,7 +95,7 @@ 10.102 <sect1> 10.103 <title>Getting started</title> 10.104 10.105 - <para>To begin, we'll use the <command role="hg-cmd">hg 10.106 + <para id="x_e">To begin, we'll use the <command role="hg-cmd">hg 10.107 version</command> command to find out whether Mercurial is 10.108 actually installed properly. The actual version information 10.109 that it prints isn't so important; it's whether it prints 10.110 @@ -106,7 +106,7 @@ 10.111 <sect2> 10.112 <title>Built-in help</title> 10.113 10.114 - <para>Mercurial provides a built-in help system. This is 10.115 + <para id="x_f">Mercurial provides a built-in help system. This is 10.116 invaluable for those times when you find yourself stuck 10.117 trying to remember how to run a command. If you are 10.118 completely stuck, simply run <command role="hg-cmd">hg 10.119 @@ -117,7 +117,7 @@ 10.120 10.121 &interaction.tour.help; 10.122 10.123 - <para>For a more impressive level of detail (which you won't 10.124 + <para id="x_10">For a more impressive level of detail (which you won't 10.125 usually need) run <command role="hg-cmd">hg help <option 10.126 role="hg-opt-global">-v</option></command>. The <option 10.127 role="hg-opt-global">-v</option> option is short for 10.128 @@ -130,13 +130,13 @@ 10.129 <sect1> 10.130 <title>Working with a repository</title> 10.131 10.132 - <para>In Mercurial, everything happens inside a 10.133 + <para id="x_11">In Mercurial, everything happens inside a 10.134 <emphasis>repository</emphasis>. The repository for a project 10.135 contains all of the files that <quote>belong to</quote> that 10.136 project, along with a historical record of the project's 10.137 files.</para> 10.138 10.139 - <para>There's nothing particularly magical about a repository; it 10.140 + <para id="x_12">There's nothing particularly magical about a repository; it 10.141 is simply a directory tree in your filesystem that Mercurial 10.142 treats as special. You can rename or delete a repository any 10.143 time you like, using either the command line or your file 10.144 @@ -145,7 +145,7 @@ 10.145 <sect2> 10.146 <title>Making a local copy of a repository</title> 10.147 10.148 - <para><emphasis>Copying</emphasis> a repository is just a little 10.149 + <para id="x_13"><emphasis>Copying</emphasis> a repository is just a little 10.150 bit special. While you could use a normal file copying 10.151 command to make a copy of a repository, it's best to use a 10.152 built-in command that Mercurial provides. This command is 10.153 @@ -154,23 +154,23 @@ 10.154 10.155 &interaction.tour.clone; 10.156 10.157 - <para>If our clone succeeded, we should now have a local 10.158 + <para id="x_14">If our clone succeeded, we should now have a local 10.159 directory called <filename class="directory">hello</filename>. 10.160 This directory will contain some files.</para> 10.161 10.162 &interaction.tour.ls; 10.163 10.164 - <para>These files have the same contents and history in our 10.165 + <para id="x_15">These files have the same contents and history in our 10.166 repository as they do in the repository we cloned.</para> 10.167 10.168 - <para>Every Mercurial repository is complete, self-contained, 10.169 + <para id="x_16">Every Mercurial repository is complete, self-contained, 10.170 and independent. It contains its own private copy of a 10.171 project's files and history. A cloned repository remembers 10.172 the location of the repository it was cloned from, but it does 10.173 not communicate with that repository, or any other, unless you 10.174 tell it to.</para> 10.175 10.176 - <para>What this means for now is that we're free to experiment 10.177 + <para id="x_17">What this means for now is that we're free to experiment 10.178 with our repository, safe in the knowledge that it's a private 10.179 <quote>sandbox</quote> that won't affect anyone else.</para> 10.180 10.181 @@ -178,20 +178,20 @@ 10.182 <sect2> 10.183 <title>What's in a repository?</title> 10.184 10.185 - <para>When we take a more detailed look inside a repository, we 10.186 + <para id="x_18">When we take a more detailed look inside a repository, we 10.187 can see that it contains a directory named <filename 10.188 class="directory">.hg</filename>. This is where Mercurial 10.189 keeps all of its metadata for the repository.</para> 10.190 10.191 &interaction.tour.ls-a; 10.192 10.193 - <para>The contents of the <filename 10.194 + <para id="x_19">The contents of the <filename 10.195 class="directory">.hg</filename> directory and its 10.196 subdirectories are private to Mercurial. Every other file and 10.197 directory in the repository is yours to do with as you 10.198 please.</para> 10.199 10.200 - <para>To introduce a little terminology, the <filename 10.201 + <para id="x_1a">To introduce a little terminology, the <filename 10.202 class="directory">.hg</filename> directory is the 10.203 <quote>real</quote> repository, and all of the files and 10.204 directories that coexist with it are said to live in the 10.205 @@ -208,68 +208,66 @@ 10.206 <sect1> 10.207 <title>A tour through history</title> 10.208 10.209 - <para>One of the first things we might want to do with a new, 10.210 + <para id="x_1b">One of the first things we might want to do with a new, 10.211 unfamiliar repository is understand its history. The <command 10.212 role="hg-cmd">hg log</command> command gives us a view of 10.213 history.</para> 10.214 10.215 &interaction.tour.log; 10.216 10.217 - <para>By default, this command prints a brief paragraph of output 10.218 + <para id="x_1c">By default, this command prints a brief paragraph of output 10.219 for each change to the project that was recorded. In Mercurial 10.220 terminology, we call each of these recorded events a 10.221 <emphasis>changeset</emphasis>, because it can contain a record 10.222 of changes to several files.</para> 10.223 10.224 - <para>The fields in a record of output from <command 10.225 + <para id="x_1d">The fields in a record of output from <command 10.226 role="hg-cmd">hg log</command> are as follows.</para> 10.227 <itemizedlist> 10.228 - <listitem><para><literal>changeset</literal>: This field has the 10.229 + <listitem><para id="x_1e"><literal>changeset</literal>: This field has the 10.230 format of a number, followed by a colon, followed by a 10.231 hexadecimal string. These are 10.232 <emphasis>identifiers</emphasis> for the changeset. There 10.233 are two identifiers because the number is shorter and easier 10.234 to type than the hex string.</para></listitem> 10.235 - <listitem><para><literal>user</literal>: The identity of the 10.236 + <listitem><para id="x_1f"><literal>user</literal>: The identity of the 10.237 person who created the changeset. This is a free-form 10.238 field, but it most often contains a person's name and email 10.239 address.</para></listitem> 10.240 - <listitem><para><literal>date</literal>: The date and time on 10.241 + <listitem><para id="x_20"><literal>date</literal>: The date and time on 10.242 which the changeset was created, and the timezone in which 10.243 it was created. (The date and time are local to that 10.244 timezone; they display what time and date it was for the 10.245 person who created the changeset.)</para></listitem> 10.246 - <listitem><para><literal>summary</literal>: The first line of 10.247 + <listitem><para id="x_21"><literal>summary</literal>: The first line of 10.248 the text message that the creator of the changeset entered 10.249 to describe the changeset.</para></listitem></itemizedlist> 10.250 - <para>The default output printed by <command role="hg-cmd">hg 10.251 + <para id="x_22">The default output printed by <command role="hg-cmd">hg 10.252 log</command> is purely a summary; it is missing a lot of 10.253 detail.</para> 10.254 10.255 - <para>Figure <xref endterm="fig.tour-basic.history.caption" 10.256 - linkend="fig.tour-basic.history"/> provides a 10.257 - graphical representation of the history of the <filename 10.258 + <para id="x_23"><xref linkend="fig:tour-basic:history"/> provides 10.259 + a graphical representation of the history of the <filename 10.260 class="directory">hello</filename> repository, to make it a 10.261 little easier to see which direction history is 10.262 <quote>flowing</quote> in. We'll be returning to this figure 10.263 several times in this chapter and the chapter that 10.264 follows.</para> 10.265 10.266 - <informalfigure id="fig.tour-basic.history"> 10.267 + <figure id="fig:tour-basic:history"> 10.268 + <title>Graphical history of the <filename 10.269 + class="directory">hello</filename> repository</title> 10.270 <mediaobject> 10.271 - <imageobject><imagedata fileref="images/tour-history.png"/></imageobject> 10.272 + <imageobject><imagedata fileref="figs/tour-history.png"/></imageobject> 10.273 <textobject><phrase>XXX add text</phrase></textobject> 10.274 - <caption><para id="fig.tour-basic.history.caption">Graphical history of 10.275 - the <filename class="directory">hello</filename> repository</para> 10.276 - </caption> 10.277 </mediaobject> 10.278 - </informalfigure> 10.279 + </figure> 10.280 10.281 <sect2> 10.282 <title>Changesets, revisions, and talking to other 10.283 people</title> 10.284 10.285 - <para>As English is a notoriously sloppy language, and computer 10.286 + <para id="x_25">As English is a notoriously sloppy language, and computer 10.287 science has a hallowed history of terminological confusion 10.288 (why use one term when four will do?), revision control has a 10.289 variety of words and phrases that mean the same thing. If you 10.290 @@ -279,7 +277,7 @@ 10.291 <quote>cset</quote>, and sometimes a changeset is referred to 10.292 as a <quote>revision</quote> or a <quote>rev</quote>.</para> 10.293 10.294 - <para>While it doesn't matter what <emphasis>word</emphasis> you 10.295 + <para id="x_26">While it doesn't matter what <emphasis>word</emphasis> you 10.296 use to refer to the concept of <quote>a changeset</quote>, the 10.297 <emphasis>identifier</emphasis> that you use to refer to 10.298 <quote>a <emphasis>specific</emphasis> changeset</quote> is of 10.299 @@ -288,14 +286,14 @@ 10.300 log</command> identifies a changeset using both a number and 10.301 a hexadecimal string.</para> 10.302 <itemizedlist> 10.303 - <listitem><para>The revision number is <emphasis>only valid in 10.304 + <listitem><para id="x_27">The revision number is <emphasis>only valid in 10.305 that repository</emphasis>,</para></listitem> 10.306 - <listitem><para>while the hex string is the 10.307 + <listitem><para id="x_28">while the hex string is the 10.308 <emphasis>permanent, unchanging identifier</emphasis> that 10.309 will always identify that exact changeset in 10.310 <emphasis>every</emphasis> copy of the 10.311 repository.</para></listitem></itemizedlist> 10.312 - <para>This distinction is important. If you send someone an 10.313 + <para id="x_29">This distinction is important. If you send someone an 10.314 email talking about <quote>revision 33</quote>, there's a high 10.315 likelihood that their revision 33 will <emphasis>not be the 10.316 same</emphasis> as yours. The reason for this is that a 10.317 @@ -305,7 +303,7 @@ 10.318 repositories. Three changes $a,b,c$ can easily appear in one 10.319 repository as $0,1,2$, while in another as $1,0,2$.</para> 10.320 10.321 - <para>Mercurial uses revision numbers purely as a convenient 10.322 + <para id="x_2a">Mercurial uses revision numbers purely as a convenient 10.323 shorthand. If you need to discuss a changeset with someone, 10.324 or make a record of a changeset for some other reason (for 10.325 example, in a bug report), use the hexadecimal 10.326 @@ -315,7 +313,7 @@ 10.327 <sect2> 10.328 <title>Viewing specific revisions</title> 10.329 10.330 - <para>To narrow the output of <command role="hg-cmd">hg 10.331 + <para id="x_2b">To narrow the output of <command role="hg-cmd">hg 10.332 log</command> down to a single revision, use the <option 10.333 role="hg-opt-log">-r</option> (or <option 10.334 role="hg-opt-log">--rev</option>) option. You can use 10.335 @@ -324,7 +322,7 @@ 10.336 10.337 &interaction.tour.log-r; 10.338 10.339 - <para>If you want to see the history of several revisions 10.340 + <para id="x_2c">If you want to see the history of several revisions 10.341 without having to list each one, you can use <emphasis>range 10.342 notation</emphasis>; this lets you express the idea <quote>I 10.343 want all revisions between <literal>abc</literal> and 10.344 @@ -332,7 +330,7 @@ 10.345 10.346 &interaction.tour.log.range; 10.347 10.348 - <para>Mercurial also honours the order in which you specify 10.349 + <para id="x_2d">Mercurial also honours the order in which you specify 10.350 revisions, so <command role="hg-cmd">hg log -r 2:4</command> 10.351 prints 2, 3, and 4. while <command role="hg-cmd">hg log -r 10.352 4:2</command> prints 4, 3, and 2.</para> 10.353 @@ -341,7 +339,7 @@ 10.354 <sect2> 10.355 <title>More detailed information</title> 10.356 10.357 - <para>While the summary information printed by <command 10.358 + <para id="x_2e">While the summary information printed by <command 10.359 role="hg-cmd">hg log</command> is useful if you already know 10.360 what you're looking for, you may need to see a complete 10.361 description of the change, or a list of the files changed, if 10.362 @@ -353,13 +351,13 @@ 10.363 10.364 &interaction.tour.log-v; 10.365 10.366 - <para>If you want to see both the description and content of a 10.367 - change, add the <option role="hg-opt-log">-p</option> (or 10.368 - <option role="hg-opt-log">--patch</option>) option. This 10.369 - displays the content of a change as a <emphasis>unified 10.370 - diff</emphasis> (if you've never seen a unified diff before, 10.371 - see section <xref linkend="sec.mq.patch"/> for an 10.372 - overview).</para> 10.373 + <para id="x_2f">If you want to see both the description and 10.374 + content of a change, add the <option 10.375 + role="hg-opt-log">-p</option> (or <option 10.376 + role="hg-opt-log">--patch</option>) option. This displays 10.377 + the content of a change as a <emphasis>unified diff</emphasis> 10.378 + (if you've never seen a unified diff before, see <xref 10.379 + linkend="sec:mq:patch"/> for an overview).</para> 10.380 10.381 &interaction.tour.log-vp; 10.382 10.383 @@ -368,39 +366,39 @@ 10.384 <sect1> 10.385 <title>All about command options</title> 10.386 10.387 - <para>Let's take a brief break from exploring Mercurial commands 10.388 + <para id="x_30">Let's take a brief break from exploring Mercurial commands 10.389 to discuss a pattern in the way that they work; you may find 10.390 this useful to keep in mind as we continue our tour.</para> 10.391 10.392 - <para>Mercurial has a consistent and straightforward approach to 10.393 + <para id="x_31">Mercurial has a consistent and straightforward approach to 10.394 dealing with the options that you can pass to commands. It 10.395 follows the conventions for options that are common to modern 10.396 Linux and Unix systems.</para> 10.397 <itemizedlist> 10.398 - <listitem><para>Every option has a long name. For example, as 10.399 + <listitem><para id="x_32">Every option has a long name. For example, as 10.400 we've already seen, the <command role="hg-cmd">hg 10.401 log</command> command accepts a <option 10.402 role="hg-opt-log">--rev</option> option.</para></listitem> 10.403 - <listitem><para>Most options have short names, too. Instead of 10.404 + <listitem><para id="x_33">Most options have short names, too. Instead of 10.405 <option role="hg-opt-log">--rev</option>, we can use <option 10.406 role="hg-opt-log">-r</option>. (The reason that some 10.407 options don't have short names is that the options in 10.408 question are rarely used.)</para></listitem> 10.409 - <listitem><para>Long options start with two dashes (e.g. <option 10.410 + <listitem><para id="x_34">Long options start with two dashes (e.g. <option 10.411 role="hg-opt-log">--rev</option>), while short options 10.412 start with one (e.g. <option 10.413 role="hg-opt-log">-r</option>).</para></listitem> 10.414 - <listitem><para>Option naming and usage is consistent across 10.415 + <listitem><para id="x_35">Option naming and usage is consistent across 10.416 commands. For example, every command that lets you specify 10.417 a changeset ID or revision number accepts both <option 10.418 role="hg-opt-log">-r</option> and <option 10.419 role="hg-opt-log">--rev</option> 10.420 arguments.</para></listitem></itemizedlist> 10.421 - <para>In the examples throughout this book, I use short options 10.422 + <para id="x_36">In the examples throughout this book, I use short options 10.423 instead of long. This just reflects my own preference, so don't 10.424 read anything significant into it.</para> 10.425 10.426 - <para>Most commands that print output of some kind will print more 10.427 + <para id="x_37">Most commands that print output of some kind will print more 10.428 output when passed a <option role="hg-opt-global">-v</option> 10.429 (or <option role="hg-opt-global">--verbose</option>) option, and 10.430 less when passed <option role="hg-opt-global">-q</option> (or 10.431 @@ -410,11 +408,11 @@ 10.432 <sect1> 10.433 <title>Making and reviewing changes</title> 10.434 10.435 - <para>Now that we have a grasp of viewing history in Mercurial, 10.436 + <para id="x_38">Now that we have a grasp of viewing history in Mercurial, 10.437 let's take a look at making some changes and examining 10.438 them.</para> 10.439 10.440 - <para>The first thing we'll do is isolate our experiment in a 10.441 + <para id="x_39">The first thing we'll do is isolate our experiment in a 10.442 repository of its own. We use the <command role="hg-cmd">hg 10.443 clone</command> command, but we don't need to clone a copy of 10.444 the remote repository. Since we already have a copy of it 10.445 @@ -424,7 +422,7 @@ 10.446 10.447 &interaction.tour.reclone; 10.448 10.449 - <para>As an aside, it's often good practice to keep a 10.450 + <para id="x_3a">As an aside, it's often good practice to keep a 10.451 <quote>pristine</quote> copy of a remote repository around, 10.452 which you can then make temporary clones of to create sandboxes 10.453 for each task you want to work on. This lets you work on 10.454 @@ -433,7 +431,7 @@ 10.455 local clones are so cheap, there's almost no overhead to cloning 10.456 and destroying repositories whenever you want.</para> 10.457 10.458 - <para>In our <filename class="directory">my-hello</filename> 10.459 + <para id="x_3b">In our <filename class="directory">my-hello</filename> 10.460 repository, we have a file <filename>hello.c</filename> that 10.461 contains the classic <quote>hello, world</quote> program. Let's 10.462 use the ancient and venerable <command>sed</command> command to 10.463 @@ -446,20 +444,20 @@ 10.464 10.465 &interaction.tour.sed; 10.466 10.467 - <para>Mercurial's <command role="hg-cmd">hg status</command> 10.468 + <para id="x_3c">Mercurial's <command role="hg-cmd">hg status</command> 10.469 command will tell us what Mercurial knows about the files in the 10.470 repository.</para> 10.471 10.472 &interaction.tour.status; 10.473 10.474 - <para>The <command role="hg-cmd">hg status</command> command 10.475 + <para id="x_3d">The <command role="hg-cmd">hg status</command> command 10.476 prints no output for some files, but a line starting with 10.477 <quote><literal>M</literal></quote> for 10.478 <filename>hello.c</filename>. Unless you tell it to, <command 10.479 role="hg-cmd">hg status</command> will not print any output 10.480 for files that have not been modified.</para> 10.481 10.482 - <para>The <quote><literal>M</literal></quote> indicates that 10.483 + <para id="x_3e">The <quote><literal>M</literal></quote> indicates that 10.484 Mercurial has noticed that we modified 10.485 <filename>hello.c</filename>. We didn't need to 10.486 <emphasis>inform</emphasis> Mercurial that we were going to 10.487 @@ -467,7 +465,7 @@ 10.488 file after we were done; it was able to figure this out 10.489 itself.</para> 10.490 10.491 - <para>It's a little bit helpful to know that we've modified 10.492 + <para id="x_3f">It's a little bit helpful to know that we've modified 10.493 <filename>hello.c</filename>, but we might prefer to know 10.494 exactly <emphasis>what</emphasis> changes we've made to it. To 10.495 do this, we use the <command role="hg-cmd">hg diff</command> 10.496 @@ -479,14 +477,14 @@ 10.497 <sect1> 10.498 <title>Recording changes in a new changeset</title> 10.499 10.500 - <para>We can modify files, build and test our changes, and use 10.501 + <para id="x_40">We can modify files, build and test our changes, and use 10.502 <command role="hg-cmd">hg status</command> and <command 10.503 role="hg-cmd">hg diff</command> to review our changes, until 10.504 we're satisfied with what we've done and arrive at a natural 10.505 stopping point where we want to record our work in a new 10.506 changeset.</para> 10.507 10.508 - <para>The <command role="hg-cmd">hg commit</command> command lets 10.509 + <para id="x_41">The <command role="hg-cmd">hg commit</command> command lets 10.510 us create a new changeset; we'll usually refer to this as 10.511 <quote>making a commit</quote> or 10.512 <quote>committing</quote>.</para> 10.513 @@ -494,7 +492,7 @@ 10.514 <sect2> 10.515 <title>Setting up a username</title> 10.516 10.517 - <para>When you try to run <command role="hg-cmd">hg 10.518 + <para id="x_42">When you try to run <command role="hg-cmd">hg 10.519 commit</command> for the first time, it is not guaranteed to 10.520 succeed. Mercurial records your name and address with each 10.521 change that you commit, so that you and others will later be 10.522 @@ -503,36 +501,37 @@ 10.523 change with. It will attempt each of the following methods, 10.524 in order:</para> 10.525 <orderedlist> 10.526 - <listitem><para>If you specify a <option 10.527 + <listitem><para id="x_43">If you specify a <option 10.528 role="hg-opt-commit">-u</option> option to the <command 10.529 role="hg-cmd">hg commit</command> command on the command 10.530 line, followed by a username, this is always given the 10.531 highest precedence.</para></listitem> 10.532 - <listitem><para>If you have set the <envar>HGUSER</envar> 10.533 + <listitem><para id="x_44">If you have set the <envar>HGUSER</envar> 10.534 environment variable, this is checked 10.535 next.</para></listitem> 10.536 - <listitem><para>If you create a file in your home directory 10.537 - called <filename role="special">.hgrc</filename>, with a 10.538 - <envar role="rc-item-ui">username</envar> entry, that will 10.539 - be used next. To see what the contents of this file 10.540 - should look like, refer to section <xref 10.541 - linkend="sec.tour-basic.username"/> 10.542 + <listitem><para id="x_45">If you create a file in your home 10.543 + directory called <filename 10.544 + role="special">.hgrc</filename>, with a <envar 10.545 + role="rc-item-ui">username</envar> entry, that will be 10.546 + used next. To see what the contents of this file should 10.547 + look like, refer to <xref 10.548 + linkend="sec:tour-basic:username"/> 10.549 below.</para></listitem> 10.550 - <listitem><para>If you have set the <envar>EMAIL</envar> 10.551 + <listitem><para id="x_46">If you have set the <envar>EMAIL</envar> 10.552 environment variable, this will be used 10.553 next.</para></listitem> 10.554 - <listitem><para>Mercurial will query your system to find out 10.555 + <listitem><para id="x_47">Mercurial will query your system to find out 10.556 your local user name and host name, and construct a 10.557 username from these components. Since this often results 10.558 in a username that is not very useful, it will print a 10.559 warning if it has to do 10.560 this.</para></listitem> 10.561 </orderedlist> 10.562 - <para>If all of these mechanisms fail, Mercurial will 10.563 + <para id="x_48">If all of these mechanisms fail, Mercurial will 10.564 fail, printing an error message. In this case, it will not 10.565 let you commit until you set up a 10.566 username.</para> 10.567 - <para>You should think of the <envar>HGUSER</envar> environment 10.568 + <para id="x_49">You should think of the <envar>HGUSER</envar> environment 10.569 variable and the <option role="hg-opt-commit">-u</option> 10.570 option to the <command role="hg-cmd">hg commit</command> 10.571 command as ways to <emphasis>override</emphasis> Mercurial's 10.572 @@ -540,10 +539,10 @@ 10.573 and most robust way to set a username for yourself is by 10.574 creating a <filename role="special">.hgrc</filename> file; see 10.575 below for details.</para> 10.576 - <sect3 id="sec.tour-basic.username"> 10.577 + <sect3 id="sec:tour-basic:username"> 10.578 <title>Creating a Mercurial configuration file</title> 10.579 10.580 - <para>To set a user name, use your favourite editor 10.581 + <para id="x_4a">To set a user name, use your favourite editor 10.582 to create a file called <filename 10.583 role="special">.hgrc</filename> in your home directory. 10.584 Mercurial will use this file to look up your personalised 10.585 @@ -555,7 +554,7 @@ 10.586 username = Firstname Lastname 10.587 <email.address@domain.net></programlisting> 10.588 10.589 - <para>The <quote><literal>[ui]</literal></quote> line begins a 10.590 + <para id="x_4b">The <quote><literal>[ui]</literal></quote> line begins a 10.591 <emphasis>section</emphasis> of the config file, so you can 10.592 read the <quote><literal>username = ...</literal></quote> 10.593 line as meaning <quote>set the value of the 10.594 @@ -570,14 +569,14 @@ 10.595 <sect3> 10.596 <title>Choosing a user name</title> 10.597 10.598 - <para>You can use any text you like as the value of 10.599 + <para id="x_4c">You can use any text you like as the value of 10.600 the <literal>username</literal> config item, since this 10.601 information is for reading by other people, but for 10.602 interpreting by Mercurial. The convention that most 10.603 people follow is to use their name and email address, as 10.604 in the example above.</para> 10.605 <note> 10.606 - <para>Mercurial's built-in web server obfuscates 10.607 + <para id="x_4d">Mercurial's built-in web server obfuscates 10.608 email addresses, to make it more difficult for the email 10.609 harvesting tools that spammers use. This reduces the 10.610 likelihood that you'll start receiving more junk email 10.611 @@ -589,7 +588,7 @@ 10.612 <sect2> 10.613 <title>Writing a commit message</title> 10.614 10.615 - <para>When we commit a change, Mercurial drops us into 10.616 + <para id="x_4e">When we commit a change, Mercurial drops us into 10.617 a text editor, to enter a message that will describe the 10.618 modifications we've made in this changeset. This is called 10.619 the <emphasis>commit message</emphasis>. It will be a 10.620 @@ -599,14 +598,14 @@ 10.621 10.622 &interaction.tour.commit; 10.623 10.624 - <para>The editor that the <command role="hg-cmd">hg 10.625 + <para id="x_4f">The editor that the <command role="hg-cmd">hg 10.626 commit</command> command drops us into will contain an 10.627 empty line, followed by a number of lines starting with 10.628 <quote><literal>HG:</literal></quote>.</para> 10.629 10.630 <programlisting>XXX fix this XXX</programlisting> 10.631 10.632 - <para>Mercurial ignores the lines that start with 10.633 + <para id="x_50">Mercurial ignores the lines that start with 10.634 <quote><literal>HG:</literal></quote>; it uses them only to 10.635 tell us which files it's recording changes to. Modifying or 10.636 deleting these lines has no effect.</para> 10.637 @@ -614,7 +613,7 @@ 10.638 <sect2> 10.639 <title>Writing a good commit message</title> 10.640 10.641 - <para>Since <command role="hg-cmd">hg log</command> 10.642 + <para id="x_51">Since <command role="hg-cmd">hg log</command> 10.643 only prints the first line of a commit message by default, 10.644 it's best to write a commit message whose first line stands 10.645 alone. Here's a real example of a commit message that 10.646 @@ -628,13 +627,13 @@ 10.647 date: Tue Sep 26 21:37:07 2006 -0700 10.648 summary: include buildmeister/commondefs. Add exports.</programlisting> 10.649 10.650 - <para>As far as the remainder of the contents of the 10.651 + <para id="x_52">As far as the remainder of the contents of the 10.652 commit message are concerned, there are no hard-and-fast 10.653 rules. Mercurial itself doesn't interpret or care about the 10.654 contents of the commit message, though your project may have 10.655 policies that dictate a certain kind of 10.656 formatting.</para> 10.657 - <para>My personal preference is for short, but 10.658 + <para id="x_53">My personal preference is for short, but 10.659 informative, commit messages that tell me something that I 10.660 can't figure out with a quick glance at the output of 10.661 <command role="hg-cmd">hg log 10.662 @@ -643,12 +642,12 @@ 10.663 <sect2> 10.664 <title>Aborting a commit</title> 10.665 10.666 - <para>If you decide that you don't want to commit 10.667 + <para id="x_54">If you decide that you don't want to commit 10.668 while in the middle of editing a commit message, simply exit 10.669 from your editor without saving the file that it's editing. 10.670 This will cause nothing to happen to either the repository 10.671 or the working directory.</para> 10.672 - <para>If we run the <command role="hg-cmd">hg 10.673 + <para id="x_55">If we run the <command role="hg-cmd">hg 10.674 commit</command> command without any arguments, it records 10.675 all of the changes we've made, as reported by <command 10.676 role="hg-cmd">hg status</command> and <command 10.677 @@ -657,7 +656,7 @@ 10.678 <sect2> 10.679 <title>Admiring our new handiwork</title> 10.680 10.681 - <para>Once we've finished the commit, we can use the 10.682 + <para id="x_56">Once we've finished the commit, we can use the 10.683 <command role="hg-cmd">hg tip</command> command to display 10.684 the changeset we just created. This command produces output 10.685 that is identical to <command role="hg-cmd">hg 10.686 @@ -666,7 +665,7 @@ 10.687 10.688 &interaction.tour.tip; 10.689 10.690 - <para>We refer to 10.691 + <para id="x_57">We refer to 10.692 the newest revision in the repository as the tip revision, 10.693 or simply the tip.</para> 10.694 </sect2> 10.695 @@ -675,16 +674,16 @@ 10.696 <sect1> 10.697 <title>Sharing changes</title> 10.698 10.699 - <para>We mentioned earlier that repositories in 10.700 + <para id="x_58">We mentioned earlier that repositories in 10.701 Mercurial are self-contained. This means that the changeset 10.702 we just created exists only in our <filename 10.703 class="directory">my-hello</filename> repository. Let's 10.704 look at a few ways that we can propagate this change into 10.705 other repositories.</para> 10.706 10.707 - <sect2 id="sec.tour.pull"> 10.708 + <sect2 id="sec:tour:pull"> 10.709 <title>Pulling changes from another repository</title> 10.710 - <para>To get started, let's clone our original 10.711 + <para id="x_59">To get started, let's clone our original 10.712 <filename class="directory">hello</filename> repository, 10.713 which does not contain the change we just committed. We'll 10.714 call our temporary repository <filename 10.715 @@ -692,7 +691,7 @@ 10.716 10.717 &interaction.tour.clone-pull; 10.718 10.719 - <para>We'll use the <command role="hg-cmd">hg 10.720 + <para id="x_5a">We'll use the <command role="hg-cmd">hg 10.721 pull</command> command to bring changes from <filename 10.722 class="directory">my-hello</filename> into <filename 10.723 class="directory">hello-pull</filename>. However, blindly 10.724 @@ -705,21 +704,21 @@ 10.725 10.726 &interaction.tour.incoming; 10.727 10.728 - <para>(Of course, someone could 10.729 + <para id="x_5b">(Of course, someone could 10.730 cause more changesets to appear in the repository that we 10.731 ran <command role="hg-cmd">hg incoming</command> in, before 10.732 we get a chance to <command role="hg-cmd">hg pull</command> 10.733 the changes, so that we could end up pulling changes that we 10.734 didn't expect.)</para> 10.735 10.736 - <para>Bringing changes into a repository is a simple 10.737 + <para id="x_5c">Bringing changes into a repository is a simple 10.738 matter of running the <command role="hg-cmd">hg 10.739 pull</command> command, and telling it which repository to 10.740 pull from.</para> 10.741 10.742 &interaction.tour.pull; 10.743 10.744 - <para>As you can see 10.745 + <para id="x_5d">As you can see 10.746 from the before-and-after output of <command 10.747 role="hg-cmd">hg tip</command>, we have successfully 10.748 pulled changes into our repository. There remains one step 10.749 @@ -729,19 +728,19 @@ 10.750 <sect2> 10.751 <title>Updating the working directory</title> 10.752 10.753 - <para>We have so far glossed over the relationship between a 10.754 - repository and its working directory. The <command 10.755 + <para id="x_5e">We have so far glossed over the relationship 10.756 + between a repository and its working directory. The <command 10.757 role="hg-cmd">hg pull</command> command that we ran in 10.758 - section <xref linkend="sec.tour.pull"/> brought changes 10.759 - into the repository, but if we check, there's no sign of those 10.760 - changes in the working directory. This is because <command 10.761 + <xref linkend="sec:tour:pull"/> brought changes into the 10.762 + repository, but if we check, there's no sign of those changes 10.763 + in the working directory. This is because <command 10.764 role="hg-cmd">hg pull</command> does not (by default) touch 10.765 the working directory. Instead, we use the <command 10.766 role="hg-cmd">hg update</command> command to do this.</para> 10.767 10.768 &interaction.tour.update; 10.769 10.770 - <para>It might seem a bit strange that <command role="hg-cmd">hg 10.771 + <para id="x_5f">It might seem a bit strange that <command role="hg-cmd">hg 10.772 pull</command> doesn't update the working directory 10.773 automatically. There's actually a good reason for this: you 10.774 can use <command role="hg-cmd">hg update</command> to update 10.775 @@ -752,29 +751,28 @@ 10.776 role="hg-cmd">hg pull</command> which automatically updated 10.777 the working directory to a new revision, you might not be 10.778 terribly happy.</para> 10.779 - <para>However, since pull-then-update is such a common thing to 10.780 + <para id="x_60">However, since pull-then-update is such a common thing to 10.781 do, Mercurial lets you combine the two by passing the <option 10.782 role="hg-opt-pull">-u</option> option to <command 10.783 role="hg-cmd">hg pull</command>.</para> 10.784 10.785 - <para>If you look back at the output of <command 10.786 - role="hg-cmd">hg pull</command> in section <xref 10.787 - linkend="sec.tour.pull"/> when we ran it without <option 10.788 + <para id="x_61">If you look back at the output of <command 10.789 + role="hg-cmd">hg pull</command> in <xref 10.790 + linkend="sec:tour:pull"/> when we ran it without <option 10.791 role="hg-opt-pull">-u</option>, you can see that it printed 10.792 a helpful reminder that we'd have to take an explicit step to 10.793 update the working directory:</para> 10.794 10.795 <!-- &interaction.xxx.fixme; --> 10.796 10.797 - <para>To find out what revision the working directory is at, use 10.798 + <para id="x_62">To find out what revision the working directory is at, use 10.799 the <command role="hg-cmd">hg parents</command> 10.800 command.</para> 10.801 10.802 &interaction.tour.parents; 10.803 10.804 - <para>If you look back at figure <xref 10.805 - endterm="fig.tour-basic.history.caption" 10.806 - linkend="fig.tour-basic.history"/>, 10.807 + <para id="x_63">If you look back at <xref 10.808 + linkend="fig:tour-basic:history"/>, 10.809 you'll see arrows connecting each changeset. The node that 10.810 the arrow leads <emphasis>from</emphasis> in each case is a 10.811 parent, and the node that the arrow leads 10.812 @@ -782,14 +780,14 @@ 10.813 has a parent in just the same way; this is the changeset that 10.814 the working directory currently contains.</para> 10.815 10.816 - <para>To update the working directory to a particular revision, 10.817 + <para id="x_64">To update the working directory to a particular revision, 10.818 10.819 give a revision number or changeset ID to the <command 10.820 role="hg-cmd">hg update</command> command.</para> 10.821 10.822 &interaction.tour.older; 10.823 10.824 - <para>If you omit an explicit revision, <command 10.825 + <para id="x_65">If you omit an explicit revision, <command 10.826 role="hg-cmd">hg update</command> will update to the tip 10.827 revision, as shown by the second call to <command 10.828 role="hg-cmd">hg update</command> in the example 10.829 @@ -799,7 +797,7 @@ 10.830 <sect2> 10.831 <title>Pushing changes to another repository</title> 10.832 10.833 - <para>Mercurial lets us push changes to another 10.834 + <para id="x_66">Mercurial lets us push changes to another 10.835 repository, from the repository we're currently visiting. 10.836 As with the example of <command role="hg-cmd">hg 10.837 pull</command> above, we'll create a temporary repository 10.838 @@ -807,19 +805,19 @@ 10.839 10.840 &interaction.tour.clone-push; 10.841 10.842 - <para>The <command role="hg-cmd">hg outgoing</command> command 10.843 + <para id="x_67">The <command role="hg-cmd">hg outgoing</command> command 10.844 tells us what changes would be pushed into another 10.845 repository.</para> 10.846 10.847 &interaction.tour.outgoing; 10.848 10.849 - <para>And the 10.850 + <para id="x_68">And the 10.851 <command role="hg-cmd">hg push</command> command does the 10.852 actual push.</para> 10.853 10.854 &interaction.tour.push; 10.855 10.856 - <para>As with 10.857 + <para id="x_69">As with 10.858 <command role="hg-cmd">hg pull</command>, the <command 10.859 role="hg-cmd">hg push</command> command does not update 10.860 the working directory in the repository that it's pushing 10.861 @@ -828,7 +826,7 @@ 10.862 does not provide a <literal>-u</literal> option that updates 10.863 the other repository's working directory.)</para> 10.864 10.865 - <para>What happens if we try to pull or push changes 10.866 + <para id="x_6a">What happens if we try to pull or push changes 10.867 and the receiving repository already has those changes? 10.868 Nothing too exciting.</para> 10.869 10.870 @@ -837,7 +835,7 @@ 10.871 <sect2> 10.872 <title>Sharing changes over a network</title> 10.873 10.874 - <para>The commands we have covered in the previous few 10.875 + <para id="x_6b">The commands we have covered in the previous few 10.876 sections are not limited to working with local repositories. 10.877 Each works in exactly the same fashion over a network 10.878 connection; simply pass in a URL instead of a local 10.879 @@ -845,7 +843,7 @@ 10.880 10.881 &interaction.tour.outgoing.net; 10.882 10.883 - <para>In this example, we 10.884 + <para id="x_6c">In this example, we 10.885 can see what changes we could push to the remote repository, 10.886 but the repository is understandably not set up to let 10.887 anonymous users push to it.</para>
11.1 --- a/en/ch02-tour-merge.xml Fri Mar 20 17:17:55 2009 +0800 11.2 +++ b/en/ch02-tour-merge.xml Mon Mar 30 16:23:33 2009 +0800 11.3 @@ -1,10 +1,10 @@ 11.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 11.5 11.6 -<chapter id="chap.tour-merge"> 11.7 +<chapter id="chap:tour-merge"> 11.8 <?dbhtml filename="a-tour-of-mercurial-merging-work.html"?> 11.9 <title>A tour of Mercurial: merging work</title> 11.10 11.11 - <para>We've now covered cloning a repository, making changes in a 11.12 + <para id="x_338">We've now covered cloning a repository, making changes in a 11.13 repository, and pulling or pushing changes from one repository 11.14 into another. Our next step is <emphasis>merging</emphasis> 11.15 changes from separate repositories.</para> 11.16 @@ -12,86 +12,85 @@ 11.17 <sect1> 11.18 <title>Merging streams of work</title> 11.19 11.20 - <para>Merging is a fundamental part of working with a distributed 11.21 + <para id="x_339">Merging is a fundamental part of working with a distributed 11.22 revision control tool.</para> 11.23 <itemizedlist> 11.24 - <listitem><para>Alice and Bob each have a personal copy of a 11.25 + <listitem><para id="x_33a">Alice and Bob each have a personal copy of a 11.26 repository for a project they're collaborating on. Alice 11.27 fixes a bug in her repository; Bob adds a new feature in 11.28 his. They want the shared repository to contain both the 11.29 bug fix and the new feature.</para> 11.30 </listitem> 11.31 - <listitem><para>I frequently work on several different tasks for 11.32 + <listitem><para id="x_33b">I frequently work on several different tasks for 11.33 a single project at once, each safely isolated in its own 11.34 repository. Working this way means that I often need to 11.35 merge one piece of my own work with another.</para> 11.36 </listitem></itemizedlist> 11.37 11.38 - <para>Because merging is such a common thing to need to do, 11.39 + <para id="x_33c">Because merging is such a common thing to need to do, 11.40 Mercurial makes it easy. Let's walk through the process. We'll 11.41 begin by cloning yet another repository (see how often they 11.42 spring up?) and making a change in it.</para> 11.43 11.44 &interaction.tour.merge.clone; 11.45 11.46 - <para>We should now have two copies of 11.47 + <para id="x_33d">We should now have two copies of 11.48 <filename>hello.c</filename> with different contents. The 11.49 histories of the two repositories have also diverged, as 11.50 - illustrated in figure <xref endterm="fig.tour-merge.sep-repos.caption" 11.51 - linkend="fig.tour-merge.sep-repos"/>.</para> 11.52 + illustrated in <xref 11.53 + linkend="fig:tour-merge:sep-repos"/>.</para> 11.54 11.55 &interaction.tour.merge.cat; 11.56 11.57 - <informalfigure id="fig.tour-merge.sep-repos"> 11.58 + <figure id="fig:tour-merge:sep-repos"> 11.59 + <title>Divergent recent histories of the <filename 11.60 + class="directory">my-hello</filename> and <filename 11.61 + class="directory">my-new-hello</filename> 11.62 + repositories</title> 11.63 <mediaobject> 11.64 - <imageobject><imagedata fileref="images/tour-merge-sep-repos.png"/></imageobject> 11.65 + <imageobject><imagedata fileref="figs/tour-merge-sep-repos.png"/></imageobject> 11.66 <textobject><phrase>XXX add text</phrase></textobject> 11.67 - <caption><para id="fig.tour-merge.sep-repos.caption">Divergent recent 11.68 - histories of the <filename 11.69 - class="directory">my-hello</filename> and <filename 11.70 - class="directory">my-new-hello</filename> 11.71 - repositories</para></caption> 11.72 </mediaobject> 11.73 - </informalfigure> 11.74 - 11.75 - <para>We already know that pulling changes from our <filename 11.76 + </figure> 11.77 + 11.78 + <para id="x_33f">We already know that pulling changes from our <filename 11.79 class="directory">my-hello</filename> repository will have no 11.80 effect on the working directory.</para> 11.81 11.82 &interaction.tour.merge.pull; 11.83 11.84 - <para>However, the <command role="hg-cmd">hg pull</command> 11.85 + <para id="x_340">However, the <command role="hg-cmd">hg pull</command> 11.86 command says something about <quote>heads</quote>.</para> 11.87 11.88 <sect2> 11.89 <title>Head changesets</title> 11.90 11.91 - <para>A head is a change that has no descendants, or children, 11.92 + <para id="x_341">A head is a change that has no descendants, or children, 11.93 as they're also known. The tip revision is thus a head, 11.94 because the newest revision in a repository doesn't have any 11.95 children, but a repository can contain more than one 11.96 head.</para> 11.97 11.98 - <informalfigure id="fig.tour-merge.pull"> 11.99 + <figure id="fig:tour-merge:pull"> 11.100 + <title>Repository contents after pulling from <filename 11.101 + class="directory">my-hello</filename> into <filename 11.102 + class="directory">my-new-hello</filename></title> 11.103 <mediaobject> 11.104 - <imageobject><imagedata fileref="images/tour-merge-pull.png"/></imageobject> 11.105 + <imageobject> 11.106 + <imagedata fileref="figs/tour-merge-pull.png"/> 11.107 + </imageobject> 11.108 <textobject><phrase>XXX add text</phrase></textobject> 11.109 - <caption><para id="fig.tour-merge.pull.caption">Repository contents after 11.110 - pulling from <filename class="directory">my-hello</filename> into 11.111 - <filename class="directory">my-new-hello</filename></para></caption> 11.112 </mediaobject> 11.113 - </informalfigure> 11.114 - 11.115 - <para>In figure <xref endterm="fig.tour-merge.pull.caption" 11.116 - linkend="fig.tour-merge.pull"/>, you can 11.117 + </figure> 11.118 + 11.119 + <para id="x_343">In <xref linkend="fig:tour-merge:pull"/>, you can 11.120 see the effect of the pull from <filename 11.121 class="directory">my-hello</filename> into <filename 11.122 class="directory">my-new-hello</filename>. The history that 11.123 was already present in <filename 11.124 class="directory">my-new-hello</filename> is untouched, but 11.125 - a new revision has been added. By referring to figure <xref 11.126 - endterm="fig.tour-merge.sep-repos.caption" 11.127 - linkend="fig.tour-merge.sep-repos"/>, we can see that the 11.128 + a new revision has been added. By referring to <xref 11.129 + linkend="fig:tour-merge:sep-repos"/>, we can see that the 11.130 <emphasis>changeset ID</emphasis> remains the same in the new 11.131 repository, but the <emphasis>revision number</emphasis> has 11.132 changed. (This, incidentally, is a fine example of why it's 11.133 @@ -105,13 +104,13 @@ 11.134 <sect2> 11.135 <title>Performing the merge</title> 11.136 11.137 - <para>What happens if we try to use the normal <command 11.138 + <para id="x_344">What happens if we try to use the normal <command 11.139 role="hg-cmd">hg update</command> command to update to the 11.140 new tip?</para> 11.141 11.142 &interaction.tour.merge.update; 11.143 11.144 - <para>Mercurial is telling us that the <command role="hg-cmd">hg 11.145 + <para id="x_345">Mercurial is telling us that the <command role="hg-cmd">hg 11.146 update</command> command won't do a merge; it won't update 11.147 the working directory when it thinks we might be wanting to do 11.148 a merge, unless we force it to do so. Instead, we use the 11.149 @@ -120,16 +119,18 @@ 11.150 11.151 &interaction.tour.merge.merge; 11.152 11.153 - <informalfigure id="fig.tour-merge.merge"> 11.154 + <figure id="fig:tour-merge:merge"> 11.155 + <title>Working directory and repository during merge, and 11.156 + following commit</title> 11.157 <mediaobject> 11.158 - <imageobject><imagedata fileref="images/tour-merge-merge.png"/></imageobject> 11.159 + <imageobject> 11.160 + <imagedata fileref="figs/tour-merge-merge.png"/> 11.161 + </imageobject> 11.162 <textobject><phrase>XXX add text</phrase></textobject> 11.163 - <caption><para id="fig.tour-merge.merge.caption">Working directory and 11.164 - repository during merge, and following commit</para></caption> 11.165 </mediaobject> 11.166 - </informalfigure> 11.167 - 11.168 - <para>This updates the working directory so that it contains 11.169 + </figure> 11.170 + 11.171 + <para id="x_347">This updates the working directory so that it contains 11.172 changes from <emphasis>both</emphasis> heads, which is 11.173 reflected in both the output of <command role="hg-cmd">hg 11.174 parents</command> and the contents of 11.175 @@ -141,22 +142,22 @@ 11.176 <sect2> 11.177 <title>Committing the results of the merge</title> 11.178 11.179 - <para>Whenever we've done a merge, <command role="hg-cmd">hg 11.180 + <para id="x_348">Whenever we've done a merge, <command role="hg-cmd">hg 11.181 parents</command> will display two parents until we <command 11.182 role="hg-cmd">hg commit</command> the results of the 11.183 merge.</para> 11.184 11.185 &interaction.tour.merge.commit; 11.186 11.187 - <para>We now have a new tip revision; notice that it has 11.188 + <para id="x_349">We now have a new tip revision; notice that it has 11.189 <emphasis>both</emphasis> of our former heads as its parents. 11.190 These are the same revisions that were previously displayed by 11.191 <command role="hg-cmd">hg parents</command>.</para> 11.192 11.193 &interaction.tour.merge.tip; 11.194 11.195 - <para>In figure <xref endterm="fig.tour-merge.merge.caption" 11.196 - linkend="fig.tour-merge.merge"/>, you can see a 11.197 + <para id="x_34a">In <xref 11.198 + linkend="fig:tour-merge:merge"/>, you can see a 11.199 representation of what happens to the working directory during 11.200 the merge, and how this affects the repository when the commit 11.201 happens. During the merge, the working directory has two 11.202 @@ -168,32 +169,29 @@ 11.203 <sect1> 11.204 <title>Merging conflicting changes</title> 11.205 11.206 - <para>Most merges are simple affairs, but sometimes you'll find 11.207 + <para id="x_34b">Most merges are simple affairs, but sometimes you'll find 11.208 yourself merging changes where each modifies the same portions 11.209 of the same files. Unless both modifications are identical, 11.210 this results in a <emphasis>conflict</emphasis>, where you have 11.211 to decide how to reconcile the different changes into something 11.212 coherent.</para> 11.213 11.214 - <informalfigure id="fig.tour-merge.conflict"> 11.215 + <figure id="fig:tour-merge:conflict"> 11.216 + <title>Conflicting changes to a document</title> 11.217 <mediaobject> 11.218 - <imageobject><imagedata fileref="images/tour-merge-conflict.png"/> 11.219 - </imageobject> 11.220 - <textobject><phrase>XXX add text</phrase></textobject> 11.221 - <caption><para id="fig.tour-merge.conflict.caption">Conflicting 11.222 - changes to a document</para></caption> 11.223 + <imageobject><imagedata fileref="figs/tour-merge-conflict.png"/></imageobject> 11.224 + <textobject><phrase>XXX add text</phrase></textobject> 11.225 </mediaobject> 11.226 - </informalfigure> 11.227 - 11.228 - <para>Figure <xref endterm="fig.tour-merge.conflict.caption" 11.229 - linkend="fig.tour-merge.conflict"/> illustrates 11.230 + </figure> 11.231 + 11.232 + <para id="x_34d"><xref linkend="fig:tour-merge:conflict"/> illustrates 11.233 an instance of two conflicting changes to a document. We 11.234 started with a single version of the file; then we made some 11.235 changes; while someone else made different changes to the same 11.236 text. Our task in resolving the conflicting changes is to 11.237 decide what the file should look like.</para> 11.238 11.239 - <para>Mercurial doesn't have a built-in facility for handling 11.240 + <para id="x_34e">Mercurial doesn't have a built-in facility for handling 11.241 conflicts. Instead, it runs an external program called 11.242 <command>hgmerge</command>. This is a shell script that is 11.243 bundled with Mercurial; you can change it to behave however you 11.244 @@ -204,7 +202,7 @@ 11.245 human guidance) or aren't present, the script tries a few 11.246 different graphical merging tools.</para> 11.247 11.248 - <para>It's also possible to get Mercurial to run another program 11.249 + <para id="x_34f">It's also possible to get Mercurial to run another program 11.250 or script instead of <command>hgmerge</command>, by setting the 11.251 <envar>HGMERGE</envar> environment variable to the name of your 11.252 preferred program.</para> 11.253 @@ -212,59 +210,59 @@ 11.254 <sect2> 11.255 <title>Using a graphical merge tool</title> 11.256 11.257 - <para>My preferred graphical merge tool is 11.258 + <para id="x_350">My preferred graphical merge tool is 11.259 <command>kdiff3</command>, which I'll use to describe the 11.260 features that are common to graphical file merging tools. You 11.261 can see a screenshot of <command>kdiff3</command> in action in 11.262 - figure <xref endterm="fig.tour-merge.kdiff3.caption" 11.263 - linkend="fig.tour-merge.kdiff3"/>. The kind of 11.264 + <xref linkend="fig:tour-merge:kdiff3"/>. The kind of 11.265 merge it is performing is called a <emphasis>three-way 11.266 merge</emphasis>, because there are three different versions 11.267 of the file of interest to us. The tool thus splits the upper 11.268 portion of the window into three panes:</para> 11.269 <itemizedlist> 11.270 - <listitem><para>At the left is the <emphasis>base</emphasis> 11.271 + <listitem><para id="x_351">At the left is the <emphasis>base</emphasis> 11.272 version of the file, i.e. the most recent version from 11.273 which the two versions we're trying to merge are 11.274 descended.</para> 11.275 </listitem> 11.276 - <listitem><para>In the middle is <quote>our</quote> version of 11.277 + <listitem><para id="x_352">In the middle is <quote>our</quote> version of 11.278 the file, with the contents that we modified.</para> 11.279 </listitem> 11.280 - <listitem><para>On the right is <quote>their</quote> version 11.281 + <listitem><para id="x_353">On the right is <quote>their</quote> version 11.282 of the file, the one that from the changeset that we're 11.283 trying to merge with.</para> 11.284 </listitem></itemizedlist> 11.285 - <para>In the pane below these is the current 11.286 + <para id="x_354">In the pane below these is the current 11.287 <emphasis>result</emphasis> of the merge. Our task is to 11.288 replace all of the red text, which indicates unresolved 11.289 conflicts, with some sensible merger of the 11.290 <quote>ours</quote> and <quote>theirs</quote> versions of the 11.291 file.</para> 11.292 11.293 - <para>All four of these panes are <emphasis>locked 11.294 + <para id="x_355">All four of these panes are <emphasis>locked 11.295 together</emphasis>; if we scroll vertically or horizontally 11.296 in any of them, the others are updated to display the 11.297 corresponding sections of their respective files.</para> 11.298 11.299 - <informalfigure id="fig.tour-merge.kdiff3"> 11.300 - <mediaobject> 11.301 - <imageobject><imagedata width="100%" fileref="images/kdiff3.png"/> 11.302 - </imageobject> 11.303 - <textobject><phrase>XXX add text</phrase></textobject> 11.304 - <caption><para id="fig.tour-merge.kdiff3.caption">Using 11.305 - <command>kdiff3</command> to merge versions of a file</para> 11.306 - </caption> 11.307 - </mediaobject> 11.308 - </informalfigure> 11.309 - 11.310 - <para>For each conflicting portion of the file, we can choose to 11.311 + <figure id="fig:tour-merge:kdiff3"> 11.312 + <title>Using <command>kdiff3</command> to merge versions of a 11.313 + file</title> 11.314 + <mediaobject> 11.315 + <imageobject> 11.316 + <imagedata imagedata width="100%" fileref="figs/kdiff3.png"/></imageobject> 11.317 + <textobject> 11.318 + <phrase>XXX add text</phrase> 11.319 + </textobject> 11.320 + </mediaobject> 11.321 + </figure> 11.322 + 11.323 + <para id="x_357">For each conflicting portion of the file, we can choose to 11.324 resolve the conflict using some combination of text from the 11.325 base version, ours, or theirs. We can also manually edit the 11.326 merged file at any time, in case we need to make further 11.327 modifications.</para> 11.328 11.329 - <para>There are <emphasis>many</emphasis> file merging tools 11.330 + <para id="x_358">There are <emphasis>many</emphasis> file merging tools 11.331 available, too many to cover here. They vary in which 11.332 platforms they are available for, and in their particular 11.333 strengths and weaknesses. Most are tuned for merging files 11.334 @@ -275,20 +273,19 @@ 11.335 <sect2> 11.336 <title>A worked example</title> 11.337 11.338 - <para>In this example, we will reproduce the file modification 11.339 - history of figure <xref endterm="fig.tour-merge.conflict.caption" 11.340 - linkend="fig.tour-merge.conflict"/> 11.341 + <para id="x_359">In this example, we will reproduce the file modification 11.342 + history of <xref linkend="fig:tour-merge:conflict"/> 11.343 above. Let's begin by creating a repository with a base 11.344 version of our document.</para> 11.345 11.346 &interaction.tour-merge-conflict.wife; 11.347 11.348 - <para>We'll clone the repository and make a change to the 11.349 + <para id="x_35a">We'll clone the repository and make a change to the 11.350 file.</para> 11.351 11.352 &interaction.tour-merge-conflict.cousin; 11.353 11.354 - <para>And another clone, to simulate someone else making a 11.355 + <para id="x_35b">And another clone, to simulate someone else making a 11.356 change to the file. (This hints at the idea that it's not all 11.357 that unusual to merge with yourself when you isolate tasks in 11.358 separate repositories, and indeed to find and resolve 11.359 @@ -296,13 +293,13 @@ 11.360 11.361 &interaction.tour-merge-conflict.son; 11.362 11.363 - <para>Having created two 11.364 + <para id="x_35c">Having created two 11.365 different versions of the file, we'll set up an environment 11.366 suitable for running our merge.</para> 11.367 11.368 &interaction.tour-merge-conflict.pull; 11.369 11.370 - <para>In this example, I won't use Mercurial's normal 11.371 + <para id="x_35d">In this example, I won't use Mercurial's normal 11.372 <command>hgmerge</command> program to do the merge, because it 11.373 would drop my nice automated example-running tool into a 11.374 graphical user interface. Instead, I'll set 11.375 @@ -312,25 +309,25 @@ 11.376 example on your computer, don't bother setting 11.377 <envar>HGMERGE</envar>.</para> 11.378 11.379 - <para><emphasis role="bold">XXX FIX THIS 11.380 + <para id="x_35e"><emphasis role="bold">XXX FIX THIS 11.381 EXAMPLE.</emphasis></para> 11.382 11.383 &interaction.tour-merge-conflict.merge; 11.384 11.385 - <para>Because <command>merge</command> can't resolve the 11.386 + <para id="x_35f">Because <command>merge</command> can't resolve the 11.387 conflicting changes, it leaves <emphasis>merge 11.388 markers</emphasis> inside the file that has conflicts, 11.389 indicating which lines have conflicts, and whether they came 11.390 from our version of the file or theirs.</para> 11.391 11.392 - <para>Mercurial can tell from the way <command>merge</command> 11.393 + <para id="x_360">Mercurial can tell from the way <command>merge</command> 11.394 exits that it wasn't able to merge successfully, so it tells 11.395 us what commands we'll need to run if we want to redo the 11.396 merging operation. This could be useful if, for example, we 11.397 were running a graphical merge tool and quit because we were 11.398 confused or realised we had made a mistake.</para> 11.399 11.400 - <para>If automatic or manual merges fail, there's nothing to 11.401 + <para id="x_361">If automatic or manual merges fail, there's nothing to 11.402 prevent us from <quote>fixing up</quote> the affected files 11.403 ourselves, and committing the results of our merge:</para> 11.404 11.405 @@ -338,32 +335,32 @@ 11.406 11.407 </sect2> 11.408 </sect1> 11.409 - <sect1 id="sec.tour-merge.fetch"> 11.410 + <sect1 id="sec:tour-merge:fetch"> 11.411 <title>Simplifying the pull-merge-commit sequence</title> 11.412 11.413 - <para>The process of merging changes as outlined above is 11.414 + <para id="x_362">The process of merging changes as outlined above is 11.415 straightforward, but requires running three commands in 11.416 sequence.</para> 11.417 <programlisting>hg pull 11.418 hg merge 11.419 hg commit -m 'Merged remote changes'</programlisting> 11.420 - <para>In the case of the final commit, you also need to enter a 11.421 + <para id="x_363">In the case of the final commit, you also need to enter a 11.422 commit message, which is almost always going to be a piece of 11.423 uninteresting <quote>boilerplate</quote> text.</para> 11.424 11.425 - <para>It would be nice to reduce the number of steps needed, if 11.426 + <para id="x_364">It would be nice to reduce the number of steps needed, if 11.427 this were possible. Indeed, Mercurial is distributed with an 11.428 extension called <literal role="hg-ext">fetch</literal> that 11.429 does just this.</para> 11.430 11.431 - <para>Mercurial provides a flexible extension mechanism that lets 11.432 + <para id="x_365">Mercurial provides a flexible extension mechanism that lets 11.433 people extend its functionality, while keeping the core of 11.434 Mercurial small and easy to deal with. Some extensions add new 11.435 commands that you can use from the command line, while others 11.436 work <quote>behind the scenes,</quote> for example adding 11.437 capabilities to the server.</para> 11.438 11.439 - <para>The <literal role="hg-ext">fetch</literal> extension adds a 11.440 + <para id="x_366">The <literal role="hg-ext">fetch</literal> extension adds a 11.441 new command called, not surprisingly, <command role="hg-cmd">hg 11.442 fetch</command>. This extension acts as a combination of 11.443 <command role="hg-cmd">hg pull</command>, <command 11.444 @@ -376,7 +373,7 @@ 11.445 added, it updates the working directory to the new tip 11.446 changeset.</para> 11.447 11.448 - <para>Enabling the <literal role="hg-ext">fetch</literal> 11.449 + <para id="x_367">Enabling the <literal role="hg-ext">fetch</literal> 11.450 extension is easy. Edit your <filename 11.451 role="special">.hgrc</filename>, and either go to the <literal 11.452 role="rc-extensions">extensions</literal> section or create an 11.453 @@ -385,7 +382,7 @@ 11.454 </literal></quote>.</para> 11.455 <programlisting>[extensions] 11.456 fetch =</programlisting> 11.457 - <para>(Normally, on the right-hand side of the 11.458 + <para id="x_368">(Normally, on the right-hand side of the 11.459 <quote><literal>=</literal></quote> would appear the location of 11.460 the extension, but since the <literal 11.461 role="hg-ext">fetch</literal> extension is in the standard
12.1 --- a/en/ch03-concepts.xml Fri Mar 20 17:17:55 2009 +0800 12.2 +++ b/en/ch03-concepts.xml Mon Mar 30 16:23:33 2009 +0800 12.3 @@ -1,23 +1,23 @@ 12.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 12.5 12.6 -<chapter id="chap.concepts"> 12.7 +<chapter id="chap:concepts"> 12.8 <?dbhtml filename="behind-the-scenes.html"?> 12.9 <title>Behind the scenes</title> 12.10 12.11 - <para>Unlike many revision control systems, the concepts upon which 12.12 + <para id="x_2e8">Unlike many revision control systems, the concepts upon which 12.13 Mercurial is built are simple enough that it's easy to understand 12.14 how the software really works. Knowing this certainly isn't 12.15 necessary, but I find it useful to have a <quote>mental 12.16 model</quote> of what's going on.</para> 12.17 12.18 - <para>This understanding gives me confidence that Mercurial has been 12.19 + <para id="x_2e9">This understanding gives me confidence that Mercurial has been 12.20 carefully designed to be both <emphasis>safe</emphasis> and 12.21 <emphasis>efficient</emphasis>. And just as importantly, if it's 12.22 easy for me to retain a good idea of what the software is doing 12.23 when I perform a revision control task, I'm less likely to be 12.24 surprised by its behaviour.</para> 12.25 12.26 - <para>In this chapter, we'll initially cover the core concepts 12.27 + <para id="x_2ea">In this chapter, we'll initially cover the core concepts 12.28 behind Mercurial's design, then continue to discuss some of the 12.29 interesting details of its implementation.</para> 12.30 12.31 @@ -27,7 +27,7 @@ 12.32 <sect2> 12.33 <title>Tracking the history of a single file</title> 12.34 12.35 - <para>When Mercurial tracks modifications to a file, it stores 12.36 + <para id="x_2eb">When Mercurial tracks modifications to a file, it stores 12.37 the history of that file in a metadata object called a 12.38 <emphasis>filelog</emphasis>. Each entry in the filelog 12.39 contains enough information to reconstruct one revision of the 12.40 @@ -38,7 +38,7 @@ 12.41 an index to help Mercurial to find a revision 12.42 efficiently.</para> 12.43 12.44 - <para>A file that is large, or has a lot of history, has its 12.45 + <para id="x_2ec">A file that is large, or has a lot of history, has its 12.46 filelog stored in separate data 12.47 (<quote><literal>.d</literal></quote> suffix) and index 12.48 (<quote><literal>.i</literal></quote> suffix) files. For 12.49 @@ -46,25 +46,23 @@ 12.50 are combined in a single <quote><literal>.i</literal></quote> 12.51 file. The correspondence between a file in the working 12.52 directory and the filelog that tracks its history in the 12.53 - repository is illustrated in figure <xref 12.54 - endterm="fig.concepts.filelog.caption" 12.55 - linkend="fig.concepts.filelog"/>.</para> 12.56 - 12.57 - <informalfigure id="fig.concepts.filelog"> 12.58 - <mediaobject> 12.59 - <imageobject><imagedata fileref="images/filelog.png"/></imageobject> 12.60 - <textobject><phrase>XXX add text</phrase></textobject> 12.61 - <caption><para id="fig.concepts.filelog.caption">Relationships between 12.62 - files in working directory and filelogs in repository</para> 12.63 - </caption> 12.64 - </mediaobject> 12.65 - </informalfigure> 12.66 + repository is illustrated in <xref 12.67 + linkend="fig:concepts:filelog"/>.</para> 12.68 + 12.69 + <figure id="fig:concepts:filelog"> 12.70 + <title>Relationships between files in working directory and 12.71 + filelogs in repository</title> 12.72 + <mediaobject> 12.73 + <imageobject><imagedata fileref="figs/filelog.png"/></imageobject> 12.74 + <textobject><phrase>XXX add text</phrase></textobject> 12.75 + </mediaobject> 12.76 + </figure> 12.77 12.78 </sect2> 12.79 <sect2> 12.80 <title>Managing tracked files</title> 12.81 12.82 - <para>Mercurial uses a structure called a 12.83 + <para id="x_2ee">Mercurial uses a structure called a 12.84 <emphasis>manifest</emphasis> to collect together information 12.85 about the files that it tracks. Each entry in the manifest 12.86 contains information about the files present in a single 12.87 @@ -76,7 +74,7 @@ 12.88 <sect2> 12.89 <title>Recording changeset information</title> 12.90 12.91 - <para>The <emphasis>changelog</emphasis> contains information 12.92 + <para id="x_2ef">The <emphasis>changelog</emphasis> contains information 12.93 about each changeset. Each revision records who committed a 12.94 change, the changeset comment, other pieces of 12.95 changeset-related information, and the revision of the 12.96 @@ -86,32 +84,30 @@ 12.97 <sect2> 12.98 <title>Relationships between revisions</title> 12.99 12.100 - <para>Within a changelog, a manifest, or a filelog, each 12.101 + <para id="x_2f0">Within a changelog, a manifest, or a filelog, each 12.102 revision stores a pointer to its immediate parent (or to its 12.103 two parents, if it's a merge revision). As I mentioned above, 12.104 there are also relationships between revisions 12.105 <emphasis>across</emphasis> these structures, and they are 12.106 hierarchical in nature.</para> 12.107 12.108 - <para>For every changeset in a repository, there is exactly one 12.109 + <para id="x_2f1">For every changeset in a repository, there is exactly one 12.110 revision stored in the changelog. Each revision of the 12.111 changelog contains a pointer to a single revision of the 12.112 manifest. A revision of the manifest stores a pointer to a 12.113 single revision of each filelog tracked when that changeset 12.114 - was created. These relationships are illustrated in figure 12.115 - <xref endterm="fig.concepts.metadata.caption" 12.116 - linkend="fig.concepts.metadata"/>.</para> 12.117 - 12.118 - <informalfigure id="fig.concepts.metadata"> 12.119 - <mediaobject> 12.120 - <imageobject><imagedata fileref="images/metadata.png"/></imageobject> 12.121 - <textobject><phrase>XXX add text</phrase></textobject> 12.122 - <caption><para id="fig.concepts.metadata.caption">Metadata 12.123 - relationships</para></caption> 12.124 - </mediaobject> 12.125 - </informalfigure> 12.126 - 12.127 - <para>As the illustration shows, there is 12.128 + was created. These relationships are illustrated in 12.129 + <xref linkend="fig:concepts:metadata"/>.</para> 12.130 + 12.131 + <figure id="fig:concepts:metadata"> 12.132 + <title>Metadata relationships</title> 12.133 + <mediaobject> 12.134 + <imageobject><imagedata fileref="figs/metadata.png"/></imageobject> 12.135 + <textobject><phrase>XXX add text</phrase></textobject> 12.136 + </mediaobject> 12.137 + </figure> 12.138 + 12.139 + <para id="x_2f3">As the illustration shows, there is 12.140 <emphasis>not</emphasis> a <quote>one to one</quote> 12.141 relationship between revisions in the changelog, manifest, or 12.142 filelog. If the manifest hasn't changed between two 12.143 @@ -126,14 +122,14 @@ 12.144 <sect1> 12.145 <title>Safe, efficient storage</title> 12.146 12.147 - <para>The underpinnings of changelogs, manifests, and filelogs are 12.148 + <para id="x_2f4">The underpinnings of changelogs, manifests, and filelogs are 12.149 provided by a single structure called the 12.150 <emphasis>revlog</emphasis>.</para> 12.151 12.152 <sect2> 12.153 <title>Efficient storage</title> 12.154 12.155 - <para>The revlog provides efficient storage of revisions using a 12.156 + <para id="x_2f5">The revlog provides efficient storage of revisions using a 12.157 <emphasis>delta</emphasis> mechanism. Instead of storing a 12.158 complete copy of a file for each revision, it stores the 12.159 changes needed to transform an older revision into the new 12.160 @@ -141,7 +137,7 @@ 12.161 typically a fraction of a percent of the size of a full copy 12.162 of a file.</para> 12.163 12.164 - <para>Some obsolete revision control systems can only work with 12.165 + <para id="x_2f6">Some obsolete revision control systems can only work with 12.166 deltas of text files. They must either store binary files as 12.167 complete snapshots or encoded into a text representation, both 12.168 of which are wasteful approaches. Mercurial can efficiently 12.169 @@ -149,16 +145,16 @@ 12.170 doesn't need to treat text as special.</para> 12.171 12.172 </sect2> 12.173 - <sect2 id="sec.concepts.txn"> 12.174 + <sect2 id="sec:concepts:txn"> 12.175 <title>Safe operation</title> 12.176 12.177 - <para>Mercurial only ever <emphasis>appends</emphasis> data to 12.178 + <para id="x_2f7">Mercurial only ever <emphasis>appends</emphasis> data to 12.179 the end of a revlog file. It never modifies a section of a 12.180 file after it has written it. This is both more robust and 12.181 efficient than schemes that need to modify or rewrite 12.182 data.</para> 12.183 12.184 - <para>In addition, Mercurial treats every write as part of a 12.185 + <para id="x_2f8">In addition, Mercurial treats every write as part of a 12.186 <emphasis>transaction</emphasis> that can span a number of 12.187 files. A transaction is <emphasis>atomic</emphasis>: either 12.188 the entire transaction succeeds and its effects are all 12.189 @@ -168,7 +164,7 @@ 12.190 writing it, the reader will never see a partially written 12.191 result that might confuse it.</para> 12.192 12.193 - <para>The fact that Mercurial only appends to files makes it 12.194 + <para id="x_2f9">The fact that Mercurial only appends to files makes it 12.195 easier to provide this transactional guarantee. The easier it 12.196 is to do stuff like this, the more confident you should be 12.197 that it's done correctly.</para> 12.198 @@ -177,7 +173,7 @@ 12.199 <sect2> 12.200 <title>Fast retrieval</title> 12.201 12.202 - <para>Mercurial cleverly avoids a pitfall common to all earlier 12.203 + <para id="x_2fa">Mercurial cleverly avoids a pitfall common to all earlier 12.204 revision control systems: the problem of <emphasis>inefficient 12.205 retrieval</emphasis>. Most revision control systems store 12.206 the contents of a revision as an incremental series of 12.207 @@ -188,16 +184,15 @@ 12.208 file accumulates, the more revisions you must read, hence the 12.209 longer it takes to reconstruct a particular revision.</para> 12.210 12.211 - <informalfigure id="fig.concepts.snapshot"> 12.212 - <mediaobject> 12.213 - <imageobject><imagedata fileref="images/snapshot.png"/></imageobject> 12.214 - <textobject><phrase>XXX add text</phrase></textobject> 12.215 - <caption><para id="fig.concepts.snapshot.caption">Snapshot of 12.216 - a revlog, with incremental deltas</para></caption> 12.217 - </mediaobject> 12.218 - </informalfigure> 12.219 - 12.220 - <para>The innovation that Mercurial applies to this problem is 12.221 + <figure id="fig:concepts:snapshot"> 12.222 + <title>Snapshot of a revlog, with incremental deltas</title> 12.223 + <mediaobject> 12.224 + <imageobject><imagedata fileref="figs/snapshot.png"/></imageobject> 12.225 + <textobject><phrase>XXX add text</phrase></textobject> 12.226 + </mediaobject> 12.227 + </figure> 12.228 + 12.229 + <para id="x_2fc">The innovation that Mercurial applies to this problem is 12.230 simple but effective. Once the cumulative amount of delta 12.231 information stored since the last snapshot exceeds a fixed 12.232 threshold, it stores a new snapshot (compressed, of course), 12.233 @@ -206,8 +201,7 @@ 12.234 quickly. This approach works so well that it has since been 12.235 copied by several other revision control systems.</para> 12.236 12.237 - <para>Figure <xref endterm="fig.concepts.snapshot.caption" 12.238 - linkend="fig.concepts.snapshot"/> illustrates 12.239 + <para id="x_2fd"><xref linkend="fig:concepts:snapshot"/> illustrates 12.240 the idea. In an entry in a revlog's index file, Mercurial 12.241 stores the range of entries from the data file that it must 12.242 read to reconstruct a particular revision.</para> 12.243 @@ -215,7 +209,7 @@ 12.244 <sect3> 12.245 <title>Aside: the influence of video compression</title> 12.246 12.247 - <para>If you're familiar with video compression or have ever 12.248 + <para id="x_2fe">If you're familiar with video compression or have ever 12.249 watched a TV feed through a digital cable or satellite 12.250 service, you may know that most video compression schemes 12.251 store each frame of video as a delta against its predecessor 12.252 @@ -224,7 +218,7 @@ 12.253 visual errors accumulate over the course of a number of 12.254 inter-frame deltas.</para> 12.255 12.256 - <para>Because it's possible for a video stream to <quote>drop 12.257 + <para id="x_2ff">Because it's possible for a video stream to <quote>drop 12.258 out</quote> occasionally due to signal glitches, and to 12.259 limit the accumulation of artefacts introduced by the lossy 12.260 compression process, video encoders periodically insert a 12.261 @@ -240,24 +234,24 @@ 12.262 <sect2> 12.263 <title>Identification and strong integrity</title> 12.264 12.265 - <para>Along with delta or snapshot information, a revlog entry 12.266 + <para id="x_300">Along with delta or snapshot information, a revlog entry 12.267 contains a cryptographic hash of the data that it represents. 12.268 This makes it difficult to forge the contents of a revision, 12.269 and easy to detect accidental corruption.</para> 12.270 12.271 - <para>Hashes provide more than a mere check against corruption; 12.272 + <para id="x_301">Hashes provide more than a mere check against corruption; 12.273 they are used as the identifiers for revisions. The changeset 12.274 identification hashes that you see as an end user are from 12.275 revisions of the changelog. Although filelogs and the 12.276 manifest also use hashes, Mercurial only uses these behind the 12.277 scenes.</para> 12.278 12.279 - <para>Mercurial verifies that hashes are correct when it 12.280 + <para id="x_302">Mercurial verifies that hashes are correct when it 12.281 retrieves file revisions and when it pulls changes from 12.282 another repository. If it encounters an integrity problem, it 12.283 will complain and stop whatever it's doing.</para> 12.284 12.285 - <para>In addition to the effect it has on retrieval efficiency, 12.286 + <para id="x_303">In addition to the effect it has on retrieval efficiency, 12.287 Mercurial's use of periodic snapshots makes it more robust 12.288 against partial data corruption. If a revlog becomes partly 12.289 corrupted due to a hardware error or system bug, it's often 12.290 @@ -271,7 +265,7 @@ 12.291 <sect1> 12.292 <title>Revision history, branching, and merging</title> 12.293 12.294 - <para>Every entry in a Mercurial revlog knows the identity of its 12.295 + <para id="x_304">Every entry in a Mercurial revlog knows the identity of its 12.296 immediate ancestor revision, usually referred to as its 12.297 <emphasis>parent</emphasis>. In fact, a revision contains room 12.298 for not one parent, but two. Mercurial uses a special hash, 12.299 @@ -279,14 +273,13 @@ 12.300 <quote>there is no parent here</quote>. This hash is simply a 12.301 string of zeroes.</para> 12.302 12.303 - <para>In figure <xref endterm="fig.concepts.revlog.caption" 12.304 - linkend="fig.concepts.revlog"/>, you can see 12.305 + <para id="x_305">In <xref linkend="fig:concepts:revlog"/>, you can see 12.306 an example of the conceptual structure of a revlog. Filelogs, 12.307 manifests, and changelogs all have this same structure; they 12.308 differ only in the kind of data stored in each delta or 12.309 snapshot.</para> 12.310 12.311 - <para>The first revision in a revlog (at the bottom of the image) 12.312 + <para id="x_306">The first revision in a revlog (at the bottom of the image) 12.313 has the null ID in both of its parent slots. For a 12.314 <quote>normal</quote> revision, its first parent slot contains 12.315 the ID of its parent revision, and its second contains the null 12.316 @@ -295,23 +288,22 @@ 12.317 revision that represents a merge between branches has two normal 12.318 revision IDs in its parent slots.</para> 12.319 12.320 - <informalfigure id="fig.concepts.revlog"> 12.321 + <figure id="fig:concepts:revlog"> 12.322 + <title>The conceptual structure of a revlog</title> 12.323 <mediaobject> 12.324 - <imageobject><imagedata fileref="images/revlog.png"/></imageobject> 12.325 - <textobject><phrase>XXX add text</phrase></textobject> 12.326 - <caption><para id="fig.concepts.revlog.caption">Revision in revlog</para> 12.327 - </caption> 12.328 + <imageobject><imagedata fileref="figs/revlog.png"/></imageobject> 12.329 + <textobject><phrase>XXX add text</phrase></textobject> 12.330 </mediaobject> 12.331 - </informalfigure> 12.332 + </figure> 12.333 12.334 </sect1> 12.335 <sect1> 12.336 <title>The working directory</title> 12.337 12.338 - <para>In the working directory, Mercurial stores a snapshot of the 12.339 + <para id="x_307">In the working directory, Mercurial stores a snapshot of the 12.340 files from the repository as of a particular changeset.</para> 12.341 12.342 - <para>The working directory <quote>knows</quote> which changeset 12.343 + <para id="x_308">The working directory <quote>knows</quote> which changeset 12.344 it contains. When you update the working directory to contain a 12.345 particular changeset, Mercurial looks up the appropriate 12.346 revision of the manifest to find out which files it was tracking 12.347 @@ -320,13 +312,13 @@ 12.348 those files, with the same contents it had when the changeset 12.349 was committed.</para> 12.350 12.351 - <para>The <emphasis>dirstate</emphasis> contains Mercurial's 12.352 + <para id="x_309">The <emphasis>dirstate</emphasis> contains Mercurial's 12.353 knowledge of the working directory. This details which 12.354 changeset the working directory is updated to, and all of the 12.355 files that Mercurial is tracking in the working 12.356 directory.</para> 12.357 12.358 - <para>Just as a revision of a revlog has room for two parents, so 12.359 + <para id="x_30a">Just as a revision of a revlog has room for two parents, so 12.360 that it can represent either a normal revision (with one parent) 12.361 or a merge of two earlier revisions, the dirstate has slots for 12.362 two parents. When you use the <command role="hg-cmd">hg 12.363 @@ -342,38 +334,35 @@ 12.364 <sect2> 12.365 <title>What happens when you commit</title> 12.366 12.367 - <para>The dirstate stores parent information for more than just 12.368 + <para id="x_30b">The dirstate stores parent information for more than just 12.369 book-keeping purposes. Mercurial uses the parents of the 12.370 dirstate as <emphasis>the parents of a new 12.371 changeset</emphasis> when you perform a commit.</para> 12.372 12.373 - <informalfigure id="fig.concepts.wdir"> 12.374 - <mediaobject> 12.375 - <imageobject><imagedata fileref="images/wdir.png"/></imageobject> 12.376 - <textobject><phrase>XXX add text</phrase></textobject> 12.377 - <caption><para id="fig.concepts.wdir.caption">The working 12.378 - directory can have two parents</para></caption> 12.379 - </mediaobject> 12.380 - </informalfigure> 12.381 - 12.382 - <para>Figure <xref endterm="fig.concepts.wdir.caption" 12.383 - linkend="fig.concepts.wdir"/> shows the 12.384 + <figure id="fig:concepts:wdir"> 12.385 + <title>The working directory can have two parents</title> 12.386 + <mediaobject> 12.387 + <imageobject><imagedata fileref="figs/wdir.png"/></imageobject> 12.388 + <textobject><phrase>XXX add text</phrase></textobject> 12.389 + </mediaobject> 12.390 + </figure> 12.391 + 12.392 + <para id="x_30d"><xref linkend="fig:concepts:wdir"/> shows the 12.393 normal state of the working directory, where it has a single 12.394 changeset as parent. That changeset is the 12.395 <emphasis>tip</emphasis>, the newest changeset in the 12.396 repository that has no children.</para> 12.397 12.398 - <informalfigure id="fig.concepts.wdir-after-commit"> 12.399 - <mediaobject> 12.400 - <imageobject><imagedata fileref="images/wdir-after-commit.png"/> 12.401 - </imageobject> 12.402 - <textobject><phrase>XXX add text</phrase></textobject> 12.403 - <caption><para id="fig.concepts.wdir-after-commit.caption">The working 12.404 - directory gains new parents after a commit</para></caption> 12.405 - </mediaobject> 12.406 - </informalfigure> 12.407 - 12.408 - <para>It's useful to think of the working directory as 12.409 + <figure id="fig:concepts:wdir-after-commit"> 12.410 + <title>The working directory gains new parents after a 12.411 + commit</title> 12.412 + <mediaobject> 12.413 + <imageobject><imagedata fileref="figs/wdir-after-commit.png"/></imageobject> 12.414 + <textobject><phrase>XXX add text</phrase></textobject> 12.415 + </mediaobject> 12.416 + </figure> 12.417 + 12.418 + <para id="x_30f">It's useful to think of the working directory as 12.419 <quote>the changeset I'm about to commit</quote>. Any files 12.420 that you tell Mercurial that you've added, removed, renamed, 12.421 or copied will be reflected in that changeset, as will 12.422 @@ -381,12 +370,11 @@ 12.423 the new changeset will have the parents of the working 12.424 directory as its parents.</para> 12.425 12.426 - <para>After a commit, Mercurial will update the parents of the 12.427 - working directory, so that the first parent is the ID of the 12.428 - new changeset, and the second is the null ID. This is shown 12.429 - in figure <xref endterm="fig.concepts.wdir-after-commit.caption" 12.430 - linkend="fig.concepts.wdir-after-commit"/>. 12.431 - Mercurial 12.432 + <para id="x_310">After a commit, Mercurial will update the 12.433 + parents of the working directory, so that the first parent is 12.434 + the ID of the new changeset, and the second is the null ID. 12.435 + This is shown in <xref 12.436 + linkend="fig:concepts:wdir-after-commit"/>. Mercurial 12.437 doesn't touch any of the files in the working directory when 12.438 you commit; it just modifies the dirstate to note its new 12.439 parents.</para> 12.440 @@ -395,7 +383,7 @@ 12.441 <sect2> 12.442 <title>Creating a new head</title> 12.443 12.444 - <para>It's perfectly normal to update the working directory to a 12.445 + <para id="x_311">It's perfectly normal to update the working directory to a 12.446 changeset other than the current tip. For example, you might 12.447 want to know what your project looked like last Tuesday, or 12.448 you could be looking through changesets to see which one 12.449 @@ -404,43 +392,39 @@ 12.450 interested in, and then examine the files in the working 12.451 directory directly to see their contents as they were when you 12.452 committed that changeset. The effect of this is shown in 12.453 - figure <xref endterm="fig.concepts.wdir-pre-branch.caption" 12.454 - linkend="fig.concepts.wdir-pre-branch"/>.</para> 12.455 - 12.456 - <informalfigure id="fig.concepts.wdir-pre-branch"> 12.457 - <mediaobject> 12.458 - <imageobject><imagedata fileref="images/wdir-pre-branch.png"/> 12.459 - </imageobject> 12.460 - <textobject><phrase>XXX add text</phrase></textobject> 12.461 - <caption><para id="fig.concepts.wdir-pre-branch.caption">The working 12.462 - directory, updated to an older changeset</para></caption> 12.463 - </mediaobject> 12.464 - </informalfigure> 12.465 - 12.466 - <para>Having updated the working directory to an older 12.467 - changeset, what happens if you make some changes, and then 12.468 - commit? Mercurial behaves in the same way as I outlined 12.469 + <xref linkend="fig:concepts:wdir-pre-branch"/>.</para> 12.470 + 12.471 + <figure id="fig:concepts:wdir-pre-branch"> 12.472 + <title>The working directory, updated to an older 12.473 + changeset</title> 12.474 + <mediaobject> 12.475 + <imageobject><imagedata fileref="figs/wdir-pre-branch.png"/></imageobject> 12.476 + <textobject><phrase>XXX add text</phrase></textobject> 12.477 + </mediaobject> 12.478 + </figure> 12.479 + 12.480 + <para id="x_313">Having updated the working directory to an 12.481 + older changeset, what happens if you make some changes, and 12.482 + then commit? Mercurial behaves in the same way as I outlined 12.483 above. The parents of the working directory become the 12.484 parents of the new changeset. This new changeset has no 12.485 children, so it becomes the new tip. And the repository now 12.486 contains two changesets that have no children; we call these 12.487 <emphasis>heads</emphasis>. You can see the structure that 12.488 - this creates in figure <xref 12.489 - endterm="fig.concepts.wdir-branch.caption" 12.490 - linkend="fig.concepts.wdir-branch"/>.</para> 12.491 - 12.492 - <informalfigure id="fig.concepts.wdir-branch"> 12.493 - <mediaobject> 12.494 - <imageobject><imagedata fileref="images/wdir-branch.png"/> 12.495 - </imageobject> 12.496 - <textobject><phrase>XXX add text</phrase></textobject> 12.497 - <caption><para id="fig.concepts.wdir-branch.caption">After a 12.498 - commit made while synced to an older changeset</para></caption> 12.499 - </mediaobject> 12.500 - </informalfigure> 12.501 + this creates in <xref 12.502 + linkend="fig:concepts:wdir-branch"/>.</para> 12.503 + 12.504 + <figure id="fig:concepts:wdir-branch"> 12.505 + <title>After a commit made while synced to an older 12.506 + changeset</title> 12.507 + <mediaobject> 12.508 + <imageobject><imagedata fileref="figs/wdir-branch.png"/></imageobject> 12.509 + <textobject><phrase>XXX add text</phrase></textobject> 12.510 + </mediaobject> 12.511 + </figure> 12.512 12.513 <note> 12.514 - <para> If you're new to Mercurial, you should keep in mind a 12.515 + <para id="x_315"> If you're new to Mercurial, you should keep in mind a 12.516 common <quote>error</quote>, which is to use the <command 12.517 role="hg-cmd">hg pull</command> command without any 12.518 options. By default, the <command role="hg-cmd">hg 12.519 @@ -452,7 +436,7 @@ 12.520 a new head, because your working directory isn't synced to 12.521 whatever the current tip is.</para> 12.522 12.523 - <para> I put the word <quote>error</quote> in quotes because 12.524 + <para id="x_316"> I put the word <quote>error</quote> in quotes because 12.525 all that you need to do to rectify this situation is 12.526 <command role="hg-cmd">hg merge</command>, then <command 12.527 role="hg-cmd">hg commit</command>. In other words, this 12.528 @@ -466,67 +450,66 @@ 12.529 <sect2> 12.530 <title>Merging heads</title> 12.531 12.532 - <para>When you run the <command role="hg-cmd">hg merge</command> 12.533 - command, Mercurial leaves the first parent of the working 12.534 - directory unchanged, and sets the second parent to the 12.535 - changeset you're merging with, as shown in figure <xref 12.536 - endterm="fig.concepts.wdir-merge.caption" 12.537 - linkend="fig.concepts.wdir-merge"/>.</para> 12.538 - 12.539 - <informalfigure id="fig.concepts.wdir-merge"> 12.540 - <mediaobject> 12.541 - <imageobject><imagedata fileref="images/wdir-merge.png"/> 12.542 - </imageobject> 12.543 - <textobject><phrase>XXX add text</phrase></textobject> 12.544 - <caption><para id="fig.concepts.wdir-merge.caption">Merging two 12.545 - heads</para></caption> 12.546 - </mediaobject> 12.547 - </informalfigure> 12.548 - 12.549 - <para>Mercurial also has to modify the working directory, to 12.550 + <para id="x_317">When you run the <command role="hg-cmd">hg 12.551 + merge</command> command, Mercurial leaves the first parent 12.552 + of the working directory unchanged, and sets the second parent 12.553 + to the changeset you're merging with, as shown in <xref 12.554 + linkend="fig:concepts:wdir-merge"/>.</para> 12.555 + 12.556 + <figure id="fig:concepts:wdir-merge"> 12.557 + <title>Merging two heads</title> 12.558 + <mediaobject> 12.559 + <imageobject> 12.560 + <imagedata fileref="figs/wdir-merge.png"/> 12.561 + </imageobject> 12.562 + <textobject><phrase>XXX add text</phrase></textobject> 12.563 + </mediaobject> 12.564 + </figure> 12.565 + 12.566 + <para id="x_319">Mercurial also has to modify the working directory, to 12.567 merge the files managed in the two changesets. Simplified a 12.568 little, the merging process goes like this, for every file in 12.569 the manifests of both changesets.</para> 12.570 <itemizedlist> 12.571 - <listitem><para>If neither changeset has modified a file, do 12.572 + <listitem><para id="x_31a">If neither changeset has modified a file, do 12.573 nothing with that file.</para> 12.574 </listitem> 12.575 - <listitem><para>If one changeset has modified a file, and the 12.576 + <listitem><para id="x_31b">If one changeset has modified a file, and the 12.577 other hasn't, create the modified copy of the file in the 12.578 working directory.</para> 12.579 </listitem> 12.580 - <listitem><para>If one changeset has removed a file, and the 12.581 + <listitem><para id="x_31c">If one changeset has removed a file, and the 12.582 other hasn't (or has also deleted it), delete the file 12.583 from the working directory.</para> 12.584 </listitem> 12.585 - <listitem><para>If one changeset has removed a file, but the 12.586 + <listitem><para id="x_31d">If one changeset has removed a file, but the 12.587 other has modified the file, ask the user what to do: keep 12.588 the modified file, or remove it?</para> 12.589 </listitem> 12.590 - <listitem><para>If both changesets have modified a file, 12.591 + <listitem><para id="x_31e">If both changesets have modified a file, 12.592 invoke an external merge program to choose the new 12.593 contents for the merged file. This may require input from 12.594 the user.</para> 12.595 </listitem> 12.596 - <listitem><para>If one changeset has modified a file, and the 12.597 + <listitem><para id="x_31f">If one changeset has modified a file, and the 12.598 other has renamed or copied the file, make sure that the 12.599 changes follow the new name of the file.</para> 12.600 </listitem></itemizedlist> 12.601 - <para>There are more details&emdash;merging has plenty of corner 12.602 + <para id="x_320">There are more details&emdash;merging has plenty of corner 12.603 cases&emdash;but these are the most common choices that are 12.604 involved in a merge. As you can see, most cases are 12.605 completely automatic, and indeed most merges finish 12.606 automatically, without requiring your input to resolve any 12.607 conflicts.</para> 12.608 12.609 - <para>When you're thinking about what happens when you commit 12.610 + <para id="x_321">When you're thinking about what happens when you commit 12.611 after a merge, once again the working directory is <quote>the 12.612 changeset I'm about to commit</quote>. After the <command 12.613 role="hg-cmd">hg merge</command> command completes, the 12.614 working directory has two parents; these will become the 12.615 parents of the new changeset.</para> 12.616 12.617 - <para>Mercurial lets you perform multiple merges, but you must 12.618 + <para id="x_322">Mercurial lets you perform multiple merges, but you must 12.619 commit the results of each individual merge as you go. This 12.620 is necessary because Mercurial only tracks two parents for 12.621 both revisions and the working directory. While it would be 12.622 @@ -539,7 +522,7 @@ 12.623 <sect1> 12.624 <title>Other interesting design features</title> 12.625 12.626 - <para>In the sections above, I've tried to highlight some of the 12.627 + <para id="x_323">In the sections above, I've tried to highlight some of the 12.628 most important aspects of Mercurial's design, to illustrate that 12.629 it pays careful attention to reliability and performance. 12.630 However, the attention to detail doesn't stop there. There are 12.631 @@ -552,13 +535,13 @@ 12.632 <sect2> 12.633 <title>Clever compression</title> 12.634 12.635 - <para>When appropriate, Mercurial will store both snapshots and 12.636 + <para id="x_324">When appropriate, Mercurial will store both snapshots and 12.637 deltas in compressed form. It does this by always 12.638 <emphasis>trying to</emphasis> compress a snapshot or delta, 12.639 but only storing the compressed version if it's smaller than 12.640 the uncompressed version.</para> 12.641 12.642 - <para>This means that Mercurial does <quote>the right 12.643 + <para id="x_325">This means that Mercurial does <quote>the right 12.644 thing</quote> when storing a file whose native form is 12.645 compressed, such as a <literal>zip</literal> archive or a JPEG 12.646 image. When these types of files are compressed a second 12.647 @@ -566,7 +549,7 @@ 12.648 once-compressed form, and so Mercurial will store the plain 12.649 <literal>zip</literal> or JPEG.</para> 12.650 12.651 - <para>Deltas between revisions of a compressed file are usually 12.652 + <para id="x_326">Deltas between revisions of a compressed file are usually 12.653 larger than snapshots of the file, and Mercurial again does 12.654 <quote>the right thing</quote> in these cases. It finds that 12.655 such a delta exceeds the threshold at which it should store a 12.656 @@ -577,7 +560,7 @@ 12.657 <sect3> 12.658 <title>Network recompression</title> 12.659 12.660 - <para>When storing revisions on disk, Mercurial uses the 12.661 + <para id="x_327">When storing revisions on disk, Mercurial uses the 12.662 <quote>deflate</quote> compression algorithm (the same one 12.663 used by the popular <literal>zip</literal> archive format), 12.664 which balances good speed with a respectable compression 12.665 @@ -585,7 +568,7 @@ 12.666 network connection, Mercurial uncompresses the compressed 12.667 revision data.</para> 12.668 12.669 - <para>If the connection is over HTTP, Mercurial recompresses 12.670 + <para id="x_328">If the connection is over HTTP, Mercurial recompresses 12.671 the entire stream of data using a compression algorithm that 12.672 gives a better compression ratio (the Burrows-Wheeler 12.673 algorithm from the widely used <literal>bzip2</literal> 12.674 @@ -595,7 +578,7 @@ 12.675 transferred, yielding better network performance over almost 12.676 all kinds of network.</para> 12.677 12.678 - <para>(If the connection is over <command>ssh</command>, 12.679 + <para id="x_329">(If the connection is over <command>ssh</command>, 12.680 Mercurial <emphasis>doesn't</emphasis> recompress the 12.681 stream, because <command>ssh</command> can already do this 12.682 itself.)</para> 12.683 @@ -605,20 +588,20 @@ 12.684 <sect2> 12.685 <title>Read/write ordering and atomicity</title> 12.686 12.687 - <para>Appending to files isn't the whole story when it comes to 12.688 - guaranteeing that a reader won't see a partial write. If you 12.689 - recall figure <xref endterm="fig.concepts.metadata.caption" 12.690 - linkend="fig.concepts.metadata"/>, revisions in the 12.691 - changelog point to revisions in the manifest, and revisions in 12.692 - the manifest point to revisions in filelogs. This hierarchy 12.693 - is deliberate.</para> 12.694 - 12.695 - <para>A writer starts a transaction by writing filelog and 12.696 + <para id="x_32a">Appending to files isn't the whole story when 12.697 + it comes to guaranteeing that a reader won't see a partial 12.698 + write. If you recall <xref linkend="fig:concepts:metadata"/>, 12.699 + revisions in 12.700 + the changelog point to revisions in the manifest, and 12.701 + revisions in the manifest point to revisions in filelogs. 12.702 + This hierarchy is deliberate.</para> 12.703 + 12.704 + <para id="x_32b">A writer starts a transaction by writing filelog and 12.705 manifest data, and doesn't write any changelog data until 12.706 those are finished. A reader starts by reading changelog 12.707 data, then manifest data, followed by filelog data.</para> 12.708 12.709 - <para>Since the writer has always finished writing filelog and 12.710 + <para id="x_32c">Since the writer has always finished writing filelog and 12.711 manifest data before it writes to the changelog, a reader will 12.712 never read a pointer to a partially written manifest revision 12.713 from the changelog, and it will never read a pointer to a 12.714 @@ -628,7 +611,7 @@ 12.715 <sect2> 12.716 <title>Concurrent access</title> 12.717 12.718 - <para>The read/write ordering and atomicity guarantees mean that 12.719 + <para id="x_32d">The read/write ordering and atomicity guarantees mean that 12.720 Mercurial never needs to <emphasis>lock</emphasis> a 12.721 repository when it's reading data, even if the repository is 12.722 being written to while the read is occurring. This has a big 12.723 @@ -637,7 +620,7 @@ 12.724 safely all at once, no matter whether it's being written to or 12.725 not.</para> 12.726 12.727 - <para>The lockless nature of reading means that if you're 12.728 + <para id="x_32e">The lockless nature of reading means that if you're 12.729 sharing a repository on a multi-user system, you don't need to 12.730 grant other local users permission to 12.731 <emphasis>write</emphasis> to your repository in order for 12.732 @@ -650,7 +633,7 @@ 12.733 which of course makes for all kinds of nasty and annoying 12.734 security and administrative problems.)</para> 12.735 12.736 - <para>Mercurial uses locks to ensure that only one process can 12.737 + <para id="x_32f">Mercurial uses locks to ensure that only one process can 12.738 write to a repository at a time (the locking mechanism is safe 12.739 even over filesystems that are notoriously hostile to locking, 12.740 such as NFS). If a repository is locked, a writer will wait 12.741 @@ -664,7 +647,7 @@ 12.742 <sect3> 12.743 <title>Safe dirstate access</title> 12.744 12.745 - <para>As with revision data, Mercurial doesn't take a lock to 12.746 + <para id="x_330">As with revision data, Mercurial doesn't take a lock to 12.747 read the dirstate file; it does acquire a lock to write it. 12.748 To avoid the possibility of reading a partially written copy 12.749 of the dirstate file, Mercurial writes to a file with a 12.750 @@ -679,17 +662,17 @@ 12.751 <sect2> 12.752 <title>Avoiding seeks</title> 12.753 12.754 - <para>Critical to Mercurial's performance is the avoidance of 12.755 + <para id="x_331">Critical to Mercurial's performance is the avoidance of 12.756 seeks of the disk head, since any seek is far more expensive 12.757 than even a comparatively large read operation.</para> 12.758 12.759 - <para>This is why, for example, the dirstate is stored in a 12.760 + <para id="x_332">This is why, for example, the dirstate is stored in a 12.761 single file. If there were a dirstate file per directory that 12.762 Mercurial tracked, the disk would seek once per directory. 12.763 Instead, Mercurial reads the entire single dirstate file in 12.764 one step.</para> 12.765 12.766 - <para>Mercurial also uses a <quote>copy on write</quote> scheme 12.767 + <para id="x_333">Mercurial also uses a <quote>copy on write</quote> scheme 12.768 when cloning a repository on local storage. Instead of 12.769 copying every revlog file from the old repository into the new 12.770 repository, it makes a <quote>hard link</quote>, which is a 12.771 @@ -700,7 +683,7 @@ 12.772 one repository is using the file, so Mercurial makes a new 12.773 copy of the file that is private to this repository.</para> 12.774 12.775 - <para>A few revision control developers have pointed out that 12.776 + <para id="x_334">A few revision control developers have pointed out that 12.777 this idea of making a complete private copy of a file is not 12.778 very efficient in its use of storage. While this is true, 12.779 storage is cheap, and this method gives the highest 12.780 @@ -714,21 +697,21 @@ 12.781 <sect2> 12.782 <title>Other contents of the dirstate</title> 12.783 12.784 - <para>Because Mercurial doesn't force you to tell it when you're 12.785 + <para id="x_335">Because Mercurial doesn't force you to tell it when you're 12.786 modifying a file, it uses the dirstate to store some extra 12.787 information so it can determine efficiently whether you have 12.788 modified a file. For each file in the working directory, it 12.789 stores the time that it last modified the file itself, and the 12.790 size of the file at that time.</para> 12.791 12.792 - <para>When you explicitly <command role="hg-cmd">hg 12.793 + <para id="x_336">When you explicitly <command role="hg-cmd">hg 12.794 add</command>, <command role="hg-cmd">hg remove</command>, 12.795 <command role="hg-cmd">hg rename</command> or <command 12.796 role="hg-cmd">hg copy</command> files, Mercurial updates the 12.797 dirstate so that it knows what to do with those files when you 12.798 commit.</para> 12.799 12.800 - <para>When Mercurial is checking the states of files in the 12.801 + <para id="x_337">When Mercurial is checking the states of files in the 12.802 working directory, it first checks a file's modification time. 12.803 If that has not changed, the file must not have been modified. 12.804 If the file's size has changed, the file must have been
13.1 --- a/en/ch04-daily.xml Fri Mar 20 17:17:55 2009 +0800 13.2 +++ b/en/ch04-daily.xml Mon Mar 30 16:23:33 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.daily"> 13.7 +<chapter id="chap:daily"> 13.8 <?dbhtml filename="mercurial-in-daily-use.html"?> 13.9 <title>Mercurial in daily use</title> 13.10 13.11 @@ -274,7 +274,7 @@ 13.12 &interaction.daily.copy.merge; 13.13 13.14 </sect2> 13.15 - <sect2 id="sec.daily.why-copy"> 13.16 + <sect2 id="sec:daily:why-copy"> 13.17 <title>Why should changes follow copies?</title> 13.18 13.19 <para id="x_1c4">This behaviour, of changes to a file propagating out to 13.20 @@ -328,7 +328,7 @@ 13.21 Unix-like systems, that's <command>cp</command>) to make a 13.22 copy of a file, then <command role="hg-cmd">hg add</command> 13.23 the new copy by hand. Before you do so, though, please do 13.24 - reread section <xref linkend="sec.daily.why-copy"/>, and make 13.25 + reread <xref linkend="sec:daily:why-copy"/>, and make 13.26 an informed 13.27 decision that this behaviour is not appropriate to your 13.28 specific case.</para> 13.29 @@ -529,10 +529,10 @@ 13.30 decide it was a mistake, you can still do something about it, 13.31 though your options may be more limited.</para> 13.32 13.33 - <para id="x_1e5">For more information about the <command role="hg-cmd">hg 13.34 - revert</command> command, and details about how to deal with 13.35 - changes you have already committed, see chapter <xref 13.36 - linkend="chap.undo"/>.</para> 13.37 + <para id="x_1e5">For more information about the <command 13.38 + role="hg-cmd">hg revert</command> command, and details about 13.39 + how to deal with changes you have already committed, see <xref 13.40 + linkend="chap:undo"/>.</para> 13.41 13.42 </sect1> 13.43 </chapter>
14.1 --- a/en/ch05-collab.xml Fri Mar 20 17:17:55 2009 +0800 14.2 +++ b/en/ch05-collab.xml Mon Mar 30 16:23:33 2009 +0800 14.3 @@ -1,10 +1,10 @@ 14.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 14.5 14.6 -<chapter id="cha.collab"> 14.7 +<chapter id="cha:collab"> 14.8 <?dbhtml filename="collaborating-with-other-people.html"?> 14.9 <title>Collaborating with other people</title> 14.10 14.11 - <para>As a completely decentralised tool, Mercurial doesn't impose 14.12 + <para id="x_44a">As a completely decentralised tool, Mercurial doesn't impose 14.13 any policy on how people ought to work with each other. However, 14.14 if you're new to distributed revision control, it helps to have 14.15 some tools and examples in mind when you're thinking about 14.16 @@ -13,15 +13,15 @@ 14.17 <sect1> 14.18 <title>Mercurial's web interface</title> 14.19 14.20 - <para>Mercurial has a powerful web interface that provides several 14.21 + <para id="x_44b">Mercurial has a powerful web interface that provides several 14.22 useful capabilities.</para> 14.23 14.24 - <para>For interactive use, the web interface lets you browse a 14.25 + <para id="x_44c">For interactive use, the web interface lets you browse a 14.26 single repository or a collection of repositories. You can view 14.27 the history of a repository, examine each change (comments and 14.28 diffs), and view the contents of each directory and file.</para> 14.29 14.30 - <para>Also for human consumption, the web interface provides an 14.31 + <para id="x_44d">Also for human consumption, the web interface provides an 14.32 RSS feed of the changes in a repository. This lets you 14.33 <quote>subscribe</quote> to a repository using your favourite 14.34 feed reader, and be automatically notified of activity in that 14.35 @@ -31,35 +31,35 @@ 14.36 configuration on the part of whoever is serving the 14.37 repository.</para> 14.38 14.39 - <para>The web interface also lets remote users clone a repository, 14.40 + <para id="x_44e">The web interface also lets remote users clone a repository, 14.41 pull changes from it, and (when the server is configured to 14.42 permit it) push changes back to it. Mercurial's HTTP tunneling 14.43 protocol aggressively compresses data, so that it works 14.44 efficiently even over low-bandwidth network connections.</para> 14.45 14.46 - <para>The easiest way to get started with the web interface is to 14.47 + <para id="x_44f">The easiest way to get started with the web interface is to 14.48 use your web browser to visit an existing repository, such as 14.49 the master Mercurial repository at <ulink 14.50 url="http://www.selenic.com/repo/hg?style=gitweb">http://www.selenic.com/repo/hg?style=gitweb</ulink>.</para> 14.51 14.52 - <para>If you're interested in providing a web interface to your 14.53 - own repositories, Mercurial provides two ways to do this. The 14.54 - first is using the <command role="hg-cmd">hg serve</command> 14.55 - command, which is best suited to short-term 14.56 - <quote>lightweight</quote> serving. See section <xref 14.57 - linkend="sec.collab.serve"/> below for details of how to use 14.58 + <para id="x_450">If you're interested in providing a web interface 14.59 + to your own repositories, Mercurial provides two ways to do 14.60 + this. The first is using the <command role="hg-cmd">hg 14.61 + serve</command> command, which is best suited to short-term 14.62 + <quote>lightweight</quote> serving. See <xref 14.63 + linkend="sec:collab:serve"/> below for details of how to use 14.64 this command. If you have a long-lived repository that you'd 14.65 like to make permanently available, Mercurial has built-in 14.66 support for the CGI (Common Gateway Interface) standard, which 14.67 - all common web servers support. See section <xref 14.68 - linkend="sec.collab.cgi"/> for details of CGI 14.69 + all common web servers support. See <xref 14.70 + linkend="sec:collab:cgi"/> for details of CGI 14.71 configuration.</para> 14.72 14.73 </sect1> 14.74 <sect1> 14.75 <title>Collaboration models</title> 14.76 14.77 - <para>With a suitably flexible tool, making decisions about 14.78 + <para id="x_451">With a suitably flexible tool, making decisions about 14.79 workflow is much more of a social engineering challenge than a 14.80 technical one. Mercurial imposes few limitations on how you can 14.81 structure the flow of work in a project, so it's up to you and 14.82 @@ -69,13 +69,13 @@ 14.83 <sect2> 14.84 <title>Factors to keep in mind</title> 14.85 14.86 - <para>The most important aspect of any model that you must keep 14.87 + <para id="x_452">The most important aspect of any model that you must keep 14.88 in mind is how well it matches the needs and capabilities of 14.89 the people who will be using it. This might seem 14.90 self-evident; even so, you still can't afford to forget it for 14.91 a moment.</para> 14.92 14.93 - <para>I once put together a workflow model that seemed to make 14.94 + <para id="x_453">I once put together a workflow model that seemed to make 14.95 perfect sense to me, but that caused a considerable amount of 14.96 consternation and strife within my development team. In spite 14.97 of my attempts to explain why we needed a complex set of 14.98 @@ -85,7 +85,7 @@ 14.99 operating under, or face the consequences of those constraints 14.100 in the details of the model that I was advocating.</para> 14.101 14.102 - <para>Don't sweep foreseeable social or technical problems under 14.103 + <para id="x_454">Don't sweep foreseeable social or technical problems under 14.104 the rug. Whatever scheme you put into effect, you should plan 14.105 for mistakes and problem scenarios. Consider adding automated 14.106 machinery to prevent, or quickly recover from, trouble that 14.107 @@ -101,12 +101,12 @@ 14.108 <sect2> 14.109 <title>Informal anarchy</title> 14.110 14.111 - <para>I wouldn't suggest an <quote>anything goes</quote> 14.112 + <para id="x_455">I wouldn't suggest an <quote>anything goes</quote> 14.113 approach as something sustainable, but it's a model that's 14.114 easy to grasp, and it works perfectly well in a few unusual 14.115 situations.</para> 14.116 14.117 - <para>As one example, many projects have a loose-knit group of 14.118 + <para id="x_456">As one example, many projects have a loose-knit group of 14.119 collaborators who rarely physically meet each other. Some 14.120 groups like to overcome the isolation of working at a distance 14.121 by organising occasional <quote>sprints</quote>. In a sprint, 14.122 @@ -115,21 +115,21 @@ 14.123 place) and spend several days more or less locked in there, 14.124 hacking intensely on a handful of projects.</para> 14.125 14.126 - <para>A sprint is the perfect place to use the <command 14.127 - role="hg-cmd">hg serve</command> command, since <command 14.128 - role="hg-cmd">hg serve</command> does not require any fancy 14.129 - server infrastructure. You can get started with <command 14.130 - role="hg-cmd">hg serve</command> in moments, by reading 14.131 - section <xref linkend="sec.collab.serve"/> below. Then simply 14.132 - tell 14.133 - the person next to you that you're running a server, send the 14.134 - URL to them in an instant message, and you immediately have a 14.135 - quick-turnaround way to work together. They can type your URL 14.136 - into their web browser and quickly review your changes; or 14.137 - they can pull a bugfix from you and verify it; or they can 14.138 - clone a branch containing a new feature and try it out.</para> 14.139 - 14.140 - <para>The charm, and the problem, with doing things in an ad hoc 14.141 + <para id="x_457">A sprint is the perfect place to use the 14.142 + <command role="hg-cmd">hg serve</command> command, since 14.143 + <command role="hg-cmd">hg serve</command> does not require any 14.144 + fancy server infrastructure. You can get started with 14.145 + <command role="hg-cmd">hg serve</command> in moments, by 14.146 + reading <xref linkend="sec:collab:serve"/> below. Then simply 14.147 + tell the person next to you that you're running a server, send 14.148 + the URL to them in an instant message, and you immediately 14.149 + have a quick-turnaround way to work together. They can type 14.150 + your URL into their web browser and quickly review your 14.151 + changes; or they can pull a bugfix from you and verify it; or 14.152 + they can clone a branch containing a new feature and try it 14.153 + out.</para> 14.154 + 14.155 + <para id="x_458">The charm, and the problem, with doing things in an ad hoc 14.156 fashion like this is that only people who know about your 14.157 changes, and where they are, can see them. Such an informal 14.158 approach simply doesn't scale beyond a handful people, because 14.159 @@ -140,18 +140,18 @@ 14.160 <sect2> 14.161 <title>A single central repository</title> 14.162 14.163 - <para>For smaller projects migrating from a centralised revision 14.164 + <para id="x_459">For smaller projects migrating from a centralised revision 14.165 control tool, perhaps the easiest way to get started is to 14.166 have changes flow through a single shared central repository. 14.167 This is also the most common <quote>building block</quote> for 14.168 more ambitious workflow schemes.</para> 14.169 14.170 - <para>Contributors start by cloning a copy of this repository. 14.171 + <para id="x_45a">Contributors start by cloning a copy of this repository. 14.172 They can pull changes from it whenever they need to, and some 14.173 (perhaps all) developers have permission to push a change back 14.174 when they're ready for other people to see it.</para> 14.175 14.176 - <para>Under this model, it can still often make sense for people 14.177 + <para id="x_45b">Under this model, it can still often make sense for people 14.178 to pull changes directly from each other, without going 14.179 through the central repository. Consider a case in which I 14.180 have a tentative bug fix, but I am worried that if I were to 14.181 @@ -162,22 +162,21 @@ 14.182 lets us put off publishing the potentially unsafe change until 14.183 it has had a little testing.</para> 14.184 14.185 - <para>In this kind of scenario, people usually use the 14.186 - <command>ssh</command> protocol to securely push changes to 14.187 - the central repository, as documented in section <xref 14.188 - linkend="sec.collab.ssh"/>. It's also 14.189 - usual to publish a read-only copy of the repository over HTTP 14.190 - using CGI, as in section <xref linkend="sec.collab.cgi"/>. 14.191 - Publishing over HTTP 14.192 - satisfies the needs of people who don't have push access, and 14.193 - those who want to use web browsers to browse the repository's 14.194 - history.</para> 14.195 + <para id="x_45c">In this kind of scenario, people usually use 14.196 + the <command>ssh</command> protocol to securely push changes 14.197 + to the central repository, as documented in <xref 14.198 + linkend="sec:collab:ssh"/>. It's also usual to publish a 14.199 + read-only copy of the repository over HTTP using CGI, as in 14.200 + <xref linkend="sec:collab:cgi"/>. Publishing 14.201 + over HTTP satisfies the needs of people who don't have push 14.202 + access, and those who want to use web browsers to browse the 14.203 + repository's history.</para> 14.204 14.205 </sect2> 14.206 <sect2> 14.207 <title>Working with multiple branches</title> 14.208 14.209 - <para>Projects of any significant size naturally tend to make 14.210 + <para id="x_45d">Projects of any significant size naturally tend to make 14.211 progress on several fronts simultaneously. In the case of 14.212 software, it's common for a project to go through periodic 14.213 official releases. A release might then go into 14.214 @@ -190,7 +189,7 @@ 14.215 different directions in which development is 14.216 proceeding.</para> 14.217 14.218 - <para>Mercurial is particularly well suited to managing a number 14.219 + <para id="x_45e">Mercurial is particularly well suited to managing a number 14.220 of simultaneous, but not identical, branches. Each 14.221 <quote>development direction</quote> can live in its own 14.222 central repository, and you can merge changes from one to 14.223 @@ -199,27 +198,27 @@ 14.224 branch will never affect a stable branch unless someone 14.225 explicitly merges those changes in.</para> 14.226 14.227 - <para>Here's an example of how this can work in practice. Let's 14.228 + <para id="x_45f">Here's an example of how this can work in practice. Let's 14.229 say you have one <quote>main branch</quote> on a central 14.230 server.</para> 14.231 14.232 &interaction.branching.init; 14.233 14.234 - <para>People clone it, make changes locally, test them, and push 14.235 + <para id="x_460">People clone it, make changes locally, test them, and push 14.236 them back.</para> 14.237 14.238 - <para>Once the main branch reaches a release milestone, you can 14.239 + <para id="x_461">Once the main branch reaches a release milestone, you can 14.240 use the <command role="hg-cmd">hg tag</command> command to 14.241 give a permanent name to the milestone revision.</para> 14.242 14.243 &interaction.branching.tag; 14.244 14.245 - <para>Let's say some ongoing 14.246 + <para id="x_462">Let's say some ongoing 14.247 development occurs on the main branch.</para> 14.248 14.249 &interaction.branching.main; 14.250 14.251 - <para>Using the tag that was recorded at the milestone, people 14.252 + <para id="x_463">Using the tag that was recorded at the milestone, people 14.253 who clone that repository at any time in the future can use 14.254 <command role="hg-cmd">hg update</command> to get a copy of 14.255 the working directory exactly as it was when that tagged 14.256 @@ -227,26 +226,26 @@ 14.257 14.258 &interaction.branching.update; 14.259 14.260 - <para>In addition, immediately after the main branch is tagged, 14.261 + <para id="x_464">In addition, immediately after the main branch is tagged, 14.262 someone can then clone the main branch on the server to a new 14.263 <quote>stable</quote> branch, also on the server.</para> 14.264 14.265 &interaction.branching.clone; 14.266 14.267 - <para>Someone who needs to make a change to the stable branch 14.268 + <para id="x_465">Someone who needs to make a change to the stable branch 14.269 can then clone <emphasis>that</emphasis> repository, make 14.270 their changes, commit, and push their changes back there.</para> 14.271 14.272 &interaction.branching.stable; 14.273 14.274 - <para>Because Mercurial repositories are independent, and 14.275 + <para id="x_466">Because Mercurial repositories are independent, and 14.276 Mercurial doesn't move changes around automatically, the 14.277 stable and main branches are <emphasis>isolated</emphasis> 14.278 from each other. The changes that you made on the main branch 14.279 don't <quote>leak</quote> to the stable branch, and vice 14.280 versa.</para> 14.281 14.282 - <para>You'll often want all of your bugfixes on the stable 14.283 + <para id="x_467">You'll often want all of your bugfixes on the stable 14.284 branch to show up on the main branch, too. Rather than 14.285 rewrite a bugfix on the main branch, you can simply pull and 14.286 merge changes from the stable to the main branch, and 14.287 @@ -254,7 +253,7 @@ 14.288 14.289 &interaction.branching.merge; 14.290 14.291 - <para>The main branch will still contain changes that are not on 14.292 + <para id="x_468">The main branch will still contain changes that are not on 14.293 the stable branch, but it will also contain all of the 14.294 bugfixes from the stable branch. The stable branch remains 14.295 unaffected by these changes.</para> 14.296 @@ -263,24 +262,22 @@ 14.297 <sect2> 14.298 <title>Feature branches</title> 14.299 14.300 - <para>For larger projects, an effective way to manage change is 14.301 + <para id="x_469">For larger projects, an effective way to manage change is 14.302 to break up a team into smaller groups. Each group has a 14.303 shared branch of its own, cloned from a single 14.304 <quote>master</quote> branch used by the entire project. 14.305 People working on an individual branch are typically quite 14.306 isolated from developments on other branches.</para> 14.307 14.308 - <informalfigure id="fig.collab.feature-branches"> 14.309 - <mediaobject> 14.310 - <imageobject><imagedata fileref="images/feature-branches.png"/> 14.311 - </imageobject> 14.312 - <textobject><phrase>XXX add text</phrase></textobject> 14.313 - <caption><para id="fig.collab.feature-branches.caption">Feature 14.314 - branches</para></caption> 14.315 - </mediaobject> 14.316 - </informalfigure> 14.317 - 14.318 - <para>When a particular feature is deemed to be in suitable 14.319 + <figure id="fig:collab:feature-branches"> 14.320 + <title>Feature branches</title> 14.321 + <mediaobject> 14.322 + <imageobject><imagedata imagedata width="100%" fileref="figs/feature-branches.png"/></imageobject> 14.323 + <textobject><phrase>XXX add text</phrase></textobject> 14.324 + </mediaobject> 14.325 + </figure> 14.326 + 14.327 + <para id="x_46b">When a particular feature is deemed to be in suitable 14.328 shape, someone on that feature team pulls and merges from the 14.329 master branch into the feature branch, then pushes back up to 14.330 the master branch.</para> 14.331 @@ -289,12 +286,12 @@ 14.332 <sect2> 14.333 <title>The release train</title> 14.334 14.335 - <para>Some projects are organised on a <quote>train</quote> 14.336 + <para id="x_46c">Some projects are organised on a <quote>train</quote> 14.337 basis: a release is scheduled to happen every few months, and 14.338 whatever features are ready when the <quote>train</quote> is 14.339 ready to leave are allowed in.</para> 14.340 14.341 - <para>This model resembles working with feature branches. The 14.342 + <para id="x_46d">This model resembles working with feature branches. The 14.343 difference is that when a feature branch misses a train, 14.344 someone on the feature team pulls and merges the changes that 14.345 went out on that train release into the feature branch, and 14.346 @@ -305,7 +302,7 @@ 14.347 <sect2> 14.348 <title>The Linux kernel model</title> 14.349 14.350 - <para>The development of the Linux kernel has a shallow 14.351 + <para id="x_46e">The development of the Linux kernel has a shallow 14.352 hierarchical structure, surrounded by a cloud of apparent 14.353 chaos. Because most Linux developers use 14.354 <command>git</command>, a distributed revision control tool 14.355 @@ -313,14 +310,14 @@ 14.356 describe the way work flows in that environment; if you like 14.357 the ideas, the approach translates well across tools.</para> 14.358 14.359 - <para>At the center of the community sits Linus Torvalds, the 14.360 + <para id="x_46f">At the center of the community sits Linus Torvalds, the 14.361 creator of Linux. He publishes a single source repository 14.362 that is considered the <quote>authoritative</quote> current 14.363 tree by the entire developer community. Anyone can clone 14.364 Linus's tree, but he is very choosy about whose trees he pulls 14.365 from.</para> 14.366 14.367 - <para>Linus has a number of <quote>trusted lieutenants</quote>. 14.368 + <para id="x_470">Linus has a number of <quote>trusted lieutenants</quote>. 14.369 As a general rule, he pulls whatever changes they publish, in 14.370 most cases without even reviewing those changes. Some of 14.371 those lieutenants are generally agreed to be 14.372 @@ -332,7 +329,7 @@ 14.373 If the maintainer reviews their changes and agrees to take 14.374 them, they'll pass them along to Linus in due course.</para> 14.375 14.376 - <para>Individual lieutenants have their own approaches to 14.377 + <para id="x_471">Individual lieutenants have their own approaches to 14.378 reviewing, accepting, and publishing changes; and for deciding 14.379 when to feed them to Linus. In addition, there are several 14.380 well known branches that people use for different purposes. 14.381 @@ -343,14 +340,14 @@ 14.382 that they are about to feed upstream; and so on. Others just 14.383 publish a single tree.</para> 14.384 14.385 - <para>This model has two notable features. The first is that 14.386 + <para id="x_472">This model has two notable features. The first is that 14.387 it's <quote>pull only</quote>. You have to ask, convince, or 14.388 beg another developer to take a change from you, because there 14.389 are almost no trees to which more than one person can push, 14.390 and there's no way to push changes into a tree that someone 14.391 else controls.</para> 14.392 14.393 - <para>The second is that it's based on reputation and acclaim. 14.394 + <para id="x_473">The second is that it's based on reputation and acclaim. 14.395 If you're an unknown, Linus will probably ignore changes from 14.396 you without even responding. But a subsystem maintainer will 14.397 probably review them, and will likely take them if they pass 14.398 @@ -361,14 +358,14 @@ 14.399 Linus hasn't yet accepted, people with similar interests may 14.400 pull your changes regularly to keep up with your work.</para> 14.401 14.402 - <para>Reputation and acclaim don't necessarily cross subsystem 14.403 + <para id="x_474">Reputation and acclaim don't necessarily cross subsystem 14.404 or <quote>people</quote> boundaries. If you're a respected 14.405 but specialised storage hacker, and you try to fix a 14.406 networking bug, that change will receive a level of scrutiny 14.407 from a network maintainer comparable to a change from a 14.408 complete stranger.</para> 14.409 14.410 - <para>To people who come from more orderly project backgrounds, 14.411 + <para id="x_475">To people who come from more orderly project backgrounds, 14.412 the comparatively chaotic Linux kernel development process 14.413 often seems completely insane. It's subject to the whims of 14.414 individuals; people make sweeping changes whenever they deem 14.415 @@ -380,13 +377,13 @@ 14.416 <sect2> 14.417 <title>Pull-only versus shared-push collaboration</title> 14.418 14.419 - <para>A perpetual source of heat in the open source community is 14.420 + <para id="x_476">A perpetual source of heat in the open source community is 14.421 whether a development model in which people only ever pull 14.422 changes from others is <quote>better than</quote> one in which 14.423 multiple people can push changes to a shared 14.424 repository.</para> 14.425 14.426 - <para>Typically, the backers of the shared-push model use tools 14.427 + <para id="x_477">Typically, the backers of the shared-push model use tools 14.428 that actively enforce this approach. If you're using a 14.429 centralised revision control tool such as Subversion, there's 14.430 no way to make a choice over which model you'll use: the tool 14.431 @@ -394,7 +391,7 @@ 14.432 you'll have to roll your own approach on top (such as applying 14.433 a patch by hand).</para> 14.434 14.435 - <para>A good distributed revision control tool, such as 14.436 + <para id="x_478">A good distributed revision control tool, such as 14.437 Mercurial, will support both models. You and your 14.438 collaborators can then structure how you work together based 14.439 on your own needs and preferences, not on what contortions 14.440 @@ -404,34 +401,34 @@ 14.441 <sect2> 14.442 <title>Where collaboration meets branch management</title> 14.443 14.444 - <para>Once you and your team set up some shared repositories and 14.445 - start propagating changes back and forth between local and 14.446 - shared repos, you begin to face a related, but slightly 14.447 - different challenge: that of managing the multiple directions 14.448 - in which your team may be moving at once. Even though this 14.449 - subject is intimately related to how your team collaborates, 14.450 - it's dense enough to merit treatment of its own, in chapter 14.451 - <xref linkend="chap.branch"/>.</para> 14.452 + <para id="x_479">Once you and your team set up some shared 14.453 + repositories and start propagating changes back and forth 14.454 + between local and shared repos, you begin to face a related, 14.455 + but slightly different challenge: that of managing the 14.456 + multiple directions in which your team may be moving at once. 14.457 + Even though this subject is intimately related to how your 14.458 + team collaborates, it's dense enough to merit treatment of its 14.459 + own, in <xref linkend="chap:branch"/>.</para> 14.460 14.461 </sect2> 14.462 </sect1> 14.463 <sect1> 14.464 <title>The technical side of sharing</title> 14.465 14.466 - <para>The remainder of this chapter is devoted to the question of 14.467 + <para id="x_47a">The remainder of this chapter is devoted to the question of 14.468 serving data to your collaborators.</para> 14.469 14.470 </sect1> 14.471 - <sect1 id="sec.collab.serve"> 14.472 + <sect1 id="sec:collab:serve"> 14.473 <title>Informal sharing with <command role="hg-cmd">hg 14.474 serve</command></title> 14.475 14.476 - <para>Mercurial's <command role="hg-cmd">hg serve</command> 14.477 + <para id="x_47b">Mercurial's <command role="hg-cmd">hg serve</command> 14.478 command is wonderfully suited to small, tight-knit, and 14.479 fast-paced group environments. It also provides a great way to 14.480 get a feel for using Mercurial commands over a network.</para> 14.481 14.482 - <para>Run <command role="hg-cmd">hg serve</command> inside a 14.483 + <para id="x_47c">Run <command role="hg-cmd">hg serve</command> inside a 14.484 repository, and in under a second it will bring up a specialised 14.485 HTTP server; this will accept connections from any client, and 14.486 serve up data for that repository until you terminate it. 14.487 @@ -442,24 +439,24 @@ 14.488 on a laptop is likely to look something like 14.489 <literal>http://my-laptop.local:8000/</literal>.</para> 14.490 14.491 - <para>The <command role="hg-cmd">hg serve</command> command is 14.492 + <para id="x_47d">The <command role="hg-cmd">hg serve</command> command is 14.493 <emphasis>not</emphasis> a general-purpose web server. It can do 14.494 only two things:</para> 14.495 <itemizedlist> 14.496 - <listitem><para>Allow people to browse the history of the 14.497 + <listitem><para id="x_47e">Allow people to browse the history of the 14.498 repository it's serving, from their normal web 14.499 browsers.</para> 14.500 </listitem> 14.501 - <listitem><para>Speak Mercurial's wire protocol, so that people 14.502 + <listitem><para id="x_47f">Speak Mercurial's wire protocol, so that people 14.503 can <command role="hg-cmd">hg clone</command> or <command 14.504 role="hg-cmd">hg pull</command> changes from that 14.505 repository.</para> 14.506 </listitem></itemizedlist> 14.507 - <para>In particular, <command role="hg-cmd">hg serve</command> 14.508 + <para id="x_480">In particular, <command role="hg-cmd">hg serve</command> 14.509 won't allow remote users to <emphasis>modify</emphasis> your 14.510 repository. It's intended for read-only use.</para> 14.511 14.512 - <para>If you're getting started with Mercurial, there's nothing to 14.513 + <para id="x_481">If you're getting started with Mercurial, there's nothing to 14.514 prevent you from using <command role="hg-cmd">hg serve</command> 14.515 to serve up a repository on your own computer, then use commands 14.516 like <command role="hg-cmd">hg clone</command>, <command 14.517 @@ -471,13 +468,13 @@ 14.518 <sect2> 14.519 <title>A few things to keep in mind</title> 14.520 14.521 - <para>Because it provides unauthenticated read access to all 14.522 + <para id="x_482">Because it provides unauthenticated read access to all 14.523 clients, you should only use <command role="hg-cmd">hg 14.524 serve</command> in an environment where you either don't 14.525 care, or have complete control over, who can access your 14.526 network and pull data from your repository.</para> 14.527 14.528 - <para>The <command role="hg-cmd">hg serve</command> command 14.529 + <para id="x_483">The <command role="hg-cmd">hg serve</command> command 14.530 knows nothing about any firewall software you might have 14.531 installed on your system or network. It cannot detect or 14.532 control your firewall software. If other people are unable to 14.533 @@ -486,13 +483,13 @@ 14.534 (<emphasis>after</emphasis> you make sure that they're using 14.535 the correct URL) is check your firewall configuration.</para> 14.536 14.537 - <para>By default, <command role="hg-cmd">hg serve</command> 14.538 + <para id="x_484">By default, <command role="hg-cmd">hg serve</command> 14.539 listens for incoming connections on port 8000. If another 14.540 process is already listening on the port you want to use, you 14.541 can specify a different port to listen on using the <option 14.542 role="hg-opt-serve">-p</option> option.</para> 14.543 14.544 - <para>Normally, when <command role="hg-cmd">hg serve</command> 14.545 + <para id="x_485">Normally, when <command role="hg-cmd">hg serve</command> 14.546 starts, it prints no output, which can be a bit unnerving. If 14.547 you'd like to confirm that it is indeed running correctly, and 14.548 find out what URL you should send to your collaborators, start 14.549 @@ -501,59 +498,59 @@ 14.550 14.551 </sect2> 14.552 </sect1> 14.553 - <sect1 id="sec.collab.ssh"> 14.554 + <sect1 id="sec:collab:ssh"> 14.555 <title>Using the Secure Shell (ssh) protocol</title> 14.556 14.557 - <para>You can pull and push changes securely over a network 14.558 + <para id="x_486">You can pull and push changes securely over a network 14.559 connection using the Secure Shell (<literal>ssh</literal>) 14.560 protocol. To use this successfully, you may have to do a little 14.561 bit of configuration on the client or server sides.</para> 14.562 14.563 - <para>If you're not familiar with ssh, it's a network protocol 14.564 + <para id="x_487">If you're not familiar with ssh, it's a network protocol 14.565 that lets you securely communicate with another computer. To 14.566 use it with Mercurial, you'll be setting up one or more user 14.567 accounts on a server so that remote users can log in and execute 14.568 commands.</para> 14.569 14.570 - <para>(If you <emphasis>are</emphasis> familiar with ssh, you'll 14.571 + <para id="x_488">(If you <emphasis>are</emphasis> familiar with ssh, you'll 14.572 probably find some of the material that follows to be elementary 14.573 in nature.)</para> 14.574 14.575 <sect2> 14.576 <title>How to read and write ssh URLs</title> 14.577 14.578 - <para>An ssh URL tends to look like this:</para> 14.579 + <para id="x_489">An ssh URL tends to look like this:</para> 14.580 <programlisting>ssh://bos@hg.serpentine.com:22/hg/hgbook</programlisting> 14.581 <orderedlist> 14.582 - <listitem><para>The <quote><literal>ssh://</literal></quote> 14.583 + <listitem><para id="x_48a">The <quote><literal>ssh://</literal></quote> 14.584 part tells Mercurial to use the ssh protocol.</para> 14.585 </listitem> 14.586 - <listitem><para>The <quote><literal>bos@</literal></quote> 14.587 + <listitem><para id="x_48b">The <quote><literal>bos@</literal></quote> 14.588 component indicates what username to log into the server 14.589 as. You can leave this out if the remote username is the 14.590 same as your local username.</para> 14.591 </listitem> 14.592 - <listitem><para>The 14.593 + <listitem><para id="x_48c">The 14.594 <quote><literal>hg.serpentine.com</literal></quote> gives 14.595 the hostname of the server to log into.</para> 14.596 </listitem> 14.597 - <listitem><para>The <quote>:22</quote> identifies the port 14.598 + <listitem><para id="x_48d">The <quote>:22</quote> identifies the port 14.599 number to connect to the server on. The default port is 14.600 22, so you only need to specify a colon and port number if 14.601 you're <emphasis>not</emphasis> using port 22.</para> 14.602 </listitem> 14.603 - <listitem><para>The remainder of the URL is the local path to 14.604 + <listitem><para id="x_48e">The remainder of the URL is the local path to 14.605 the repository on the server.</para> 14.606 </listitem></orderedlist> 14.607 14.608 - <para>There's plenty of scope for confusion with the path 14.609 + <para id="x_48f">There's plenty of scope for confusion with the path 14.610 component of ssh URLs, as there is no standard way for tools 14.611 to interpret it. Some programs behave differently than others 14.612 when dealing with these paths. This isn't an ideal situation, 14.613 but it's unlikely to change. Please read the following 14.614 paragraphs carefully.</para> 14.615 14.616 - <para>Mercurial treats the path to a repository on the server as 14.617 + <para id="x_490">Mercurial treats the path to a repository on the server as 14.618 relative to the remote user's home directory. For example, if 14.619 user <literal>foo</literal> on the server has a home directory 14.620 of <filename class="directory">/home/foo</filename>, then an 14.621 @@ -562,13 +559,13 @@ 14.622 refers to the directory <filename 14.623 class="directory">/home/foo/bar</filename>.</para> 14.624 14.625 - <para>If you want to specify a path relative to another user's 14.626 + <para id="x_491">If you want to specify a path relative to another user's 14.627 home directory, you can use a path that starts with a tilde 14.628 character followed by the user's name (let's call them 14.629 <literal>otheruser</literal>), like this.</para> 14.630 <programlisting>ssh://server/~otheruser/hg/repo</programlisting> 14.631 14.632 - <para>And if you really want to specify an 14.633 + <para id="x_492">And if you really want to specify an 14.634 <emphasis>absolute</emphasis> path on the server, begin the 14.635 path component with two slashes, as in this example.</para> 14.636 <programlisting>ssh://server//absolute/path</programlisting> 14.637 @@ -577,7 +574,7 @@ 14.638 <sect2> 14.639 <title>Finding an ssh client for your system</title> 14.640 14.641 - <para>Almost every Unix-like system comes with OpenSSH 14.642 + <para id="x_493">Almost every Unix-like system comes with OpenSSH 14.643 preinstalled. If you're using such a system, run 14.644 <literal>which ssh</literal> to find out if the 14.645 <command>ssh</command> command is installed (it's usually in 14.646 @@ -585,17 +582,17 @@ 14.647 unlikely event that it isn't present, take a look at your 14.648 system documentation to figure out how to install it.</para> 14.649 14.650 - <para>On Windows, you'll first need to download a suitable ssh 14.651 + <para id="x_494">On Windows, you'll first need to download a suitable ssh 14.652 client. There are two alternatives.</para> 14.653 <itemizedlist> 14.654 - <listitem><para>Simon Tatham's excellent PuTTY package 14.655 + <listitem><para id="x_495">Simon Tatham's excellent PuTTY package 14.656 <citation>web:putty</citation> provides a complete suite 14.657 of ssh client commands.</para> 14.658 </listitem> 14.659 - <listitem><para>If you have a high tolerance for pain, you can 14.660 + <listitem><para id="x_496">If you have a high tolerance for pain, you can 14.661 use the Cygwin port of OpenSSH.</para> 14.662 </listitem></itemizedlist> 14.663 - <para>In either case, you'll need to edit your <filename 14.664 + <para id="x_497">In either case, you'll need to edit your <filename 14.665 role="special">hg.ini</filename> file to 14.666 tell Mercurial where to find the actual client command. For 14.667 example, if you're using PuTTY, you'll need to use the 14.668 @@ -605,7 +602,7 @@ 14.669 ssh = C:/path/to/plink.exe -ssh -i "C:/path/to/my/private/key"</programlisting> 14.670 14.671 <note> 14.672 - <para> The path to <command>plink</command> shouldn't contain 14.673 + <para id="x_498"> The path to <command>plink</command> shouldn't contain 14.674 any whitespace characters, or Mercurial may not be able to 14.675 run it correctly (so putting it in <filename 14.676 class="directory">C:\Program Files</filename> is probably 14.677 @@ -616,7 +613,7 @@ 14.678 <sect2> 14.679 <title>Generating a key pair</title> 14.680 14.681 - <para>To avoid the need to repetitively type a password every 14.682 + <para id="x_499">To avoid the need to repetitively type a password every 14.683 time you need to use your ssh client, I recommend generating a 14.684 key pair. On a Unix-like system, the 14.685 <command>ssh-keygen</command> command will do the trick. On 14.686 @@ -624,13 +621,13 @@ 14.687 <command>puttygen</command> command is what you'll 14.688 need.</para> 14.689 14.690 - <para>When you generate a key pair, it's usually 14.691 + <para id="x_49a">When you generate a key pair, it's usually 14.692 <emphasis>highly</emphasis> advisable to protect it with a 14.693 passphrase. (The only time that you might not want to do this 14.694 is when you're using the ssh protocol for automated tasks on a 14.695 secure network.)</para> 14.696 14.697 - <para>Simply generating a key pair isn't enough, however. 14.698 + <para id="x_49b">Simply generating a key pair isn't enough, however. 14.699 You'll need to add the public key to the set of authorised 14.700 keys for whatever user you're logging in remotely as. For 14.701 servers using OpenSSH (the vast majority), this will mean 14.702 @@ -639,7 +636,7 @@ 14.703 role="special" class="directory">.ssh</filename> 14.704 directory.</para> 14.705 14.706 - <para>On a Unix-like system, your public key will have a 14.707 + <para id="x_49c">On a Unix-like system, your public key will have a 14.708 <filename>.pub</filename> extension. If you're using 14.709 <command>puttygen</command> on Windows, you can save the 14.710 public key to a file of your choosing, or paste it from the 14.711 @@ -650,7 +647,7 @@ 14.712 <sect2> 14.713 <title>Using an authentication agent</title> 14.714 14.715 - <para>An authentication agent is a daemon that stores 14.716 + <para id="x_49d">An authentication agent is a daemon that stores 14.717 passphrases in memory (so it will forget passphrases if you 14.718 log out and log back in again). An ssh client will notice if 14.719 it's running, and query it for a passphrase. If there's no 14.720 @@ -659,14 +656,14 @@ 14.721 every time Mercurial tries to communicate with a server on 14.722 your behalf (e.g. whenever you pull or push changes).</para> 14.723 14.724 - <para>The downside of storing passphrases in an agent is that 14.725 + <para id="x_49e">The downside of storing passphrases in an agent is that 14.726 it's possible for a well-prepared attacker to recover the 14.727 plain text of your passphrases, in some cases even if your 14.728 system has been power-cycled. You should make your own 14.729 judgment as to whether this is an acceptable risk. It 14.730 certainly saves a lot of repeated typing.</para> 14.731 14.732 - <para>On Unix-like systems, the agent is called 14.733 + <para id="x_49f">On Unix-like systems, the agent is called 14.734 <command>ssh-agent</command>, and it's often run automatically 14.735 for you when you log in. You'll need to use the 14.736 <command>ssh-add</command> command to add passphrases to the 14.737 @@ -679,7 +676,7 @@ 14.738 <sect2> 14.739 <title>Configuring the server side properly</title> 14.740 14.741 - <para>Because ssh can be fiddly to set up if you're new to it, 14.742 + <para id="x_4a0">Because ssh can be fiddly to set up if you're new to it, 14.743 there's a variety of things that can go wrong. Add Mercurial 14.744 on top, and there's plenty more scope for head-scratching. 14.745 Most of these potential problems occur on the server side, not 14.746 @@ -687,7 +684,7 @@ 14.747 configuration working, it will usually continue to work 14.748 indefinitely.</para> 14.749 14.750 - <para>Before you try using Mercurial to talk to an ssh server, 14.751 + <para id="x_4a1">Before you try using Mercurial to talk to an ssh server, 14.752 it's best to make sure that you can use the normal 14.753 <command>ssh</command> or <command>putty</command> command to 14.754 talk to the server first. If you run into problems with using 14.755 @@ -698,29 +695,29 @@ 14.756 <emphasis>before</emphasis> you worry about whether there's a 14.757 problem with Mercurial.</para> 14.758 14.759 - <para>The first thing to be sure of on the server side is that 14.760 + <para id="x_4a2">The first thing to be sure of on the server side is that 14.761 you can actually log in from another machine at all. If you 14.762 can't use <command>ssh</command> or <command>putty</command> 14.763 to log in, the error message you get may give you a few hints 14.764 as to what's wrong. The most common problems are as 14.765 follows.</para> 14.766 <itemizedlist> 14.767 - <listitem><para>If you get a <quote>connection refused</quote> 14.768 + <listitem><para id="x_4a3">If you get a <quote>connection refused</quote> 14.769 error, either there isn't an SSH daemon running on the 14.770 server at all, or it's inaccessible due to firewall 14.771 configuration.</para> 14.772 </listitem> 14.773 - <listitem><para>If you get a <quote>no route to host</quote> 14.774 + <listitem><para id="x_4a4">If you get a <quote>no route to host</quote> 14.775 error, you either have an incorrect address for the server 14.776 or a seriously locked down firewall that won't admit its 14.777 existence at all.</para> 14.778 </listitem> 14.779 - <listitem><para>If you get a <quote>permission denied</quote> 14.780 + <listitem><para id="x_4a5">If you get a <quote>permission denied</quote> 14.781 error, you may have mistyped the username on the server, 14.782 or you could have mistyped your key's passphrase or the 14.783 remote user's password.</para> 14.784 </listitem></itemizedlist> 14.785 - <para>In summary, if you're having trouble talking to the 14.786 + <para id="x_4a6">In summary, if you're having trouble talking to the 14.787 server's ssh daemon, first make sure that one is running at 14.788 all. On many systems it will be installed, but disabled, by 14.789 default. Once you're done with this step, you should then 14.790 @@ -730,23 +727,23 @@ 14.791 for misconfiguration until you've checked these two 14.792 first.</para> 14.793 14.794 - <para>If you're using an authentication agent on the client side 14.795 + <para id="x_4a7">If you're using an authentication agent on the client side 14.796 to store passphrases for your keys, you ought to be able to 14.797 log into the server without being prompted for a passphrase or 14.798 a password. If you're prompted for a passphrase, there are a 14.799 few possible culprits.</para> 14.800 <itemizedlist> 14.801 - <listitem><para>You might have forgotten to use 14.802 + <listitem><para id="x_4a8">You might have forgotten to use 14.803 <command>ssh-add</command> or <command>pageant</command> 14.804 to store the passphrase.</para> 14.805 </listitem> 14.806 - <listitem><para>You might have stored the passphrase for the 14.807 + <listitem><para id="x_4a9">You might have stored the passphrase for the 14.808 wrong key.</para> 14.809 </listitem></itemizedlist> 14.810 - <para>If you're being prompted for the remote user's password, 14.811 + <para id="x_4aa">If you're being prompted for the remote user's password, 14.812 there are another few possible problems to check.</para> 14.813 <itemizedlist> 14.814 - <listitem><para>Either the user's home directory or their 14.815 + <listitem><para id="x_4ab">Either the user's home directory or their 14.816 <filename role="special" class="directory">.ssh</filename> 14.817 directory might have excessively liberal permissions. As 14.818 a result, the ssh daemon will not trust or read their 14.819 @@ -755,19 +752,19 @@ 14.820 role="special" class="directory">.ssh</filename> 14.821 directory will often cause this symptom.</para> 14.822 </listitem> 14.823 - <listitem><para>The user's <filename 14.824 + <listitem><para id="x_4ac">The user's <filename 14.825 role="special">authorized_keys</filename> file may have 14.826 a problem. If anyone other than the user owns or can write 14.827 to that file, the ssh daemon will not trust or read 14.828 it.</para> 14.829 </listitem></itemizedlist> 14.830 14.831 - <para>In the ideal world, you should be able to run the 14.832 + <para id="x_4ad">In the ideal world, you should be able to run the 14.833 following command successfully, and it should print exactly 14.834 one line of output, the current date and time.</para> 14.835 <programlisting>ssh myserver date</programlisting> 14.836 14.837 - <para>If, on your server, you have login scripts that print 14.838 + <para id="x_4ae">If, on your server, you have login scripts that print 14.839 banners or other junk even when running non-interactive 14.840 commands like this, you should fix them before you continue, 14.841 so that they only print output if they're run interactively. 14.842 @@ -781,43 +778,43 @@ 14.843 shell is to check the return code from the command 14.844 <literal>tty -s</literal>.)</para> 14.845 14.846 - <para>Once you've verified that plain old ssh is working with 14.847 + <para id="x_4af">Once you've verified that plain old ssh is working with 14.848 your server, the next step is to ensure that Mercurial runs on 14.849 the server. The following command should run 14.850 successfully:</para> 14.851 14.852 <programlisting>ssh myserver hg version</programlisting> 14.853 14.854 - <para>If you see an error message instead of normal <command 14.855 + <para id="x_4b0">If you see an error message instead of normal <command 14.856 role="hg-cmd">hg version</command> output, this is usually 14.857 because you haven't installed Mercurial to <filename 14.858 class="directory">/usr/bin</filename>. Don't worry if this 14.859 is the case; you don't need to do that. But you should check 14.860 for a few possible problems.</para> 14.861 <itemizedlist> 14.862 - <listitem><para>Is Mercurial really installed on the server at 14.863 + <listitem><para id="x_4b1">Is Mercurial really installed on the server at 14.864 all? I know this sounds trivial, but it's worth 14.865 checking!</para> 14.866 </listitem> 14.867 - <listitem><para>Maybe your shell's search path (usually set 14.868 + <listitem><para id="x_4b2">Maybe your shell's search path (usually set 14.869 via the <envar>PATH</envar> environment variable) is 14.870 simply misconfigured.</para> 14.871 </listitem> 14.872 - <listitem><para>Perhaps your <envar>PATH</envar> environment 14.873 + <listitem><para id="x_4b3">Perhaps your <envar>PATH</envar> environment 14.874 variable is only being set to point to the location of the 14.875 <command>hg</command> executable if the login session is 14.876 interactive. This can happen if you're setting the path 14.877 in the wrong shell login script. See your shell's 14.878 documentation for details.</para> 14.879 </listitem> 14.880 - <listitem><para>The <envar>PYTHONPATH</envar> environment 14.881 + <listitem><para id="x_4b4">The <envar>PYTHONPATH</envar> environment 14.882 variable may need to contain the path to the Mercurial 14.883 Python modules. It might not be set at all; it could be 14.884 incorrect; or it may be set only if the login is 14.885 interactive.</para> 14.886 </listitem></itemizedlist> 14.887 14.888 - <para>If you can run <command role="hg-cmd">hg version</command> 14.889 + <para id="x_4b5">If you can run <command role="hg-cmd">hg version</command> 14.890 over an ssh connection, well done! You've got the server and 14.891 client sorted out. You should now be able to use Mercurial to 14.892 access repositories hosted by that username on that server. 14.893 @@ -829,19 +826,19 @@ 14.894 <sect2> 14.895 <title>Using compression with ssh</title> 14.896 14.897 - <para>Mercurial does not compress data when it uses the ssh 14.898 + <para id="x_4b6">Mercurial does not compress data when it uses the ssh 14.899 protocol, because the ssh protocol can transparently compress 14.900 data. However, the default behaviour of ssh clients is 14.901 <emphasis>not</emphasis> to request compression.</para> 14.902 14.903 - <para>Over any network other than a fast LAN (even a wireless 14.904 + <para id="x_4b7">Over any network other than a fast LAN (even a wireless 14.905 network), using compression is likely to significantly speed 14.906 up Mercurial's network operations. For example, over a WAN, 14.907 someone measured compression as reducing the amount of time 14.908 required to clone a particularly large repository from 51 14.909 minutes to 17 minutes.</para> 14.910 14.911 - <para>Both <command>ssh</command> and <command>plink</command> 14.912 + <para id="x_4b8">Both <command>ssh</command> and <command>plink</command> 14.913 accept a <option role="cmd-opt-ssh">-C</option> option which 14.914 turns on compression. You can easily edit your <filename 14.915 role="special">~/.hgrc</filename> to enable compression for 14.916 @@ -849,7 +846,7 @@ 14.917 <programlisting>[ui] 14.918 ssh = ssh -C</programlisting> 14.919 14.920 - <para>If you use <command>ssh</command>, you can configure it to 14.921 + <para id="x_4b9">If you use <command>ssh</command>, you can configure it to 14.922 always use compression when talking to your server. To do 14.923 this, edit your <filename 14.924 role="special">.ssh/config</filename> file (which may not 14.925 @@ -857,7 +854,7 @@ 14.926 <programlisting>Host hg 14.927 Compression yes 14.928 HostName hg.example.com</programlisting> 14.929 - <para>This defines an alias, <literal>hg</literal>. When you 14.930 + <para id="x_4ba">This defines an alias, <literal>hg</literal>. When you 14.931 use it on the <command>ssh</command> command line or in a 14.932 Mercurial <literal>ssh</literal>-protocol URL, it will cause 14.933 <command>ssh</command> to connect to 14.934 @@ -867,20 +864,20 @@ 14.935 14.936 </sect2> 14.937 </sect1> 14.938 - <sect1 id="sec.collab.cgi"> 14.939 + <sect1 id="sec:collab:cgi"> 14.940 <title>Serving over HTTP using CGI</title> 14.941 14.942 - <para>Depending on how ambitious you are, configuring Mercurial's 14.943 + <para id="x_4bb">Depending on how ambitious you are, configuring Mercurial's 14.944 CGI interface can take anything from a few moments to several 14.945 hours.</para> 14.946 14.947 - <para>We'll begin with the simplest of examples, and work our way 14.948 + <para id="x_4bc">We'll begin with the simplest of examples, and work our way 14.949 towards a more complex configuration. Even for the most basic 14.950 case, you're almost certainly going to need to read and modify 14.951 your web server's configuration.</para> 14.952 14.953 <note> 14.954 - <para> Configuring a web server is a complex, fiddly, and 14.955 + <para id="x_4bd"> Configuring a web server is a complex, fiddly, and 14.956 highly system-dependent activity. I can't possibly give you 14.957 instructions that will cover anything like all of the cases 14.958 you will encounter. Please use your discretion and judgment in 14.959 @@ -892,25 +889,25 @@ 14.960 <sect2> 14.961 <title>Web server configuration checklist</title> 14.962 14.963 - <para>Before you continue, do take a few moments to check a few 14.964 + <para id="x_4be">Before you continue, do take a few moments to check a few 14.965 aspects of your system's setup.</para> 14.966 14.967 <orderedlist> 14.968 - <listitem><para>Do you have a web server installed at all? 14.969 + <listitem><para id="x_4bf">Do you have a web server installed at all? 14.970 Mac OS X ships with Apache, but many other systems may not 14.971 have a web server installed.</para> 14.972 </listitem> 14.973 - <listitem><para>If you have a web server installed, is it 14.974 + <listitem><para id="x_4c0">If you have a web server installed, is it 14.975 actually running? On most systems, even if one is 14.976 present, it will be disabled by default.</para> 14.977 </listitem> 14.978 - <listitem><para>Is your server configured to allow you to run 14.979 + <listitem><para id="x_4c1">Is your server configured to allow you to run 14.980 CGI programs in the directory where you plan to do so? 14.981 Most servers default to explicitly disabling the ability 14.982 to run CGI programs.</para> 14.983 </listitem></orderedlist> 14.984 14.985 - <para>If you don't have a web server installed, and don't have 14.986 + <para id="x_4c2">If you don't have a web server installed, and don't have 14.987 substantial experience configuring Apache, you should consider 14.988 using the <literal>lighttpd</literal> web server instead of 14.989 Apache. Apache has a well-deserved reputation for baroque and 14.990 @@ -925,7 +922,7 @@ 14.991 <sect2> 14.992 <title>Basic CGI configuration</title> 14.993 14.994 - <para>On Unix-like systems, it's common for users to have a 14.995 + <para id="x_4c3">On Unix-like systems, it's common for users to have a 14.996 subdirectory named something like <filename 14.997 class="directory">public_html</filename> in their home 14.998 directory, from which they can serve up web pages. A file 14.999 @@ -933,19 +930,19 @@ 14.1000 accessible at a URL of the form 14.1001 <literal>http://www.example.com/username/foo</literal>.</para> 14.1002 14.1003 - <para>To get started, find the <filename 14.1004 + <para id="x_4c4">To get started, find the <filename 14.1005 role="special">hgweb.cgi</filename> script that should be 14.1006 present in your Mercurial installation. If you can't quickly 14.1007 find a local copy on your system, simply download one from the 14.1008 master Mercurial repository at <ulink 14.1009 url="http://www.selenic.com/repo/hg/raw-file/tip/hgweb.cgi">http://www.selenic.com/repo/hg/raw-file/tip/hgweb.cgi</ulink>.</para> 14.1010 14.1011 - <para>You'll need to copy this script into your <filename 14.1012 + <para id="x_4c5">You'll need to copy this script into your <filename 14.1013 class="directory">public_html</filename> directory, and 14.1014 ensure that it's executable.</para> 14.1015 <programlisting>cp .../hgweb.cgi ~/public_html 14.1016 chmod 755 ~/public_html/hgweb.cgi</programlisting> 14.1017 - <para>The <literal>755</literal> argument to 14.1018 + <para id="x_4c6">The <literal>755</literal> argument to 14.1019 <command>chmod</command> is a little more general than just 14.1020 making the script executable: it ensures that the script is 14.1021 executable by anyone, and that <quote>group</quote> and 14.1022 @@ -958,11 +955,11 @@ 14.1023 must not be writable by others.</para> 14.1024 <programlisting>chmod 755 ~/public_html</programlisting> 14.1025 14.1026 - <sect3 id="sec.collab.wtf"> 14.1027 + <sect3 id="sec:collab:wtf"> 14.1028 <title>What could <emphasis>possibly</emphasis> go 14.1029 wrong?</title> 14.1030 14.1031 - <para>Once you've copied the CGI script into place, go into a 14.1032 + <para id="x_4c7">Once you've copied the CGI script into place, go into a 14.1033 web browser, and try to open the URL <ulink 14.1034 url="http://myhostname/ 14.1035 myuser/hgweb.cgi">http://myhostname/ 14.1036 @@ -976,7 +973,7 @@ 14.1037 fresh installation of Apache, and a user account that I 14.1038 created specially to perform this exercise.</para> 14.1039 14.1040 - <para>Your web server may have per-user directories disabled. 14.1041 + <para id="x_4c8">Your web server may have per-user directories disabled. 14.1042 If you're using Apache, search your config file for a 14.1043 <literal>UserDir</literal> directive. If there's none 14.1044 present, per-user directories will be disabled. If one 14.1045 @@ -987,7 +984,7 @@ 14.1046 directory, for example <filename 14.1047 class="directory">public_html</filename>.</para> 14.1048 14.1049 - <para>Your file access permissions may be too restrictive. 14.1050 + <para id="x_4c9">Your file access permissions may be too restrictive. 14.1051 The web server must be able to traverse your home directory 14.1052 and directories under your <filename 14.1053 class="directory">public_html</filename> directory, and 14.1054 @@ -997,34 +994,34 @@ 14.1055 find ~/public_html -type d -print0 | xargs -0r chmod 755 14.1056 find ~/public_html -type f -print0 | xargs -0r chmod 644</programlisting> 14.1057 14.1058 - <para>The other possibility with permissions is that you might 14.1059 + <para id="x_4ca">The other possibility with permissions is that you might 14.1060 get a completely empty window when you try to load the 14.1061 script. In this case, it's likely that your access 14.1062 permissions are <emphasis>too permissive</emphasis>. Apache's 14.1063 <literal>suexec</literal> subsystem won't execute a script 14.1064 that's group- or world-writable, for example.</para> 14.1065 14.1066 - <para>Your web server may be configured to disallow execution 14.1067 + <para id="x_4cb">Your web server may be configured to disallow execution 14.1068 of CGI programs in your per-user web directory. Here's 14.1069 Apache's default per-user configuration from my Fedora 14.1070 system.</para> 14.1071 14.1072 - <programlisting><![CDATA[&ch06-apache-config.lst;]]></programlisting> 14.1073 - 14.1074 - <para>If you find a similar-looking 14.1075 + &ch06-apache-config.lst; 14.1076 + 14.1077 + <para id="x_4cc">If you find a similar-looking 14.1078 <literal>Directory</literal> group in your Apache 14.1079 configuration, the directive to look at inside it is 14.1080 <literal>Options</literal>. Add <literal>ExecCGI</literal> 14.1081 to the end of this list if it's missing, and restart the web 14.1082 server.</para> 14.1083 14.1084 - <para>If you find that Apache serves you the text of the CGI 14.1085 + <para id="x_4cd">If you find that Apache serves you the text of the CGI 14.1086 script instead of executing it, you may need to either 14.1087 uncomment (if already present) or add a directive like 14.1088 this.</para> 14.1089 <programlisting>AddHandler cgi-script .cgi</programlisting> 14.1090 14.1091 - <para>The next possibility is that you might be served with a 14.1092 + <para id="x_4ce">The next possibility is that you might be served with a 14.1093 colourful Python backtrace claiming that it can't import a 14.1094 <literal>mercurial</literal>-related module. This is 14.1095 actually progress! The server is now capable of executing 14.1096 @@ -1038,7 +1035,7 @@ 14.1097 directions inside it to correctly set your 14.1098 <envar>PYTHONPATH</envar> environment variable.</para> 14.1099 14.1100 - <para>Finally, you are <emphasis>certain</emphasis> to by 14.1101 + <para id="x_4cf">Finally, you are <emphasis>certain</emphasis> to by 14.1102 served with another colourful Python backtrace: this one 14.1103 will complain that it can't find <filename 14.1104 class="directory">/path/to/repository</filename>. Edit 14.1105 @@ -1048,7 +1045,7 @@ 14.1106 with the complete path to the repository you want to serve 14.1107 up.</para> 14.1108 14.1109 - <para>At this point, when you try to reload the page, you 14.1110 + <para id="x_4d0">At this point, when you try to reload the page, you 14.1111 should be presented with a nice HTML view of your 14.1112 repository's history. Whew!</para> 14.1113 14.1114 @@ -1056,7 +1053,7 @@ 14.1115 <sect3> 14.1116 <title>Configuring lighttpd</title> 14.1117 14.1118 - <para>To be exhaustive in my experiments, I tried configuring 14.1119 + <para id="x_4d1">To be exhaustive in my experiments, I tried configuring 14.1120 the increasingly popular <literal>lighttpd</literal> web 14.1121 server to serve the same repository as I described with 14.1122 Apache above. I had already overcome all of the problems I 14.1123 @@ -1066,7 +1063,7 @@ 14.1124 role="special">hgweb.cgi</filename> script was properly 14.1125 edited.</para> 14.1126 14.1127 - <para>Once I had Apache running, getting 14.1128 + <para id="x_4d2">Once I had Apache running, getting 14.1129 <literal>lighttpd</literal> to serve the repository was a 14.1130 snap (in other words, even if you're trying to use 14.1131 <literal>lighttpd</literal>, you should read the Apache 14.1132 @@ -1078,7 +1075,7 @@ 14.1133 end of the config file, to configure these modules.</para> 14.1134 <programlisting>userdir.path = "public_html" 14.1135 cgi.assign = (".cgi" => "" )</programlisting> 14.1136 - <para>With this done, <literal>lighttpd</literal> ran 14.1137 + <para id="x_4d3">With this done, <literal>lighttpd</literal> ran 14.1138 immediately for me. If I had configured 14.1139 <literal>lighttpd</literal> before Apache, I'd almost 14.1140 certainly have run into many of the same system-level 14.1141 @@ -1093,7 +1090,7 @@ 14.1142 <sect2> 14.1143 <title>Sharing multiple repositories with one CGI script</title> 14.1144 14.1145 - <para>The <filename role="special">hgweb.cgi</filename> script 14.1146 + <para id="x_4d4">The <filename role="special">hgweb.cgi</filename> script 14.1147 only lets you publish a single repository, which is an 14.1148 annoying restriction. If you want to publish more than one 14.1149 without wracking yourself with multiple copies of the same 14.1150 @@ -1101,7 +1098,7 @@ 14.1151 the <filename role="special">hgwebdir.cgi</filename> 14.1152 script.</para> 14.1153 14.1154 - <para>The procedure to configure <filename 14.1155 + <para id="x_4d5">The procedure to configure <filename 14.1156 role="special">hgwebdir.cgi</filename> is only a little more 14.1157 involved than for <filename 14.1158 role="special">hgweb.cgi</filename>. First, you must obtain 14.1159 @@ -1109,21 +1106,23 @@ 14.1160 download a copy from the master Mercurial repository at <ulink 14.1161 url="http://www.selenic.com/repo/hg/raw-file/tip/hgwebdir.cgi">http://www.selenic.com/repo/hg/raw-file/tip/hgwebdir.cgi</ulink>.</para> 14.1162 14.1163 - <para>You'll need to copy this script into your <filename 14.1164 + <para id="x_4d6">You'll need to copy this script into your <filename 14.1165 class="directory">public_html</filename> directory, and 14.1166 ensure that it's executable.</para> 14.1167 + 14.1168 <programlisting>cp .../hgwebdir.cgi ~/public_html 14.1169 chmod 755 ~/public_html ~/public_html/hgwebdir.cgi</programlisting> 14.1170 - <para>With basic configuration out of the way, try to visit 14.1171 - <ulink url="http://myhostname/ 14.1172 + 14.1173 + <para id="x_4d7">With basic configuration out of the way, try to 14.1174 + visit <ulink url="http://myhostname/ 14.1175 myuser/hgwebdir.cgi">http://myhostname/ 14.1176 myuser/hgwebdir.cgi</ulink> in your browser. It should 14.1177 display an empty list of repositories. If you get a blank 14.1178 window or error message, try walking through the list of 14.1179 - potential problems in section <xref 14.1180 - linkend="sec.collab.wtf"/>.</para> 14.1181 - 14.1182 - <para>The <filename role="special">hgwebdir.cgi</filename> 14.1183 + potential problems in <xref 14.1184 + linkend="sec:collab:wtf"/>.</para> 14.1185 + 14.1186 + <para id="x_4d8">The <filename role="special">hgwebdir.cgi</filename> 14.1187 script relies on an external configuration file. By default, 14.1188 it searches for a file named <filename 14.1189 role="special">hgweb.config</filename> in the same directory 14.1190 @@ -1133,7 +1132,7 @@ 14.1191 <literal>ConfigParser</literal> 14.1192 <citation>web:configparser</citation> module.</para> 14.1193 14.1194 - <para>The easiest way to configure <filename 14.1195 + <para id="x_4d9">The easiest way to configure <filename 14.1196 role="special">hgwebdir.cgi</filename> is with a section 14.1197 named <literal>collections</literal>. This will automatically 14.1198 publish <emphasis>every</emphasis> repository under the 14.1199 @@ -1141,7 +1140,7 @@ 14.1200 this:</para> 14.1201 <programlisting>[collections] 14.1202 /my/root = /my/root</programlisting> 14.1203 - <para>Mercurial interprets this by looking at the directory name 14.1204 + <para id="x_4da">Mercurial interprets this by looking at the directory name 14.1205 on the <emphasis>right</emphasis> hand side of the 14.1206 <quote><literal>=</literal></quote> sign; finding repositories 14.1207 in that directory hierarchy; and using the text on the 14.1208 @@ -1150,7 +1149,7 @@ 14.1209 remaining component of a path after this stripping has 14.1210 occurred is called a <quote>virtual path</quote>.</para> 14.1211 14.1212 - <para>Given the example above, if we have a repository whose 14.1213 + <para id="x_4db">Given the example above, if we have a repository whose 14.1214 local path is <filename 14.1215 class="directory">/my/root/this/repo</filename>, the CGI 14.1216 script will strip the leading <filename 14.1217 @@ -1164,7 +1163,7 @@ 14.1218 myuser/hgwebdir.cgi/this/repo">http://myhostname/ 14.1219 myuser/hgwebdir.cgi/this/repo</ulink>.</para> 14.1220 14.1221 - <para>If we replace <filename 14.1222 + <para id="x_4dc">If we replace <filename 14.1223 class="directory">/my/root</filename> on the left hand side 14.1224 of this example with <filename 14.1225 class="directory">/my</filename>, then <filename 14.1226 @@ -1174,13 +1173,13 @@ 14.1227 class="directory">root/this/repo</filename> instead of 14.1228 <filename class="directory">this/repo</filename>.</para> 14.1229 14.1230 - <para>The <filename role="special">hgwebdir.cgi</filename> 14.1231 + <para id="x_4dd">The <filename role="special">hgwebdir.cgi</filename> 14.1232 script will recursively search each directory listed in the 14.1233 <literal>collections</literal> section of its configuration 14.1234 file, but it will <literal>not</literal> recurse into the 14.1235 repositories it finds.</para> 14.1236 14.1237 - <para>The <literal>collections</literal> mechanism makes it easy 14.1238 + <para id="x_4de">The <literal>collections</literal> mechanism makes it easy 14.1239 to publish many repositories in a <quote>fire and 14.1240 forget</quote> manner. You only need to set up the CGI 14.1241 script and configuration file one time. Afterwards, you can 14.1242 @@ -1193,7 +1192,7 @@ 14.1243 <title>Explicitly specifying which repositories to 14.1244 publish</title> 14.1245 14.1246 - <para>In addition to the <literal>collections</literal> 14.1247 + <para id="x_4df">In addition to the <literal>collections</literal> 14.1248 mechanism, the <filename 14.1249 role="special">hgwebdir.cgi</filename> script allows you 14.1250 to publish a specific list of repositories. To do so, 14.1251 @@ -1202,20 +1201,20 @@ 14.1252 <programlisting>[paths] 14.1253 repo1 = /my/path/to/some/repo 14.1254 repo2 = /some/path/to/another</programlisting> 14.1255 - <para>In this case, the virtual path (the component that will 14.1256 + <para id="x_4e0">In this case, the virtual path (the component that will 14.1257 appear in a URL) is on the left hand side of each 14.1258 definition, while the path to the repository is on the 14.1259 right. Notice that there does not need to be any 14.1260 relationship between the virtual path you choose and the 14.1261 location of a repository in your filesystem.</para> 14.1262 14.1263 - <para>If you wish, you can use both the 14.1264 + <para id="x_4e1">If you wish, you can use both the 14.1265 <literal>collections</literal> and <literal>paths</literal> 14.1266 mechanisms simultaneously in a single configuration 14.1267 file.</para> 14.1268 14.1269 <note> 14.1270 - <para> If multiple repositories have the same virtual path, 14.1271 + <para id="x_4e2"> If multiple repositories have the same virtual path, 14.1272 <filename role="special">hgwebdir.cgi</filename> will not 14.1273 report an error. Instead, it will behave 14.1274 unpredictably.</para> 14.1275 @@ -1226,12 +1225,12 @@ 14.1276 <sect2> 14.1277 <title>Downloading source archives</title> 14.1278 14.1279 - <para>Mercurial's web interface lets users download an archive 14.1280 + <para id="x_4e3">Mercurial's web interface lets users download an archive 14.1281 of any revision. This archive will contain a snapshot of the 14.1282 working directory as of that revision, but it will not contain 14.1283 a copy of the repository data.</para> 14.1284 14.1285 - <para>By default, this feature is not enabled. To enable it, 14.1286 + <para id="x_4e4">By default, this feature is not enabled. To enable it, 14.1287 you'll need to add an <envar 14.1288 role="rc-item-web">allow_archive</envar> item to the 14.1289 <literal role="rc-web">web</literal> section of your <filename 14.1290 @@ -1241,7 +1240,7 @@ 14.1291 <sect2> 14.1292 <title>Web configuration options</title> 14.1293 14.1294 - <para>Mercurial's web interfaces (the <command role="hg-cmd">hg 14.1295 + <para id="x_4e5">Mercurial's web interfaces (the <command role="hg-cmd">hg 14.1296 serve</command> command, and the <filename 14.1297 role="special">hgweb.cgi</filename> and <filename 14.1298 role="special">hgwebdir.cgi</filename> scripts) have a 14.1299 @@ -1249,7 +1248,7 @@ 14.1300 belong in a section named <literal 14.1301 role="rc-web">web</literal>.</para> 14.1302 <itemizedlist> 14.1303 - <listitem><para><envar 14.1304 + <listitem><para id="x_4e6"><envar 14.1305 role="rc-item-web">allow_archive</envar>: Determines 14.1306 which (if any) archive download mechanisms Mercurial 14.1307 supports. If you enable this feature, users of the web 14.1308 @@ -1258,30 +1257,30 @@ 14.1309 archive feature, this item must take the form of a 14.1310 sequence of words drawn from the list below.</para> 14.1311 <itemizedlist> 14.1312 - <listitem><para><literal>bz2</literal>: A 14.1313 + <listitem><para id="x_4e7"><literal>bz2</literal>: A 14.1314 <command>tar</command> archive, compressed using 14.1315 <literal>bzip2</literal> compression. This has the 14.1316 best compression ratio, but uses the most CPU time on 14.1317 the server.</para> 14.1318 </listitem> 14.1319 - <listitem><para><literal>gz</literal>: A 14.1320 + <listitem><para id="x_4e8"><literal>gz</literal>: A 14.1321 <command>tar</command> archive, compressed using 14.1322 <literal>gzip</literal> compression.</para> 14.1323 </listitem> 14.1324 - <listitem><para><literal>zip</literal>: A 14.1325 + <listitem><para id="x_4e9"><literal>zip</literal>: A 14.1326 <command>zip</command> archive, compressed using LZW 14.1327 compression. This format has the worst compression 14.1328 ratio, but is widely used in the Windows world.</para> 14.1329 </listitem> 14.1330 </itemizedlist> 14.1331 - <para> If you provide an empty list, or don't have an 14.1332 + <para id="x_4ea"> If you provide an empty list, or don't have an 14.1333 <envar role="rc-item-web">allow_archive</envar> entry at 14.1334 all, this feature will be disabled. Here is an example of 14.1335 how to enable all three supported formats.</para> 14.1336 <programlisting>[web] 14.1337 allow_archive = bz2 gz zip</programlisting> 14.1338 </listitem> 14.1339 - <listitem><para><envar role="rc-item-web">allowpull</envar>: 14.1340 + <listitem><para id="x_4eb"><envar role="rc-item-web">allowpull</envar>: 14.1341 Boolean. Determines whether the web interface allows 14.1342 remote users to <command role="hg-cmd">hg pull</command> 14.1343 and <command role="hg-cmd">hg clone</command> this 14.1344 @@ -1290,7 +1289,7 @@ 14.1345 <quote>human-oriented</quote> portion of the web interface 14.1346 is available.</para> 14.1347 </listitem> 14.1348 - <listitem><para><envar role="rc-item-web">contact</envar>: 14.1349 + <listitem><para id="x_4ec"><envar role="rc-item-web">contact</envar>: 14.1350 String. A free-form (but preferably brief) string 14.1351 identifying the person or group in charge of the 14.1352 repository. This often contains the name and email 14.1353 @@ -1301,38 +1300,39 @@ 14.1354 role="special">~/.hgrc</filename> if every repository 14.1355 has a single maintainer.</para> 14.1356 </listitem> 14.1357 - <listitem><para><envar role="rc-item-web">maxchanges</envar>: 14.1358 + <listitem><para id="x_4ed"><envar role="rc-item-web">maxchanges</envar>: 14.1359 Integer. The default maximum number of changesets to 14.1360 display in a single page of output.</para> 14.1361 </listitem> 14.1362 - <listitem><para><envar role="rc-item-web">maxfiles</envar>: 14.1363 + <listitem><para id="x_4ee"><envar role="rc-item-web">maxfiles</envar>: 14.1364 Integer. The default maximum number of modified files to 14.1365 display in a single page of output.</para> 14.1366 </listitem> 14.1367 - <listitem><para><envar role="rc-item-web">stripes</envar>: 14.1368 + <listitem><para id="x_4ef"><envar role="rc-item-web">stripes</envar>: 14.1369 Integer. If the web interface displays alternating 14.1370 <quote>stripes</quote> to make it easier to visually align 14.1371 rows when you are looking at a table, this number controls 14.1372 the number of rows in each stripe.</para> 14.1373 </listitem> 14.1374 - <listitem><para><envar role="rc-item-web">style</envar>: 14.1375 - Controls the template Mercurial uses to display the web 14.1376 - interface. Mercurial ships with two web templates, named 14.1377 + <listitem><para id="x_4f0"><envar 14.1378 + role="rc-item-web">style</envar>: Controls the template 14.1379 + Mercurial uses to display the web interface. Mercurial 14.1380 + ships with two web templates, named 14.1381 <literal>default</literal> and <literal>gitweb</literal> 14.1382 (the latter is much more visually attractive). You can 14.1383 - also specify a custom template of your own; see chapter 14.1384 - <xref linkend="chap.template"/> for details. 14.1385 - Here, you can see how to enable the 14.1386 - <literal>gitweb</literal> style.</para> 14.1387 + also specify a custom template of your own; see 14.1388 + <xref linkend="chap:template"/> for details. Here, you can 14.1389 + see how to enable the <literal>gitweb</literal> 14.1390 + style.</para> 14.1391 <programlisting>[web] 14.1392 style = gitweb</programlisting> 14.1393 </listitem> 14.1394 - <listitem><para><envar role="rc-item-web">templates</envar>: 14.1395 + <listitem><para id="x_4f1"><envar role="rc-item-web">templates</envar>: 14.1396 Path. The directory in which to search for template 14.1397 files. By default, Mercurial searches in the directory in 14.1398 which it was installed.</para> 14.1399 </listitem></itemizedlist> 14.1400 - <para>If you are using <filename 14.1401 + <para id="x_4f2">If you are using <filename 14.1402 role="special">hgwebdir.cgi</filename>, you can place a few 14.1403 configuration items in a <literal role="rc-web">web</literal> 14.1404 section of the <filename 14.1405 @@ -1345,17 +1345,17 @@ 14.1406 <sect3> 14.1407 <title>Options specific to an individual repository</title> 14.1408 14.1409 - <para>A few <literal role="rc-web">web</literal> configuration 14.1410 + <para id="x_4f3">A few <literal role="rc-web">web</literal> configuration 14.1411 items ought to be placed in a repository's local <filename 14.1412 role="special">.hg/hgrc</filename>, rather than a user's 14.1413 or global <filename role="special">~/.hgrc</filename>.</para> 14.1414 <itemizedlist> 14.1415 - <listitem><para><envar 14.1416 + <listitem><para id="x_4f4"><envar 14.1417 role="rc-item-web">description</envar>: String. A 14.1418 free-form (but preferably brief) string that describes 14.1419 the contents or purpose of the repository.</para> 14.1420 </listitem> 14.1421 - <listitem><para><envar role="rc-item-web">name</envar>: 14.1422 + <listitem><para id="x_4f5"><envar role="rc-item-web">name</envar>: 14.1423 String. The name to use for the repository in the web 14.1424 interface. This overrides the default name, which is 14.1425 the last component of the repository's path.</para> 14.1426 @@ -1366,13 +1366,13 @@ 14.1427 <title>Options specific to the <command role="hg-cmd">hg 14.1428 serve</command> command</title> 14.1429 14.1430 - <para>Some of the items in the <literal 14.1431 + <para id="x_4f6">Some of the items in the <literal 14.1432 role="rc-web">web</literal> section of a <filename 14.1433 role="special">~/.hgrc</filename> file are only for use 14.1434 with the <command role="hg-cmd">hg serve</command> 14.1435 command.</para> 14.1436 <itemizedlist> 14.1437 - <listitem><para><envar role="rc-item-web">accesslog</envar>: 14.1438 + <listitem><para id="x_4f7"><envar role="rc-item-web">accesslog</envar>: 14.1439 Path. The name of a file into which to write an access 14.1440 log. By default, the <command role="hg-cmd">hg 14.1441 serve</command> command writes this information to 14.1442 @@ -1380,22 +1380,22 @@ 14.1443 in the standard <quote>combined</quote> file format used 14.1444 by almost all web servers.</para> 14.1445 </listitem> 14.1446 - <listitem><para><envar role="rc-item-web">address</envar>: 14.1447 + <listitem><para id="x_4f8"><envar role="rc-item-web">address</envar>: 14.1448 String. The local address on which the server should 14.1449 listen for incoming connections. By default, the server 14.1450 listens on all addresses.</para> 14.1451 </listitem> 14.1452 - <listitem><para><envar role="rc-item-web">errorlog</envar>: 14.1453 + <listitem><para id="x_4f9"><envar role="rc-item-web">errorlog</envar>: 14.1454 Path. The name of a file into which to write an error 14.1455 log. By default, the <command role="hg-cmd">hg 14.1456 serve</command> command writes this information to 14.1457 standard error, not to a file.</para> 14.1458 </listitem> 14.1459 - <listitem><para><envar role="rc-item-web">ipv6</envar>: 14.1460 + <listitem><para id="x_4fa"><envar role="rc-item-web">ipv6</envar>: 14.1461 Boolean. Whether to use the IPv6 protocol. By default, 14.1462 IPv6 is not used.</para> 14.1463 </listitem> 14.1464 - <listitem><para><envar role="rc-item-web">port</envar>: 14.1465 + <listitem><para id="x_4fb"><envar role="rc-item-web">port</envar>: 14.1466 Integer. The TCP port number on which the server should 14.1467 listen. The default port number used is 8000.</para> 14.1468 </listitem></itemizedlist> 14.1469 @@ -1406,14 +1406,14 @@ 14.1470 role="special">~/.hgrc</filename> file to add <literal 14.1471 role="rc-web">web</literal> items to</title> 14.1472 14.1473 - <para>It is important to remember that a web server like 14.1474 + <para id="x_4fc">It is important to remember that a web server like 14.1475 Apache or <literal>lighttpd</literal> will run under a user 14.1476 ID that is different to yours. CGI scripts run by your 14.1477 server, such as <filename 14.1478 role="special">hgweb.cgi</filename>, will usually also run 14.1479 under that user ID.</para> 14.1480 14.1481 - <para>If you add <literal role="rc-web">web</literal> items to 14.1482 + <para id="x_4fd">If you add <literal role="rc-web">web</literal> items to 14.1483 your own personal <filename role="special">~/.hgrc</filename> file, CGI scripts won't read that 14.1484 <filename role="special">~/.hgrc</filename> file. Those 14.1485 settings will thus only affect the behaviour of the <command
15.1 --- a/en/ch06-filenames.xml Fri Mar 20 17:17:55 2009 +0800 15.2 +++ b/en/ch06-filenames.xml Mon Mar 30 16:23:33 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.names"> 15.7 +<chapter id="chap:names"> 15.8 <?dbhtml filename="file-names-and-pattern-matching.html"?> 15.9 <title>File names and pattern matching</title> 15.10 15.11 @@ -274,7 +274,7 @@ 15.12 <para id="x_569">XXX.</para> 15.13 15.14 </sect1> 15.15 - <sect1 id="sec.names.case"> 15.16 + <sect1 id="sec:names:case"> 15.17 <title>Case sensitivity</title> 15.18 15.19 <para id="x_56a">If you're working in a mixed development environment that
16.1 --- a/en/ch07-branch.xml Fri Mar 20 17:17:55 2009 +0800 16.2 +++ b/en/ch07-branch.xml Mon Mar 30 16:23:33 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.branch"> 16.7 +<chapter id="chap:branch"> 16.8 <?dbhtml filename="managing-releases-and-branchy-development.html"?> 16.9 <title>Managing releases and branchy development</title> 16.10
17.1 --- a/en/ch08-undo.xml Fri Mar 20 17:17:55 2009 +0800 17.2 +++ b/en/ch08-undo.xml Mon Mar 30 16:23:33 2009 +0800 17.3 @@ -1,10 +1,10 @@ 17.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 17.5 17.6 -<chapter id="chap.undo"> 17.7 +<chapter id="chap:undo"> 17.8 <?dbhtml filename="finding-and-fixing-mistakes.html"?> 17.9 <title>Finding and fixing mistakes</title> 17.10 17.11 - <para>To err might be human, but to really handle the consequences 17.12 + <para id="x_d2">To err might be human, but to really handle the consequences 17.13 well takes a top-notch revision control system. In this chapter, 17.14 we'll discuss some of the techniques you can use when you find 17.15 that a problem has crept into your project. Mercurial has some 17.16 @@ -17,7 +17,7 @@ 17.17 <sect2> 17.18 <title>The accidental commit</title> 17.19 17.20 - <para>I have the occasional but persistent problem of typing 17.21 + <para id="x_d3">I have the occasional but persistent problem of typing 17.22 rather more quickly than I can think, which sometimes results 17.23 in me committing a changeset that is either incomplete or 17.24 plain wrong. In my case, the usual kind of incomplete 17.25 @@ -27,33 +27,33 @@ 17.26 less annoying.</para> 17.27 17.28 </sect2> 17.29 - <sect2 id="sec.undo.rollback"> 17.30 + <sect2 id="sec:undo:rollback"> 17.31 <title>Rolling back a transaction</title> 17.32 17.33 - <para>In section <xref linkend="sec.concepts.txn"/>, I mentioned 17.34 - that Mercurial treats each modification of a repository as a 17.35 - <emphasis>transaction</emphasis>. Every time you commit a 17.36 - changeset or pull changes from another repository, Mercurial 17.37 - remembers what you did. You can undo, or <emphasis>roll 17.38 - back</emphasis>, exactly one of these actions using the 17.39 - <command role="hg-cmd">hg rollback</command> command. (See 17.40 - section <xref linkend="sec.undo.rollback-after-push"/> for an 17.41 - important caveat about the use of this command.)</para> 17.42 - 17.43 - <para>Here's a mistake that I often find myself making: 17.44 + <para id="x_d4">In <xref linkend="sec:concepts:txn"/>, I 17.45 + mentioned that Mercurial treats each modification of a 17.46 + repository as a <emphasis>transaction</emphasis>. Every time 17.47 + you commit a changeset or pull changes from another 17.48 + repository, Mercurial remembers what you did. You can undo, 17.49 + or <emphasis>roll back</emphasis>, exactly one of these 17.50 + actions using the <command role="hg-cmd">hg rollback</command> 17.51 + command. (See <xref linkend="sec:undo:rollback-after-push"/> 17.52 + for an important caveat about the use of this command.)</para> 17.53 + 17.54 + <para id="x_d5">Here's a mistake that I often find myself making: 17.55 committing a change in which I've created a new file, but 17.56 forgotten to <command role="hg-cmd">hg add</command> 17.57 it.</para> 17.58 17.59 &interaction.rollback.commit; 17.60 17.61 - <para>Looking at the output of <command role="hg-cmd">hg 17.62 + <para id="x_d6">Looking at the output of <command role="hg-cmd">hg 17.63 status</command> after the commit immediately confirms the 17.64 error.</para> 17.65 17.66 &interaction.rollback.status; 17.67 17.68 - <para>The commit captured the changes to the file 17.69 + <para id="x_d7">The commit captured the changes to the file 17.70 <filename>a</filename>, but not the new file 17.71 <filename>b</filename>. If I were to push this changeset to a 17.72 repository that I shared with a colleague, the chances are 17.73 @@ -62,14 +62,14 @@ 17.74 repository when they pulled my changes. I would thus become 17.75 the object of some indignation.</para> 17.76 17.77 - <para>However, luck is with me&emdash;I've caught my error 17.78 + <para id="x_d8">However, luck is with me&emdash;I've caught my error 17.79 before I pushed the changeset. I use the <command 17.80 role="hg-cmd">hg rollback</command> command, and Mercurial 17.81 makes that last changeset vanish.</para> 17.82 17.83 &interaction.rollback.rollback; 17.84 17.85 - <para>Notice that the changeset is no longer present in the 17.86 + <para id="x_d9">Notice that the changeset is no longer present in the 17.87 repository's history, and the working directory once again 17.88 thinks that the file <filename>a</filename> is modified. The 17.89 commit and rollback have left the working directory exactly as 17.90 @@ -84,14 +84,14 @@ 17.91 <sect2> 17.92 <title>The erroneous pull</title> 17.93 17.94 - <para>It's common practice with Mercurial to maintain separate 17.95 + <para id="x_da">It's common practice with Mercurial to maintain separate 17.96 development branches of a project in different repositories. 17.97 Your development team might have one shared repository for 17.98 your project's <quote>0.9</quote> release, and another, 17.99 containing different changes, for the <quote>1.0</quote> 17.100 release.</para> 17.101 17.102 - <para>Given this, you can imagine that the consequences could be 17.103 + <para id="x_db">Given this, you can imagine that the consequences could be 17.104 messy if you had a local <quote>0.9</quote> repository, and 17.105 accidentally pulled changes from the shared <quote>1.0</quote> 17.106 repository into it. At worst, you could be paying 17.107 @@ -103,7 +103,7 @@ 17.108 see it pull a suspiciously large number of changes into the 17.109 repository.</para> 17.110 17.111 - <para>The <command role="hg-cmd">hg rollback</command> command 17.112 + <para id="x_dc">The <command role="hg-cmd">hg rollback</command> command 17.113 will work nicely to expunge all of the changesets that you 17.114 just pulled. Mercurial groups all changes from one <command 17.115 role="hg-cmd">hg pull</command> into a single transaction, 17.116 @@ -111,10 +111,10 @@ 17.117 need to undo this mistake.</para> 17.118 17.119 </sect2> 17.120 - <sect2 id="sec.undo.rollback-after-push"> 17.121 + <sect2 id="sec:undo:rollback-after-push"> 17.122 <title>Rolling back is useless once you've pushed</title> 17.123 17.124 - <para>The value of the <command role="hg-cmd">hg 17.125 + <para id="x_dd">The value of the <command role="hg-cmd">hg 17.126 rollback</command> command drops to zero once you've pushed 17.127 your changes to another repository. Rolling back a change 17.128 makes it disappear entirely, but <emphasis>only</emphasis> in 17.129 @@ -123,7 +123,7 @@ 17.130 eliminates history, there's no way for the disappearance of a 17.131 change to propagate between repositories.</para> 17.132 17.133 - <para>If you've pushed a change to another 17.134 + <para id="x_de">If you've pushed a change to another 17.135 repository&emdash;particularly if it's a shared 17.136 repository&emdash;it has essentially <quote>escaped into the 17.137 wild,</quote> and you'll have to recover from your mistake 17.138 @@ -132,7 +132,7 @@ 17.139 you pushed to, is that the changeset will reappear in your 17.140 repository.</para> 17.141 17.142 - <para>(If you absolutely know for sure that the change you want 17.143 + <para id="x_df">(If you absolutely know for sure that the change you want 17.144 to roll back is the most recent change in the repository that 17.145 you pushed to, <emphasis>and</emphasis> you know that nobody 17.146 else could have pulled it from that repository, you can roll 17.147 @@ -146,7 +146,7 @@ 17.148 <sect2> 17.149 <title>You can only roll back once</title> 17.150 17.151 - <para>Mercurial stores exactly one transaction in its 17.152 + <para id="x_e0">Mercurial stores exactly one transaction in its 17.153 transaction log; that transaction is the most recent one that 17.154 occurred in the repository. This means that you can only roll 17.155 back one transaction. If you expect to be able to roll back 17.156 @@ -155,7 +155,7 @@ 17.157 17.158 &interaction.rollback.twice; 17.159 17.160 - <para>Once you've rolled back one transaction in a repository, 17.161 + <para id="x_e1">Once you've rolled back one transaction in a repository, 17.162 you can't roll back again in that repository until you perform 17.163 another commit or pull.</para> 17.164 17.165 @@ -164,7 +164,7 @@ 17.166 <sect1> 17.167 <title>Reverting the mistaken change</title> 17.168 17.169 - <para>If you make a modification to a file, and decide that you 17.170 + <para id="x_e2">If you make a modification to a file, and decide that you 17.171 really didn't want to change the file at all, and you haven't 17.172 yet committed your changes, the <command role="hg-cmd">hg 17.173 revert</command> command is the one you'll need. It looks at 17.174 @@ -173,57 +173,57 @@ 17.175 changeset. (That's a long-winded way of saying that, in the 17.176 normal case, it undoes your modifications.)</para> 17.177 17.178 - <para>Let's illustrate how the <command role="hg-cmd">hg 17.179 + <para id="x_e3">Let's illustrate how the <command role="hg-cmd">hg 17.180 revert</command> command works with yet another small example. 17.181 We'll begin by modifying a file that Mercurial is already 17.182 tracking.</para> 17.183 17.184 &interaction.daily.revert.modify; 17.185 17.186 - <para>If we don't 17.187 + <para id="x_e4">If we don't 17.188 want that change, we can simply <command role="hg-cmd">hg 17.189 revert</command> the file.</para> 17.190 17.191 &interaction.daily.revert.unmodify; 17.192 17.193 - <para>The <command role="hg-cmd">hg revert</command> command 17.194 + <para id="x_e5">The <command role="hg-cmd">hg revert</command> command 17.195 provides us with an extra degree of safety by saving our 17.196 modified file with a <filename>.orig</filename> 17.197 extension.</para> 17.198 17.199 &interaction.daily.revert.status; 17.200 17.201 - <para>Here is a summary of the cases that the <command 17.202 + <para id="x_e6">Here is a summary of the cases that the <command 17.203 role="hg-cmd">hg revert</command> command can deal with. We 17.204 will describe each of these in more detail in the section that 17.205 follows.</para> 17.206 <itemizedlist> 17.207 - <listitem><para>If you modify a file, it will restore the file 17.208 + <listitem><para id="x_e7">If you modify a file, it will restore the file 17.209 to its unmodified state.</para> 17.210 </listitem> 17.211 - <listitem><para>If you <command role="hg-cmd">hg add</command> a 17.212 + <listitem><para id="x_e8">If you <command role="hg-cmd">hg add</command> a 17.213 file, it will undo the <quote>added</quote> state of the 17.214 file, but leave the file itself untouched.</para> 17.215 </listitem> 17.216 - <listitem><para>If you delete a file without telling Mercurial, 17.217 + <listitem><para id="x_e9">If you delete a file without telling Mercurial, 17.218 it will restore the file to its unmodified contents.</para> 17.219 </listitem> 17.220 - <listitem><para>If you use the <command role="hg-cmd">hg 17.221 + <listitem><para id="x_ea">If you use the <command role="hg-cmd">hg 17.222 remove</command> command to remove a file, it will undo 17.223 the <quote>removed</quote> state of the file, and restore 17.224 the file to its unmodified contents.</para> 17.225 </listitem></itemizedlist> 17.226 17.227 - <sect2 id="sec.undo.mgmt"> 17.228 + <sect2 id="sec:undo:mgmt"> 17.229 <title>File management errors</title> 17.230 17.231 - <para>The <command role="hg-cmd">hg revert</command> command is 17.232 + <para id="x_eb">The <command role="hg-cmd">hg revert</command> command is 17.233 useful for more than just modified files. It lets you reverse 17.234 the results of all of Mercurial's file management 17.235 commands&emdash;<command role="hg-cmd">hg add</command>, 17.236 <command role="hg-cmd">hg remove</command>, and so on.</para> 17.237 17.238 - <para>If you <command role="hg-cmd">hg add</command> a file, 17.239 + <para id="x_ec">If you <command role="hg-cmd">hg add</command> a file, 17.240 then decide that in fact you don't want Mercurial to track it, 17.241 use <command role="hg-cmd">hg revert</command> to undo the 17.242 add. Don't worry; Mercurial will not modify the file in any 17.243 @@ -231,7 +231,7 @@ 17.244 17.245 &interaction.daily.revert.add; 17.246 17.247 - <para>Similarly, if you ask Mercurial to <command 17.248 + <para id="x_ed">Similarly, if you ask Mercurial to <command 17.249 role="hg-cmd">hg remove</command> a file, you can use 17.250 <command role="hg-cmd">hg revert</command> to restore it to 17.251 the contents it had as of the parent of the working directory. 17.252 @@ -242,7 +242,7 @@ 17.253 17.254 &interaction.daily.revert.missing; 17.255 17.256 - <para>If you revert a <command role="hg-cmd">hg copy</command>, 17.257 + <para id="x_ee">If you revert a <command role="hg-cmd">hg copy</command>, 17.258 the copied-to file remains in your working directory 17.259 afterwards, untracked. Since a copy doesn't affect the 17.260 copied-from file in any way, Mercurial doesn't do anything 17.261 @@ -253,7 +253,7 @@ 17.262 <sect3> 17.263 <title>A slightly special case: reverting a rename</title> 17.264 17.265 - <para>If you <command role="hg-cmd">hg rename</command> a 17.266 + <para id="x_ef">If you <command role="hg-cmd">hg rename</command> a 17.267 file, there is one small detail that you should remember. 17.268 When you <command role="hg-cmd">hg revert</command> a 17.269 rename, it's not enough to provide the name of the 17.270 @@ -261,7 +261,7 @@ 17.271 17.272 &interaction.daily.revert.rename; 17.273 17.274 - <para>As you can see from the output of <command 17.275 + <para id="x_f0">As you can see from the output of <command 17.276 role="hg-cmd">hg status</command>, the renamed-to file is 17.277 no longer identified as added, but the 17.278 renamed-<emphasis>from</emphasis> file is still removed! 17.279 @@ -270,22 +270,22 @@ 17.280 17.281 &interaction.daily.revert.rename-orig; 17.282 17.283 - <para>So remember, to revert a <command role="hg-cmd">hg 17.284 + <para id="x_f1">So remember, to revert a <command role="hg-cmd">hg 17.285 rename</command>, you must provide 17.286 <emphasis>both</emphasis> the source and destination 17.287 names.</para> 17.288 17.289 - <para>% TODO: the output doesn't look like it will be 17.290 + <para id="x_f2">% TODO: the output doesn't look like it will be 17.291 removed!</para> 17.292 17.293 - <para>(By the way, if you rename a file, then modify the 17.294 + <para id="x_f3">(By the way, if you rename a file, then modify the 17.295 renamed-to file, then revert both components of the rename, 17.296 when Mercurial restores the file that was removed as part of 17.297 the rename, it will be unmodified. If you need the 17.298 modifications in the renamed-to file to show up in the 17.299 renamed-from file, don't forget to copy them over.)</para> 17.300 17.301 - <para>These fiddly aspects of reverting a rename arguably 17.302 + <para id="x_f4">These fiddly aspects of reverting a rename arguably 17.303 constitute a small bug in Mercurial.</para> 17.304 17.305 </sect3> 17.306 @@ -294,24 +294,24 @@ 17.307 <sect1> 17.308 <title>Dealing with committed changes</title> 17.309 17.310 - <para>Consider a case where you have committed a change $a$, and 17.311 + <para id="x_f5">Consider a case where you have committed a change $a$, and 17.312 another change $b$ on top of it; you then realise that change 17.313 $a$ was incorrect. Mercurial lets you <quote>back out</quote> 17.314 an entire changeset automatically, and building blocks that let 17.315 you reverse part of a changeset by hand.</para> 17.316 17.317 - <para>Before you read this section, here's something to keep in 17.318 - mind: the <command role="hg-cmd">hg backout</command> command 17.319 - undoes changes by <emphasis>adding</emphasis> history, not by 17.320 - modifying or erasing it. It's the right tool to use if you're 17.321 - fixing bugs, but not if you're trying to undo some change that 17.322 - has catastrophic consequences. To deal with those, see section 17.323 - <xref linkend="sec.undo.aaaiiieee"/>.</para> 17.324 + <para id="x_f6">Before you read this section, here's something to 17.325 + keep in mind: the <command role="hg-cmd">hg backout</command> 17.326 + command undoes changes by <emphasis>adding</emphasis> history, 17.327 + not by modifying or erasing it. It's the right tool to use if 17.328 + you're fixing bugs, but not if you're trying to undo some change 17.329 + that has catastrophic consequences. To deal with those, see 17.330 + <xref linkend="sec:undo:aaaiiieee"/>.</para> 17.331 17.332 <sect2> 17.333 <title>Backing out a changeset</title> 17.334 17.335 - <para>The <command role="hg-cmd">hg backout</command> command 17.336 + <para id="x_f7">The <command role="hg-cmd">hg backout</command> command 17.337 lets you <quote>undo</quote> the effects of an entire 17.338 changeset in an automated fashion. Because Mercurial's 17.339 history is immutable, this command <emphasis>does 17.340 @@ -320,14 +320,14 @@ 17.341 <emphasis>reverses</emphasis> the effect of the to-be-undone 17.342 changeset.</para> 17.343 17.344 - <para>The operation of the <command role="hg-cmd">hg 17.345 + <para id="x_f8">The operation of the <command role="hg-cmd">hg 17.346 backout</command> command is a little intricate, so let's 17.347 illustrate it with some examples. First, we'll create a 17.348 repository with some simple changes.</para> 17.349 17.350 &interaction.backout.init; 17.351 17.352 - <para>The <command role="hg-cmd">hg backout</command> command 17.353 + <para id="x_f9">The <command role="hg-cmd">hg backout</command> command 17.354 takes a single changeset ID as its argument; this is the 17.355 changeset to back out. Normally, <command role="hg-cmd">hg 17.356 backout</command> will drop you into a text editor to write 17.357 @@ -340,12 +340,12 @@ 17.358 <sect2> 17.359 <title>Backing out the tip changeset</title> 17.360 17.361 - <para>We're going to start by backing out the last changeset we 17.362 + <para id="x_fa">We're going to start by backing out the last changeset we 17.363 committed.</para> 17.364 17.365 &interaction.backout.simple; 17.366 17.367 - <para>You can see that the second line from 17.368 + <para id="x_fb">You can see that the second line from 17.369 <filename>myfile</filename> is no longer present. Taking a 17.370 look at the output of <command role="hg-cmd">hg log</command> 17.371 gives us an idea of what the <command role="hg-cmd">hg 17.372 @@ -353,51 +353,45 @@ 17.373 &interaction.backout.simple.log; Notice that the new changeset 17.374 that <command role="hg-cmd">hg backout</command> has created 17.375 is a child of the changeset we backed out. It's easier to see 17.376 - this in figure <xref 17.377 - endterm="fig.undo.backout.caption" linkend="fig.undo.backout"/>, 17.378 - which presents a graphical 17.379 - view of the change history. As you can see, the history is 17.380 - nice and linear.</para> 17.381 - 17.382 - <informalfigure id="fig.undo.backout"> 17.383 - <mediaobject> 17.384 - <imageobject><imagedata fileref="images/undo-simple.png"/> 17.385 - </imageobject> 17.386 - <textobject><phrase>XXX add text</phrase></textobject> 17.387 - <caption><para id="fig.undo.backout.caption">Backing out 17.388 - a change using the 17.389 - <command role="hg-cmd">hg backout</command> 17.390 - command</para></caption> 17.391 - </mediaobject> 17.392 - </informalfigure> 17.393 + this in <xref linkend="fig:undo:backout"/>, which presents a 17.394 + graphical view of the change history. As you can see, the 17.395 + history is nice and linear.</para> 17.396 + 17.397 + <figure id="fig:undo:backout"> 17.398 + <title>Backing out a change using the <command 17.399 + role="hg-cmd">hg backout</command> command</title> 17.400 + <mediaobject> 17.401 + <imageobject><imagedata fileref="figs/undo-simple.png"/></imageobject> 17.402 + <textobject><phrase>XXX add text</phrase></textobject> 17.403 + </mediaobject> 17.404 + </figure> 17.405 17.406 </sect2> 17.407 <sect2> 17.408 <title>Backing out a non-tip change</title> 17.409 17.410 - <para>If you want to back out a change other than the last one 17.411 + <para id="x_fd">If you want to back out a change other than the last one 17.412 you committed, pass the <option 17.413 role="hg-opt-backout">--merge</option> option to the 17.414 <command role="hg-cmd">hg backout</command> command.</para> 17.415 17.416 &interaction.backout.non-tip.clone; 17.417 17.418 - <para>This makes backing out any changeset a 17.419 + <para id="x_fe">This makes backing out any changeset a 17.420 <quote>one-shot</quote> operation that's usually simple and 17.421 fast.</para> 17.422 17.423 &interaction.backout.non-tip.backout; 17.424 17.425 - <para>If you take a look at the contents of 17.426 + <para id="x_ff">If you take a look at the contents of 17.427 <filename>myfile</filename> after the backout finishes, you'll 17.428 see that the first and third changes are present, but not the 17.429 second.</para> 17.430 17.431 &interaction.backout.non-tip.cat; 17.432 17.433 - <para>As the graphical history in figure <xref 17.434 - endterm="fig.undo.backout-non-tip.caption" 17.435 - linkend="fig.undo.backout-non-tip"/> illustrates, Mercurial 17.436 + <para id="x_100">As the graphical history in <xref 17.437 + linkend="fig:undo:backout-non-tip"/> illustrates, Mercurial 17.438 actually commits <emphasis>two</emphasis> changes in this kind 17.439 of situation (the box-shaped nodes are the ones that Mercurial 17.440 commits automatically). Before Mercurial begins the backout 17.441 @@ -407,21 +401,19 @@ 17.442 the previous parent of the working directory, and commits the 17.443 result of the merge.</para> 17.444 17.445 - <para>% TODO: to me it looks like mercurial doesn't commit the 17.446 + <para id="x_101">% TODO: to me it looks like mercurial doesn't commit the 17.447 second merge automatically!</para> 17.448 17.449 - <informalfigure id="fig.undo.backout-non-tip"> 17.450 - <mediaobject> 17.451 - <imageobject><imagedata fileref="images/undo-non-tip.png"/> 17.452 - </imageobject> 17.453 - <textobject><phrase>XXX add text</phrase></textobject> 17.454 - <caption><para id="fig.undo.backout-non-tip.caption">Automated 17.455 - backout of a non-tip change using the 17.456 - <command role="hg-cmd">hg backout</command> command</para></caption> 17.457 - </mediaobject> 17.458 - </informalfigure> 17.459 - 17.460 - <para>The result is that you end up <quote>back where you 17.461 + <figure id="fig:undo:backout-non-tip"> 17.462 + <title>Automated backout of a non-tip change using the 17.463 + <command role="hg-cmd">hg backout</command> command</title> 17.464 + <mediaobject> 17.465 + <imageobject><imagedata fileref="figs/undo-non-tip.png"/></imageobject> 17.466 + <textobject><phrase>XXX add text</phrase></textobject> 17.467 + </mediaobject> 17.468 + </figure> 17.469 + 17.470 + <para id="x_103">The result is that you end up <quote>back where you 17.471 were</quote>, only with some extra history that undoes the 17.472 effect of the changeset you wanted to back out.</para> 17.473 17.474 @@ -429,7 +421,7 @@ 17.475 <title>Always use the <option 17.476 role="hg-opt-backout">--merge</option> option</title> 17.477 17.478 - <para>In fact, since the <option 17.479 + <para id="x_104">In fact, since the <option 17.480 role="hg-opt-backout">--merge</option> option will do the 17.481 <quote>right thing</quote> whether or not the changeset 17.482 you're backing out is the tip (i.e. it won't try to merge if 17.483 @@ -442,7 +434,7 @@ 17.484 <sect2> 17.485 <title>Gaining more control of the backout process</title> 17.486 17.487 - <para>While I've recommended that you always use the <option 17.488 + <para id="x_105">While I've recommended that you always use the <option 17.489 role="hg-opt-backout">--merge</option> option when backing 17.490 out a change, the <command role="hg-cmd">hg backout</command> 17.491 command lets you decide how to merge a backout changeset. 17.492 @@ -455,13 +447,13 @@ 17.493 17.494 &interaction.backout.manual.clone; 17.495 17.496 - <para>As with our 17.497 + <para id="x_106">As with our 17.498 earlier example, We'll commit a third changeset, then back out 17.499 its parent, and see what happens.</para> 17.500 17.501 &interaction.backout.manual.backout; 17.502 17.503 - <para>Our new changeset is again a descendant of the changeset 17.504 + <para id="x_107">Our new changeset is again a descendant of the changeset 17.505 we backout out; it's thus a new head, <emphasis>not</emphasis> 17.506 a descendant of the changeset that was the tip. The <command 17.507 role="hg-cmd">hg backout</command> command was quite 17.508 @@ -469,38 +461,35 @@ 17.509 17.510 &interaction.backout.manual.log; 17.511 17.512 - <para>Again, it's easier to see what has happened by looking at 17.513 - a graph of the revision history, in figure <xref 17.514 - endterm="fig.undo.backout-manual.caption" 17.515 - linkend="fig.undo.backout-manual"/>. This makes it clear 17.516 + <para id="x_108">Again, it's easier to see what has happened by looking at 17.517 + a graph of the revision history, in <xref 17.518 + linkend="fig:undo:backout-manual"/>. This makes it clear 17.519 that when we use <command role="hg-cmd">hg backout</command> 17.520 to back out a change other than the tip, Mercurial adds a new 17.521 head to the repository (the change it committed is 17.522 box-shaped).</para> 17.523 17.524 - <informalfigure id="fig.undo.backout-manual"> 17.525 - <mediaobject> 17.526 - <imageobject><imagedata fileref="images/undo-manual.png"/> 17.527 - </imageobject> 17.528 - <textobject><phrase>XXX add text</phrase></textobject> 17.529 - <caption><para id="fig.undo.backout-manual.caption">Backing out a 17.530 - change using the <command role="hg-cmd">hg backout</command> 17.531 - command</para></caption> 17.532 - </mediaobject> 17.533 - </informalfigure> 17.534 - 17.535 - <para>After the <command role="hg-cmd">hg backout</command> 17.536 + <figure id="fig:undo:backout-manual"> 17.537 + <title>Backing out a change using the <command 17.538 + role="hg-cmd">hg backout</command> command</title> 17.539 + <mediaobject> 17.540 + <imageobject><imagedata fileref="figs/undo-manual.png"/></imageobject> 17.541 + <textobject><phrase>XXX add text</phrase></textobject> 17.542 + </mediaobject> 17.543 + </figure> 17.544 + 17.545 + <para id="x_10a">After the <command role="hg-cmd">hg backout</command> 17.546 command has completed, it leaves the new 17.547 <quote>backout</quote> changeset as the parent of the working 17.548 directory.</para> 17.549 17.550 &interaction.backout.manual.parents; 17.551 17.552 - <para>Now we have two isolated sets of changes.</para> 17.553 + <para id="x_10b">Now we have two isolated sets of changes.</para> 17.554 17.555 &interaction.backout.manual.heads; 17.556 17.557 - <para>Let's think about what we expect to see as the contents of 17.558 + <para id="x_10c">Let's think about what we expect to see as the contents of 17.559 <filename>myfile</filename> now. The first change should be 17.560 present, because we've never backed it out. The second change 17.561 should be missing, as that's the change we backed out. Since 17.562 @@ -510,68 +499,65 @@ 17.563 17.564 &interaction.backout.manual.cat; 17.565 17.566 - <para>To get the third change back into the file, we just do a 17.567 + <para id="x_10d">To get the third change back into the file, we just do a 17.568 normal merge of our two heads.</para> 17.569 17.570 &interaction.backout.manual.merge; 17.571 17.572 - <para>Afterwards, the graphical history of our repository looks 17.573 - like figure 17.574 - <xref endterm="fig.undo.backout-manual-merge.caption" 17.575 - linkend="fig.undo.backout-manual-merge"/>.</para> 17.576 - 17.577 - <informalfigure id="fig.undo.backout-manual-merge"> 17.578 - <mediaobject> 17.579 - <imageobject><imagedata fileref="images/undo-manual-merge.png"/> 17.580 - </imageobject> 17.581 - <textobject><phrase>XXX add text</phrase></textobject> 17.582 - <caption><para id="fig.undo.backout-manual-merge.caption">Manually 17.583 - merging a backout change</para></caption> 17.584 - </mediaobject> 17.585 - </informalfigure> 17.586 + <para id="x_10e">Afterwards, the graphical history of our 17.587 + repository looks like 17.588 + <xref linkend="fig:undo:backout-manual-merge"/>.</para> 17.589 + 17.590 + <figure id="fig:undo:backout-manual-merge"> 17.591 + <title>Manually merging a backout change</title> 17.592 + <mediaobject> 17.593 + <imageobject><imagedata fileref="figs/undo-manual-merge.png"/></imageobject> 17.594 + <textobject><phrase>XXX add text</phrase></textobject> 17.595 + </mediaobject> 17.596 + </figure> 17.597 17.598 </sect2> 17.599 <sect2> 17.600 <title>Why <command role="hg-cmd">hg backout</command> works as 17.601 it does</title> 17.602 17.603 - <para>Here's a brief description of how the <command 17.604 + <para id="x_110">Here's a brief description of how the <command 17.605 role="hg-cmd">hg backout</command> command works.</para> 17.606 <orderedlist> 17.607 - <listitem><para>It ensures that the working directory is 17.608 + <listitem><para id="x_111">It ensures that the working directory is 17.609 <quote>clean</quote>, i.e. that the output of <command 17.610 role="hg-cmd">hg status</command> would be empty.</para> 17.611 </listitem> 17.612 - <listitem><para>It remembers the current parent of the working 17.613 + <listitem><para id="x_112">It remembers the current parent of the working 17.614 directory. Let's call this changeset 17.615 <literal>orig</literal></para> 17.616 </listitem> 17.617 - <listitem><para>It does the equivalent of a <command 17.618 + <listitem><para id="x_113">It does the equivalent of a <command 17.619 role="hg-cmd">hg update</command> to sync the working 17.620 directory to the changeset you want to back out. Let's 17.621 call this changeset <literal>backout</literal></para> 17.622 </listitem> 17.623 - <listitem><para>It finds the parent of that changeset. Let's 17.624 + <listitem><para id="x_114">It finds the parent of that changeset. Let's 17.625 call that changeset <literal>parent</literal>.</para> 17.626 </listitem> 17.627 - <listitem><para>For each file that the 17.628 + <listitem><para id="x_115">For each file that the 17.629 <literal>backout</literal> changeset affected, it does the 17.630 equivalent of a <command role="hg-cmd">hg revert -r 17.631 parent</command> on that file, to restore it to the 17.632 contents it had before that changeset was 17.633 committed.</para> 17.634 </listitem> 17.635 - <listitem><para>It commits the result as a new changeset. 17.636 + <listitem><para id="x_116">It commits the result as a new changeset. 17.637 This changeset has <literal>backout</literal> as its 17.638 parent.</para> 17.639 </listitem> 17.640 - <listitem><para>If you specify <option 17.641 + <listitem><para id="x_117">If you specify <option 17.642 role="hg-opt-backout">--merge</option> on the command 17.643 line, it merges with <literal>orig</literal>, and commits 17.644 the result of the merge.</para> 17.645 </listitem></orderedlist> 17.646 17.647 - <para>An alternative way to implement the <command 17.648 + <para id="x_118">An alternative way to implement the <command 17.649 role="hg-cmd">hg backout</command> command would be to 17.650 <command role="hg-cmd">hg export</command> the 17.651 to-be-backed-out changeset as a diff, then use the <option 17.652 @@ -581,21 +567,21 @@ 17.653 sounds much simpler, but it would not work nearly as 17.654 well.</para> 17.655 17.656 - <para>The reason that <command role="hg-cmd">hg 17.657 + <para id="x_119">The reason that <command role="hg-cmd">hg 17.658 backout</command> does an update, a commit, a merge, and 17.659 another commit is to give the merge machinery the best chance 17.660 to do a good job when dealing with all the changes 17.661 <emphasis>between</emphasis> the change you're backing out and 17.662 the current tip.</para> 17.663 17.664 - <para>If you're backing out a changeset that's 100 revisions 17.665 + <para id="x_11a">If you're backing out a changeset that's 100 revisions 17.666 back in your project's history, the chances that the 17.667 <command>patch</command> command will be able to apply a 17.668 reverse diff cleanly are not good, because intervening changes 17.669 are likely to have <quote>broken the context</quote> that 17.670 <command>patch</command> uses to determine whether it can 17.671 apply a patch (if this sounds like gibberish, see <xref 17.672 - linkend="sec.mq.patch"/> for a 17.673 + linkend="sec:mq:patch"/> for a 17.674 discussion of the <command>patch</command> command). Also, 17.675 Mercurial's merge machinery will handle files and directories 17.676 being renamed, permission changes, and modifications to binary 17.677 @@ -604,16 +590,16 @@ 17.678 17.679 </sect2> 17.680 </sect1> 17.681 - <sect1 id="sec.undo.aaaiiieee"> 17.682 + <sect1 id="sec:undo:aaaiiieee"> 17.683 <title>Changes that should never have been</title> 17.684 17.685 - <para>Most of the time, the <command role="hg-cmd">hg 17.686 + <para id="x_11b">Most of the time, the <command role="hg-cmd">hg 17.687 backout</command> command is exactly what you need if you want 17.688 to undo the effects of a change. It leaves a permanent record 17.689 of exactly what you did, both when committing the original 17.690 changeset and when you cleaned up after it.</para> 17.691 17.692 - <para>On rare occasions, though, you may find that you've 17.693 + <para id="x_11c">On rare occasions, though, you may find that you've 17.694 committed a change that really should not be present in the 17.695 repository at all. For example, it would be very unusual, and 17.696 usually considered a mistake, to commit a software project's 17.697 @@ -622,21 +608,21 @@ 17.698 so they increase the size of the repository and the amount of 17.699 time it takes to clone or pull changes.</para> 17.700 17.701 - <para>Before I discuss the options that you have if you commit a 17.702 + <para id="x_11d">Before I discuss the options that you have if you commit a 17.703 <quote>brown paper bag</quote> change (the kind that's so bad 17.704 that you want to pull a brown paper bag over your head), let me 17.705 first discuss some approaches that probably won't work.</para> 17.706 17.707 - <para>Since Mercurial treats history as accumulative&emdash;every 17.708 - change builds on top of all changes that preceded it&emdash;you 17.709 - generally can't just make disastrous changes disappear. The one 17.710 - exception is when you've just committed a change, and it hasn't 17.711 - been pushed or pulled into another repository. That's when you 17.712 - can safely use the <command role="hg-cmd">hg rollback</command> 17.713 - command, as I detailed in section <xref 17.714 - linkend="sec.undo.rollback"/>.</para> 17.715 - 17.716 - <para>After you've pushed a bad change to another repository, you 17.717 + <para id="x_11e">Since Mercurial treats history as 17.718 + accumulative&emdash;every change builds on top of all changes 17.719 + that preceded it&emdash;you generally can't just make disastrous 17.720 + changes disappear. The one exception is when you've just 17.721 + committed a change, and it hasn't been pushed or pulled into 17.722 + another repository. That's when you can safely use the <command 17.723 + role="hg-cmd">hg rollback</command> command, as I detailed in 17.724 + <xref linkend="sec:undo:rollback"/>.</para> 17.725 + 17.726 + <para id="x_11f">After you've pushed a bad change to another repository, you 17.727 <emphasis>could</emphasis> still use <command role="hg-cmd">hg 17.728 rollback</command> to make your local copy of the change 17.729 disappear, but it won't have the consequences you want. The 17.730 @@ -644,7 +630,7 @@ 17.731 will reappear in your local repository the next time you 17.732 pull.</para> 17.733 17.734 - <para>If a situation like this arises, and you know which 17.735 + <para id="x_120">If a situation like this arises, and you know which 17.736 repositories your bad change has propagated into, you can 17.737 <emphasis>try</emphasis> to get rid of the changeefrom 17.738 <emphasis>every</emphasis> one of those repositories. This is, 17.739 @@ -652,13 +638,13 @@ 17.740 single repository while you're expunging, the change is still 17.741 <quote>in the wild</quote>, and could propagate further.</para> 17.742 17.743 - <para>If you've committed one or more changes 17.744 + <para id="x_121">If you've committed one or more changes 17.745 <emphasis>after</emphasis> the change that you'd like to see 17.746 disappear, your options are further reduced. Mercurial doesn't 17.747 provide a way to <quote>punch a hole</quote> in history, leaving 17.748 changesets intact.</para> 17.749 17.750 - <para>XXX This needs filling out. The 17.751 + <para id="x_122">XXX This needs filling out. The 17.752 <literal>hg-replay</literal> script in the 17.753 <literal>examples</literal> directory works, but doesn't handle 17.754 merge changesets. Kind of an important omission.</para> 17.755 @@ -667,15 +653,15 @@ 17.756 <title>Protect yourself from <quote>escaped</quote> 17.757 changes</title> 17.758 17.759 - <para>If you've committed some changes to your local repository 17.760 + <para id="x_123">If you've committed some changes to your local repository 17.761 and they've been pushed or pulled somewhere else, this isn't 17.762 necessarily a disaster. You can protect yourself ahead of 17.763 time against some classes of bad changeset. This is 17.764 particularly easy if your team usually pulls changes from a 17.765 central repository.</para> 17.766 17.767 - <para>By configuring some hooks on that repository to validate 17.768 - incoming changesets (see chapter <xref linkend="chap.hook"/>), 17.769 + <para id="x_124">By configuring some hooks on that repository to validate 17.770 + incoming changesets (see chapter <xref linkend="chap:hook"/>), 17.771 you can 17.772 automatically prevent some kinds of bad changeset from being 17.773 pushed to the central repository at all. With such a 17.774 @@ -684,23 +670,23 @@ 17.775 propagate into the central repository. Better yet, this 17.776 happens without any need for explicit intervention.</para> 17.777 17.778 - <para>For instance, an incoming change hook that verifies that a 17.779 + <para id="x_125">For instance, an incoming change hook that verifies that a 17.780 changeset will actually compile can prevent people from 17.781 inadvertantly <quote>breaking the build</quote>.</para> 17.782 17.783 </sect2> 17.784 </sect1> 17.785 - <sect1 id="sec.undo.bisect"> 17.786 + <sect1 id="sec:undo:bisect"> 17.787 <title>Finding the source of a bug</title> 17.788 17.789 - <para>While it's all very well to be able to back out a changeset 17.790 + <para id="x_126">While it's all very well to be able to back out a changeset 17.791 that introduced a bug, this requires that you know which 17.792 changeset to back out. Mercurial provides an invaluable 17.793 command, called <command role="hg-cmd">hg bisect</command>, that 17.794 helps you to automate this process and accomplish it very 17.795 efficiently.</para> 17.796 17.797 - <para>The idea behind the <command role="hg-cmd">hg 17.798 + <para id="x_127">The idea behind the <command role="hg-cmd">hg 17.799 bisect</command> command is that a changeset has introduced 17.800 some change of behaviour that you can identify with a simple 17.801 binary test. You don't know which piece of code introduced the 17.802 @@ -709,41 +695,41 @@ 17.803 test to direct its search for the changeset that introduced the 17.804 code that caused the bug.</para> 17.805 17.806 - <para>Here are a few scenarios to help you understand how you 17.807 + <para id="x_128">Here are a few scenarios to help you understand how you 17.808 might apply this command.</para> 17.809 <itemizedlist> 17.810 - <listitem><para>The most recent version of your software has a 17.811 + <listitem><para id="x_129">The most recent version of your software has a 17.812 bug that you remember wasn't present a few weeks ago, but 17.813 you don't know when it was introduced. Here, your binary 17.814 test checks for the presence of that bug.</para> 17.815 </listitem> 17.816 - <listitem><para>You fixed a bug in a rush, and now it's time to 17.817 + <listitem><para id="x_12a">You fixed a bug in a rush, and now it's time to 17.818 close the entry in your team's bug database. The bug 17.819 database requires a changeset ID when you close an entry, 17.820 but you don't remember which changeset you fixed the bug in. 17.821 Once again, your binary test checks for the presence of the 17.822 bug.</para> 17.823 </listitem> 17.824 - <listitem><para>Your software works correctly, but runs 15% 17.825 + <listitem><para id="x_12b">Your software works correctly, but runs 15% 17.826 slower than the last time you measured it. You want to know 17.827 which changeset introduced the performance regression. In 17.828 this case, your binary test measures the performance of your 17.829 software, to see whether it's <quote>fast</quote> or 17.830 <quote>slow</quote>.</para> 17.831 </listitem> 17.832 - <listitem><para>The sizes of the components of your project that 17.833 + <listitem><para id="x_12c">The sizes of the components of your project that 17.834 you ship exploded recently, and you suspect that something 17.835 changed in the way you build your project.</para> 17.836 </listitem></itemizedlist> 17.837 17.838 - <para>From these examples, it should be clear that the <command 17.839 + <para id="x_12d">From these examples, it should be clear that the <command 17.840 role="hg-cmd">hg bisect</command> command is not useful only 17.841 for finding the sources of bugs. You can use it to find any 17.842 <quote>emergent property</quote> of a repository (anything that 17.843 you can't find from a simple text search of the files in the 17.844 tree) for which you can write a binary test.</para> 17.845 17.846 - <para>We'll introduce a little bit of terminology here, just to 17.847 + <para id="x_12e">We'll introduce a little bit of terminology here, just to 17.848 make it clear which parts of the search process are your 17.849 responsibility, and which are Mercurial's. A 17.850 <emphasis>test</emphasis> is something that 17.851 @@ -756,7 +742,7 @@ 17.852 the <command role="hg-cmd">hg bisect</command> 17.853 command</quote>.</para> 17.854 17.855 - <para>One simple way to automate the searching process would be 17.856 + <para id="x_12f">One simple way to automate the searching process would be 17.857 simply to probe every changeset. However, this scales poorly. 17.858 If it took ten minutes to test a single changeset, and you had 17.859 10,000 changesets in your repository, the exhaustive approach 17.860 @@ -766,7 +752,7 @@ 17.861 your search to those, you'd still be looking at over 40 hours to 17.862 find the changeset that introduced your bug.</para> 17.863 17.864 - <para>What the <command role="hg-cmd">hg bisect</command> command 17.865 + <para id="x_130">What the <command role="hg-cmd">hg bisect</command> command 17.866 does is use its knowledge of the <quote>shape</quote> of your 17.867 project's revision history to perform a search in time 17.868 proportional to the <emphasis>logarithm</emphasis> of the number 17.869 @@ -777,7 +763,7 @@ 17.870 Limit your search to the last hundred changesets, and it will 17.871 take only about an hour (roughly seven tests).</para> 17.872 17.873 - <para>The <command role="hg-cmd">hg bisect</command> command is 17.874 + <para id="x_131">The <command role="hg-cmd">hg bisect</command> command is 17.875 aware of the <quote>branchy</quote> nature of a Mercurial 17.876 project's revision history, so it has no problems dealing with 17.877 branches, merges, or multiple heads in a repository. It can 17.878 @@ -788,24 +774,24 @@ 17.879 <title>Using the <command role="hg-cmd">hg bisect</command> 17.880 command</title> 17.881 17.882 - <para>Here's an example of <command role="hg-cmd">hg 17.883 + <para id="x_132">Here's an example of <command role="hg-cmd">hg 17.884 bisect</command> in action.</para> 17.885 17.886 <note> 17.887 - <para> In versions 0.9.5 and earlier of Mercurial, <command 17.888 + <para id="x_133"> In versions 0.9.5 and earlier of Mercurial, <command 17.889 role="hg-cmd">hg bisect</command> was not a core command: 17.890 it was distributed with Mercurial as an extension. This 17.891 section describes the built-in command, not the old 17.892 extension.</para> 17.893 </note> 17.894 17.895 - <para>Now let's create a repository, so that we can try out the 17.896 + <para id="x_134">Now let's create a repository, so that we can try out the 17.897 <command role="hg-cmd">hg bisect</command> command in 17.898 isolation.</para> 17.899 17.900 &interaction.bisect.init; 17.901 17.902 - <para>We'll simulate a project that has a bug in it in a 17.903 + <para id="x_135">We'll simulate a project that has a bug in it in a 17.904 simple-minded way: create trivial changes in a loop, and 17.905 nominate one specific change that will have the 17.906 <quote>bug</quote>. This loop creates 35 changesets, each 17.907 @@ -815,44 +801,44 @@ 17.908 17.909 &interaction.bisect.commits; 17.910 17.911 - <para>The next thing that we'd like to do is figure out how to 17.912 + <para id="x_136">The next thing that we'd like to do is figure out how to 17.913 use the <command role="hg-cmd">hg bisect</command> command. 17.914 We can use Mercurial's normal built-in help mechanism for 17.915 this.</para> 17.916 17.917 &interaction.bisect.help; 17.918 17.919 - <para>The <command role="hg-cmd">hg bisect</command> command 17.920 + <para id="x_137">The <command role="hg-cmd">hg bisect</command> command 17.921 works in steps. Each step proceeds as follows.</para> 17.922 <orderedlist> 17.923 - <listitem><para>You run your binary test.</para> 17.924 + <listitem><para id="x_138">You run your binary test.</para> 17.925 <itemizedlist> 17.926 - <listitem><para>If the test succeeded, you tell <command 17.927 + <listitem><para id="x_139">If the test succeeded, you tell <command 17.928 role="hg-cmd">hg bisect</command> by running the 17.929 <command role="hg-cmd">hg bisect good</command> 17.930 command.</para> 17.931 </listitem> 17.932 - <listitem><para>If it failed, run the <command 17.933 + <listitem><para id="x_13a">If it failed, run the <command 17.934 role="hg-cmd">hg bisect bad</command> 17.935 command.</para></listitem></itemizedlist> 17.936 </listitem> 17.937 - <listitem><para>The command uses your information to decide 17.938 + <listitem><para id="x_13b">The command uses your information to decide 17.939 which changeset to test next.</para> 17.940 </listitem> 17.941 - <listitem><para>It updates the working directory to that 17.942 + <listitem><para id="x_13c">It updates the working directory to that 17.943 changeset, and the process begins again.</para> 17.944 </listitem></orderedlist> 17.945 - <para>The process ends when <command role="hg-cmd">hg 17.946 + <para id="x_13d">The process ends when <command role="hg-cmd">hg 17.947 bisect</command> identifies a unique changeset that marks 17.948 the point where your test transitioned from 17.949 <quote>succeeding</quote> to <quote>failing</quote>.</para> 17.950 17.951 - <para>To start the search, we must run the <command 17.952 + <para id="x_13e">To start the search, we must run the <command 17.953 role="hg-cmd">hg bisect --reset</command> command.</para> 17.954 17.955 &interaction.bisect.search.init; 17.956 17.957 - <para>In our case, the binary test we use is simple: we check to 17.958 + <para id="x_13f">In our case, the binary test we use is simple: we check to 17.959 see if any file in the repository contains the string <quote>i 17.960 have a gub</quote>. If it does, this changeset contains the 17.961 change that <quote>caused the bug</quote>. By convention, a 17.962 @@ -860,14 +846,14 @@ 17.963 <quote>bad</quote>, while one that doesn't is 17.964 <quote>good</quote>.</para> 17.965 17.966 - <para>Most of the time, the revision to which the working 17.967 + <para id="x_140">Most of the time, the revision to which the working 17.968 directory is synced (usually the tip) already exhibits the 17.969 problem introduced by the buggy change, so we'll mark it as 17.970 <quote>bad</quote>.</para> 17.971 17.972 &interaction.bisect.search.bad-init; 17.973 17.974 - <para>Our next task is to nominate a changeset that we know 17.975 + <para id="x_141">Our next task is to nominate a changeset that we know 17.976 <emphasis>doesn't</emphasis> have the bug; the <command 17.977 role="hg-cmd">hg bisect</command> command will 17.978 <quote>bracket</quote> its search between the first pair of 17.979 @@ -877,38 +863,38 @@ 17.980 17.981 &interaction.bisect.search.good-init; 17.982 17.983 - <para>Notice that this command printed some output.</para> 17.984 + <para id="x_142">Notice that this command printed some output.</para> 17.985 <itemizedlist> 17.986 - <listitem><para>It told us how many changesets it must 17.987 + <listitem><para id="x_143">It told us how many changesets it must 17.988 consider before it can identify the one that introduced 17.989 the bug, and how many tests that will require.</para> 17.990 </listitem> 17.991 - <listitem><para>It updated the working directory to the next 17.992 + <listitem><para id="x_144">It updated the working directory to the next 17.993 changeset to test, and told us which changeset it's 17.994 testing.</para> 17.995 </listitem></itemizedlist> 17.996 17.997 - <para>We now run our test in the working directory. We use the 17.998 + <para id="x_145">We now run our test in the working directory. We use the 17.999 <command>grep</command> command to see if our 17.1000 <quote>bad</quote> file is present in the working directory. 17.1001 If it is, this revision is bad; if not, this revision is good. 17.1002 &interaction.bisect.search.step1;</para> 17.1003 17.1004 - <para>This test looks like a perfect candidate for automation, 17.1005 + <para id="x_146">This test looks like a perfect candidate for automation, 17.1006 so let's turn it into a shell function.</para> 17.1007 &interaction.bisect.search.mytest; 17.1008 17.1009 - <para>We can now run an entire test step with a single command, 17.1010 + <para id="x_147">We can now run an entire test step with a single command, 17.1011 <literal>mytest</literal>.</para> 17.1012 17.1013 &interaction.bisect.search.step2; 17.1014 17.1015 - <para>A few more invocations of our canned test step command, 17.1016 + <para id="x_148">A few more invocations of our canned test step command, 17.1017 and we're done.</para> 17.1018 17.1019 &interaction.bisect.search.rest; 17.1020 17.1021 - <para>Even though we had 40 changesets to search through, the 17.1022 + <para id="x_149">Even though we had 40 changesets to search through, the 17.1023 <command role="hg-cmd">hg bisect</command> command let us find 17.1024 the changeset that introduced our <quote>bug</quote> with only 17.1025 five tests. Because the number of tests that the <command 17.1026 @@ -921,7 +907,7 @@ 17.1027 <sect2> 17.1028 <title>Cleaning up after your search</title> 17.1029 17.1030 - <para>When you're finished using the <command role="hg-cmd">hg 17.1031 + <para id="x_14a">When you're finished using the <command role="hg-cmd">hg 17.1032 bisect</command> command in a repository, you can use the 17.1033 <command role="hg-cmd">hg bisect reset</command> command to 17.1034 drop the information it was using to drive your search. The 17.1035 @@ -941,7 +927,7 @@ 17.1036 <sect2> 17.1037 <title>Give consistent input</title> 17.1038 17.1039 - <para>The <command role="hg-cmd">hg bisect</command> command 17.1040 + <para id="x_14b">The <command role="hg-cmd">hg bisect</command> command 17.1041 requires that you correctly report the result of every test 17.1042 you perform. If you tell it that a test failed when it really 17.1043 succeeded, it <emphasis>might</emphasis> be able to detect the 17.1044 @@ -955,7 +941,7 @@ 17.1045 <sect2> 17.1046 <title>Automate as much as possible</title> 17.1047 17.1048 - <para>When I started using the <command role="hg-cmd">hg 17.1049 + <para id="x_14c">When I started using the <command role="hg-cmd">hg 17.1050 bisect</command> command, I tried a few times to run my 17.1051 tests by hand, on the command line. This is an approach that 17.1052 I, at least, am not suited to. After a few tries, I found 17.1053 @@ -963,7 +949,7 @@ 17.1054 my searches several times before finally getting correct 17.1055 results.</para> 17.1056 17.1057 - <para>My initial problems with driving the <command 17.1058 + <para id="x_14d">My initial problems with driving the <command 17.1059 role="hg-cmd">hg bisect</command> command by hand occurred 17.1060 even with simple searches on small repositories; if the 17.1061 problem you're looking for is more subtle, or the number of 17.1062 @@ -972,14 +958,14 @@ 17.1063 the search is much higher. Once I started automating my 17.1064 tests, I had much better results.</para> 17.1065 17.1066 - <para>The key to automated testing is twofold:</para> 17.1067 + <para id="x_14e">The key to automated testing is twofold:</para> 17.1068 <itemizedlist> 17.1069 - <listitem><para>always test for the same symptom, and</para> 17.1070 - </listitem> 17.1071 - <listitem><para>always feed consistent input to the <command 17.1072 + <listitem><para id="x_14f">always test for the same symptom, and</para> 17.1073 + </listitem> 17.1074 + <listitem><para id="x_150">always feed consistent input to the <command 17.1075 role="hg-cmd">hg bisect</command> command.</para> 17.1076 </listitem></itemizedlist> 17.1077 - <para>In my tutorial example above, the <command>grep</command> 17.1078 + <para id="x_151">In my tutorial example above, the <command>grep</command> 17.1079 command tests for the symptom, and the <literal>if</literal> 17.1080 statement takes the result of this check and ensures that we 17.1081 always feed the same input to the <command role="hg-cmd">hg 17.1082 @@ -991,21 +977,21 @@ 17.1083 <sect2> 17.1084 <title>Check your results</title> 17.1085 17.1086 - <para>Because the output of a <command role="hg-cmd">hg 17.1087 + <para id="x_152">Because the output of a <command role="hg-cmd">hg 17.1088 bisect</command> search is only as good as the input you 17.1089 give it, don't take the changeset it reports as the absolute 17.1090 truth. A simple way to cross-check its report is to manually 17.1091 run your test at each of the following changesets:</para> 17.1092 <itemizedlist> 17.1093 - <listitem><para>The changeset that it reports as the first bad 17.1094 + <listitem><para id="x_153">The changeset that it reports as the first bad 17.1095 revision. Your test should still report this as 17.1096 bad.</para> 17.1097 </listitem> 17.1098 - <listitem><para>The parent of that changeset (either parent, 17.1099 + <listitem><para id="x_154">The parent of that changeset (either parent, 17.1100 if it's a merge). Your test should report this changeset 17.1101 as good.</para> 17.1102 </listitem> 17.1103 - <listitem><para>A child of that changeset. Your test should 17.1104 + <listitem><para id="x_155">A child of that changeset. Your test should 17.1105 report this changeset as bad.</para> 17.1106 </listitem></itemizedlist> 17.1107 17.1108 @@ -1013,7 +999,7 @@ 17.1109 <sect2> 17.1110 <title>Beware interference between bugs</title> 17.1111 17.1112 - <para>It's possible that your search for one bug could be 17.1113 + <para id="x_156">It's possible that your search for one bug could be 17.1114 disrupted by the presence of another. For example, let's say 17.1115 your software crashes at revision 100, and worked correctly at 17.1116 revision 50. Unknown to you, someone else introduced a 17.1117 @@ -1021,7 +1007,7 @@ 17.1118 revision 80. This could distort your results in one of 17.1119 several ways.</para> 17.1120 17.1121 - <para>It is possible that this other bug completely 17.1122 + <para id="x_157">It is possible that this other bug completely 17.1123 <quote>masks</quote> yours, which is to say that it occurs 17.1124 before your bug has a chance to manifest itself. If you can't 17.1125 avoid that other bug (for example, it prevents your project 17.1126 @@ -1031,14 +1017,14 @@ 17.1127 you can mark a changeset as untested by running <command 17.1128 role="hg-cmd">hg bisect --skip</command>.</para> 17.1129 17.1130 - <para>A different problem could arise if your test for a bug's 17.1131 + <para id="x_158">A different problem could arise if your test for a bug's 17.1132 presence is not specific enough. If you check for <quote>my 17.1133 program crashes</quote>, then both your crashing bug and an 17.1134 unrelated crashing bug that masks it will look like the same 17.1135 thing, and mislead <command role="hg-cmd">hg 17.1136 bisect</command>.</para> 17.1137 17.1138 - <para>Another useful situation in which to use <command 17.1139 + <para id="x_159">Another useful situation in which to use <command 17.1140 role="hg-cmd">hg bisect --skip</command> is if you can't 17.1141 test a revision because your project was in a broken and hence 17.1142 untestable state at that revision, perhaps because someone 17.1143 @@ -1049,7 +1035,7 @@ 17.1144 <sect2> 17.1145 <title>Bracket your search lazily</title> 17.1146 17.1147 - <para>Choosing the first <quote>good</quote> and 17.1148 + <para id="x_15a">Choosing the first <quote>good</quote> and 17.1149 <quote>bad</quote> changesets that will mark the end points of 17.1150 your search is often easy, but it bears a little discussion 17.1151 nevertheless. From the perspective of <command 17.1152 @@ -1057,7 +1043,7 @@ 17.1153 changeset is conventionally <quote>bad</quote>, and the older 17.1154 changeset is <quote>good</quote>.</para> 17.1155 17.1156 - <para>If you're having trouble remembering when a suitable 17.1157 + <para id="x_15b">If you're having trouble remembering when a suitable 17.1158 <quote>good</quote> change was, so that you can tell <command 17.1159 role="hg-cmd">hg bisect</command>, you could do worse than 17.1160 testing changesets at random. Just remember to eliminate 17.1161 @@ -1066,7 +1052,7 @@ 17.1162 where another problem masks the bug (as I discussed 17.1163 above).</para> 17.1164 17.1165 - <para>Even if you end up <quote>early</quote> by thousands of 17.1166 + <para id="x_15c">Even if you end up <quote>early</quote> by thousands of 17.1167 changesets or months of history, you will only add a handful 17.1168 of tests to the total number that <command role="hg-cmd">hg 17.1169 bisect</command> must perform, thanks to its logarithmic
18.1 --- a/en/ch09-hook.xml Fri Mar 20 17:17:55 2009 +0800 18.2 +++ b/en/ch09-hook.xml Mon Mar 30 16:23:33 2009 +0800 18.3 @@ -1,15 +1,15 @@ 18.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 18.5 18.6 -<chapter id="chap.hook"> 18.7 +<chapter id="chap:hook"> 18.8 <?dbhtml filename="handling-repository-events-with-hooks.html"?> 18.9 <title>Handling repository events with hooks</title> 18.10 18.11 - <para>Mercurial offers a powerful mechanism to let you perform 18.12 + <para id="x_1e6">Mercurial offers a powerful mechanism to let you perform 18.13 automated actions in response to events that occur in a 18.14 repository. In some cases, you can even control Mercurial's 18.15 response to those events.</para> 18.16 18.17 - <para>The name Mercurial uses for one of these actions is a 18.18 + <para id="x_1e7">The name Mercurial uses for one of these actions is a 18.19 <emphasis>hook</emphasis>. Hooks are called 18.20 <quote>triggers</quote> in some revision control systems, but the 18.21 two names refer to the same idea.</para> 18.22 @@ -17,49 +17,49 @@ 18.23 <sect1> 18.24 <title>An overview of hooks in Mercurial</title> 18.25 18.26 - <para>Here is a brief list of the hooks that Mercurial supports. 18.27 - We will revisit each of these hooks in more detail later, in 18.28 - section <xref linkend="sec.hook.ref"/>.</para> 18.29 + <para id="x_1e8">Here is a brief list of the hooks that Mercurial 18.30 + supports. We will revisit each of these hooks in more detail 18.31 + later, in <xref linkend="sec:hook:ref"/>.</para> 18.32 18.33 <itemizedlist> 18.34 - <listitem><para><literal role="hook">changegroup</literal>: This 18.35 + <listitem><para id="x_1e9"><literal role="hook">changegroup</literal>: This 18.36 is run after a group of changesets has been brought into the 18.37 repository from elsewhere.</para> 18.38 </listitem> 18.39 - <listitem><para><literal role="hook">commit</literal>: This is 18.40 + <listitem><para id="x_1ea"><literal role="hook">commit</literal>: This is 18.41 run after a new changeset has been created in the local 18.42 repository.</para> 18.43 </listitem> 18.44 - <listitem><para><literal role="hook">incoming</literal>: This is 18.45 + <listitem><para id="x_1eb"><literal role="hook">incoming</literal>: This is 18.46 run once for each new changeset that is brought into the 18.47 repository from elsewhere. Notice the difference from 18.48 <literal role="hook">changegroup</literal>, which is run 18.49 once per <emphasis>group</emphasis> of changesets brought 18.50 in.</para> 18.51 </listitem> 18.52 - <listitem><para><literal role="hook">outgoing</literal>: This is 18.53 + <listitem><para id="x_1ec"><literal role="hook">outgoing</literal>: This is 18.54 run after a group of changesets has been transmitted from 18.55 this repository.</para> 18.56 </listitem> 18.57 - <listitem><para><literal role="hook">prechangegroup</literal>: 18.58 + <listitem><para id="x_1ed"><literal role="hook">prechangegroup</literal>: 18.59 This is run before starting to bring a group of changesets 18.60 into the repository. 18.61 </para> 18.62 </listitem> 18.63 - <listitem><para><literal role="hook">precommit</literal>: 18.64 + <listitem><para id="x_1ee"><literal role="hook">precommit</literal>: 18.65 Controlling. This is run before starting a commit. 18.66 </para> 18.67 </listitem> 18.68 - <listitem><para><literal role="hook">preoutgoing</literal>: 18.69 + <listitem><para id="x_1ef"><literal role="hook">preoutgoing</literal>: 18.70 Controlling. This is run before starting to transmit a group 18.71 of changesets from this repository. 18.72 </para> 18.73 </listitem> 18.74 - <listitem><para><literal role="hook">pretag</literal>: 18.75 + <listitem><para id="x_1f0"><literal role="hook">pretag</literal>: 18.76 Controlling. This is run before creating a tag. 18.77 </para> 18.78 </listitem> 18.79 - <listitem><para><literal 18.80 + <listitem><para id="x_1f1"><literal 18.81 role="hook">pretxnchangegroup</literal>: Controlling. This 18.82 is run after a group of changesets has been brought into the 18.83 local repository from another, but before the transaction 18.84 @@ -67,27 +67,27 @@ 18.85 repository. 18.86 </para> 18.87 </listitem> 18.88 - <listitem><para><literal role="hook">pretxncommit</literal>: 18.89 + <listitem><para id="x_1f2"><literal role="hook">pretxncommit</literal>: 18.90 Controlling. This is run after a new changeset has been 18.91 created in the local repository, but before the transaction 18.92 completes that will make it permanent. 18.93 </para> 18.94 </listitem> 18.95 - <listitem><para><literal role="hook">preupdate</literal>: 18.96 + <listitem><para id="x_1f3"><literal role="hook">preupdate</literal>: 18.97 Controlling. This is run before starting an update or merge 18.98 of the working directory. 18.99 </para> 18.100 </listitem> 18.101 - <listitem><para><literal role="hook">tag</literal>: This is run 18.102 + <listitem><para id="x_1f4"><literal role="hook">tag</literal>: This is run 18.103 after a tag is created. 18.104 </para> 18.105 </listitem> 18.106 - <listitem><para><literal role="hook">update</literal>: This is 18.107 + <listitem><para id="x_1f5"><literal role="hook">update</literal>: This is 18.108 run after an update or merge of the working directory has 18.109 finished. 18.110 </para> 18.111 </listitem></itemizedlist> 18.112 - <para>Each of the hooks whose description begins with the word 18.113 + <para id="x_1f6">Each of the hooks whose description begins with the word 18.114 <quote>Controlling</quote> has the ability to determine whether 18.115 an activity can proceed. If the hook succeeds, the activity may 18.116 proceed; if it fails, the activity is either not permitted or 18.117 @@ -101,7 +101,7 @@ 18.118 <sect2> 18.119 <title>Hooks are run with your privileges</title> 18.120 18.121 - <para>When you run a Mercurial command in a repository, and the 18.122 + <para id="x_1f7">When you run a Mercurial command in a repository, and the 18.123 command causes a hook to run, that hook runs on 18.124 <emphasis>your</emphasis> system, under 18.125 <emphasis>your</emphasis> user account, with 18.126 @@ -112,14 +112,14 @@ 18.127 it does. 18.128 </para> 18.129 18.130 - <para>In some cases, you may be exposed to hooks that you did 18.131 + <para id="x_1f8">In some cases, you may be exposed to hooks that you did 18.132 not install yourself. If you work with Mercurial on an 18.133 unfamiliar system, Mercurial will run hooks defined in that 18.134 system's global <filename role="special">~/.hgrc</filename> 18.135 file. 18.136 </para> 18.137 18.138 - <para>If you are working with a repository owned by another 18.139 + <para id="x_1f9">If you are working with a repository owned by another 18.140 user, Mercurial can run hooks defined in that user's 18.141 repository, but it will still run them as <quote>you</quote>. 18.142 For example, if you <command role="hg-cmd">hg pull</command> 18.143 @@ -131,7 +131,7 @@ 18.144 </para> 18.145 18.146 <note> 18.147 - <para> This only applies if you are pulling from a repository 18.148 + <para id="x_1fa"> This only applies if you are pulling from a repository 18.149 on a local or network filesystem. If you're pulling over 18.150 http or ssh, any <literal role="hook">outgoing</literal> 18.151 hook will run under whatever account is executing the server 18.152 @@ -139,7 +139,7 @@ 18.153 </para> 18.154 </note> 18.155 18.156 - <para>XXX To see what hooks are defined in a repository, use the 18.157 + <para id="x_1fb">XXX To see what hooks are defined in a repository, use the 18.158 <command role="hg-cmd">hg config hooks</command> command. If 18.159 you are working in one repository, but talking to another that 18.160 you do not own (e.g. using <command role="hg-cmd">hg 18.161 @@ -152,27 +152,27 @@ 18.162 <sect2> 18.163 <title>Hooks do not propagate</title> 18.164 18.165 - <para>In Mercurial, hooks are not revision controlled, and do 18.166 + <para id="x_1fc">In Mercurial, hooks are not revision controlled, and do 18.167 not propagate when you clone, or pull from, a repository. The 18.168 reason for this is simple: a hook is a completely arbitrary 18.169 piece of executable code. It runs under your user identity, 18.170 with your privilege level, on your machine. 18.171 </para> 18.172 18.173 - <para>It would be extremely reckless for any distributed 18.174 + <para id="x_1fd">It would be extremely reckless for any distributed 18.175 revision control system to implement revision-controlled 18.176 hooks, as this would offer an easily exploitable way to 18.177 subvert the accounts of users of the revision control system. 18.178 </para> 18.179 18.180 - <para>Since Mercurial does not propagate hooks, if you are 18.181 + <para id="x_1fe">Since Mercurial does not propagate hooks, if you are 18.182 collaborating with other people on a common project, you 18.183 should not assume that they are using the same Mercurial hooks 18.184 as you are, or that theirs are correctly configured. You 18.185 should document the hooks you expect people to use. 18.186 </para> 18.187 18.188 - <para>In a corporate intranet, this is somewhat easier to 18.189 + <para id="x_1ff">In a corporate intranet, this is somewhat easier to 18.190 control, as you can for example provide a 18.191 <quote>standard</quote> installation of Mercurial on an NFS 18.192 filesystem, and use a site-wide <filename role="special">~/.hgrc</filename> file to define hooks that all users will 18.193 @@ -183,12 +183,12 @@ 18.194 <sect2> 18.195 <title>Hooks can be overridden</title> 18.196 18.197 - <para>Mercurial allows you to override a hook definition by 18.198 + <para id="x_200">Mercurial allows you to override a hook definition by 18.199 redefining the hook. You can disable it by setting its value 18.200 to the empty string, or change its behaviour as you wish. 18.201 </para> 18.202 18.203 - <para>If you deploy a system- or site-wide <filename 18.204 + <para id="x_201">If you deploy a system- or site-wide <filename 18.205 role="special">~/.hgrc</filename> file that defines some 18.206 hooks, you should thus understand that your users can disable 18.207 or override those hooks. 18.208 @@ -198,7 +198,7 @@ 18.209 <sect2> 18.210 <title>Ensuring that critical hooks are run</title> 18.211 18.212 - <para>Sometimes you may want to enforce a policy that you do not 18.213 + <para id="x_202">Sometimes you may want to enforce a policy that you do not 18.214 want others to be able to work around. For example, you may 18.215 have a requirement that every changeset must pass a rigorous 18.216 set of tests. Defining this requirement via a hook in a 18.217 @@ -207,13 +207,13 @@ 18.218 can subvert it at will by overriding the hook. 18.219 </para> 18.220 18.221 - <para>Instead, you can set up your policies for use of Mercurial 18.222 + <para id="x_203">Instead, you can set up your policies for use of Mercurial 18.223 so that people are expected to propagate changes through a 18.224 well-known <quote>canonical</quote> server that you have 18.225 locked down and configured appropriately. 18.226 </para> 18.227 18.228 - <para>One way to do this is via a combination of social 18.229 + <para id="x_204">One way to do this is via a combination of social 18.230 engineering and technology. Set up a restricted-access 18.231 account; users can push changes over the network to 18.232 repositories managed by this account, but they cannot log into 18.233 @@ -222,7 +222,7 @@ 18.234 they want. 18.235 </para> 18.236 18.237 - <para>When someone pushes a changeset to the server that 18.238 + <para id="x_205">When someone pushes a changeset to the server that 18.239 everyone pulls from, the server will test the changeset before 18.240 it accepts it as permanent, and reject it if it fails to pass 18.241 the test suite. If people only pull changes from this 18.242 @@ -236,19 +236,19 @@ 18.243 <title>Care with <literal>pretxn</literal> hooks in a 18.244 shared-access repository</title> 18.245 18.246 - <para>If you want to use hooks to do some automated work in a 18.247 + <para id="x_206">If you want to use hooks to do some automated work in a 18.248 repository that a number of people have shared access to, you 18.249 need to be careful in how you do this. 18.250 </para> 18.251 18.252 - <para>Mercurial only locks a repository when it is writing to the 18.253 + <para id="x_207">Mercurial only locks a repository when it is writing to the 18.254 repository, and only the parts of Mercurial that write to the 18.255 repository pay attention to locks. Write locks are necessary to 18.256 prevent multiple simultaneous writers from scribbling on each 18.257 other's work, corrupting the repository. 18.258 </para> 18.259 18.260 - <para>Because Mercurial is careful with the order in which it 18.261 + <para id="x_208">Because Mercurial is careful with the order in which it 18.262 reads and writes data, it does not need to acquire a lock when 18.263 it wants to read data from the repository. The parts of 18.264 Mercurial that read from the repository never pay attention to 18.265 @@ -256,14 +256,14 @@ 18.266 performance and concurrency. 18.267 </para> 18.268 18.269 - <para>With great performance comes a trade-off, though, one which 18.270 + <para id="x_209">With great performance comes a trade-off, though, one which 18.271 has the potential to cause you trouble unless you're aware of 18.272 it. To describe this requires a little detail about how 18.273 Mercurial adds changesets to a repository and reads those 18.274 changes. 18.275 </para> 18.276 18.277 - <para>When Mercurial <emphasis>writes</emphasis> metadata, it 18.278 + <para id="x_20a">When Mercurial <emphasis>writes</emphasis> metadata, it 18.279 writes it straight into the destination file. It writes file 18.280 data first, then manifest data (which contains pointers to the 18.281 new file data), then changelog data (which contains pointers to 18.282 @@ -274,13 +274,13 @@ 18.283 before the transaction began. 18.284 </para> 18.285 18.286 - <para>When Mercurial <emphasis>reads</emphasis> metadata, it reads 18.287 + <para id="x_20b">When Mercurial <emphasis>reads</emphasis> metadata, it reads 18.288 the changelog first, then everything else. Since a reader will 18.289 only access parts of the manifest or file metadata that it can 18.290 see in the changelog, it can never see partially written data. 18.291 </para> 18.292 18.293 - <para>Some controlling hooks (<literal 18.294 + <para id="x_20c">Some controlling hooks (<literal 18.295 role="hook">pretxncommit</literal> and <literal 18.296 role="hook">pretxnchangegroup</literal>) run when a 18.297 transaction is almost complete. All of the metadata has been 18.298 @@ -288,7 +288,7 @@ 18.299 cause the newly-written data to disappear. 18.300 </para> 18.301 18.302 - <para>If one of these hooks runs for long, it opens a window of 18.303 + <para id="x_20d">If one of these hooks runs for long, it opens a window of 18.304 time during which a reader can see the metadata for changesets 18.305 that are not yet permanent, and should not be thought of as 18.306 <quote>really there</quote>. The longer the hook runs, the 18.307 @@ -298,7 +298,7 @@ 18.308 <sect2> 18.309 <title>The problem illustrated</title> 18.310 18.311 - <para>In principle, a good use for the <literal 18.312 + <para id="x_20e">In principle, a good use for the <literal 18.313 role="hook">pretxnchangegroup</literal> hook would be to 18.314 automatically build and test incoming changes before they are 18.315 accepted into a central repository. This could let you 18.316 @@ -309,7 +309,7 @@ 18.317 potentially breaking their build. 18.318 </para> 18.319 18.320 - <para>The safest technological answer to this challenge is to 18.321 + <para id="x_20f">The safest technological answer to this challenge is to 18.322 set up such a <quote>gatekeeper</quote> repository as 18.323 <emphasis>unidirectional</emphasis>. Let it take changes 18.324 pushed in from the outside, but do not allow anyone to pull 18.325 @@ -321,7 +321,7 @@ 18.326 <emphasis>can</emphasis> pull from. 18.327 </para> 18.328 18.329 - <para>In practice, putting a centralised bottleneck like this in 18.330 + <para id="x_210">In practice, putting a centralised bottleneck like this in 18.331 place is not often a good idea, and transaction visibility has 18.332 nothing to do with the problem. As the size of a 18.333 project&emdash;and the time it takes to build and 18.334 @@ -332,7 +332,7 @@ 18.335 involved. 18.336 </para> 18.337 18.338 - <para>An approach that scales better is to get people to build 18.339 + <para id="x_211">An approach that scales better is to get people to build 18.340 and test before they push, then run automated builds and tests 18.341 centrally <emphasis>after</emphasis> a push, to be sure all is 18.342 well. The advantage of this approach is that it does not 18.343 @@ -342,21 +342,21 @@ 18.344 18.345 </sect2> 18.346 </sect1> 18.347 - <sect1 id="sec.hook.simple"> 18.348 + <sect1 id="sec:hook:simple"> 18.349 <title>A short tutorial on using hooks</title> 18.350 18.351 - <para>It is easy to write a Mercurial hook. Let's start with a 18.352 + <para id="x_212">It is easy to write a Mercurial hook. Let's start with a 18.353 hook that runs when you finish a <command role="hg-cmd">hg 18.354 commit</command>, and simply prints the hash of the changeset 18.355 you just created. The hook is called <literal 18.356 role="hook">commit</literal>. 18.357 </para> 18.358 18.359 - <para>All hooks follow the pattern in this example.</para> 18.360 + <para id="x_213">All hooks follow the pattern in this example.</para> 18.361 18.362 &interaction.hook.simple.init; 18.363 18.364 - <para>You add an entry to the <literal 18.365 + <para id="x_214">You add an entry to the <literal 18.366 role="rc-hooks">hooks</literal> section of your <filename 18.367 role="special">~/.hgrc</filename>. On the left is the name of 18.368 the event to trigger on; on the right is the action to take. As 18.369 @@ -368,12 +368,12 @@ 18.370 <sect2> 18.371 <title>Performing multiple actions per event</title> 18.372 18.373 - <para>Quite often, you will want to define more than one hook 18.374 + <para id="x_215">Quite often, you will want to define more than one hook 18.375 for a particular kind of event, as shown below.</para> 18.376 18.377 &interaction.hook.simple.ext; 18.378 18.379 - <para>Mercurial lets you do this by adding an 18.380 + <para id="x_216">Mercurial lets you do this by adding an 18.381 <emphasis>extension</emphasis> to the end of a hook's name. 18.382 You extend a hook's name by giving the name of the hook, 18.383 followed by a full stop (the 18.384 @@ -384,7 +384,7 @@ 18.385 <literal>commit</literal> event occurs. 18.386 </para> 18.387 18.388 - <para>To give a well-defined order of execution when there are 18.389 + <para id="x_217">To give a well-defined order of execution when there are 18.390 multiple hooks defined for an event, Mercurial sorts hooks by 18.391 extension, and executes the hook commands in this sorted 18.392 order. In the above example, it will execute 18.393 @@ -393,33 +393,33 @@ 18.394 before both. 18.395 </para> 18.396 18.397 - <para>It is a good idea to use a somewhat descriptive extension 18.398 - when you define a new hook. This will help you to remember 18.399 - what the hook was for. If the hook fails, you'll get an error 18.400 - message that contains the hook name and extension, so using a 18.401 - descriptive extension could give you an immediate hint as to 18.402 - why the hook failed (see section <xref 18.403 - linkend="sec.hook.perm"/> for an example). 18.404 - </para> 18.405 - 18.406 - </sect2> 18.407 - <sect2 id="sec.hook.perm"> 18.408 + <para id="x_218">It is a good idea to use a somewhat descriptive 18.409 + extension when you define a new hook. This will help you to 18.410 + remember what the hook was for. If the hook fails, you'll get 18.411 + an error message that contains the hook name and extension, so 18.412 + using a descriptive extension could give you an immediate hint 18.413 + as to why the hook failed (see <xref 18.414 + linkend="sec:hook:perm"/> for an example). 18.415 + </para> 18.416 + 18.417 + </sect2> 18.418 + <sect2 id="sec:hook:perm"> 18.419 <title>Controlling whether an activity can proceed</title> 18.420 18.421 - <para>In our earlier examples, we used the <literal 18.422 + <para id="x_219">In our earlier examples, we used the <literal 18.423 role="hook">commit</literal> hook, which is run after a 18.424 commit has completed. This is one of several Mercurial hooks 18.425 that run after an activity finishes. Such hooks have no way 18.426 of influencing the activity itself. 18.427 </para> 18.428 18.429 - <para>Mercurial defines a number of events that occur before an 18.430 + <para id="x_21a">Mercurial defines a number of events that occur before an 18.431 activity starts; or after it starts, but before it finishes. 18.432 Hooks that trigger on these events have the added ability to 18.433 choose whether the activity can continue, or will abort. 18.434 </para> 18.435 18.436 - <para>The <literal role="hook">pretxncommit</literal> hook runs 18.437 + <para id="x_21b">The <literal role="hook">pretxncommit</literal> hook runs 18.438 after a commit has all but completed. In other words, the 18.439 metadata representing the changeset has been written out to 18.440 disk, but the transaction has not yet been allowed to 18.441 @@ -428,7 +428,7 @@ 18.442 complete, or must be rolled back. 18.443 </para> 18.444 18.445 - <para>If the <literal role="hook">pretxncommit</literal> hook 18.446 + <para id="x_21c">If the <literal role="hook">pretxncommit</literal> hook 18.447 exits with a status code of zero, the transaction is allowed 18.448 to complete; the commit finishes; and the <literal 18.449 role="hook">commit</literal> hook is run. If the <literal 18.450 @@ -440,7 +440,7 @@ 18.451 18.452 &interaction.hook.simple.pretxncommit; 18.453 18.454 - <para>The hook in the example above checks that a commit comment 18.455 + <para id="x_21d">The hook in the example above checks that a commit comment 18.456 contains a bug ID. If it does, the commit can complete. If 18.457 not, the commit is rolled back. 18.458 </para> 18.459 @@ -450,7 +450,7 @@ 18.460 <sect1> 18.461 <title>Writing your own hooks</title> 18.462 18.463 - <para>When you are writing a hook, you might find it useful to run 18.464 + <para id="x_21e">When you are writing a hook, you might find it useful to run 18.465 Mercurial either with the <option 18.466 role="hg-opt-global">-v</option> option, or the <envar 18.467 role="rc-item-ui">verbose</envar> config item set to 18.468 @@ -458,22 +458,22 @@ 18.469 message before it calls each hook. 18.470 </para> 18.471 18.472 - <sect2 id="sec.hook.lang"> 18.473 + <sect2 id="sec:hook:lang"> 18.474 <title>Choosing how your hook should run</title> 18.475 18.476 - <para>You can write a hook either as a normal 18.477 + <para id="x_21f">You can write a hook either as a normal 18.478 program&emdash;typically a shell script&emdash;or as a Python 18.479 function that is executed within the Mercurial process. 18.480 </para> 18.481 18.482 - <para>Writing a hook as an external program has the advantage 18.483 + <para id="x_220">Writing a hook as an external program has the advantage 18.484 that it requires no knowledge of Mercurial's internals. You 18.485 can call normal Mercurial commands to get any added 18.486 information you need. The trade-off is that external hooks 18.487 are slower than in-process hooks. 18.488 </para> 18.489 18.490 - <para>An in-process Python hook has complete access to the 18.491 + <para id="x_221">An in-process Python hook has complete access to the 18.492 Mercurial API, and does not <quote>shell out</quote> to 18.493 another process, so it is inherently faster than an external 18.494 hook. It is also easier to obtain much of the information 18.495 @@ -481,7 +481,7 @@ 18.496 running Mercurial commands. 18.497 </para> 18.498 18.499 - <para>If you are comfortable with Python, or require high 18.500 + <para id="x_222">If you are comfortable with Python, or require high 18.501 performance, writing your hooks in Python may be a good 18.502 choice. However, when you have a straightforward hook to 18.503 write and you don't need to care about performance (probably 18.504 @@ -489,16 +489,16 @@ 18.505 </para> 18.506 18.507 </sect2> 18.508 - <sect2 id="sec.hook.param"> 18.509 + <sect2 id="sec:hook:param"> 18.510 <title>Hook parameters</title> 18.511 18.512 - <para>Mercurial calls each hook with a set of well-defined 18.513 + <para id="x_223">Mercurial calls each hook with a set of well-defined 18.514 parameters. In Python, a parameter is passed as a keyword 18.515 argument to your hook function. For an external program, a 18.516 parameter is passed as an environment variable. 18.517 </para> 18.518 18.519 - <para>Whether your hook is written in Python or as a shell 18.520 + <para id="x_224">Whether your hook is written in Python or as a shell 18.521 script, the hook-specific parameter names and values will be 18.522 the same. A boolean parameter will be represented as a 18.523 boolean value in Python, but as the number 1 (for 18.524 @@ -514,7 +514,7 @@ 18.525 <sect2> 18.526 <title>Hook return values and activity control</title> 18.527 18.528 - <para>A hook that executes successfully must exit with a status 18.529 + <para id="x_225">A hook that executes successfully must exit with a status 18.530 of zero if external, or return boolean <quote>false</quote> if 18.531 in-process. Failure is indicated with a non-zero exit status 18.532 from an external hook, or an in-process hook returning boolean 18.533 @@ -522,7 +522,7 @@ 18.534 exception, the hook is considered to have failed. 18.535 </para> 18.536 18.537 - <para>For a hook that controls whether an activity can proceed, 18.538 + <para id="x_226">For a hook that controls whether an activity can proceed, 18.539 zero/false means <quote>allow</quote>, while 18.540 non-zero/true/exception means <quote>deny</quote>. 18.541 </para> 18.542 @@ -531,23 +531,23 @@ 18.543 <sect2> 18.544 <title>Writing an external hook</title> 18.545 18.546 - <para>When you define an external hook in your <filename 18.547 + <para id="x_227">When you define an external hook in your <filename 18.548 role="special">~/.hgrc</filename> and the hook is run, its 18.549 value is passed to your shell, which interprets it. This 18.550 means that you can use normal shell constructs in the body of 18.551 the hook. 18.552 </para> 18.553 18.554 - <para>An executable hook is always run with its current 18.555 + <para id="x_228">An executable hook is always run with its current 18.556 directory set to a repository's root directory. 18.557 </para> 18.558 18.559 - <para>Each hook parameter is passed in as an environment 18.560 + <para id="x_229">Each hook parameter is passed in as an environment 18.561 variable; the name is upper-cased, and prefixed with the 18.562 string <quote><literal>HG_</literal></quote>. 18.563 </para> 18.564 18.565 - <para>With the exception of hook parameters, Mercurial does not 18.566 + <para id="x_22a">With the exception of hook parameters, Mercurial does not 18.567 set or modify any environment variables when running a hook. 18.568 This is useful to remember if you are writing a site-wide hook 18.569 that may be run by a number of different users with differing 18.570 @@ -560,7 +560,7 @@ 18.571 <sect2> 18.572 <title>Telling Mercurial to use an in-process hook</title> 18.573 18.574 - <para>The <filename role="special">~/.hgrc</filename> syntax 18.575 + <para id="x_22b">The <filename role="special">~/.hgrc</filename> syntax 18.576 for defining an in-process hook is slightly different than for 18.577 an executable hook. The value of the hook must start with the 18.578 text <quote><literal>python:</literal></quote>, and continue 18.579 @@ -568,19 +568,19 @@ 18.580 the hook's value. 18.581 </para> 18.582 18.583 - <para>The module in which a hook lives is automatically imported 18.584 + <para id="x_22c">The module in which a hook lives is automatically imported 18.585 when a hook is run. So long as you have the module name and 18.586 <envar>PYTHONPATH</envar> right, it should <quote>just 18.587 work</quote>. 18.588 </para> 18.589 18.590 - <para>The following <filename role="special">~/.hgrc</filename> 18.591 + <para id="x_22d">The following <filename role="special">~/.hgrc</filename> 18.592 example snippet illustrates the syntax and meaning of the 18.593 notions we just described. 18.594 </para> 18.595 <programlisting>[hooks] 18.596 commit.example = python:mymodule.submodule.myhook</programlisting> 18.597 - <para>When Mercurial runs the <literal>commit.example</literal> 18.598 + <para id="x_22e">When Mercurial runs the <literal>commit.example</literal> 18.599 hook, it imports <literal>mymodule.submodule</literal>, looks 18.600 for the callable object named <literal>myhook</literal>, and 18.601 calls it. 18.602 @@ -590,12 +590,12 @@ 18.603 <sect2> 18.604 <title>Writing an in-process hook</title> 18.605 18.606 - <para>The simplest in-process hook does nothing, but illustrates 18.607 + <para id="x_22f">The simplest in-process hook does nothing, but illustrates 18.608 the basic shape of the hook API: 18.609 </para> 18.610 <programlisting>def myhook(ui, repo, **kwargs): 18.611 pass</programlisting> 18.612 - <para>The first argument to a Python hook is always a <literal 18.613 + <para id="x_230">The first argument to a Python hook is always a <literal 18.614 role="py-mod-mercurial.ui">ui</literal> object. The second 18.615 is a repository object; at the moment, it is always an 18.616 instance of <literal 18.617 @@ -615,7 +615,7 @@ 18.618 <sect2> 18.619 <title>Writing meaningful commit messages</title> 18.620 18.621 - <para>It's hard to imagine a useful commit message being very 18.622 + <para id="x_231">It's hard to imagine a useful commit message being very 18.623 short. The simple <literal role="hook">pretxncommit</literal> 18.624 hook of the example below will prevent you from committing a 18.625 changeset with a message that is less than ten bytes long. 18.626 @@ -627,7 +627,7 @@ 18.627 <sect2> 18.628 <title>Checking for trailing whitespace</title> 18.629 18.630 - <para>An interesting use of a commit-related hook is to help you 18.631 + <para id="x_232">An interesting use of a commit-related hook is to help you 18.632 to write cleaner code. A simple example of <quote>cleaner 18.633 code</quote> is the dictum that a change should not add any 18.634 new lines of text that contain <quote>trailing 18.635 @@ -638,7 +638,7 @@ 18.636 prefer to get rid of it. 18.637 </para> 18.638 18.639 - <para>You can use either the <literal 18.640 + <para id="x_233">You can use either the <literal 18.641 role="hook">precommit</literal> or <literal 18.642 role="hook">pretxncommit</literal> hook to tell whether you 18.643 have a trailing whitespace problem. If you use the <literal 18.644 @@ -654,7 +654,7 @@ 18.645 seem right. 18.646 </para> 18.647 18.648 - <para>Should you choose the <literal 18.649 + <para id="x_234">Should you choose the <literal 18.650 role="hook">pretxncommit</literal> hook, the check won't 18.651 occur until just before the transaction for the commit 18.652 completes. This will allow you to check for problems only the 18.653 @@ -667,7 +667,7 @@ 18.654 18.655 &interaction.hook.ws.simple; 18.656 18.657 - <para>In this example, we introduce a simple <literal 18.658 + <para id="x_235">In this example, we introduce a simple <literal 18.659 role="hook">pretxncommit</literal> hook that checks for 18.660 trailing whitespace. This hook is short, but not very 18.661 helpful. It exits with an error status if a change adds a 18.662 @@ -678,7 +678,7 @@ 18.663 trailing whitespace cause problems. 18.664 </para> 18.665 18.666 - <para>The above version is much more complex, but also more 18.667 + <para id="x_236">The above version is much more complex, but also more 18.668 useful. It parses a unified diff to see if any lines add 18.669 trailing whitespace, and prints the name of the file and the 18.670 line number of each such occurrence. Even better, if the 18.671 @@ -692,7 +692,7 @@ 18.672 18.673 &interaction.hook.ws.better; 18.674 18.675 - <para>As a final aside, note in the example above the use of 18.676 + <para id="x_237">As a final aside, note in the example above the use of 18.677 <command>perl</command>'s in-place editing feature to get rid 18.678 of trailing whitespace from a file. This is concise and 18.679 useful enough that I will reproduce it here. 18.680 @@ -704,7 +704,7 @@ 18.681 <sect1> 18.682 <title>Bundled hooks</title> 18.683 18.684 - <para>Mercurial ships with several bundled hooks. You can find 18.685 + <para id="x_238">Mercurial ships with several bundled hooks. You can find 18.686 them in the <filename class="directory">hgext</filename> 18.687 directory of a Mercurial source tree. If you are using a 18.688 Mercurial binary package, the hooks will be located in the 18.689 @@ -716,7 +716,7 @@ 18.690 <title><literal role="hg-ext">acl</literal>&emdash;access 18.691 control for parts of a repository</title> 18.692 18.693 - <para>The <literal role="hg-ext">acl</literal> extension lets 18.694 + <para id="x_239">The <literal role="hg-ext">acl</literal> extension lets 18.695 you control which remote users are allowed to push changesets 18.696 to a networked server. You can protect any portion of a 18.697 repository (including the entire repo), so that a specific 18.698 @@ -724,7 +724,7 @@ 18.699 portion. 18.700 </para> 18.701 18.702 - <para>This extension implements access control based on the 18.703 + <para id="x_23a">This extension implements access control based on the 18.704 identity of the user performing a push, 18.705 <emphasis>not</emphasis> on who committed the changesets 18.706 they're pushing. It makes sense to use this hook only if you 18.707 @@ -737,7 +737,7 @@ 18.708 <title>Configuring the <literal role="hook">acl</literal> 18.709 hook</title> 18.710 18.711 - <para>In order to manage incoming changesets, the <literal 18.712 + <para id="x_23b">In order to manage incoming changesets, the <literal 18.713 role="hg-ext">acl</literal> hook must be used as a 18.714 <literal role="hook">pretxnchangegroup</literal> hook. This 18.715 lets it see which files are modified by each incoming 18.716 @@ -747,18 +747,18 @@ 18.717 <programlisting>[hooks] 18.718 pretxnchangegroup.acl = python:hgext.acl.hook</programlisting> 18.719 18.720 - <para>The <literal role="hg-ext">acl</literal> extension is 18.721 + <para id="x_23c">The <literal role="hg-ext">acl</literal> extension is 18.722 configured using three sections. 18.723 </para> 18.724 18.725 - <para>The <literal role="rc-acl">acl</literal> section has 18.726 + <para id="x_23d">The <literal role="rc-acl">acl</literal> section has 18.727 only one entry, <envar role="rc-item-acl">sources</envar>, 18.728 which lists the sources of incoming changesets that the hook 18.729 should pay attention to. You don't normally need to 18.730 configure this section. 18.731 </para> 18.732 <itemizedlist> 18.733 - <listitem><para><envar role="rc-item-acl">serve</envar>: 18.734 + <listitem><para id="x_23e"><envar role="rc-item-acl">serve</envar>: 18.735 Control incoming changesets that are arriving from a 18.736 remote repository over http or ssh. This is the default 18.737 value of <envar role="rc-item-acl">sources</envar>, and 18.738 @@ -766,23 +766,23 @@ 18.739 configuration item. 18.740 </para> 18.741 </listitem> 18.742 - <listitem><para><envar role="rc-item-acl">pull</envar>: 18.743 + <listitem><para id="x_23f"><envar role="rc-item-acl">pull</envar>: 18.744 Control incoming changesets that are arriving via a pull 18.745 from a local repository. 18.746 </para> 18.747 </listitem> 18.748 - <listitem><para><envar role="rc-item-acl">push</envar>: 18.749 + <listitem><para id="x_240"><envar role="rc-item-acl">push</envar>: 18.750 Control incoming changesets that are arriving via a push 18.751 from a local repository. 18.752 </para> 18.753 </listitem> 18.754 - <listitem><para><envar role="rc-item-acl">bundle</envar>: 18.755 + <listitem><para id="x_241"><envar role="rc-item-acl">bundle</envar>: 18.756 Control incoming changesets that are arriving from 18.757 another repository via a bundle. 18.758 </para> 18.759 </listitem></itemizedlist> 18.760 18.761 - <para>The <literal role="rc-acl.allow">acl.allow</literal> 18.762 + <para id="x_242">The <literal role="rc-acl.allow">acl.allow</literal> 18.763 section controls the users that are allowed to add 18.764 changesets to the repository. If this section is not 18.765 present, all users that are not explicitly denied are 18.766 @@ -791,13 +791,13 @@ 18.767 that all users are denied). 18.768 </para> 18.769 18.770 - <para>The <literal role="rc-acl.deny">acl.deny</literal> 18.771 + <para id="x_243">The <literal role="rc-acl.deny">acl.deny</literal> 18.772 section determines which users are denied from adding 18.773 changesets to the repository. If this section is not 18.774 present or is empty, no users are denied. 18.775 </para> 18.776 18.777 - <para>The syntaxes for the <literal 18.778 + <para id="x_244">The syntaxes for the <literal 18.779 role="rc-acl.allow">acl.allow</literal> and <literal 18.780 role="rc-acl.deny">acl.deny</literal> sections are 18.781 identical. On the left of each entry is a glob pattern that 18.782 @@ -805,7 +805,7 @@ 18.783 repository; on the right, a user name. 18.784 </para> 18.785 18.786 - <para>In the following example, the user 18.787 + <para id="x_245">In the following example, the user 18.788 <literal>docwriter</literal> can only push changes to the 18.789 <filename class="directory">docs</filename> subtree of the 18.790 repository, while <literal>intern</literal> can push changes 18.791 @@ -821,7 +821,7 @@ 18.792 <sect3> 18.793 <title>Testing and troubleshooting</title> 18.794 18.795 - <para>If you want to test the <literal 18.796 + <para id="x_246">If you want to test the <literal 18.797 role="hg-ext">acl</literal> hook, run it with Mercurial's 18.798 debugging output enabled. Since you'll probably be running 18.799 it on a server where it's not convenient (or sometimes 18.800 @@ -832,7 +832,7 @@ 18.801 </para> 18.802 <programlisting>[ui] 18.803 debug = true</programlisting> 18.804 - <para>With this enabled, the <literal 18.805 + <para id="x_247">With this enabled, the <literal 18.806 role="hg-ext">acl</literal> hook will print enough 18.807 information to let you figure out why it is allowing or 18.808 forbidding pushes from specific users. 18.809 @@ -845,14 +845,14 @@ 18.810 role="hg-ext">bugzilla</literal>&emdash;integration with 18.811 Bugzilla</title> 18.812 18.813 - <para>The <literal role="hg-ext">bugzilla</literal> extension 18.814 + <para id="x_248">The <literal role="hg-ext">bugzilla</literal> extension 18.815 adds a comment to a Bugzilla bug whenever it finds a reference 18.816 to that bug ID in a commit comment. You can install this hook 18.817 on a shared server, so that any time a remote user pushes 18.818 changes to this server, the hook gets run. 18.819 </para> 18.820 18.821 - <para>It adds a comment to the bug that looks like this (you can 18.822 + <para id="x_249">It adds a comment to the bug that looks like this (you can 18.823 configure the contents of the comment&emdash;see below): 18.824 </para> 18.825 <programlisting>Changeset aad8b264143a, made by Joe User 18.826 @@ -861,19 +861,19 @@ 18.827 http://hg.domain.com/frobnitz?cmd=changeset;node=aad8b264143a 18.828 Changeset description: Fix bug 10483 by guarding against some 18.829 NULL pointers</programlisting> 18.830 - <para>The value of this hook is that it automates the process of 18.831 + <para id="x_24a">The value of this hook is that it automates the process of 18.832 updating a bug any time a changeset refers to it. If you 18.833 configure the hook properly, it makes it easy for people to 18.834 browse straight from a Bugzilla bug to a changeset that refers 18.835 to that bug. 18.836 </para> 18.837 18.838 - <para>You can use the code in this hook as a starting point for 18.839 + <para id="x_24b">You can use the code in this hook as a starting point for 18.840 some more exotic Bugzilla integration recipes. Here are a few 18.841 possibilities: 18.842 </para> 18.843 <itemizedlist> 18.844 - <listitem><para>Require that every changeset pushed to the 18.845 + <listitem><para id="x_24c">Require that every changeset pushed to the 18.846 server have a valid bug ID in its commit comment. In this 18.847 case, you'd want to configure the hook as a <literal 18.848 role="hook">pretxncommit</literal> hook. This would 18.849 @@ -881,7 +881,7 @@ 18.850 IDs. 18.851 </para> 18.852 </listitem> 18.853 - <listitem><para>Allow incoming changesets to automatically 18.854 + <listitem><para id="x_24d">Allow incoming changesets to automatically 18.855 modify the <emphasis>state</emphasis> of a bug, as well as 18.856 simply adding a comment. For example, the hook could 18.857 recognise the string <quote>fixed bug 31337</quote> as 18.858 @@ -890,11 +890,11 @@ 18.859 </para> 18.860 </listitem></itemizedlist> 18.861 18.862 - <sect3 id="sec.hook.bugzilla.config"> 18.863 + <sect3 id="sec:hook:bugzilla:config"> 18.864 <title>Configuring the <literal role="hook">bugzilla</literal> 18.865 hook</title> 18.866 18.867 - <para>You should configure this hook in your server's 18.868 + <para id="x_24e">You should configure this hook in your server's 18.869 <filename role="special">~/.hgrc</filename> as an <literal 18.870 role="hook">incoming</literal> hook, for example as 18.871 follows: 18.872 @@ -902,25 +902,25 @@ 18.873 <programlisting>[hooks] 18.874 incoming.bugzilla = python:hgext.bugzilla.hook</programlisting> 18.875 18.876 - <para>Because of the specialised nature of this hook, and 18.877 + <para id="x_24f">Because of the specialised nature of this hook, and 18.878 because Bugzilla was not written with this kind of 18.879 integration in mind, configuring this hook is a somewhat 18.880 involved process. 18.881 </para> 18.882 18.883 - <para>Before you begin, you must install the MySQL bindings 18.884 + <para id="x_250">Before you begin, you must install the MySQL bindings 18.885 for Python on the host(s) where you'll be running the hook. 18.886 If this is not available as a binary package for your 18.887 system, you can download it from 18.888 <citation>web:mysql-python</citation>. 18.889 </para> 18.890 18.891 - <para>Configuration information for this hook lives in the 18.892 + <para id="x_251">Configuration information for this hook lives in the 18.893 <literal role="rc-bugzilla">bugzilla</literal> section of 18.894 your <filename role="special">~/.hgrc</filename>. 18.895 </para> 18.896 <itemizedlist> 18.897 - <listitem><para><envar 18.898 + <listitem><para id="x_252"><envar 18.899 role="rc-item-bugzilla">version</envar>: The version 18.900 of Bugzilla installed on the server. The database 18.901 schema that Bugzilla uses changes occasionally, so this 18.902 @@ -929,14 +929,14 @@ 18.903 <literal>2.16</literal>. 18.904 </para> 18.905 </listitem> 18.906 - <listitem><para><envar role="rc-item-bugzilla">host</envar>: 18.907 + <listitem><para id="x_253"><envar role="rc-item-bugzilla">host</envar>: 18.908 The hostname of the MySQL server that stores your 18.909 Bugzilla data. The database must be configured to allow 18.910 connections from whatever host you are running the 18.911 <literal role="hook">bugzilla</literal> hook on. 18.912 </para> 18.913 </listitem> 18.914 - <listitem><para><envar role="rc-item-bugzilla">user</envar>: 18.915 + <listitem><para id="x_254"><envar role="rc-item-bugzilla">user</envar>: 18.916 The username with which to connect to the MySQL server. 18.917 The database must be configured to allow this user to 18.918 connect from whatever host you are running the <literal 18.919 @@ -947,7 +947,7 @@ 18.920 MySQL database. 18.921 </para> 18.922 </listitem> 18.923 - <listitem><para><envar 18.924 + <listitem><para id="x_255"><envar 18.925 role="rc-item-bugzilla">password</envar>: The MySQL 18.926 password for the user you configured above. This is 18.927 stored as plain text, so you should make sure that 18.928 @@ -956,14 +956,14 @@ 18.929 store this information. 18.930 </para> 18.931 </listitem> 18.932 - <listitem><para><envar role="rc-item-bugzilla">db</envar>: 18.933 + <listitem><para id="x_256"><envar role="rc-item-bugzilla">db</envar>: 18.934 The name of the Bugzilla database on the MySQL server. 18.935 The default value of this item is 18.936 <literal>bugs</literal>, which is the standard name of 18.937 the MySQL database where Bugzilla stores its data. 18.938 </para> 18.939 </listitem> 18.940 - <listitem><para><envar 18.941 + <listitem><para id="x_257"><envar 18.942 role="rc-item-bugzilla">notify</envar>: If you want 18.943 Bugzilla to send out a notification email to subscribers 18.944 after this hook has added a comment to a bug, you will 18.945 @@ -976,7 +976,7 @@ 18.946 <programlisting>cd /var/www/html/bugzilla && 18.947 ./processmail %s nobody@nowhere.com</programlisting> 18.948 </listitem> 18.949 - <listitem><para> The Bugzilla 18.950 + <listitem><para id="x_258"> The Bugzilla 18.951 <literal>processmail</literal> program expects to be 18.952 given a bug ID (the hook replaces 18.953 <quote><literal>%s</literal></quote> with the bug ID) 18.954 @@ -993,7 +993,7 @@ 18.955 <sect3> 18.956 <title>Mapping committer names to Bugzilla user names</title> 18.957 18.958 - <para>By default, the <literal 18.959 + <para id="x_259">By default, the <literal 18.960 role="hg-ext">bugzilla</literal> hook tries to use the 18.961 email address of a changeset's committer as the Bugzilla 18.962 user name with which to update a bug. If this does not suit 18.963 @@ -1002,14 +1002,14 @@ 18.964 role="rc-usermap">usermap</literal> section. 18.965 </para> 18.966 18.967 - <para>Each item in the <literal 18.968 + <para id="x_25a">Each item in the <literal 18.969 role="rc-usermap">usermap</literal> section contains an 18.970 email address on the left, and a Bugzilla user name on the 18.971 right. 18.972 </para> 18.973 <programlisting>[usermap] 18.974 jane.user@example.com = jane</programlisting> 18.975 - <para>You can either keep the <literal 18.976 + <para id="x_25b">You can either keep the <literal 18.977 role="rc-usermap">usermap</literal> data in a normal 18.978 <filename role="special">~/.hgrc</filename>, or tell the 18.979 <literal role="hg-ext">bugzilla</literal> hook to read the 18.980 @@ -1025,7 +1025,7 @@ 18.981 <programlisting># regular hgrc file refers to external usermap file 18.982 [bugzilla] 18.983 usermap = /home/hg/repos/userdata/bugzilla-usermap.conf</programlisting> 18.984 - <para>While the <filename>usermap</filename> file that it 18.985 + <para id="x_25c">While the <filename>usermap</filename> file that it 18.986 refers to might look like this: 18.987 </para> 18.988 <programlisting># bugzilla-usermap.conf - inside a hg repository 18.989 @@ -1035,14 +1035,14 @@ 18.990 <sect3> 18.991 <title>Configuring the text that gets added to a bug</title> 18.992 18.993 - <para>You can configure the text that this hook adds as a 18.994 + <para id="x_25d">You can configure the text that this hook adds as a 18.995 comment; you specify it in the form of a Mercurial template. 18.996 Several <filename role="special">~/.hgrc</filename> entries 18.997 (still in the <literal role="rc-bugzilla">bugzilla</literal> 18.998 section) control this behaviour. 18.999 </para> 18.1000 <itemizedlist> 18.1001 - <listitem><para><literal>strip</literal>: The number of 18.1002 + <listitem><para id="x_25e"><literal>strip</literal>: The number of 18.1003 leading path elements to strip from a repository's path 18.1004 name to construct a partial path for a URL. For example, 18.1005 if the repositories on your server live under <filename 18.1006 @@ -1056,7 +1056,7 @@ 18.1007 expanding a template, as <literal>webroot</literal>. 18.1008 </para> 18.1009 </listitem> 18.1010 - <listitem><para><literal>template</literal>: The text of the 18.1011 + <listitem><para id="x_25f"><literal>template</literal>: The text of the 18.1012 template to use. In addition to the usual 18.1013 changeset-related variables, this template can use 18.1014 <literal>hgweb</literal> (the value of the 18.1015 @@ -1066,7 +1066,7 @@ 18.1016 </para> 18.1017 </listitem></itemizedlist> 18.1018 18.1019 - <para>In addition, you can add a <envar 18.1020 + <para id="x_260">In addition, you can add a <envar 18.1021 role="rc-item-web">baseurl</envar> item to the <literal 18.1022 role="rc-web">web</literal> section of your <filename 18.1023 role="special">~/.hgrc</filename>. The <literal 18.1024 @@ -1078,24 +1078,24 @@ 18.1025 <programlisting>[web] 18.1026 baseurl = http://hg.domain.com/</programlisting> 18.1027 18.1028 - <para>Here is an example set of <literal 18.1029 + <para id="x_261">Here is an example set of <literal 18.1030 role="hg-ext">bugzilla</literal> hook config information. 18.1031 </para> 18.1032 18.1033 - <programlisting>&ch10-bugzilla-config.lst;</programlisting> 18.1034 + &ch10-bugzilla-config.lst; 18.1035 18.1036 </sect3> 18.1037 <sect3> 18.1038 <title>Testing and troubleshooting</title> 18.1039 18.1040 - <para>The most common problems with configuring the <literal 18.1041 + <para id="x_262">The most common problems with configuring the <literal 18.1042 role="hg-ext">bugzilla</literal> hook relate to running 18.1043 Bugzilla's <filename>processmail</filename> script and 18.1044 mapping committer names to user names. 18.1045 </para> 18.1046 18.1047 - <para>Recall from section <xref 18.1048 - linkend="sec.hook.bugzilla.config"/> above that the user 18.1049 + <para id="x_263">Recall from <xref 18.1050 + linkend="sec:hook:bugzilla:config"/> above that the user 18.1051 that runs the Mercurial process on the server is also the 18.1052 one that will run the <filename>processmail</filename> 18.1053 script. The <filename>processmail</filename> script 18.1054 @@ -1105,19 +1105,19 @@ 18.1055 under. 18.1056 </para> 18.1057 18.1058 - <para>You can cause <filename>processmail</filename> to be run 18.1059 + <para id="x_264">You can cause <filename>processmail</filename> to be run 18.1060 with the suitable user's identity using the 18.1061 <command>sudo</command> command. Here is an example entry 18.1062 for a <filename>sudoers</filename> file. 18.1063 </para> 18.1064 <programlisting>hg_user = (httpd_user) 18.1065 NOPASSWD: /var/www/html/bugzilla/processmail-wrapper %s</programlisting> 18.1066 - <para>This allows the <literal>hg_user</literal> user to run a 18.1067 + <para id="x_265">This allows the <literal>hg_user</literal> user to run a 18.1068 <filename>processmail-wrapper</filename> program under the 18.1069 identity of <literal>httpd_user</literal>. 18.1070 </para> 18.1071 18.1072 - <para>This indirection through a wrapper script is necessary, 18.1073 + <para id="x_266">This indirection through a wrapper script is necessary, 18.1074 because <filename>processmail</filename> expects to be run 18.1075 with its current directory set to wherever you installed 18.1076 Bugzilla; you can't specify that kind of constraint in a 18.1077 @@ -1126,18 +1126,18 @@ 18.1078 </para> 18.1079 <programlisting>#!/bin/sh 18.1080 cd `dirname $0` && ./processmail "$1" nobody@example.com</programlisting> 18.1081 - <para>It doesn't seem to matter what email address you pass to 18.1082 + <para id="x_267">It doesn't seem to matter what email address you pass to 18.1083 <filename>processmail</filename>. 18.1084 </para> 18.1085 18.1086 - <para>If your <literal role="rc-usermap">usermap</literal> is 18.1087 + <para id="x_268">If your <literal role="rc-usermap">usermap</literal> is 18.1088 not set up correctly, users will see an error message from 18.1089 the <literal role="hg-ext">bugzilla</literal> hook when they 18.1090 push changes to the server. The error message will look 18.1091 like this: 18.1092 </para> 18.1093 <programlisting>cannot find bugzilla user id for john.q.public@example.com</programlisting> 18.1094 - <para>What this means is that the committer's address, 18.1095 + <para id="x_269">What this means is that the committer's address, 18.1096 <literal>john.q.public@example.com</literal>, is not a valid 18.1097 Bugzilla user name, nor does it have an entry in your 18.1098 <literal role="rc-usermap">usermap</literal> that maps it to 18.1099 @@ -1150,7 +1150,7 @@ 18.1100 <title><literal role="hg-ext">notify</literal>&emdash;send email 18.1101 notifications</title> 18.1102 18.1103 - <para>Although Mercurial's built-in web server provides RSS 18.1104 + <para id="x_26a">Although Mercurial's built-in web server provides RSS 18.1105 feeds of changes in every repository, many people prefer to 18.1106 receive change notifications via email. The <literal 18.1107 role="hg-ext">notify</literal> hook lets you send out 18.1108 @@ -1158,13 +1158,13 @@ 18.1109 arrive that those subscribers are interested in. 18.1110 </para> 18.1111 18.1112 - <para>As with the <literal role="hg-ext">bugzilla</literal> 18.1113 + <para id="x_26b">As with the <literal role="hg-ext">bugzilla</literal> 18.1114 hook, the <literal role="hg-ext">notify</literal> hook is 18.1115 template-driven, so you can customise the contents of the 18.1116 notification messages that it sends. 18.1117 </para> 18.1118 18.1119 - <para>By default, the <literal role="hg-ext">notify</literal> 18.1120 + <para id="x_26c">By default, the <literal role="hg-ext">notify</literal> 18.1121 hook includes a diff of every changeset that it sends out; you 18.1122 can limit the size of the diff, or turn this feature off 18.1123 entirely. It is useful for letting subscribers review changes 18.1124 @@ -1175,7 +1175,7 @@ 18.1125 <title>Configuring the <literal role="hg-ext">notify</literal> 18.1126 hook</title> 18.1127 18.1128 - <para>You can set up the <literal 18.1129 + <para id="x_26d">You can set up the <literal 18.1130 role="hg-ext">notify</literal> hook to send one email 18.1131 message per incoming changeset, or one per incoming group of 18.1132 changesets (all those that arrived in a single pull or 18.1133 @@ -1187,12 +1187,12 @@ 18.1134 # send one email per change 18.1135 incoming.notify = python:hgext.notify.hook</programlisting> 18.1136 18.1137 - <para>Configuration information for this hook lives in the 18.1138 + <para id="x_26e">Configuration information for this hook lives in the 18.1139 <literal role="rc-notify">notify</literal> section of a 18.1140 <filename role="special">~/.hgrc</filename> file. 18.1141 </para> 18.1142 <itemizedlist> 18.1143 - <listitem><para><envar role="rc-item-notify">test</envar>: 18.1144 + <listitem><para id="x_26f"><envar role="rc-item-notify">test</envar>: 18.1145 By default, this hook does not send out email at all; 18.1146 instead, it prints the message that it 18.1147 <emphasis>would</emphasis> send. Set this item to 18.1148 @@ -1204,7 +1204,7 @@ 18.1149 notifications while you debug your configuration. 18.1150 </para> 18.1151 </listitem> 18.1152 - <listitem><para><envar role="rc-item-notify">config</envar>: 18.1153 + <listitem><para id="x_270"><envar role="rc-item-notify">config</envar>: 18.1154 The path to a configuration file that contains 18.1155 subscription information. This is kept separate from 18.1156 the main <filename role="special">~/.hgrc</filename> so 18.1157 @@ -1213,7 +1213,7 @@ 18.1158 subscriptions, and push the changes back to your server. 18.1159 </para> 18.1160 </listitem> 18.1161 - <listitem><para><envar role="rc-item-notify">strip</envar>: 18.1162 + <listitem><para id="x_271"><envar role="rc-item-notify">strip</envar>: 18.1163 The number of leading path separator characters to strip 18.1164 from a repository's path, when deciding whether a 18.1165 repository has subscribers. For example, if the 18.1166 @@ -1230,13 +1230,13 @@ 18.1167 match subscribers against that. 18.1168 </para> 18.1169 </listitem> 18.1170 - <listitem><para><envar 18.1171 + <listitem><para id="x_272"><envar 18.1172 role="rc-item-notify">template</envar>: The template 18.1173 text to use when sending messages. This specifies both 18.1174 the contents of the message header and its body. 18.1175 </para> 18.1176 </listitem> 18.1177 - <listitem><para><envar 18.1178 + <listitem><para id="x_273"><envar 18.1179 role="rc-item-notify">maxdiff</envar>: The maximum 18.1180 number of lines of diff data to append to the end of a 18.1181 message. If a diff is longer than this, it is 18.1182 @@ -1245,41 +1245,40 @@ 18.1183 emails. 18.1184 </para> 18.1185 </listitem> 18.1186 - <listitem><para><envar 18.1187 + <listitem><para id="x_274"><envar 18.1188 role="rc-item-notify">sources</envar>: A list of 18.1189 sources of changesets to consider. This lets you limit 18.1190 <literal role="hg-ext">notify</literal> to only sending 18.1191 out email about changes that remote users pushed into 18.1192 - this repository via a server, for example. See section 18.1193 - <xref 18.1194 - linkend="sec.hook.sources"/> for the sources you can 18.1195 - specify here. 18.1196 + this repository via a server, for example. See 18.1197 + <xref linkend="sec:hook:sources"/> for the sources you 18.1198 + can specify here. 18.1199 </para> 18.1200 </listitem></itemizedlist> 18.1201 18.1202 - <para>If you set the <envar role="rc-item-web">baseurl</envar> 18.1203 + <para id="x_275">If you set the <envar role="rc-item-web">baseurl</envar> 18.1204 item in the <literal role="rc-web">web</literal> section, 18.1205 you can use it in a template; it will be available as 18.1206 <literal>webroot</literal>. 18.1207 </para> 18.1208 18.1209 - <para>Here is an example set of <literal 18.1210 + <para id="x_276">Here is an example set of <literal 18.1211 role="hg-ext">notify</literal> configuration information. 18.1212 </para> 18.1213 18.1214 - <programlisting>&ch10-notify-config.lst;</programlisting> 18.1215 - 18.1216 - <para>This will produce a message that looks like the 18.1217 + &ch10-notify-config.lst; 18.1218 + 18.1219 + <para id="x_277">This will produce a message that looks like the 18.1220 following: 18.1221 </para> 18.1222 18.1223 - <programlisting>&ch10-notify-config-mail.lst;</programlisting> 18.1224 + &ch10-notify-config-mail.lst; 18.1225 18.1226 </sect3> 18.1227 <sect3> 18.1228 <title>Testing and troubleshooting</title> 18.1229 18.1230 - <para>Do not forget that by default, the <literal 18.1231 + <para id="x_278">Do not forget that by default, the <literal 18.1232 role="hg-ext">notify</literal> extension <emphasis>will not 18.1233 send any mail</emphasis> until you explicitly configure it to do so, 18.1234 by setting <envar role="rc-item-notify">test</envar> to 18.1235 @@ -1290,17 +1289,17 @@ 18.1236 </sect3> 18.1237 </sect2> 18.1238 </sect1> 18.1239 - <sect1 id="sec.hook.ref"> 18.1240 + <sect1 id="sec:hook:ref"> 18.1241 <title>Information for writers of hooks</title> 18.1242 18.1243 <sect2> 18.1244 <title>In-process hook execution</title> 18.1245 18.1246 - <para>An in-process hook is called with arguments of the 18.1247 + <para id="x_279">An in-process hook is called with arguments of the 18.1248 following form: 18.1249 </para> 18.1250 <programlisting>def myhook(ui, repo, **kwargs): pass</programlisting> 18.1251 - <para>The <literal>ui</literal> parameter is a <literal 18.1252 + <para id="x_27a">The <literal>ui</literal> parameter is a <literal 18.1253 role="py-mod-mercurial.ui">ui</literal> object. The 18.1254 <literal>repo</literal> parameter is a <literal 18.1255 role="py-mod-mercurial.localrepo">localrepository</literal> 18.1256 @@ -1309,38 +1308,38 @@ 18.1257 being invoked, with the following common features: 18.1258 </para> 18.1259 <itemizedlist> 18.1260 - <listitem><para>If a parameter is named 18.1261 + <listitem><para id="x_27b">If a parameter is named 18.1262 <literal>node</literal> or <literal>parentN</literal>, it 18.1263 will contain a hexadecimal changeset ID. The empty string 18.1264 is used to represent <quote>null changeset ID</quote> 18.1265 instead of a string of zeroes. 18.1266 </para> 18.1267 </listitem> 18.1268 - <listitem><para>If a parameter is named 18.1269 + <listitem><para id="x_27c">If a parameter is named 18.1270 <literal>url</literal>, it will contain the URL of a 18.1271 remote repository, if that can be determined. 18.1272 </para> 18.1273 </listitem> 18.1274 - <listitem><para>Boolean-valued parameters are represented as 18.1275 + <listitem><para id="x_27d">Boolean-valued parameters are represented as 18.1276 Python <literal>bool</literal> objects. 18.1277 </para> 18.1278 </listitem></itemizedlist> 18.1279 18.1280 - <para>An in-process hook is called without a change to the 18.1281 + <para id="x_27e">An in-process hook is called without a change to the 18.1282 process's working directory (unlike external hooks, which are 18.1283 run in the root of the repository). It must not change the 18.1284 process's working directory, or it will cause any calls it 18.1285 makes into the Mercurial API to fail. 18.1286 </para> 18.1287 18.1288 - <para>If a hook returns a boolean <quote>false</quote> value, it 18.1289 + <para id="x_27f">If a hook returns a boolean <quote>false</quote> value, it 18.1290 is considered to have succeeded. If it returns a boolean 18.1291 <quote>true</quote> value or raises an exception, it is 18.1292 considered to have failed. A useful way to think of the 18.1293 calling convention is <quote>tell me if you fail</quote>. 18.1294 </para> 18.1295 18.1296 - <para>Note that changeset IDs are passed into Python hooks as 18.1297 + <para id="x_280">Note that changeset IDs are passed into Python hooks as 18.1298 hexadecimal strings, not the binary hashes that Mercurial's 18.1299 APIs normally use. To convert a hash from hex to binary, use 18.1300 the <literal>bin</literal> function. 18.1301 @@ -1350,7 +1349,7 @@ 18.1302 <sect2> 18.1303 <title>External hook execution</title> 18.1304 18.1305 - <para>An external hook is passed to the shell of the user 18.1306 + <para id="x_281">An external hook is passed to the shell of the user 18.1307 running Mercurial. Features of that shell, such as variable 18.1308 substitution and command redirection, are available. The hook 18.1309 is run in the root directory of the repository (unlike 18.1310 @@ -1358,7 +1357,7 @@ 18.1311 Mercurial was run in). 18.1312 </para> 18.1313 18.1314 - <para>Hook parameters are passed to the hook as environment 18.1315 + <para id="x_282">Hook parameters are passed to the hook as environment 18.1316 variables. Each environment variable's name is converted in 18.1317 upper case and prefixed with the string 18.1318 <quote><literal>HG_</literal></quote>. For example, if the 18.1319 @@ -1367,7 +1366,7 @@ 18.1320 parameter will be <quote><literal>HG_NODE</literal></quote>. 18.1321 </para> 18.1322 18.1323 - <para>A boolean parameter is represented as the string 18.1324 + <para id="x_283">A boolean parameter is represented as the string 18.1325 <quote><literal>1</literal></quote> for <quote>true</quote>, 18.1326 <quote><literal>0</literal></quote> for <quote>false</quote>. 18.1327 If an environment variable is named <envar>HG_NODE</envar>, 18.1328 @@ -1379,7 +1378,7 @@ 18.1329 URL of a remote repository, if that can be determined. 18.1330 </para> 18.1331 18.1332 - <para>If a hook exits with a status of zero, it is considered to 18.1333 + <para id="x_284">If a hook exits with a status of zero, it is considered to 18.1334 have succeeded. If it exits with a non-zero status, it is 18.1335 considered to have failed. 18.1336 </para> 18.1337 @@ -1388,7 +1387,7 @@ 18.1338 <sect2> 18.1339 <title>Finding out where changesets come from</title> 18.1340 18.1341 - <para>A hook that involves the transfer of changesets between a 18.1342 + <para id="x_285">A hook that involves the transfer of changesets between a 18.1343 local repository and another may be able to find out 18.1344 information about the <quote>far side</quote>. Mercurial 18.1345 knows <emphasis>how</emphasis> changes are being transferred, 18.1346 @@ -1396,10 +1395,10 @@ 18.1347 transferred to or from. 18.1348 </para> 18.1349 18.1350 - <sect3 id="sec.hook.sources"> 18.1351 + <sect3 id="sec:hook:sources"> 18.1352 <title>Sources of changesets</title> 18.1353 18.1354 - <para>Mercurial will tell a hook what means are, or were, used 18.1355 + <para id="x_286">Mercurial will tell a hook what means are, or were, used 18.1356 to transfer changesets between repositories. This is 18.1357 provided by Mercurial in a Python parameter named 18.1358 <literal>source</literal>, or an environment variable named 18.1359 @@ -1407,32 +1406,32 @@ 18.1360 </para> 18.1361 18.1362 <itemizedlist> 18.1363 - <listitem><para><literal>serve</literal>: Changesets are 18.1364 + <listitem><para id="x_287"><literal>serve</literal>: Changesets are 18.1365 transferred to or from a remote repository over http or 18.1366 ssh. 18.1367 </para> 18.1368 </listitem> 18.1369 - <listitem><para><literal>pull</literal>: Changesets are 18.1370 + <listitem><para id="x_288"><literal>pull</literal>: Changesets are 18.1371 being transferred via a pull from one repository into 18.1372 another. 18.1373 </para> 18.1374 </listitem> 18.1375 - <listitem><para><literal>push</literal>: Changesets are 18.1376 + <listitem><para id="x_289"><literal>push</literal>: Changesets are 18.1377 being transferred via a push from one repository into 18.1378 another. 18.1379 </para> 18.1380 </listitem> 18.1381 - <listitem><para><literal>bundle</literal>: Changesets are 18.1382 + <listitem><para id="x_28a"><literal>bundle</literal>: Changesets are 18.1383 being transferred to or from a bundle. 18.1384 </para> 18.1385 </listitem></itemizedlist> 18.1386 18.1387 </sect3> 18.1388 - <sect3 id="sec.hook.url"> 18.1389 + <sect3 id="sec:hook:url"> 18.1390 <title>Where changes are going&emdash;remote repository 18.1391 URLs</title> 18.1392 18.1393 - <para>When possible, Mercurial will tell a hook the location 18.1394 + <para id="x_28b">When possible, Mercurial will tell a hook the location 18.1395 of the <quote>far side</quote> of an activity that transfers 18.1396 changeset data between repositories. This is provided by 18.1397 Mercurial in a Python parameter named 18.1398 @@ -1440,26 +1439,26 @@ 18.1399 <envar>HG_URL</envar>. 18.1400 </para> 18.1401 18.1402 - <para>This information is not always known. If a hook is 18.1403 + <para id="x_28c">This information is not always known. If a hook is 18.1404 invoked in a repository that is being served via http or 18.1405 ssh, Mercurial cannot tell where the remote repository is, 18.1406 but it may know where the client is connecting from. In 18.1407 such cases, the URL will take one of the following forms: 18.1408 </para> 18.1409 <itemizedlist> 18.1410 - <listitem><para><literal>remote:ssh:1.2.3.4</literal>&emdash;remote 18.1411 + <listitem><para id="x_28d"><literal>remote:ssh:1.2.3.4</literal>&emdash;remote 18.1412 ssh client, at the IP address 18.1413 <literal>1.2.3.4</literal>. 18.1414 </para> 18.1415 </listitem> 18.1416 - <listitem><para><literal>remote:http:1.2.3.4</literal>&emdash;remote 18.1417 + <listitem><para id="x_28e"><literal>remote:http:1.2.3.4</literal>&emdash;remote 18.1418 http client, at the IP address 18.1419 <literal>1.2.3.4</literal>. If the client is using SSL, 18.1420 this will be of the form 18.1421 <literal>remote:https:1.2.3.4</literal>. 18.1422 </para> 18.1423 </listitem> 18.1424 - <listitem><para>Empty&emdash;no information could be 18.1425 + <listitem><para id="x_28f">Empty&emdash;no information could be 18.1426 discovered about the remote client. 18.1427 </para> 18.1428 </listitem></itemizedlist> 18.1429 @@ -1470,11 +1469,11 @@ 18.1430 <sect1> 18.1431 <title>Hook reference</title> 18.1432 18.1433 - <sect2 id="sec.hook.changegroup"> 18.1434 + <sect2 id="sec:hook:changegroup"> 18.1435 <title><literal role="hook">changegroup</literal>&emdash;after 18.1436 remote changesets added</title> 18.1437 18.1438 - <para>This hook is run after a group of pre-existing changesets 18.1439 + <para id="x_290">This hook is run after a group of pre-existing changesets 18.1440 has been added to the repository, for example via a <command 18.1441 role="hg-cmd">hg pull</command> or <command role="hg-cmd">hg 18.1442 unbundle</command>. This hook is run once per operation 18.1443 @@ -1484,16 +1483,16 @@ 18.1444 arrive in a group. 18.1445 </para> 18.1446 18.1447 - <para>Some possible uses for this hook include kicking off an 18.1448 + <para id="x_291">Some possible uses for this hook include kicking off an 18.1449 automated build or test of the added changesets, updating a 18.1450 bug database, or notifying subscribers that a repository 18.1451 contains new changes. 18.1452 </para> 18.1453 18.1454 - <para>Parameters to this hook: 18.1455 + <para id="x_292">Parameters to this hook: 18.1456 </para> 18.1457 <itemizedlist> 18.1458 - <listitem><para><literal>node</literal>: A changeset ID. The 18.1459 + <listitem><para id="x_293"><literal>node</literal>: A changeset ID. The 18.1460 changeset ID of the first changeset in the group that was 18.1461 added. All changesets between this and 18.1462 <literal role="tag">tip</literal>, inclusive, were added by a single 18.1463 @@ -1502,130 +1501,131 @@ 18.1464 role="hg-cmd">hg unbundle</command>. 18.1465 </para> 18.1466 </listitem> 18.1467 - <listitem><para><literal>source</literal>: A string. The 18.1468 - source of these changes. See section <xref 18.1469 - linkend="sec.hook.sources"/> for details. 18.1470 - </para> 18.1471 - </listitem> 18.1472 - <listitem><para><literal>url</literal>: A URL. The location 18.1473 - of the remote repository, if known. See section <xref 18.1474 - linkend="sec.hook.url"/> for more 18.1475 - information. 18.1476 + <listitem><para id="x_294"><literal>source</literal>: A 18.1477 + string. The source of these changes. See <xref 18.1478 + linkend="sec:hook:sources"/> for details. 18.1479 + </para> 18.1480 + </listitem> 18.1481 + <listitem><para id="x_295"><literal>url</literal>: A URL. The 18.1482 + location of the remote repository, if known. See <xref 18.1483 + linkend="sec:hook:url"/> for more information. 18.1484 </para> 18.1485 </listitem></itemizedlist> 18.1486 18.1487 - <para>See also: <literal role="hook">incoming</literal> (section 18.1488 - <xref linkend="sec.hook.incoming"/>), <literal 18.1489 - role="hook">prechangegroup</literal> (section <xref 18.1490 - linkend="sec.hook.prechangegroup"/>), <literal 18.1491 - role="hook">pretxnchangegroup</literal> (section <xref 18.1492 - linkend="sec.hook.pretxnchangegroup"/>) 18.1493 - </para> 18.1494 - 18.1495 - </sect2> 18.1496 - <sect2 id="sec.hook.commit"> 18.1497 + <para id="x_296">See also: <literal 18.1498 + role="hook">incoming</literal> (<xref 18.1499 + linkend="sec:hook:incoming"/>), <literal 18.1500 + role="hook">prechangegroup</literal> (<xref 18.1501 + linkend="sec:hook:prechangegroup"/>), <literal 18.1502 + role="hook">pretxnchangegroup</literal> (<xref 18.1503 + linkend="sec:hook:pretxnchangegroup"/>) 18.1504 + </para> 18.1505 + 18.1506 + </sect2> 18.1507 + <sect2 id="sec:hook:commit"> 18.1508 <title><literal role="hook">commit</literal>&emdash;after a new 18.1509 changeset is created</title> 18.1510 18.1511 - <para>This hook is run after a new changeset has been created. 18.1512 - </para> 18.1513 - 18.1514 - <para>Parameters to this hook: 18.1515 + <para id="x_297">This hook is run after a new changeset has been created. 18.1516 + </para> 18.1517 + 18.1518 + <para id="x_298">Parameters to this hook: 18.1519 </para> 18.1520 <itemizedlist> 18.1521 - <listitem><para><literal>node</literal>: A changeset ID. The 18.1522 + <listitem><para id="x_299"><literal>node</literal>: A changeset ID. The 18.1523 changeset ID of the newly committed changeset. 18.1524 </para> 18.1525 </listitem> 18.1526 - <listitem><para><literal>parent1</literal>: A changeset ID. 18.1527 + <listitem><para id="x_29a"><literal>parent1</literal>: A changeset ID. 18.1528 The changeset ID of the first parent of the newly 18.1529 committed changeset. 18.1530 </para> 18.1531 </listitem> 18.1532 - <listitem><para><literal>parent2</literal>: A changeset ID. 18.1533 + <listitem><para id="x_29b"><literal>parent2</literal>: A changeset ID. 18.1534 The changeset ID of the second parent of the newly 18.1535 committed changeset. 18.1536 </para> 18.1537 </listitem></itemizedlist> 18.1538 18.1539 - <para>See also: <literal role="hook">precommit</literal> 18.1540 - (section <xref linkend="sec.hook.precommit"/>), <literal 18.1541 - role="hook">pretxncommit</literal> (section <xref 18.1542 - linkend="sec.hook.pretxncommit"/>) 18.1543 - </para> 18.1544 - 18.1545 - </sect2> 18.1546 - <sect2 id="sec.hook.incoming"> 18.1547 + <para id="x_29c">See also: <literal 18.1548 + role="hook">precommit</literal> (<xref 18.1549 + linkend="sec:hook:precommit"/>), <literal 18.1550 + role="hook">pretxncommit</literal> (<xref 18.1551 + linkend="sec:hook:pretxncommit"/>) 18.1552 + </para> 18.1553 + 18.1554 + </sect2> 18.1555 + <sect2 id="sec:hook:incoming"> 18.1556 <title><literal role="hook">incoming</literal>&emdash;after one 18.1557 remote changeset is added</title> 18.1558 18.1559 - <para>This hook is run after a pre-existing changeset has been 18.1560 + <para id="x_29d">This hook is run after a pre-existing changeset has been 18.1561 added to the repository, for example via a <command 18.1562 role="hg-cmd">hg push</command>. If a group of changesets 18.1563 was added in a single operation, this hook is called once for 18.1564 each added changeset. 18.1565 </para> 18.1566 18.1567 - <para>You can use this hook for the same purposes as the 18.1568 - <literal role="hook">changegroup</literal> hook (section <xref 18.1569 - linkend="sec.hook.changegroup"/>); it's simply 18.1570 - more convenient sometimes to run a hook once per group of 18.1571 + <para id="x_29e">You can use this hook for the same purposes as 18.1572 + the <literal role="hook">changegroup</literal> hook (<xref 18.1573 + linkend="sec:hook:changegroup"/>); it's simply more 18.1574 + convenient sometimes to run a hook once per group of 18.1575 changesets, while other times it's handier once per changeset. 18.1576 </para> 18.1577 18.1578 - <para>Parameters to this hook: 18.1579 + <para id="x_29f">Parameters to this hook: 18.1580 </para> 18.1581 <itemizedlist> 18.1582 - <listitem><para><literal>node</literal>: A changeset ID. The 18.1583 + <listitem><para id="x_2a0"><literal>node</literal>: A changeset ID. The 18.1584 ID of the newly added changeset. 18.1585 </para> 18.1586 </listitem> 18.1587 - <listitem><para><literal>source</literal>: A string. The 18.1588 - source of these changes. See section <xref 18.1589 - linkend="sec.hook.sources"/> for details. 18.1590 - </para> 18.1591 - </listitem> 18.1592 - <listitem><para><literal>url</literal>: A URL. The location 18.1593 - of the remote repository, if known. See section <xref 18.1594 - linkend="sec.hook.url"/> for more 18.1595 - information. 18.1596 + <listitem><para id="x_2a1"><literal>source</literal>: A 18.1597 + string. The source of these changes. See <xref 18.1598 + linkend="sec:hook:sources"/> for details. 18.1599 + </para> 18.1600 + </listitem> 18.1601 + <listitem><para id="x_2a2"><literal>url</literal>: A URL. The 18.1602 + location of the remote repository, if known. See <xref 18.1603 + linkend="sec:hook:url"/> for more information. 18.1604 </para> 18.1605 </listitem></itemizedlist> 18.1606 18.1607 - <para>See also: <literal role="hook">changegroup</literal> 18.1608 - (section <xref linkend="sec.hook.changegroup"/>) <literal 18.1609 - role="hook">prechangegroup</literal> (section <xref 18.1610 - linkend="sec.hook.prechangegroup"/>), <literal 18.1611 - role="hook">pretxnchangegroup</literal> (section <xref 18.1612 - linkend="sec.hook.pretxnchangegroup"/>) 18.1613 - </para> 18.1614 - 18.1615 - </sect2> 18.1616 - <sect2 id="sec.hook.outgoing"> 18.1617 + <para id="x_2a3">See also: <literal 18.1618 + role="hook">changegroup</literal> (<xref 18.1619 + linkend="sec:hook:changegroup"/>) <literal 18.1620 + role="hook">prechangegroup</literal> (<xref 18.1621 + linkend="sec:hook:prechangegroup"/>), <literal 18.1622 + role="hook">pretxnchangegroup</literal> (<xref 18.1623 + linkend="sec:hook:pretxnchangegroup"/>) 18.1624 + </para> 18.1625 + 18.1626 + </sect2> 18.1627 + <sect2 id="sec:hook:outgoing"> 18.1628 <title><literal role="hook">outgoing</literal>&emdash;after 18.1629 changesets are propagated</title> 18.1630 18.1631 - <para>This hook is run after a group of changesets has been 18.1632 + <para id="x_2a4">This hook is run after a group of changesets has been 18.1633 propagated out of this repository, for example by a <command 18.1634 role="hg-cmd">hg push</command> or <command role="hg-cmd">hg 18.1635 bundle</command> command. 18.1636 </para> 18.1637 18.1638 - <para>One possible use for this hook is to notify administrators 18.1639 + <para id="x_2a5">One possible use for this hook is to notify administrators 18.1640 that changes have been pulled. 18.1641 </para> 18.1642 18.1643 - <para>Parameters to this hook: 18.1644 + <para id="x_2a6">Parameters to this hook: 18.1645 </para> 18.1646 <itemizedlist> 18.1647 - <listitem><para><literal>node</literal>: A changeset ID. The 18.1648 + <listitem><para id="x_2a7"><literal>node</literal>: A changeset ID. The 18.1649 changeset ID of the first changeset of the group that was 18.1650 sent. 18.1651 </para> 18.1652 </listitem> 18.1653 - <listitem><para><literal>source</literal>: A string. The 18.1654 - source of the of the operation (see section <xref 18.1655 - linkend="sec.hook.sources"/>). If a remote 18.1656 + <listitem><para id="x_2a8"><literal>source</literal>: A string. The 18.1657 + source of the of the operation (see <xref 18.1658 + linkend="sec:hook:sources"/>). If a remote 18.1659 client pulled changes from this repository, 18.1660 <literal>source</literal> will be 18.1661 <literal>serve</literal>. If the client that obtained 18.1662 @@ -1636,187 +1636,187 @@ 18.1663 client performed. 18.1664 </para> 18.1665 </listitem> 18.1666 - <listitem><para><literal>url</literal>: A URL. The location 18.1667 - of the remote repository, if known. See section <xref 18.1668 - linkend="sec.hook.url"/> for more 18.1669 - information. 18.1670 + <listitem><para id="x_2a9"><literal>url</literal>: A URL. The 18.1671 + location of the remote repository, if known. See <xref 18.1672 + linkend="sec:hook:url"/> for more information. 18.1673 </para> 18.1674 </listitem></itemizedlist> 18.1675 18.1676 - <para>See also: <literal role="hook">preoutgoing</literal> 18.1677 - (section <xref linkend="sec.hook.preoutgoing"/>) 18.1678 - </para> 18.1679 - 18.1680 - </sect2> 18.1681 - <sect2 id="sec.hook.prechangegroup"> 18.1682 + <para id="x_2aa">See also: <literal 18.1683 + role="hook">preoutgoing</literal> (<xref 18.1684 + linkend="sec:hook:preoutgoing"/>) 18.1685 + </para> 18.1686 + 18.1687 + </sect2> 18.1688 + <sect2 id="sec:hook:prechangegroup"> 18.1689 <title><literal 18.1690 role="hook">prechangegroup</literal>&emdash;before starting 18.1691 to add remote changesets</title> 18.1692 18.1693 - <para>This controlling hook is run before Mercurial begins to 18.1694 + <para id="x_2ab">This controlling hook is run before Mercurial begins to 18.1695 add a group of changesets from another repository. 18.1696 </para> 18.1697 18.1698 - <para>This hook does not have any information about the 18.1699 + <para id="x_2ac">This hook does not have any information about the 18.1700 changesets to be added, because it is run before transmission 18.1701 of those changesets is allowed to begin. If this hook fails, 18.1702 the changesets will not be transmitted. 18.1703 </para> 18.1704 18.1705 - <para>One use for this hook is to prevent external changes from 18.1706 + <para id="x_2ad">One use for this hook is to prevent external changes from 18.1707 being added to a repository. For example, you could use this 18.1708 to <quote>freeze</quote> a server-hosted branch temporarily or 18.1709 permanently so that users cannot push to it, while still 18.1710 allowing a local administrator to modify the repository. 18.1711 </para> 18.1712 18.1713 - <para>Parameters to this hook: 18.1714 + <para id="x_2ae">Parameters to this hook: 18.1715 </para> 18.1716 <itemizedlist> 18.1717 - <listitem><para><literal>source</literal>: A string. The 18.1718 - source of these changes. See section <xref 18.1719 - linkend="sec.hook.sources"/> for details. 18.1720 - </para> 18.1721 - </listitem> 18.1722 - <listitem><para><literal>url</literal>: A URL. The location 18.1723 - of the remote repository, if known. See section <xref 18.1724 - linkend="sec.hook.url"/> for more 18.1725 - information. 18.1726 + <listitem><para id="x_2af"><literal>source</literal>: A string. The 18.1727 + source of these changes. See <xref 18.1728 + linkend="sec:hook:sources"/> for details. 18.1729 + </para> 18.1730 + </listitem> 18.1731 + <listitem><para id="x_2b0"><literal>url</literal>: A URL. The 18.1732 + location of the remote repository, if known. See <xref 18.1733 + linkend="sec:hook:url"/> for more information. 18.1734 </para> 18.1735 </listitem></itemizedlist> 18.1736 18.1737 - <para>See also: <literal role="hook">changegroup</literal> 18.1738 - (section <xref linkend="sec.hook.changegroup"/>), <literal 18.1739 - role="hook">incoming</literal> (section <xref 18.1740 - linkend="sec.hook.incoming"/>), , <literal 18.1741 - role="hook">pretxnchangegroup</literal> (section <xref 18.1742 - linkend="sec.hook.pretxnchangegroup"/>) 18.1743 - </para> 18.1744 - 18.1745 - </sect2> 18.1746 - <sect2 id="sec.hook.precommit"> 18.1747 + <para id="x_2b1">See also: <literal 18.1748 + role="hook">changegroup</literal> (<xref 18.1749 + linkend="sec:hook:changegroup"/>), <literal 18.1750 + role="hook">incoming</literal> (<xref 18.1751 + linkend="sec:hook:incoming"/>), <literal 18.1752 + role="hook">pretxnchangegroup</literal> (<xref 18.1753 + linkend="sec:hook:pretxnchangegroup"/>) 18.1754 + </para> 18.1755 + 18.1756 + </sect2> 18.1757 + <sect2 id="sec:hook:precommit"> 18.1758 <title><literal role="hook">precommit</literal>&emdash;before 18.1759 starting to commit a changeset</title> 18.1760 18.1761 - <para>This hook is run before Mercurial begins to commit a new 18.1762 + <para id="x_2b2">This hook is run before Mercurial begins to commit a new 18.1763 changeset. It is run before Mercurial has any of the metadata 18.1764 for the commit, such as the files to be committed, the commit 18.1765 message, or the commit date. 18.1766 </para> 18.1767 18.1768 - <para>One use for this hook is to disable the ability to commit 18.1769 + <para id="x_2b3">One use for this hook is to disable the ability to commit 18.1770 new changesets, while still allowing incoming changesets. 18.1771 Another is to run a build or test, and only allow the commit 18.1772 to begin if the build or test succeeds. 18.1773 </para> 18.1774 18.1775 - <para>Parameters to this hook: 18.1776 + <para id="x_2b4">Parameters to this hook: 18.1777 </para> 18.1778 <itemizedlist> 18.1779 - <listitem><para><literal>parent1</literal>: A changeset ID. 18.1780 + <listitem><para id="x_2b5"><literal>parent1</literal>: A changeset ID. 18.1781 The changeset ID of the first parent of the working 18.1782 directory. 18.1783 </para> 18.1784 </listitem> 18.1785 - <listitem><para><literal>parent2</literal>: A changeset ID. 18.1786 + <listitem><para id="x_2b6"><literal>parent2</literal>: A changeset ID. 18.1787 The changeset ID of the second parent of the working 18.1788 directory. 18.1789 </para> 18.1790 </listitem></itemizedlist> 18.1791 - <para>If the commit proceeds, the parents of the working 18.1792 + <para id="x_2b7">If the commit proceeds, the parents of the working 18.1793 directory will become the parents of the new changeset. 18.1794 </para> 18.1795 18.1796 - <para>See also: <literal role="hook">commit</literal> (section 18.1797 - <xref linkend="sec.hook.commit"/>), <literal 18.1798 - role="hook">pretxncommit</literal> (section <xref 18.1799 - linkend="sec.hook.pretxncommit"/>) 18.1800 - </para> 18.1801 - 18.1802 - </sect2> 18.1803 - <sect2 id="sec.hook.preoutgoing"> 18.1804 + <para id="x_2b8">See also: <literal role="hook">commit</literal> 18.1805 + (<xref linkend="sec:hook:commit"/>), <literal 18.1806 + role="hook">pretxncommit</literal> (<xref 18.1807 + linkend="sec:hook:pretxncommit"/>) 18.1808 + </para> 18.1809 + 18.1810 + </sect2> 18.1811 + <sect2 id="sec:hook:preoutgoing"> 18.1812 <title><literal role="hook">preoutgoing</literal>&emdash;before 18.1813 starting to propagate changesets</title> 18.1814 18.1815 - <para>This hook is invoked before Mercurial knows the identities 18.1816 + <para id="x_2b9">This hook is invoked before Mercurial knows the identities 18.1817 of the changesets to be transmitted. 18.1818 </para> 18.1819 18.1820 - <para>One use for this hook is to prevent changes from being 18.1821 + <para id="x_2ba">One use for this hook is to prevent changes from being 18.1822 transmitted to another repository. 18.1823 </para> 18.1824 18.1825 - <para>Parameters to this hook: 18.1826 + <para id="x_2bb">Parameters to this hook: 18.1827 </para> 18.1828 <itemizedlist> 18.1829 - <listitem><para><literal>source</literal>: A string. The 18.1830 - source of the operation that is attempting to obtain 18.1831 - changes from this repository (see section <xref 18.1832 - linkend="sec.hook.sources"/>). See the documentation 18.1833 + <listitem><para id="x_2bc"><literal>source</literal>: A 18.1834 + string. The source of the operation that is attempting to 18.1835 + obtain changes from this repository (see <xref 18.1836 + linkend="sec:hook:sources"/>). See the documentation 18.1837 for the <literal>source</literal> parameter to the 18.1838 - <literal role="hook">outgoing</literal> hook, in section 18.1839 - <xref linkend="sec.hook.outgoing"/>, for possible values 18.1840 - of 18.1841 - this parameter. 18.1842 - </para> 18.1843 - </listitem> 18.1844 - <listitem><para><literal>url</literal>: A URL. The location 18.1845 - of the remote repository, if known. See section <xref 18.1846 - linkend="sec.hook.url"/> for more 18.1847 - information. 18.1848 + <literal role="hook">outgoing</literal> hook, in 18.1849 + <xref linkend="sec:hook:outgoing"/>, for possible values 18.1850 + of this parameter. 18.1851 + </para> 18.1852 + </listitem> 18.1853 + <listitem><para id="x_2bd"><literal>url</literal>: A URL. The 18.1854 + location of the remote repository, if known. See <xref 18.1855 + linkend="sec:hook:url"/> for more information. 18.1856 </para> 18.1857 </listitem></itemizedlist> 18.1858 18.1859 - <para>See also: <literal role="hook">outgoing</literal> (section 18.1860 - <xref linkend="sec.hook.outgoing"/>) 18.1861 - </para> 18.1862 - 18.1863 - </sect2> 18.1864 - <sect2 id="sec.hook.pretag"> 18.1865 + <para id="x_2be">See also: <literal 18.1866 + role="hook">outgoing</literal> (<xref 18.1867 + linkend="sec:hook:outgoing"/>) 18.1868 + </para> 18.1869 + 18.1870 + </sect2> 18.1871 + <sect2 id="sec:hook:pretag"> 18.1872 <title><literal role="hook">pretag</literal>&emdash;before 18.1873 tagging a changeset</title> 18.1874 18.1875 - <para>This controlling hook is run before a tag is created. If 18.1876 + <para id="x_2bf">This controlling hook is run before a tag is created. If 18.1877 the hook succeeds, creation of the tag proceeds. If the hook 18.1878 fails, the tag is not created. 18.1879 </para> 18.1880 18.1881 - <para>Parameters to this hook: 18.1882 + <para id="x_2c0">Parameters to this hook: 18.1883 </para> 18.1884 <itemizedlist> 18.1885 - <listitem><para><literal>local</literal>: A boolean. Whether 18.1886 + <listitem><para id="x_2c1"><literal>local</literal>: A boolean. Whether 18.1887 the tag is local to this repository instance (i.e. stored 18.1888 in <filename role="special">.hg/localtags</filename>) or 18.1889 managed by Mercurial (stored in <filename 18.1890 role="special">.hgtags</filename>). 18.1891 </para> 18.1892 </listitem> 18.1893 - <listitem><para><literal>node</literal>: A changeset ID. The 18.1894 + <listitem><para id="x_2c2"><literal>node</literal>: A changeset ID. The 18.1895 ID of the changeset to be tagged. 18.1896 </para> 18.1897 </listitem> 18.1898 - <listitem><para><literal>tag</literal>: A string. The name of 18.1899 + <listitem><para id="x_2c3"><literal>tag</literal>: A string. The name of 18.1900 the tag to be created. 18.1901 </para> 18.1902 </listitem></itemizedlist> 18.1903 18.1904 - <para>If the tag to be created is revision-controlled, the 18.1905 - <literal role="hook">precommit</literal> and <literal 18.1906 - role="hook">pretxncommit</literal> hooks (sections <xref 18.1907 - linkend="sec.hook.commit"/> and <xref 18.1908 - linkend="sec.hook.pretxncommit"/>) will also be run. 18.1909 - </para> 18.1910 - 18.1911 - <para>See also: <literal role="hook">tag</literal> (section 18.1912 - <xref linkend="sec.hook.tag"/>) 18.1913 - </para> 18.1914 - </sect2> 18.1915 - <sect2 id="sec.hook.pretxnchangegroup"> 18.1916 + <para id="x_2c4">If the tag to be created is 18.1917 + revision-controlled, the <literal 18.1918 + role="hook">precommit</literal> and <literal 18.1919 + role="hook">pretxncommit</literal> hooks (<xref 18.1920 + linkend="sec:hook:commit"/> and <xref 18.1921 + linkend="sec:hook:pretxncommit"/>) will also be run. 18.1922 + </para> 18.1923 + 18.1924 + <para id="x_2c5">See also: <literal role="hook">tag</literal> 18.1925 + (<xref linkend="sec:hook:tag"/>) 18.1926 + </para> 18.1927 + </sect2> 18.1928 + <sect2 id="sec:hook:pretxnchangegroup"> 18.1929 <title><literal 18.1930 role="hook">pretxnchangegroup</literal>&emdash;before 18.1931 completing addition of remote changesets</title> 18.1932 18.1933 - <para>This controlling hook is run before a 18.1934 + <para id="x_2c6">This controlling hook is run before a 18.1935 transaction&emdash;that manages the addition of a group of new 18.1936 changesets from outside the repository&emdash;completes. If 18.1937 the hook succeeds, the transaction completes, and all of the 18.1938 @@ -1825,28 +1825,28 @@ 18.1939 the changesets is erased. 18.1940 </para> 18.1941 18.1942 - <para>This hook can access the metadata associated with the 18.1943 + <para id="x_2c7">This hook can access the metadata associated with the 18.1944 almost-added changesets, but it should not do anything 18.1945 permanent with this data. It must also not modify the working 18.1946 directory. 18.1947 </para> 18.1948 18.1949 - <para>While this hook is running, if other Mercurial processes 18.1950 + <para id="x_2c8">While this hook is running, if other Mercurial processes 18.1951 access this repository, they will be able to see the 18.1952 almost-added changesets as if they are permanent. This may 18.1953 lead to race conditions if you do not take steps to avoid 18.1954 them. 18.1955 </para> 18.1956 18.1957 - <para>This hook can be used to automatically vet a group of 18.1958 + <para id="x_2c9">This hook can be used to automatically vet a group of 18.1959 changesets. If the hook fails, all of the changesets are 18.1960 <quote>rejected</quote> when the transaction rolls back. 18.1961 </para> 18.1962 18.1963 - <para>Parameters to this hook: 18.1964 + <para id="x_2ca">Parameters to this hook: 18.1965 </para> 18.1966 <itemizedlist> 18.1967 - <listitem><para><literal>node</literal>: A changeset ID. The 18.1968 + <listitem><para id="x_2cb"><literal>node</literal>: A changeset ID. The 18.1969 changeset ID of the first changeset in the group that was 18.1970 added. All changesets between this and 18.1971 <literal role="tag">tip</literal>, 18.1972 @@ -1856,32 +1856,32 @@ 18.1973 role="hg-cmd">hg unbundle</command>. 18.1974 </para> 18.1975 </listitem> 18.1976 - <listitem><para><literal>source</literal>: A string. The 18.1977 - source of these changes. See section <xref 18.1978 - linkend="sec.hook.sources"/> for details. 18.1979 - </para> 18.1980 - </listitem> 18.1981 - <listitem><para><literal>url</literal>: A URL. The location 18.1982 - of the remote repository, if known. See section <xref 18.1983 - linkend="sec.hook.url"/> for more 18.1984 - information. 18.1985 + <listitem><para id="x_2cc"><literal>source</literal>: A 18.1986 + string. The source of these changes. See <xref 18.1987 + linkend="sec:hook:sources"/> for details. 18.1988 + </para> 18.1989 + </listitem> 18.1990 + <listitem><para id="x_2cd"><literal>url</literal>: A URL. The 18.1991 + location of the remote repository, if known. See <xref 18.1992 + linkend="sec:hook:url"/> for more information. 18.1993 </para> 18.1994 </listitem></itemizedlist> 18.1995 18.1996 - <para>See also: <literal role="hook">changegroup</literal> 18.1997 - (section <xref linkend="sec.hook.changegroup"/>), <literal 18.1998 - role="hook">incoming</literal> (section <xref 18.1999 - linkend="sec.hook.incoming"/>), <literal 18.2000 - role="hook">prechangegroup</literal> (section <xref 18.2001 - linkend="sec.hook.prechangegroup"/>) 18.2002 - </para> 18.2003 - 18.2004 - </sect2> 18.2005 - <sect2 id="sec.hook.pretxncommit"> 18.2006 + <para id="x_2ce">See also: <literal 18.2007 + role="hook">changegroup</literal> (<xref 18.2008 + linkend="sec:hook:changegroup"/>), <literal 18.2009 + role="hook">incoming</literal> (<xref 18.2010 + linkend="sec:hook:incoming"/>), <literal 18.2011 + role="hook">prechangegroup</literal> (<xref 18.2012 + linkend="sec:hook:prechangegroup"/>) 18.2013 + </para> 18.2014 + 18.2015 + </sect2> 18.2016 + <sect2 id="sec:hook:pretxncommit"> 18.2017 <title><literal role="hook">pretxncommit</literal>&emdash;before 18.2018 completing commit of new changeset</title> 18.2019 18.2020 - <para>This controlling hook is run before a 18.2021 + <para id="x_2cf">This controlling hook is run before a 18.2022 transaction&emdash;that manages a new commit&emdash;completes. 18.2023 If the hook succeeds, the transaction completes and the 18.2024 changeset becomes permanent within this repository. If the 18.2025 @@ -1889,84 +1889,85 @@ 18.2026 data is erased. 18.2027 </para> 18.2028 18.2029 - <para>This hook can access the metadata associated with the 18.2030 + <para id="x_2d0">This hook can access the metadata associated with the 18.2031 almost-new changeset, but it should not do anything permanent 18.2032 with this data. It must also not modify the working 18.2033 directory. 18.2034 </para> 18.2035 18.2036 - <para>While this hook is running, if other Mercurial processes 18.2037 + <para id="x_2d1">While this hook is running, if other Mercurial processes 18.2038 access this repository, they will be able to see the 18.2039 almost-new changeset as if it is permanent. This may lead to 18.2040 race conditions if you do not take steps to avoid them. 18.2041 </para> 18.2042 18.2043 - <para>Parameters to this hook: 18.2044 + <para id="x_2d2">Parameters to this hook: 18.2045 </para> 18.2046 <itemizedlist> 18.2047 - <listitem><para><literal>node</literal>: A changeset ID. The 18.2048 + <listitem><para id="x_2d3"><literal>node</literal>: A changeset ID. The 18.2049 changeset ID of the newly committed changeset. 18.2050 </para> 18.2051 </listitem> 18.2052 - <listitem><para><literal>parent1</literal>: A changeset ID. 18.2053 + <listitem><para id="x_2d4"><literal>parent1</literal>: A changeset ID. 18.2054 The changeset ID of the first parent of the newly 18.2055 committed changeset. 18.2056 </para> 18.2057 </listitem> 18.2058 - <listitem><para><literal>parent2</literal>: A changeset ID. 18.2059 + <listitem><para id="x_2d5"><literal>parent2</literal>: A changeset ID. 18.2060 The changeset ID of the second parent of the newly 18.2061 committed changeset. 18.2062 </para> 18.2063 </listitem></itemizedlist> 18.2064 18.2065 - <para>See also: <literal role="hook">precommit</literal> 18.2066 - (section <xref linkend="sec.hook.precommit"/>) 18.2067 - </para> 18.2068 - 18.2069 - </sect2> 18.2070 - <sect2 id="sec.hook.preupdate"> 18.2071 + <para id="x_2d6">See also: <literal 18.2072 + role="hook">precommit</literal> (<xref 18.2073 + linkend="sec:hook:precommit"/>) 18.2074 + </para> 18.2075 + 18.2076 + </sect2> 18.2077 + <sect2 id="sec:hook:preupdate"> 18.2078 <title><literal role="hook">preupdate</literal>&emdash;before 18.2079 updating or merging working directory</title> 18.2080 18.2081 - <para>This controlling hook is run before an update or merge of 18.2082 - the working directory begins. It is run only if Mercurial's 18.2083 - normal pre-update checks determine that the update or merge 18.2084 - can proceed. If the hook succeeds, the update or merge may 18.2085 - proceed; if it fails, the update or merge does not start. 18.2086 - </para> 18.2087 - 18.2088 - <para>Parameters to this hook: 18.2089 + <para id="x_2d7">This controlling hook is run before an update 18.2090 + or merge of the working directory begins. It is run only if 18.2091 + Mercurial's normal pre-update checks determine that the update 18.2092 + or merge can proceed. If the hook succeeds, the update or 18.2093 + merge may proceed; if it fails, the update or merge does not 18.2094 + start. 18.2095 + </para> 18.2096 + 18.2097 + <para id="x_2d8">Parameters to this hook: 18.2098 </para> 18.2099 <itemizedlist> 18.2100 - <listitem><para><literal>parent1</literal>: A changeset ID. 18.2101 - The ID of the parent that the working directory is to be 18.2102 - updated to. If the working directory is being merged, it 18.2103 - will not change this parent. 18.2104 - </para> 18.2105 - </listitem> 18.2106 - <listitem><para><literal>parent2</literal>: A changeset ID. 18.2107 - Only set if the working directory is being merged. The ID 18.2108 - of the revision that the working directory is being merged 18.2109 - with. 18.2110 + <listitem><para id="x_2d9"><literal>parent1</literal>: A 18.2111 + changeset ID. The ID of the parent that the working 18.2112 + directory is to be updated to. If the working directory 18.2113 + is being merged, it will not change this parent. 18.2114 + </para> 18.2115 + </listitem> 18.2116 + <listitem><para id="x_2da"><literal>parent2</literal>: A 18.2117 + changeset ID. Only set if the working directory is being 18.2118 + merged. The ID of the revision that the working directory 18.2119 + is being merged with. 18.2120 </para> 18.2121 </listitem></itemizedlist> 18.2122 18.2123 - <para>See also: <literal role="hook">update</literal> (section 18.2124 - <xref linkend="sec.hook.update"/>) 18.2125 - </para> 18.2126 - 18.2127 - </sect2> 18.2128 - <sect2 id="sec.hook.tag"> 18.2129 + <para id="x_2db">See also: <literal role="hook">update</literal> 18.2130 + (<xref linkend="sec:hook:update"/>)</para> 18.2131 + 18.2132 + </sect2> 18.2133 + <sect2 id="sec:hook:tag"> 18.2134 <title><literal role="hook">tag</literal>&emdash;after tagging a 18.2135 changeset</title> 18.2136 18.2137 - <para>This hook is run after a tag has been created. 18.2138 - </para> 18.2139 - 18.2140 - <para>Parameters to this hook: 18.2141 + <para id="x_2dc">This hook is run after a tag has been created. 18.2142 + </para> 18.2143 + 18.2144 + <para id="x_2dd">Parameters to this hook: 18.2145 </para> 18.2146 <itemizedlist> 18.2147 - <listitem><para><literal>local</literal>: A boolean. Whether 18.2148 + <listitem><para id="x_2de"><literal>local</literal>: A boolean. Whether 18.2149 the new tag is local to this repository instance (i.e. 18.2150 stored in <filename 18.2151 role="special">.hg/localtags</filename>) or managed by 18.2152 @@ -1974,30 +1975,30 @@ 18.2153 role="special">.hgtags</filename>). 18.2154 </para> 18.2155 </listitem> 18.2156 - <listitem><para><literal>node</literal>: A changeset ID. The 18.2157 + <listitem><para id="x_2df"><literal>node</literal>: A changeset ID. The 18.2158 ID of the changeset that was tagged. 18.2159 </para> 18.2160 </listitem> 18.2161 - <listitem><para><literal>tag</literal>: A string. The name of 18.2162 + <listitem><para id="x_2e0"><literal>tag</literal>: A string. The name of 18.2163 the tag that was created. 18.2164 </para> 18.2165 </listitem></itemizedlist> 18.2166 18.2167 - <para>If the created tag is revision-controlled, the <literal 18.2168 + <para id="x_2e1">If the created tag is revision-controlled, the <literal 18.2169 role="hook">commit</literal> hook (section <xref 18.2170 - linkend="sec.hook.commit"/>) is run before this hook. 18.2171 - </para> 18.2172 - 18.2173 - <para>See also: <literal role="hook">pretag</literal> (section 18.2174 - <xref linkend="sec.hook.pretag"/>) 18.2175 - </para> 18.2176 - 18.2177 - </sect2> 18.2178 - <sect2 id="sec.hook.update"> 18.2179 + linkend="sec:hook:commit"/>) is run before this hook. 18.2180 + </para> 18.2181 + 18.2182 + <para id="x_2e2">See also: <literal role="hook">pretag</literal> 18.2183 + (<xref linkend="sec:hook:pretag"/>) 18.2184 + </para> 18.2185 + 18.2186 + </sect2> 18.2187 + <sect2 id="sec:hook:update"> 18.2188 <title><literal role="hook">update</literal>&emdash;after 18.2189 updating or merging working directory</title> 18.2190 18.2191 - <para>This hook is run after an update or merge of the working 18.2192 + <para id="x_2e3">This hook is run after an update or merge of the working 18.2193 directory completes. Since a merge can fail (if the external 18.2194 <command>hgmerge</command> command fails to resolve conflicts 18.2195 in a file), this hook communicates whether the update or merge 18.2196 @@ -2005,25 +2006,25 @@ 18.2197 </para> 18.2198 18.2199 <itemizedlist> 18.2200 - <listitem><para><literal>error</literal>: A boolean. 18.2201 + <listitem><para id="x_2e4"><literal>error</literal>: A boolean. 18.2202 Indicates whether the update or merge completed 18.2203 successfully. 18.2204 </para> 18.2205 </listitem> 18.2206 - <listitem><para><literal>parent1</literal>: A changeset ID. 18.2207 + <listitem><para id="x_2e5"><literal>parent1</literal>: A changeset ID. 18.2208 The ID of the parent that the working directory was 18.2209 updated to. If the working directory was merged, it will 18.2210 not have changed this parent. 18.2211 </para> 18.2212 </listitem> 18.2213 - <listitem><para><literal>parent2</literal>: A changeset ID. 18.2214 + <listitem><para id="x_2e6"><literal>parent2</literal>: A changeset ID. 18.2215 Only set if the working directory was merged. The ID of 18.2216 the revision that the working directory was merged with. 18.2217 </para> 18.2218 </listitem></itemizedlist> 18.2219 18.2220 - <para>See also: <literal role="hook">preupdate</literal> 18.2221 - (section <xref linkend="sec.hook.preupdate"/>) 18.2222 + <para id="x_2e7">See also: <literal role="hook">preupdate</literal> 18.2223 + (<xref linkend="sec:hook:preupdate"/>) 18.2224 </para> 18.2225 18.2226 </sect2>
19.1 --- a/en/ch10-template.xml Fri Mar 20 17:17:55 2009 +0800 19.2 +++ b/en/ch10-template.xml Mon Mar 30 16:23:33 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.template"> 19.7 +<chapter id="chap:template"> 19.8 <?dbhtml filename="customizing-the-output-of-mercurial.html"?> 19.9 <title>Customising the output of Mercurial</title> 19.10 19.11 @@ -10,7 +10,7 @@ 19.12 command, or to customise the entire appearance of the built-in web 19.13 interface.</para> 19.14 19.15 - <sect1 id="sec.style"> 19.16 + <sect1 id="sec:style"> 19.17 <title>Using precanned output styles</title> 19.18 19.19 <para id="x_579">Packaged with Mercurial are some output styles that you can 19.20 @@ -107,7 +107,7 @@ 19.21 <emphasis>escape sequence</emphasis>, telling Mercurial to print 19.22 a newline at the end of each template item. If you omit this 19.23 newline, Mercurial will run each piece of output together. See 19.24 - section <xref linkend="sec.template.escape"/> for more details 19.25 + <xref linkend="sec:template:escape"/> for more details 19.26 of escape sequences.</para> 19.27 19.28 <para id="x_587">A template that prints a fixed string of text all the time 19.29 @@ -121,14 +121,13 @@ 19.30 been replaced in the output with the description of each 19.31 changeset. Every time Mercurial finds text enclosed in curly 19.32 braces (<quote><literal>{</literal></quote> and 19.33 - <quote><literal>}</literal></quote>), it will try to replace the braces 19.34 - and text with the expansion of whatever is inside. To print a 19.35 - literal curly brace, you must escape it, as described in section 19.36 - <xref 19.37 - linkend="sec.template.escape"/>.</para> 19.38 - 19.39 - </sect1> 19.40 - <sect1 id="sec.template.keyword"> 19.41 + <quote><literal>}</literal></quote>), it will try to replace the 19.42 + braces and text with the expansion of whatever is inside. To 19.43 + print a literal curly brace, you must escape it, as described in 19.44 + <xref linkend="sec:template:escape"/>.</para> 19.45 + 19.46 + </sect1> 19.47 + <sect1 id="sec:template:keyword"> 19.48 <title>Common template keywords</title> 19.49 19.50 <para id="x_589">You can start writing simple templates immediately using the 19.51 @@ -149,8 +148,8 @@ 19.52 Date information. The date when the changeset was 19.53 committed. This is <emphasis>not</emphasis> human-readable; 19.54 you must pass it through a filter that will render it 19.55 - appropriately. See section <xref 19.56 - linkend="sec.template.filter"/> for more information 19.57 + appropriately. See <xref 19.58 + linkend="sec:template:filter"/> for more information 19.59 on filters. The date is expressed as a pair of numbers. The 19.60 first number is a Unix UTC timestamp (seconds since January 19.61 1, 1970); the second is the offset of the committer's 19.62 @@ -197,13 +196,12 @@ 19.63 <para id="x_596">As we noted above, the date keyword does not produce 19.64 human-readable output, so we must treat it specially. This 19.65 involves using a <emphasis>filter</emphasis>, about which more 19.66 - in section <xref 19.67 - linkend="sec.template.filter"/>.</para> 19.68 + in <xref linkend="sec:template:filter"/>.</para> 19.69 19.70 &interaction.template.simple.datekeyword; 19.71 19.72 </sect1> 19.73 - <sect1 id="sec.template.escape"> 19.74 + <sect1 id="sec:template:escape"> 19.75 <title>Escape sequences</title> 19.76 19.77 <para id="x_597">Mercurial's templating engine recognises the most commonly 19.78 @@ -245,7 +243,7 @@ 19.79 it.</para> 19.80 19.81 </sect1> 19.82 - <sect1 id="sec.template.filter"> 19.83 + <sect1 id="sec:template:filter"> 19.84 <title>Filtering keywords to change their results</title> 19.85 19.86 <para id="x_5a0">Some of the results of template expansion are not
20.1 --- a/en/ch11-mq.xml Fri Mar 20 17:17:55 2009 +0800 20.2 +++ b/en/ch11-mq.xml Mon Mar 30 16:23:33 2009 +0800 20.3 @@ -1,13 +1,13 @@ 20.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 20.5 20.6 -<chapter id="chap.mq"> 20.7 +<chapter id="chap:mq"> 20.8 <?dbhtml filename="managing-change-with-mercurial-queues.html"?> 20.9 <title>Managing change with Mercurial Queues</title> 20.10 20.11 - <sect1 id="sec.mq.patch-mgmt"> 20.12 + <sect1 id="sec:mq:patch-mgmt"> 20.13 <title>The patch management problem</title> 20.14 20.15 - <para>Here is a common scenario: you need to install a software 20.16 + <para id="x_3ac">Here is a common scenario: you need to install a software 20.17 package from source, but you find a bug that you must fix in the 20.18 source before you can start using the package. You make your 20.19 changes, forget about the package for a while, and a few months 20.20 @@ -17,27 +17,27 @@ 20.21 the newer version. This is a tedious task, and it's easy to 20.22 make mistakes.</para> 20.23 20.24 - <para>This is a simple case of the <quote>patch management</quote> 20.25 + <para id="x_3ad">This is a simple case of the <quote>patch management</quote> 20.26 problem. You have an <quote>upstream</quote> source tree that 20.27 you can't change; you need to make some local changes on top of 20.28 the upstream tree; and you'd like to be able to keep those 20.29 changes separate, so that you can apply them to newer versions 20.30 of the upstream source.</para> 20.31 20.32 - <para>The patch management problem arises in many situations. 20.33 + <para id="x_3ae">The patch management problem arises in many situations. 20.34 Probably the most visible is that a user of an open source 20.35 software project will contribute a bug fix or new feature to the 20.36 project's maintainers in the form of a patch.</para> 20.37 20.38 - <para>Distributors of operating systems that include open source 20.39 + <para id="x_3af">Distributors of operating systems that include open source 20.40 software often need to make changes to the packages they 20.41 distribute so that they will build properly in their 20.42 environments.</para> 20.43 20.44 - <para>When you have few changes to maintain, it is easy to manage 20.45 + <para id="x_3b0">When you have few changes to maintain, it is easy to manage 20.46 a single patch using the standard <command>diff</command> and 20.47 - <command>patch</command> programs (see section <xref 20.48 - linkend="sec.mq.patch"/> for a discussion of these 20.49 + <command>patch</command> programs (see <xref 20.50 + linkend="sec:mq:patch"/> for a discussion of these 20.51 tools). Once the number of changes grows, it starts to make 20.52 sense to maintain patches as discrete <quote>chunks of 20.53 work,</quote> so that for example a single patch will contain 20.54 @@ -49,37 +49,37 @@ 20.55 your fix in a subsequent release, you can simply drop that 20.56 single patch when you're updating to the newer release.</para> 20.57 20.58 - <para>Maintaining a single patch against an upstream tree is a 20.59 + <para id="x_3b1">Maintaining a single patch against an upstream tree is a 20.60 little tedious and error-prone, but not difficult. However, the 20.61 complexity of the problem grows rapidly as the number of patches 20.62 you have to maintain increases. With more than a tiny number of 20.63 patches in hand, understanding which ones you have applied and 20.64 maintaining them moves from messy to overwhelming.</para> 20.65 20.66 - <para>Fortunately, Mercurial includes a powerful extension, 20.67 + <para id="x_3b2">Fortunately, Mercurial includes a powerful extension, 20.68 Mercurial Queues (or simply <quote>MQ</quote>), that massively 20.69 simplifies the patch management problem.</para> 20.70 20.71 </sect1> 20.72 - <sect1 id="sec.mq.history"> 20.73 + <sect1 id="sec:mq:history"> 20.74 <title>The prehistory of Mercurial Queues</title> 20.75 20.76 - <para>During the late 1990s, several Linux kernel developers 20.77 + <para id="x_3b3">During the late 1990s, several Linux kernel developers 20.78 started to maintain <quote>patch series</quote> that modified 20.79 the behaviour of the Linux kernel. Some of these series were 20.80 focused on stability, some on feature coverage, and others were 20.81 more speculative.</para> 20.82 20.83 - <para>The sizes of these patch series grew rapidly. In 2002, 20.84 + <para id="x_3b4">The sizes of these patch series grew rapidly. In 2002, 20.85 Andrew Morton published some shell scripts he had been using to 20.86 automate the task of managing his patch queues. Andrew was 20.87 successfully using these scripts to manage hundreds (sometimes 20.88 thousands) of patches on top of the Linux kernel.</para> 20.89 20.90 - <sect2 id="sec.mq.quilt"> 20.91 + <sect2 id="sec:mq:quilt"> 20.92 <title>A patchwork quilt</title> 20.93 20.94 - <para>In early 2003, Andreas Gruenbacher and Martin Quinson 20.95 + <para id="x_3b5">In early 2003, Andreas Gruenbacher and Martin Quinson 20.96 borrowed the approach of Andrew's scripts and published a tool 20.97 called <quote>patchwork quilt</quote> 20.98 <citation>web:quilt</citation>, or simply <quote>quilt</quote> 20.99 @@ -88,7 +88,7 @@ 20.100 management, it rapidly gained a large following among open 20.101 source software developers.</para> 20.102 20.103 - <para>Quilt manages a <emphasis>stack of patches</emphasis> on 20.104 + <para id="x_3b6">Quilt manages a <emphasis>stack of patches</emphasis> on 20.105 top of a directory tree. To begin, you tell quilt to manage a 20.106 directory tree, and tell it which files you want to manage; it 20.107 stores away the names and contents of those files. To fix a 20.108 @@ -96,14 +96,14 @@ 20.109 files you need to fix, then <quote>refresh</quote> the 20.110 patch.</para> 20.111 20.112 - <para>The refresh step causes quilt to scan the directory tree; 20.113 + <para id="x_3b7">The refresh step causes quilt to scan the directory tree; 20.114 it updates the patch with all of the changes you have made. 20.115 You can create another patch on top of the first, which will 20.116 track the changes required to modify the tree from <quote>tree 20.117 with one patch applied</quote> to <quote>tree with two 20.118 patches applied</quote>.</para> 20.119 20.120 - <para>You can <emphasis>change</emphasis> which patches are 20.121 + <para id="x_3b8">You can <emphasis>change</emphasis> which patches are 20.122 applied to the tree. If you <quote>pop</quote> a patch, the 20.123 changes made by that patch will vanish from the directory 20.124 tree. Quilt remembers which patches you have popped, though, 20.125 @@ -115,25 +115,25 @@ 20.126 any time, change both which patches are applied and what 20.127 modifications those patches make.</para> 20.128 20.129 - <para>Quilt knows nothing about revision control tools, so it 20.130 + <para id="x_3b9">Quilt knows nothing about revision control tools, so it 20.131 works equally well on top of an unpacked tarball or a 20.132 Subversion working copy.</para> 20.133 20.134 </sect2> 20.135 - <sect2 id="sec.mq.quilt-mq"> 20.136 + <sect2 id="sec:mq:quilt-mq"> 20.137 <title>From patchwork quilt to Mercurial Queues</title> 20.138 20.139 - <para>In mid-2005, Chris Mason took the features of quilt and 20.140 + <para id="x_3ba">In mid-2005, Chris Mason took the features of quilt and 20.141 wrote an extension that he called Mercurial Queues, which 20.142 added quilt-like behaviour to Mercurial.</para> 20.143 20.144 - <para>The key difference between quilt and MQ is that quilt 20.145 + <para id="x_3bb">The key difference between quilt and MQ is that quilt 20.146 knows nothing about revision control systems, while MQ is 20.147 <emphasis>integrated</emphasis> into Mercurial. Each patch 20.148 that you push is represented as a Mercurial changeset. Pop a 20.149 patch, and the changeset goes away.</para> 20.150 20.151 - <para>Because quilt does not care about revision control tools, 20.152 + <para id="x_3bc">Because quilt does not care about revision control tools, 20.153 it is still a tremendously useful piece of software to know 20.154 about for situations where you cannot use Mercurial and 20.155 MQ.</para> 20.156 @@ -143,16 +143,16 @@ 20.157 <sect1> 20.158 <title>The huge advantage of MQ</title> 20.159 20.160 - <para>I cannot overstate the value that MQ offers through the 20.161 + <para id="x_3bd">I cannot overstate the value that MQ offers through the 20.162 unification of patches and revision control.</para> 20.163 20.164 - <para>A major reason that patches have persisted in the free 20.165 + <para id="x_3be">A major reason that patches have persisted in the free 20.166 software and open source world&emdash;in spite of the 20.167 availability of increasingly capable revision control tools over 20.168 the years&emdash;is the <emphasis>agility</emphasis> they 20.169 offer.</para> 20.170 20.171 - <para>Traditional revision control tools make a permanent, 20.172 + <para id="x_3bf">Traditional revision control tools make a permanent, 20.173 irreversible record of everything that you do. While this has 20.174 great value, it's also somewhat stifling. If you want to 20.175 perform a wild-eyed experiment, you have to be careful in how 20.176 @@ -160,7 +160,7 @@ 20.177 misleading or destabilising&emdash;traces of your missteps and 20.178 errors in the permanent revision record.</para> 20.179 20.180 - <para>By contrast, MQ's marriage of distributed revision control 20.181 + <para id="x_3c0">By contrast, MQ's marriage of distributed revision control 20.182 with patches makes it much easier to isolate your work. Your 20.183 patches live on top of normal revision history, and you can make 20.184 them disappear or reappear at will. If you don't like a patch, 20.185 @@ -168,7 +168,7 @@ 20.186 simply fix it&emdash;as many times as you need to, until you 20.187 have refined it into the form you desire.</para> 20.188 20.189 - <para>As an example, the integration of patches with revision 20.190 + <para id="x_3c1">As an example, the integration of patches with revision 20.191 control makes understanding patches and debugging their 20.192 effects&emdash;and their interplay with the code they're based 20.193 on&emdash;<emphasis>enormously</emphasis> easier. Since every 20.194 @@ -183,14 +183,14 @@ 20.195 And so on.</para> 20.196 20.197 </sect1> 20.198 - <sect1 id="sec.mq.patch"> 20.199 + <sect1 id="sec:mq:patch"> 20.200 <title>Understanding patches</title> 20.201 20.202 - <para>Because MQ doesn't hide its patch-oriented nature, it is 20.203 + <para id="x_3c2">Because MQ doesn't hide its patch-oriented nature, it is 20.204 helpful to understand what patches are, and a little about the 20.205 tools that work with them.</para> 20.206 20.207 - <para>The traditional Unix <command>diff</command> command 20.208 + <para id="x_3c3">The traditional Unix <command>diff</command> command 20.209 compares two files, and prints a list of differences between 20.210 them. The <command>patch</command> command understands these 20.211 differences as <emphasis>modifications</emphasis> to make to a 20.212 @@ -199,20 +199,20 @@ 20.213 20.214 &interaction.mq.dodiff.diff; 20.215 20.216 - <para>The type of file that <command>diff</command> generates (and 20.217 + <para id="x_3c4">The type of file that <command>diff</command> generates (and 20.218 <command>patch</command> takes as input) is called a 20.219 <quote>patch</quote> or a <quote>diff</quote>; there is no 20.220 difference between a patch and a diff. (We'll use the term 20.221 <quote>patch</quote>, since it's more commonly used.)</para> 20.222 20.223 - <para>A patch file can start with arbitrary text; the 20.224 + <para id="x_3c5">A patch file can start with arbitrary text; the 20.225 <command>patch</command> command ignores this text, but MQ uses 20.226 it as the commit message when creating changesets. To find the 20.227 beginning of the patch content, <command>patch</command> 20.228 searches for the first line that starts with the string 20.229 <quote><literal>diff -</literal></quote>.</para> 20.230 20.231 - <para>MQ works with <emphasis>unified</emphasis> diffs 20.232 + <para id="x_3c6">MQ works with <emphasis>unified</emphasis> diffs 20.233 (<command>patch</command> can accept several other diff formats, 20.234 but MQ doesn't). A unified diff contains two kinds of header. 20.235 The <emphasis>file header</emphasis> describes the file being 20.236 @@ -220,7 +220,7 @@ 20.237 <command>patch</command> sees a new file header, it looks for a 20.238 file with that name to start modifying.</para> 20.239 20.240 - <para>After the file header comes a series of 20.241 + <para id="x_3c7">After the file header comes a series of 20.242 <emphasis>hunks</emphasis>. Each hunk starts with a header; 20.243 this identifies the range of line numbers within the file that 20.244 the hunk should modify. Following the header, a hunk starts and 20.245 @@ -232,7 +232,7 @@ 20.246 runs the hunks together, with a few lines of context between 20.247 modifications.</para> 20.248 20.249 - <para>Each line of context begins with a space character. Within 20.250 + <para id="x_3c8">Each line of context begins with a space character. Within 20.251 the hunk, a line that begins with 20.252 <quote><literal>-</literal></quote> means <quote>remove this 20.253 line,</quote> while a line that begins with 20.254 @@ -240,16 +240,16 @@ 20.255 line.</quote> For example, a line that is modified is 20.256 represented by one deletion and one insertion.</para> 20.257 20.258 - <para>We will return to some of the more subtle aspects of patches 20.259 - later (in section <xref linkend="sec.mq.adv-patch"/>), but you 20.260 + <para id="x_3c9">We will return to some of the more subtle aspects of patches 20.261 + later (in <xref linkend="sec:mq:adv-patch"/>), but you 20.262 should have 20.263 enough information now to use MQ.</para> 20.264 20.265 </sect1> 20.266 - <sect1 id="sec.mq.start"> 20.267 + <sect1 id="sec:mq:start"> 20.268 <title>Getting started with Mercurial Queues</title> 20.269 20.270 - <para>Because MQ is implemented as an extension, you must 20.271 + <para id="x_3ca">Because MQ is implemented as an extension, you must 20.272 explicitly enable before you can use it. (You don't need to 20.273 download anything; MQ ships with the standard Mercurial 20.274 distribution.) To enable MQ, edit your <filename 20.275 @@ -259,7 +259,7 @@ 20.276 <programlisting>[extensions] 20.277 hgext.mq =</programlisting> 20.278 20.279 - <para>Once the extension is enabled, it will make a number of new 20.280 + <para id="x_3cb">Once the extension is enabled, it will make a number of new 20.281 commands available. To verify that the extension is working, 20.282 you can use <command role="hg-cmd">hg help</command> to see if 20.283 the <command role="hg-ext-mq">qinit</command> command is now 20.284 @@ -267,14 +267,14 @@ 20.285 20.286 &interaction.mq.qinit-help.help; 20.287 20.288 - <para>You can use MQ with <emphasis>any</emphasis> Mercurial 20.289 + <para id="x_3cc">You can use MQ with <emphasis>any</emphasis> Mercurial 20.290 repository, and its commands only operate within that 20.291 repository. To get started, simply prepare the repository using 20.292 the <command role="hg-ext-mq">qinit</command> command.</para> 20.293 20.294 &interaction.mq.tutorial.qinit; 20.295 20.296 - <para>This command creates an empty directory called <filename 20.297 + <para id="x_3cd">This command creates an empty directory called <filename 20.298 role="special" class="directory">.hg/patches</filename>, where 20.299 MQ will keep its metadata. As with many Mercurial commands, the 20.300 <command role="hg-ext-mq">qinit</command> command prints nothing 20.301 @@ -283,18 +283,18 @@ 20.302 <sect2> 20.303 <title>Creating a new patch</title> 20.304 20.305 - <para>To begin work on a new patch, use the <command 20.306 + <para id="x_3ce">To begin work on a new patch, use the <command 20.307 role="hg-ext-mq">qnew</command> command. This command takes 20.308 one argument, the name of the patch to create.</para> 20.309 20.310 - <para>MQ will use this as the name of an actual file in the 20.311 + <para id="x_3cf">MQ will use this as the name of an actual file in the 20.312 <filename role="special" 20.313 class="directory">.hg/patches</filename> directory, as you 20.314 can see below.</para> 20.315 20.316 &interaction.mq.tutorial.qnew; 20.317 20.318 - <para>Also newly present in the <filename role="special" 20.319 + <para id="x_3d0">Also newly present in the <filename role="special" 20.320 class="directory">.hg/patches</filename> directory are two 20.321 other files, <filename role="special">series</filename> and 20.322 <filename role="special">status</filename>. The <filename 20.323 @@ -306,7 +306,7 @@ 20.324 <emphasis>applied</emphasis> in this repository.</para> 20.325 20.326 <note> 20.327 - <para> You may sometimes want to edit the <filename 20.328 + <para id="x_3d1"> You may sometimes want to edit the <filename 20.329 role="special">series</filename> file by hand; for 20.330 example, to change the sequence in which some patches are 20.331 applied. However, manually editing the <filename 20.332 @@ -315,7 +315,7 @@ 20.333 happening.</para> 20.334 </note> 20.335 20.336 - <para>Once you have created your new patch, you can edit files 20.337 + <para id="x_3d2">Once you have created your new patch, you can edit files 20.338 in the working directory as you usually would. All of the 20.339 normal Mercurial commands, such as <command role="hg-cmd">hg 20.340 diff</command> and <command role="hg-cmd">hg 20.341 @@ -325,17 +325,17 @@ 20.342 <sect2> 20.343 <title>Refreshing a patch</title> 20.344 20.345 - <para>When you reach a point where you want to save your work, 20.346 + <para id="x_3d3">When you reach a point where you want to save your work, 20.347 use the <command role="hg-ext-mq">qrefresh</command> command 20.348 to update the patch you are working on.</para> 20.349 20.350 &interaction.mq.tutorial.qrefresh; 20.351 20.352 - <para>This command folds the changes you have made in the 20.353 + <para id="x_3d4">This command folds the changes you have made in the 20.354 working directory into your patch, and updates its 20.355 corresponding changeset to contain those changes.</para> 20.356 20.357 - <para>You can run <command role="hg-ext-mq">qrefresh</command> 20.358 + <para id="x_3d5">You can run <command role="hg-ext-mq">qrefresh</command> 20.359 as often as you like, so it's a good way to 20.360 <quote>checkpoint</quote> your work. Refresh your patch at an 20.361 opportune time; try an experiment; and if the experiment 20.362 @@ -348,19 +348,19 @@ 20.363 <sect2> 20.364 <title>Stacking and tracking patches</title> 20.365 20.366 - <para>Once you have finished working on a patch, or need to work 20.367 + <para id="x_3d6">Once you have finished working on a patch, or need to work 20.368 on another, you can use the <command 20.369 role="hg-ext-mq">qnew</command> command again to create a 20.370 new patch. Mercurial will apply this patch on top of your 20.371 existing patch.</para> 20.372 20.373 &interaction.mq.tutorial.qnew2; 20.374 - <para>Notice that the patch contains the changes in our prior 20.375 + <para id="x_3d7">Notice that the patch contains the changes in our prior 20.376 patch as part of its context (you can see this more clearly in 20.377 the output of <command role="hg-cmd">hg 20.378 annotate</command>).</para> 20.379 20.380 - <para>So far, with the exception of <command 20.381 + <para id="x_3d8">So far, with the exception of <command 20.382 role="hg-ext-mq">qnew</command> and <command 20.383 role="hg-ext-mq">qrefresh</command>, we've been careful to 20.384 only use regular Mercurial commands. However, MQ provides 20.385 @@ -370,13 +370,13 @@ 20.386 &interaction.mq.tutorial.qseries; 20.387 20.388 <itemizedlist> 20.389 - <listitem><para>The <command 20.390 + <listitem><para id="x_3d9">The <command 20.391 role="hg-ext-mq">qseries</command> command lists every 20.392 patch that MQ knows about in this repository, from oldest 20.393 to newest (most recently 20.394 <emphasis>created</emphasis>).</para> 20.395 </listitem> 20.396 - <listitem><para>The <command 20.397 + <listitem><para id="x_3da">The <command 20.398 role="hg-ext-mq">qapplied</command> command lists every 20.399 patch that MQ has <emphasis>applied</emphasis> in this 20.400 repository, again from oldest to newest (most recently 20.401 @@ -387,12 +387,12 @@ 20.402 <sect2> 20.403 <title>Manipulating the patch stack</title> 20.404 20.405 - <para>The previous discussion implied that there must be a 20.406 + <para id="x_3db">The previous discussion implied that there must be a 20.407 difference between <quote>known</quote> and 20.408 <quote>applied</quote> patches, and there is. MQ can manage a 20.409 patch without it being applied in the repository.</para> 20.410 20.411 - <para>An <emphasis>applied</emphasis> patch has a corresponding 20.412 + <para id="x_3dc">An <emphasis>applied</emphasis> patch has a corresponding 20.413 changeset in the repository, and the effects of the patch and 20.414 changeset are visible in the working directory. You can undo 20.415 the application of a patch using the <command 20.416 @@ -400,20 +400,20 @@ 20.417 <emphasis>knows about</emphasis>, or manages, a popped patch, 20.418 but the patch no longer has a corresponding changeset in the 20.419 repository, and the working directory does not contain the 20.420 - changes made by the patch. Figure <xref 20.421 - endterm="fig.mq.stack.caption" linkend="fig.mq.stack"/> illustrates 20.422 + changes made by the patch. <xref 20.423 + linkend="fig:mq:stack"/> illustrates 20.424 the difference between applied and tracked patches.</para> 20.425 20.426 - <informalfigure id="fig.mq.stack"> 20.427 - <mediaobject> 20.428 - <imageobject><imagedata fileref="images/mq-stack.png"/></imageobject> 20.429 - <textobject><phrase>XXX add text</phrase></textobject> 20.430 - <caption><para id="fig.mq.stack.caption">Applied and unapplied patches 20.431 - in the MQ patch stack</para></caption> 20.432 - </mediaobject> 20.433 - </informalfigure> 20.434 - 20.435 - <para>You can reapply an unapplied, or popped, patch using the 20.436 + <figure id="fig:mq:stack"> 20.437 + <title>Applied and unapplied patches in the MQ patch 20.438 + stack</title> 20.439 + <mediaobject> 20.440 + <imageobject><imagedata fileref="figs/mq-stack.png"/></imageobject> 20.441 + <textobject><phrase>XXX add text</phrase></textobject> 20.442 + </mediaobject> 20.443 + </figure> 20.444 + 20.445 + <para id="x_3de">You can reapply an unapplied, or popped, patch using the 20.446 <command role="hg-ext-mq">qpush</command> command. This 20.447 creates a new changeset to correspond to the patch, and the 20.448 patch's changes once again become present in the working 20.449 @@ -422,7 +422,7 @@ 20.450 role="hg-ext-mq">qpush</command> in action.</para> 20.451 &interaction.mq.tutorial.qpop; 20.452 20.453 - <para>Notice that once we have popped a patch or two patches, 20.454 + <para id="x_3df">Notice that once we have popped a patch or two patches, 20.455 the output of <command role="hg-ext-mq">qseries</command> 20.456 remains the same, while that of <command 20.457 role="hg-ext-mq">qapplied</command> has changed.</para> 20.458 @@ -432,7 +432,7 @@ 20.459 <sect2> 20.460 <title>Pushing and popping many patches</title> 20.461 20.462 - <para>While <command role="hg-ext-mq">qpush</command> and 20.463 + <para id="x_3e0">While <command role="hg-ext-mq">qpush</command> and 20.464 <command role="hg-ext-mq">qpop</command> each operate on a 20.465 single patch at a time by default, you can push and pop many 20.466 patches in one go. The <option 20.467 @@ -442,8 +442,7 @@ 20.468 role="hg-ext-mq-cmd-qpop-opt">-a</option> option to <command 20.469 role="hg-ext-mq">qpop</command> causes it to pop all applied 20.470 patches. (For some more ways to push and pop many patches, 20.471 - see section <xref linkend="sec.mq.perf"/> 20.472 - below.)</para> 20.473 + see <xref linkend="sec:mq:perf"/> below.)</para> 20.474 20.475 &interaction.mq.tutorial.qpush-a; 20.476 20.477 @@ -451,7 +450,7 @@ 20.478 <sect2> 20.479 <title>Safety checks, and overriding them</title> 20.480 20.481 - <para>Several MQ commands check the working directory before 20.482 + <para id="x_3e1">Several MQ commands check the working directory before 20.483 they do anything, and fail if they find any modifications. 20.484 They do this to ensure that you won't lose any changes that 20.485 you have made, but not yet incorporated into a patch. The 20.486 @@ -463,7 +462,7 @@ 20.487 20.488 &interaction.mq.tutorial.add; 20.489 20.490 - <para>Commands that check the working directory all take an 20.491 + <para id="x_3e2">Commands that check the working directory all take an 20.492 <quote>I know what I'm doing</quote> option, which is always 20.493 named <option>-f</option>. The exact meaning of 20.494 <option>-f</option> depends on the command. For example, 20.495 @@ -480,14 +479,14 @@ 20.496 <sect2> 20.497 <title>Working on several patches at once</title> 20.498 20.499 - <para>The <command role="hg-ext-mq">qrefresh</command> command 20.500 + <para id="x_3e3">The <command role="hg-ext-mq">qrefresh</command> command 20.501 always refreshes the <emphasis>topmost</emphasis> applied 20.502 patch. This means that you can suspend work on one patch (by 20.503 refreshing it), pop or push to make a different patch the top, 20.504 and work on <emphasis>that</emphasis> patch for a 20.505 while.</para> 20.506 20.507 - <para>Here's an example that illustrates how you can use this 20.508 + <para id="x_3e4">Here's an example that illustrates how you can use this 20.509 ability. Let's say you're developing a new feature as two 20.510 patches. The first is a change to the core of your software, 20.511 and the second&emdash;layered on top of the 20.512 @@ -503,10 +502,10 @@ 20.513 20.514 </sect2> 20.515 </sect1> 20.516 - <sect1 id="sec.mq.adv-patch"> 20.517 + <sect1 id="sec:mq:adv-patch"> 20.518 <title>More about patches</title> 20.519 20.520 - <para>MQ uses the GNU <command>patch</command> command to apply 20.521 + <para id="x_3e5">MQ uses the GNU <command>patch</command> command to apply 20.522 patches, so it's helpful to know a few more detailed aspects of 20.523 how <command>patch</command> works, and about patches 20.524 themselves.</para> 20.525 @@ -514,14 +513,14 @@ 20.526 <sect2> 20.527 <title>The strip count</title> 20.528 20.529 - <para>If you look at the file headers in a patch, you will 20.530 + <para id="x_3e6">If you look at the file headers in a patch, you will 20.531 notice that the pathnames usually have an extra component on 20.532 the front that isn't present in the actual path name. This is 20.533 a holdover from the way that people used to generate patches 20.534 (people still do this, but it's somewhat rare with modern 20.535 revision control tools).</para> 20.536 20.537 - <para>Alice would unpack a tarball, edit her files, then decide 20.538 + <para id="x_3e7">Alice would unpack a tarball, edit her files, then decide 20.539 that she wanted to create a patch. So she'd rename her 20.540 working directory, unpack the tarball again (hence the need 20.541 for the rename), and use the <option 20.542 @@ -534,7 +533,7 @@ 20.543 header, and the name of the modified directory would be at the 20.544 front of the right-hand path.</para> 20.545 20.546 - <para>Since someone receiving a patch from the Alices of the net 20.547 + <para id="x_3e8">Since someone receiving a patch from the Alices of the net 20.548 would be unlikely to have unmodified and modified directories 20.549 with exactly the same names, the <command>patch</command> 20.550 command has a <option role="cmd-opt-patch">-p</option> option 20.551 @@ -542,7 +541,7 @@ 20.552 strip when trying to apply a patch. This number is called the 20.553 <emphasis>strip count</emphasis>.</para> 20.554 20.555 - <para>An option of <quote><literal>-p1</literal></quote> means 20.556 + <para id="x_3e9">An option of <quote><literal>-p1</literal></quote> means 20.557 <quote>use a strip count of one</quote>. If 20.558 <command>patch</command> sees a file name 20.559 <filename>foo/bar/baz</filename> in a file header, it will 20.560 @@ -555,7 +554,7 @@ 20.561 but <filename>/foo/bar</filename> (notice the extra leading 20.562 slash) into <filename>foo/bar</filename>.)</para> 20.563 20.564 - <para>The <quote>standard</quote> strip count for patches is 20.565 + <para id="x_3ea">The <quote>standard</quote> strip count for patches is 20.566 one; almost all patches contain one leading path name 20.567 component that needs to be stripped. Mercurial's <command 20.568 role="hg-cmd">hg diff</command> command generates path names 20.569 @@ -563,7 +562,7 @@ 20.570 import</command> command and MQ expect patches to have a 20.571 strip count of one.</para> 20.572 20.573 - <para>If you receive a patch from someone that you want to add 20.574 + <para id="x_3eb">If you receive a patch from someone that you want to add 20.575 to your patch queue, and the patch needs a strip count other 20.576 than one, you cannot just <command 20.577 role="hg-ext-mq">qimport</command> the patch, because 20.578 @@ -584,14 +583,14 @@ 20.579 <sect2> 20.580 <title>Strategies for applying a patch</title> 20.581 20.582 - <para>When <command>patch</command> applies a hunk, it tries a 20.583 + <para id="x_3ec">When <command>patch</command> applies a hunk, it tries a 20.584 handful of successively less accurate strategies to try to 20.585 make the hunk apply. This falling-back technique often makes 20.586 it possible to take a patch that was generated against an old 20.587 version of a file, and apply it against a newer version of 20.588 that file.</para> 20.589 20.590 - <para>First, <command>patch</command> tries an exact match, 20.591 + <para id="x_3ed">First, <command>patch</command> tries an exact match, 20.592 where the line numbers, the context, and the text to be 20.593 modified must apply exactly. If it cannot make an exact 20.594 match, it tries to find an exact match for the context, 20.595 @@ -600,7 +599,7 @@ 20.596 applied, but at some <emphasis>offset</emphasis> from the 20.597 original line number.</para> 20.598 20.599 - <para>If a context-only match fails, <command>patch</command> 20.600 + <para id="x_3ee">If a context-only match fails, <command>patch</command> 20.601 removes the first and last lines of the context, and tries a 20.602 <emphasis>reduced</emphasis> context-only match. If the hunk 20.603 with reduced context succeeds, it prints a message saying that 20.604 @@ -609,7 +608,7 @@ 20.605 context <command>patch</command> had to trim before the patch 20.606 applied).</para> 20.607 20.608 - <para>When neither of these techniques works, 20.609 + <para id="x_3ef">When neither of these techniques works, 20.610 <command>patch</command> prints a message saying that the hunk 20.611 in question was rejected. It saves rejected hunks (also 20.612 simply called <quote>rejects</quote>) to a file with the same 20.613 @@ -629,36 +628,36 @@ 20.614 <sect2> 20.615 <title>Some quirks of patch representation</title> 20.616 20.617 - <para>There are a few useful things to know about how 20.618 + <para id="x_3f0">There are a few useful things to know about how 20.619 <command>patch</command> works with files.</para> 20.620 <itemizedlist> 20.621 - <listitem><para>This should already be obvious, but 20.622 + <listitem><para id="x_3f1">This should already be obvious, but 20.623 <command>patch</command> cannot handle binary 20.624 files.</para> 20.625 </listitem> 20.626 - <listitem><para>Neither does it care about the executable bit; 20.627 + <listitem><para id="x_3f2">Neither does it care about the executable bit; 20.628 it creates new files as readable, but not 20.629 executable.</para> 20.630 </listitem> 20.631 - <listitem><para><command>patch</command> treats the removal of 20.632 + <listitem><para id="x_3f3"><command>patch</command> treats the removal of 20.633 a file as a diff between the file to be removed and the 20.634 empty file. So your idea of <quote>I deleted this 20.635 file</quote> looks like <quote>every line of this file 20.636 was deleted</quote> in a patch.</para> 20.637 </listitem> 20.638 - <listitem><para>It treats the addition of a file as a diff 20.639 + <listitem><para id="x_3f4">It treats the addition of a file as a diff 20.640 between the empty file and the file to be added. So in a 20.641 patch, your idea of <quote>I added this file</quote> looks 20.642 like <quote>every line of this file was 20.643 added</quote>.</para> 20.644 </listitem> 20.645 - <listitem><para>It treats a renamed file as the removal of the 20.646 + <listitem><para id="x_3f5">It treats a renamed file as the removal of the 20.647 old name, and the addition of the new name. This means 20.648 that renamed files have a big footprint in patches. (Note 20.649 also that Mercurial does not currently try to infer when 20.650 files have been renamed or copied in a patch.)</para> 20.651 </listitem> 20.652 - <listitem><para><command>patch</command> cannot represent 20.653 + <listitem><para id="x_3f6"><command>patch</command> cannot represent 20.654 empty files, so you cannot use a patch to represent the 20.655 notion <quote>I added this empty file to the 20.656 tree</quote>.</para> 20.657 @@ -667,7 +666,7 @@ 20.658 <sect2> 20.659 <title>Beware the fuzz</title> 20.660 20.661 - <para>While applying a hunk at an offset, or with a fuzz factor, 20.662 + <para id="x_3f7">While applying a hunk at an offset, or with a fuzz factor, 20.663 will often be completely successful, these inexact techniques 20.664 naturally leave open the possibility of corrupting the patched 20.665 file. The most common cases typically involve applying a 20.666 @@ -677,7 +676,7 @@ 20.667 fuzz factor, you should make sure that the modified files are 20.668 correct afterwards.</para> 20.669 20.670 - <para>It's often a good idea to refresh a patch that has applied 20.671 + <para id="x_3f8">It's often a good idea to refresh a patch that has applied 20.672 with an offset or fuzz factor; refreshing the patch generates 20.673 new context information that will make it apply cleanly. I 20.674 say <quote>often,</quote> not <quote>always,</quote> because 20.675 @@ -692,30 +691,29 @@ 20.676 <sect2> 20.677 <title>Handling rejection</title> 20.678 20.679 - <para>If <command role="hg-ext-mq">qpush</command> fails to 20.680 + <para id="x_3f9">If <command role="hg-ext-mq">qpush</command> fails to 20.681 apply a patch, it will print an error message and exit. If it 20.682 has left <filename role="special">.rej</filename> files 20.683 behind, it is usually best to fix up the rejected hunks before 20.684 you push more patches or do any further work.</para> 20.685 20.686 - <para>If your patch <emphasis>used to</emphasis> apply cleanly, 20.687 + <para id="x_3fa">If your patch <emphasis>used to</emphasis> apply cleanly, 20.688 and no longer does because you've changed the underlying code 20.689 that your patches are based on, Mercurial Queues can help; see 20.690 - section <xref 20.691 - linkend="sec.mq.merge"/> for details.</para> 20.692 - 20.693 - <para>Unfortunately, there aren't any great techniques for 20.694 + <xref linkend="sec:mq:merge"/> for details.</para> 20.695 + 20.696 + <para id="x_3fb">Unfortunately, there aren't any great techniques for 20.697 dealing with rejected hunks. Most often, you'll need to view 20.698 the <filename role="special">.rej</filename> file and edit the 20.699 target file, applying the rejected hunks by hand.</para> 20.700 20.701 - <para>If you're feeling adventurous, Neil Brown, a Linux kernel 20.702 + <para id="x_3fc">If you're feeling adventurous, Neil Brown, a Linux kernel 20.703 hacker, wrote a tool called <command>wiggle</command> 20.704 <citation>web:wiggle</citation>, which is more vigorous than 20.705 <command>patch</command> in its attempts to make a patch 20.706 apply.</para> 20.707 20.708 - <para>Another Linux kernel hacker, Chris Mason (the author of 20.709 + <para id="x_3fd">Another Linux kernel hacker, Chris Mason (the author of 20.710 Mercurial Queues), wrote a similar tool called 20.711 <command>mpatch</command> <citation>web:mpatch</citation>, 20.712 which takes a simple approach to automating the application of 20.713 @@ -724,21 +722,21 @@ 20.714 reasons that a hunk may be rejected:</para> 20.715 20.716 <itemizedlist> 20.717 - <listitem><para>The context in the middle of a hunk has 20.718 + <listitem><para id="x_3fe">The context in the middle of a hunk has 20.719 changed.</para> 20.720 </listitem> 20.721 - <listitem><para>A hunk is missing some context at the 20.722 + <listitem><para id="x_3ff">A hunk is missing some context at the 20.723 beginning or end.</para> 20.724 </listitem> 20.725 - <listitem><para>A large hunk might apply better&emdash;either 20.726 + <listitem><para id="x_400">A large hunk might apply better&emdash;either 20.727 entirely or in part&emdash;if it was broken up into 20.728 smaller hunks.</para> 20.729 </listitem> 20.730 - <listitem><para>A hunk removes lines with slightly different 20.731 + <listitem><para id="x_401">A hunk removes lines with slightly different 20.732 content than those currently present in the file.</para> 20.733 </listitem></itemizedlist> 20.734 20.735 - <para>If you use <command>wiggle</command> or 20.736 + <para id="x_402">If you use <command>wiggle</command> or 20.737 <command>mpatch</command>, you should be doubly careful to 20.738 check your results when you're done. In fact, 20.739 <command>mpatch</command> enforces this method of 20.740 @@ -749,10 +747,10 @@ 20.741 20.742 </sect2> 20.743 </sect1> 20.744 - <sect1 id="sec.mq.perf"> 20.745 + <sect1 id="sec:mq:perf"> 20.746 <title>Getting the best performance out of MQ</title> 20.747 20.748 - <para>MQ is very efficient at handling a large number of patches. 20.749 + <para id="x_403">MQ is very efficient at handling a large number of patches. 20.750 I ran some performance experiments in mid-2006 for a talk that I 20.751 gave at the 2006 EuroPython conference 20.752 <citation>web:europython</citation>. I used as my data set the 20.753 @@ -761,7 +759,7 @@ 20.754 all 27,472 revisions between Linux 2.6.12-rc2 and Linux 20.755 2.6.17.</para> 20.756 20.757 - <para>On my old, slow laptop, I was able to <command 20.758 + <para id="x_404">On my old, slow laptop, I was able to <command 20.759 role="hg-cmd">hg qpush <option 20.760 role="hg-ext-mq-cmd-qpush-opt">hg -a</option></command> all 20.761 1,738 patches in 3.5 minutes, and <command role="hg-cmd">hg qpop 20.762 @@ -772,11 +770,11 @@ 20.763 (which made 22,779 lines of changes to 287 files) in 6.6 20.764 seconds.</para> 20.765 20.766 - <para>Clearly, MQ is well suited to working in large trees, but 20.767 + <para id="x_405">Clearly, MQ is well suited to working in large trees, but 20.768 there are a few tricks you can use to get the best performance 20.769 of it.</para> 20.770 20.771 - <para>First of all, try to <quote>batch</quote> operations 20.772 + <para id="x_406">First of all, try to <quote>batch</quote> operations 20.773 together. Every time you run <command 20.774 role="hg-ext-mq">qpush</command> or <command 20.775 role="hg-ext-mq">qpop</command>, these commands scan the 20.776 @@ -787,7 +785,7 @@ 20.777 medium-sized tree (containing tens of thousands of files), it 20.778 can take a second or more.</para> 20.779 20.780 - <para>The <command role="hg-ext-mq">qpush</command> and <command 20.781 + <para id="x_407">The <command role="hg-ext-mq">qpush</command> and <command 20.782 role="hg-ext-mq">qpop</command> commands allow you to push and 20.783 pop multiple patches at a time. You can identify the 20.784 <quote>destination patch</quote> that you want to end up at. 20.785 @@ -797,17 +795,17 @@ 20.786 role="hg-ext-mq">qpop</command> to a destination, MQ will pop 20.787 patches until the destination patch is at the top.</para> 20.788 20.789 - <para>You can identify a destination patch using either the name 20.790 + <para id="x_408">You can identify a destination patch using either the name 20.791 of the patch, or by number. If you use numeric addressing, 20.792 patches are counted from zero; this means that the first patch 20.793 is zero, the second is one, and so on.</para> 20.794 20.795 </sect1> 20.796 - <sect1 id="sec.mq.merge"> 20.797 + <sect1 id="sec:mq:merge"> 20.798 <title>Updating your patches when the underlying code 20.799 changes</title> 20.800 20.801 - <para>It's common to have a stack of patches on top of an 20.802 + <para id="x_409">It's common to have a stack of patches on top of an 20.803 underlying repository that you don't modify directly. If you're 20.804 working on changes to third-party code, or on a feature that is 20.805 taking longer to develop than the rate of change of the code 20.806 @@ -816,7 +814,7 @@ 20.807 This is called <emphasis>rebasing</emphasis> your patch 20.808 series.</para> 20.809 20.810 - <para>The simplest way to do this is to <command role="hg-cmd">hg 20.811 + <para id="x_40a">The simplest way to do this is to <command role="hg-cmd">hg 20.812 qpop <option role="hg-ext-mq-cmd-qpop-opt">hg 20.813 -a</option></command> your patches, then <command 20.814 role="hg-cmd">hg pull</command> changes into the underlying 20.815 @@ -828,26 +826,26 @@ 20.816 affected patch, and continue pushing until you have fixed your 20.817 entire stack.</para> 20.818 20.819 - <para>This approach is easy to use and works well if you don't 20.820 + <para id="x_40b">This approach is easy to use and works well if you don't 20.821 expect changes to the underlying code to affect how well your 20.822 patches apply. If your patch stack touches code that is modified 20.823 frequently or invasively in the underlying repository, however, 20.824 fixing up rejected hunks by hand quickly becomes 20.825 tiresome.</para> 20.826 20.827 - <para>It's possible to partially automate the rebasing process. 20.828 + <para id="x_40c">It's possible to partially automate the rebasing process. 20.829 If your patches apply cleanly against some revision of the 20.830 underlying repo, MQ can use this information to help you to 20.831 resolve conflicts between your patches and a different 20.832 revision.</para> 20.833 20.834 - <para>The process is a little involved.</para> 20.835 + <para id="x_40d">The process is a little involved.</para> 20.836 <orderedlist> 20.837 - <listitem><para>To begin, <command role="hg-cmd">hg qpush 20.838 + <listitem><para id="x_40e">To begin, <command role="hg-cmd">hg qpush 20.839 -a</command> all of your patches on top of the revision 20.840 where you know that they apply cleanly.</para> 20.841 </listitem> 20.842 - <listitem><para>Save a backup copy of your patch directory using 20.843 + <listitem><para id="x_40f">Save a backup copy of your patch directory using 20.844 <command role="hg-cmd">hg qsave <option 20.845 role="hg-ext-mq-cmd-qsave-opt">hg -e</option> <option 20.846 role="hg-ext-mq-cmd-qsave-opt">hg -c</option></command>. 20.847 @@ -861,17 +859,17 @@ 20.848 states of the <filename role="special">series</filename> and 20.849 <filename role="special">status</filename> files.</para> 20.850 </listitem> 20.851 - <listitem><para>Use <command role="hg-cmd">hg pull</command> to 20.852 + <listitem><para id="x_410">Use <command role="hg-cmd">hg pull</command> to 20.853 bring new changes into the underlying repository. (Don't 20.854 run <command role="hg-cmd">hg pull -u</command>; see below 20.855 for why.)</para> 20.856 </listitem> 20.857 - <listitem><para>Update to the new tip revision, using <command 20.858 + <listitem><para id="x_411">Update to the new tip revision, using <command 20.859 role="hg-cmd">hg update <option 20.860 role="hg-opt-update">-C</option></command> to override 20.861 the patches you have pushed.</para> 20.862 </listitem> 20.863 - <listitem><para>Merge all patches using <command>hg qpush -m 20.864 + <listitem><para id="x_412">Merge all patches using <command>hg qpush -m 20.865 -a</command>. The <option 20.866 role="hg-ext-mq-cmd-qpush-opt">-m</option> option to 20.867 <command role="hg-ext-mq">qpush</command> tells MQ to 20.868 @@ -879,7 +877,7 @@ 20.869 apply.</para> 20.870 </listitem></orderedlist> 20.871 20.872 - <para>During the <command role="hg-cmd">hg qpush <option 20.873 + <para id="x_413">During the <command role="hg-cmd">hg qpush <option 20.874 role="hg-ext-mq-cmd-qpush-opt">hg -m</option></command>, 20.875 each patch in the <filename role="special">series</filename> 20.876 file is applied normally. If a patch applies with fuzz or 20.877 @@ -889,10 +887,10 @@ 20.878 Mercurial's normal merge machinery, so it may pop up a GUI merge 20.879 tool to help you to resolve problems.</para> 20.880 20.881 - <para>When you finish resolving the effects of a patch, MQ 20.882 + <para id="x_414">When you finish resolving the effects of a patch, MQ 20.883 refreshes your patch based on the result of the merge.</para> 20.884 20.885 - <para>At the end of this process, your repository will have one 20.886 + <para id="x_415">At the end of this process, your repository will have one 20.887 extra head from the old patch queue, and a copy of the old patch 20.888 queue will be in <filename role="special" 20.889 class="directory">.hg/patches.N</filename>. You can remove the 20.890 @@ -906,26 +904,26 @@ 20.891 <sect1> 20.892 <title>Identifying patches</title> 20.893 20.894 - <para>MQ commands that work with patches let you refer to a patch 20.895 + <para id="x_416">MQ commands that work with patches let you refer to a patch 20.896 either by using its name or by a number. By name is obvious 20.897 enough; pass the name <filename>foo.patch</filename> to <command 20.898 role="hg-ext-mq">qpush</command>, for example, and it will 20.899 push patches until <filename>foo.patch</filename> is 20.900 applied.</para> 20.901 20.902 - <para>As a shortcut, you can refer to a patch using both a name 20.903 + <para id="x_417">As a shortcut, you can refer to a patch using both a name 20.904 and a numeric offset; <literal>foo.patch-2</literal> means 20.905 <quote>two patches before <literal>foo.patch</literal></quote>, 20.906 while <literal>bar.patch+4</literal> means <quote>four patches 20.907 after <literal>bar.patch</literal></quote>.</para> 20.908 20.909 - <para>Referring to a patch by index isn't much different. The 20.910 + <para id="x_418">Referring to a patch by index isn't much different. The 20.911 first patch printed in the output of <command 20.912 role="hg-ext-mq">qseries</command> is patch zero (yes, it's 20.913 one of those start-at-zero counting systems); the second is 20.914 patch one; and so on.</para> 20.915 20.916 - <para>MQ also makes it easy to work with patches when you are 20.917 + <para id="x_419">MQ also makes it easy to work with patches when you are 20.918 using normal Mercurial commands. Every command that accepts a 20.919 changeset ID will also accept the name of an applied patch. MQ 20.920 augments the tags normally in the repository with an eponymous 20.921 @@ -935,28 +933,28 @@ 20.922 the <quote>bottom-most</quote> and topmost applied patches, 20.923 respectively.</para> 20.924 20.925 - <para>These additions to Mercurial's normal tagging capabilities 20.926 + <para id="x_41a">These additions to Mercurial's normal tagging capabilities 20.927 make dealing with patches even more of a breeze.</para> 20.928 <itemizedlist> 20.929 - <listitem><para>Want to patchbomb a mailing list with your 20.930 + <listitem><para id="x_41b">Want to patchbomb a mailing list with your 20.931 latest series of changes?</para> 20.932 <programlisting>hg email qbase:qtip</programlisting> 20.933 - <para> (Don't know what <quote>patchbombing</quote> is? See 20.934 - section <xref linkend="sec.hgext.patchbomb"/>.)</para> 20.935 + <para id="x_41c"> (Don't know what <quote>patchbombing</quote> is? See 20.936 + <xref linkend="sec:hgext:patchbomb"/>.)</para> 20.937 </listitem> 20.938 - <listitem><para>Need to see all of the patches since 20.939 + <listitem><para id="x_41d">Need to see all of the patches since 20.940 <literal>foo.patch</literal> that have touched files in a 20.941 subdirectory of your tree?</para> 20.942 <programlisting>hg log -r foo.patch:qtip subdir</programlisting> 20.943 </listitem> 20.944 </itemizedlist> 20.945 20.946 - <para>Because MQ makes the names of patches available to the rest 20.947 + <para id="x_41e">Because MQ makes the names of patches available to the rest 20.948 of Mercurial through its normal internal tag machinery, you 20.949 don't need to type in the entire name of a patch when you want 20.950 to identify it by name.</para> 20.951 20.952 - <para>Another nice consequence of representing patch names as tags 20.953 + <para id="x_41f">Another nice consequence of representing patch names as tags 20.954 is that when you run the <command role="hg-cmd">hg log</command> 20.955 command, it will display a patch's name as a tag, simply as part 20.956 of its normal output. This makes it easy to visually 20.957 @@ -971,21 +969,21 @@ 20.958 <sect1> 20.959 <title>Useful things to know about</title> 20.960 20.961 - <para>There are a number of aspects of MQ usage that don't fit 20.962 + <para id="x_420">There are a number of aspects of MQ usage that don't fit 20.963 tidily into sections of their own, but that are good to know. 20.964 Here they are, in one place.</para> 20.965 20.966 <itemizedlist> 20.967 - <listitem><para>Normally, when you <command 20.968 + <listitem><para id="x_421">Normally, when you <command 20.969 role="hg-ext-mq">qpop</command> a patch and <command 20.970 role="hg-ext-mq">qpush</command> it again, the changeset 20.971 that represents the patch after the pop/push will have a 20.972 <emphasis>different identity</emphasis> than the changeset 20.973 - that represented the hash beforehand. See section <xref 20.974 - linkend="sec.mqref.cmd.qpush"/> for 20.975 + that represented the hash beforehand. See <xref 20.976 + linkend="sec:mqref:cmd:qpush"/> for 20.977 information as to why this is.</para> 20.978 </listitem> 20.979 - <listitem><para>It's not a good idea to <command 20.980 + <listitem><para id="x_422">It's not a good idea to <command 20.981 role="hg-cmd">hg merge</command> changes from another 20.982 branch with a patch changeset, at least if you want to 20.983 maintain the <quote>patchiness</quote> of that changeset and 20.984 @@ -995,16 +993,16 @@ 20.985 </listitem></itemizedlist> 20.986 20.987 </sect1> 20.988 - <sect1 id="sec.mq.repo"> 20.989 + <sect1 id="sec:mq:repo"> 20.990 <title>Managing patches in a repository</title> 20.991 20.992 - <para>Because MQ's <filename role="special" 20.993 + <para id="x_423">Because MQ's <filename role="special" 20.994 class="directory">.hg/patches</filename> directory resides 20.995 outside a Mercurial repository's working directory, the 20.996 <quote>underlying</quote> Mercurial repository knows nothing 20.997 about the management or presence of patches.</para> 20.998 20.999 - <para>This presents the interesting possibility of managing the 20.1000 + <para id="x_424">This presents the interesting possibility of managing the 20.1001 contents of the patch directory as a Mercurial repository in its 20.1002 own right. This can be a useful way to work. For example, you 20.1003 can work on a patch for a while, <command 20.1004 @@ -1013,7 +1011,7 @@ 20.1005 patch. This lets you <quote>roll back</quote> to that version 20.1006 of the patch later on.</para> 20.1007 20.1008 - <para>You can then share different versions of the same patch 20.1009 + <para id="x_425">You can then share different versions of the same patch 20.1010 stack among multiple underlying repositories. I use this when I 20.1011 am developing a Linux kernel feature. I have a pristine copy of 20.1012 my kernel sources for each of several CPU architectures, and a 20.1013 @@ -1023,7 +1021,7 @@ 20.1014 associated with that kernel tree, pop and push all of my 20.1015 patches, and build and test that kernel.</para> 20.1016 20.1017 - <para>Managing patches in a repository makes it possible for 20.1018 + <para id="x_426">Managing patches in a repository makes it possible for 20.1019 multiple developers to work on the same patch series without 20.1020 colliding with each other, all on top of an underlying source 20.1021 base that they may or may not control.</para> 20.1022 @@ -1031,7 +1029,7 @@ 20.1023 <sect2> 20.1024 <title>MQ support for patch repositories</title> 20.1025 20.1026 - <para>MQ helps you to work with the <filename role="special" 20.1027 + <para id="x_427">MQ helps you to work with the <filename role="special" 20.1028 class="directory">.hg/patches</filename> directory as a 20.1029 repository; when you prepare a repository for working with 20.1030 patches using <command role="hg-ext-mq">qinit</command>, you 20.1031 @@ -1041,7 +1039,7 @@ 20.1032 Mercurial repository.</para> 20.1033 20.1034 <note> 20.1035 - <para> If you forget to use the <option 20.1036 + <para id="x_428"> If you forget to use the <option 20.1037 role="hg-ext-mq-cmd-qinit-opt">hg -c</option> option, you 20.1038 can simply go into the <filename role="special" 20.1039 class="directory">.hg/patches</filename> directory at any 20.1040 @@ -1050,25 +1048,25 @@ 20.1041 role="special">status</filename> file to the <filename 20.1042 role="special">.hgignore</filename> file, though</para> 20.1043 20.1044 - <para> (<command role="hg-cmd">hg qinit <option 20.1045 + <para id="x_429"> (<command role="hg-cmd">hg qinit <option 20.1046 role="hg-ext-mq-cmd-qinit-opt">hg -c</option></command> 20.1047 does this for you automatically); you 20.1048 <emphasis>really</emphasis> don't want to manage the 20.1049 <filename role="special">status</filename> file.</para> 20.1050 </note> 20.1051 20.1052 - <para>As a convenience, if MQ notices that the <filename 20.1053 + <para id="x_42a">As a convenience, if MQ notices that the <filename 20.1054 class="directory">.hg/patches</filename> directory is a 20.1055 repository, it will automatically <command role="hg-cmd">hg 20.1056 add</command> every patch that you create and import.</para> 20.1057 20.1058 - <para>MQ provides a shortcut command, <command 20.1059 + <para id="x_42b">MQ provides a shortcut command, <command 20.1060 role="hg-ext-mq">qcommit</command>, that runs <command 20.1061 role="hg-cmd">hg commit</command> in the <filename 20.1062 role="special" class="directory">.hg/patches</filename> 20.1063 directory. This saves some bothersome typing.</para> 20.1064 20.1065 - <para>Finally, as a convenience to manage the patch directory, 20.1066 + <para id="x_42c">Finally, as a convenience to manage the patch directory, 20.1067 you can define the alias <command>mq</command> on Unix 20.1068 systems. For example, on Linux systems using the 20.1069 <command>bash</command> shell, you can include the following 20.1070 @@ -1077,17 +1075,17 @@ 20.1071 20.1072 <programlisting>alias mq=`hg -R $(hg root)/.hg/patches'</programlisting> 20.1073 20.1074 - <para>You can then issue commands of the form <command>mq 20.1075 + <para id="x_42d">You can then issue commands of the form <command>mq 20.1076 pull</command> from the main repository.</para> 20.1077 20.1078 </sect2> 20.1079 <sect2> 20.1080 <title>A few things to watch out for</title> 20.1081 20.1082 - <para>MQ's support for working with a repository full of patches 20.1083 + <para id="x_42e">MQ's support for working with a repository full of patches 20.1084 is limited in a few small respects.</para> 20.1085 20.1086 - <para>MQ cannot automatically detect changes that you make to 20.1087 + <para id="x_42f">MQ cannot automatically detect changes that you make to 20.1088 the patch directory. If you <command role="hg-cmd">hg 20.1089 pull</command>, manually edit, or <command role="hg-cmd">hg 20.1090 update</command> changes to patches or the <filename 20.1091 @@ -1102,14 +1100,14 @@ 20.1092 20.1093 </sect2> 20.1094 </sect1> 20.1095 - <sect1 id="sec.mq.tools"> 20.1096 + <sect1 id="sec:mq:tools"> 20.1097 <title>Third party tools for working with patches</title> 20.1098 20.1099 - <para>Once you've been working with patches for a while, you'll 20.1100 + <para id="x_430">Once you've been working with patches for a while, you'll 20.1101 find yourself hungry for tools that will help you to understand 20.1102 and manipulate the patches you're dealing with.</para> 20.1103 20.1104 - <para>The <command>diffstat</command> command 20.1105 + <para id="x_431">The <command>diffstat</command> command 20.1106 <citation>web:diffstat</citation> generates a histogram of the 20.1107 modifications made to each file in a patch. It provides a good 20.1108 way to <quote>get a sense of</quote> a patch&emdash;which files 20.1109 @@ -1123,7 +1121,7 @@ 20.1110 20.1111 &interaction.mq.tools.tools; 20.1112 20.1113 - <para>The <literal role="package">patchutils</literal> package 20.1114 + <para id="x_432">The <literal role="package">patchutils</literal> package 20.1115 <citation>web:patchutils</citation> is invaluable. It provides a 20.1116 set of small utilities that follow the <quote>Unix 20.1117 philosophy;</quote> each does one useful thing with a patch. 20.1118 @@ -1133,21 +1131,21 @@ 20.1119 hundreds of files across dozens of directories, a single 20.1120 invocation of <command>filterdiff</command> can generate a 20.1121 smaller patch that only touches files whose names match a 20.1122 - particular glob pattern. See section <xref 20.1123 - linkend="mq-collab.tips.interdiff"/> for another 20.1124 + particular glob pattern. See <xref 20.1125 + linkend="mq-collab:tips:interdiff"/> for another 20.1126 example.</para> 20.1127 20.1128 </sect1> 20.1129 <sect1> 20.1130 <title>Good ways to work with patches</title> 20.1131 20.1132 - <para>Whether you are working on a patch series to submit to a 20.1133 + <para id="x_433">Whether you are working on a patch series to submit to a 20.1134 free software or open source project, or a series that you 20.1135 intend to treat as a sequence of regular changesets when you're 20.1136 done, you can use some simple techniques to keep your work well 20.1137 organised.</para> 20.1138 20.1139 - <para>Give your patches descriptive names. A good name for a 20.1140 + <para id="x_434">Give your patches descriptive names. A good name for a 20.1141 patch might be <filename>rework-device-alloc.patch</filename>, 20.1142 because it will immediately give you a hint what the purpose of 20.1143 the patch is. Long names shouldn't be a problem; you won't be 20.1144 @@ -1159,7 +1157,7 @@ 20.1145 to work with, or if you are juggling a number of different tasks 20.1146 and your patches only get a fraction of your attention.</para> 20.1147 20.1148 - <para>Be aware of what patch you're working on. Use the <command 20.1149 + <para id="x_435">Be aware of what patch you're working on. Use the <command 20.1150 role="hg-ext-mq">qtop</command> command and skim over the text 20.1151 of your patches frequently&emdash;for example, using <command 20.1152 role="hg-cmd">hg tip <option 20.1153 @@ -1169,9 +1167,9 @@ 20.1154 one I intended, and it's often tricky to migrate changes into 20.1155 the right patch after making them in the wrong one.</para> 20.1156 20.1157 - <para>For this reason, it is very much worth investing a little 20.1158 + <para id="x_436">For this reason, it is very much worth investing a little 20.1159 time to learn how to use some of the third-party tools I 20.1160 - described in section <xref linkend="sec.mq.tools"/>, 20.1161 + described in <xref linkend="sec:mq:tools"/>, 20.1162 particularly 20.1163 <command>diffstat</command> and <command>filterdiff</command>. 20.1164 The former will give you a quick idea of what changes your patch 20.1165 @@ -1185,28 +1183,28 @@ 20.1166 <sect2> 20.1167 <title>Manage <quote>trivial</quote> patches</title> 20.1168 20.1169 - <para>Because the overhead of dropping files into a new 20.1170 + <para id="x_437">Because the overhead of dropping files into a new 20.1171 Mercurial repository is so low, it makes a lot of sense to 20.1172 manage patches this way even if you simply want to make a few 20.1173 changes to a source tarball that you downloaded.</para> 20.1174 20.1175 - <para>Begin by downloading and unpacking the source tarball, and 20.1176 + <para id="x_438">Begin by downloading and unpacking the source tarball, and 20.1177 turning it into a Mercurial repository.</para> 20.1178 20.1179 &interaction.mq.tarball.download; 20.1180 20.1181 - <para>Continue by creating a patch stack and making your 20.1182 + <para id="x_439">Continue by creating a patch stack and making your 20.1183 changes.</para> 20.1184 20.1185 &interaction.mq.tarball.qinit; 20.1186 20.1187 - <para>Let's say a few weeks or months pass, and your package 20.1188 + <para id="x_43a">Let's say a few weeks or months pass, and your package 20.1189 author releases a new version. First, bring their changes 20.1190 into the repository.</para> 20.1191 20.1192 &interaction.mq.tarball.newsource; 20.1193 20.1194 - <para>The pipeline starting with <command role="hg-cmd">hg 20.1195 + <para id="x_43b">The pipeline starting with <command role="hg-cmd">hg 20.1196 locate</command> above deletes all files in the working 20.1197 directory, so that <command role="hg-cmd">hg 20.1198 commit</command>'s <option 20.1199 @@ -1214,16 +1212,16 @@ 20.1200 actually tell which files have really been removed in the 20.1201 newer version of the source.</para> 20.1202 20.1203 - <para>Finally, you can apply your patches on top of the new 20.1204 + <para id="x_43c">Finally, you can apply your patches on top of the new 20.1205 tree.</para> 20.1206 20.1207 &interaction.mq.tarball.repush; 20.1208 20.1209 </sect2> 20.1210 - <sect2 id="sec.mq.combine"> 20.1211 + <sect2 id="sec:mq:combine"> 20.1212 <title>Combining entire patches</title> 20.1213 20.1214 - <para>MQ provides a command, <command 20.1215 + <para id="x_43d">MQ provides a command, <command 20.1216 role="hg-ext-mq">qfold</command> that lets you combine 20.1217 entire patches. This <quote>folds</quote> the patches you 20.1218 name, in the order you name them, into the topmost applied 20.1219 @@ -1231,7 +1229,7 @@ 20.1220 description. The patches that you fold must be unapplied 20.1221 before you fold them.</para> 20.1222 20.1223 - <para>The order in which you fold patches matters. If your 20.1224 + <para id="x_43e">The order in which you fold patches matters. If your 20.1225 topmost applied patch is <literal>foo</literal>, and you 20.1226 <command role="hg-ext-mq">qfold</command> 20.1227 <literal>bar</literal> and <literal>quux</literal> into it, 20.1228 @@ -1244,11 +1242,11 @@ 20.1229 <sect2> 20.1230 <title>Merging part of one patch into another</title> 20.1231 20.1232 - <para>Merging <emphasis>part</emphasis> of one patch into 20.1233 + <para id="x_43f">Merging <emphasis>part</emphasis> of one patch into 20.1234 another is more difficult than combining entire 20.1235 patches.</para> 20.1236 20.1237 - <para>If you want to move changes to entire files, you can use 20.1238 + <para id="x_440">If you want to move changes to entire files, you can use 20.1239 <command>filterdiff</command>'s <option 20.1240 role="cmd-opt-filterdiff">-i</option> and <option 20.1241 role="cmd-opt-filterdiff">-x</option> options to choose the 20.1242 @@ -1261,7 +1259,7 @@ 20.1243 <command role="hg-ext-mq">qrefresh</command> the patch to drop 20.1244 the duplicate hunks.</para> 20.1245 20.1246 - <para>If you have a patch that has multiple hunks modifying a 20.1247 + <para id="x_441">If you have a patch that has multiple hunks modifying a 20.1248 file, and you only want to move a few of those hunks, the job 20.1249 becomes more messy, but you can still partly automate it. Use 20.1250 <command>lsdiff -nvv</command> to print some metadata about 20.1251 @@ -1269,21 +1267,21 @@ 20.1252 20.1253 &interaction.mq.tools.lsdiff; 20.1254 20.1255 - <para>This command prints three different kinds of 20.1256 + <para id="x_442">This command prints three different kinds of 20.1257 number:</para> 20.1258 <itemizedlist> 20.1259 - <listitem><para>(in the first column) a <emphasis>file 20.1260 + <listitem><para id="x_443">(in the first column) a <emphasis>file 20.1261 number</emphasis> to identify each file modified in the 20.1262 patch;</para> 20.1263 </listitem> 20.1264 - <listitem><para>(on the next line, indented) the line number 20.1265 + <listitem><para id="x_444">(on the next line, indented) the line number 20.1266 within a modified file where a hunk starts; and</para> 20.1267 </listitem> 20.1268 - <listitem><para>(on the same line) a <emphasis>hunk 20.1269 + <listitem><para id="x_445">(on the same line) a <emphasis>hunk 20.1270 number</emphasis> to identify that hunk.</para> 20.1271 </listitem></itemizedlist> 20.1272 20.1273 - <para>You'll have to use some visual inspection, and reading of 20.1274 + <para id="x_446">You'll have to use some visual inspection, and reading of 20.1275 the patch, to identify the file and hunk numbers you'll want, 20.1276 but you can then pass them to to 20.1277 <command>filterdiff</command>'s <option 20.1278 @@ -1291,20 +1289,20 @@ 20.1279 role="cmd-opt-filterdiff">--hunks</option> options, to 20.1280 select exactly the file and hunk you want to extract.</para> 20.1281 20.1282 - <para>Once you have this hunk, you can concatenate it onto the 20.1283 + <para id="x_447">Once you have this hunk, you can concatenate it onto the 20.1284 end of your destination patch and continue with the remainder 20.1285 - of section <xref linkend="sec.mq.combine"/>.</para> 20.1286 + of <xref linkend="sec:mq:combine"/>.</para> 20.1287 20.1288 </sect2> 20.1289 </sect1> 20.1290 <sect1> 20.1291 <title>Differences between quilt and MQ</title> 20.1292 20.1293 - <para>If you are already familiar with quilt, MQ provides a 20.1294 + <para id="x_448">If you are already familiar with quilt, MQ provides a 20.1295 similar command set. There are a few differences in the way 20.1296 that it works.</para> 20.1297 20.1298 - <para>You will already have noticed that most quilt commands have 20.1299 + <para id="x_449">You will already have noticed that most quilt commands have 20.1300 MQ counterparts that simply begin with a 20.1301 <quote><literal>q</literal></quote>. The exceptions are quilt's 20.1302 <literal>add</literal> and <literal>remove</literal> commands,
21.1 --- a/en/ch12-mq-collab.xml Fri Mar 20 17:17:55 2009 +0800 21.2 +++ b/en/ch12-mq-collab.xml Mon Mar 30 16:23:33 2009 +0800 21.3 @@ -1,6 +1,6 @@ 21.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 21.5 21.6 -<chapter id="chap.mq-collab"> 21.7 +<chapter id="chap:mq-collab"> 21.8 <?dbhtml filename="advanced-uses-of-mercurial-queues.html"?> 21.9 <title>Advanced uses of Mercurial Queues</title> 21.10 21.11 @@ -430,12 +430,12 @@ 21.12 path separators.</para> 21.13 21.14 </sect2> 21.15 - <sect2 id="mq-collab.tips.interdiff"> 21.16 + <sect2 id="mq-collab:tips:interdiff"> 21.17 <title>Viewing the history of a patch</title> 21.18 21.19 <para id="x_19a">If you're developing a set of patches over a long time, 21.20 it's a good idea to maintain them in a repository, as 21.21 - discussed in section <xref linkend="sec.mq.repo"/>. If you do 21.22 + discussed in <xref linkend="sec:mq:repo"/>. If you do 21.23 so, you'll quickly 21.24 discover that using the <command role="hg-cmd">hg 21.25 diff</command> command to look at the history of changes to 21.26 @@ -504,8 +504,8 @@ 21.27 21.28 <para id="x_1a2">The <literal role="hg-ext">extdiff</literal> extension is 21.29 useful for more than merely improving the presentation of MQ 21.30 - patches. To read more about it, go to section <xref 21.31 - linkend="sec.hgext.extdiff"/>.</para> 21.32 + patches. To read more about it, go to <xref 21.33 + linkend="sec:hgext:extdiff"/>.</para> 21.34 21.35 </sect2> 21.36 </sect1>
22.1 --- a/en/ch13-hgext.xml Fri Mar 20 17:17:55 2009 +0800 22.2 +++ b/en/ch13-hgext.xml Mon Mar 30 16:23:33 2009 +0800 22.3 @@ -1,27 +1,27 @@ 22.4 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 22.5 22.6 -<chapter id="chap.hgext"> 22.7 +<chapter id="chap:hgext"> 22.8 <?dbhtml filename="adding-functionality-with-extensions.html"?> 22.9 <title>Adding functionality with extensions</title> 22.10 22.11 - <para>While the core of Mercurial is quite complete from a 22.12 + <para id="x_4fe">While the core of Mercurial is quite complete from a 22.13 functionality standpoint, it's deliberately shorn of fancy 22.14 features. This approach of preserving simplicity keeps the 22.15 software easy to deal with for both maintainers and users.</para> 22.16 22.17 - <para>However, Mercurial doesn't box you in with an inflexible 22.18 + <para id="x_4ff">However, Mercurial doesn't box you in with an inflexible 22.19 command set: you can add features to it as 22.20 <emphasis>extensions</emphasis> (sometimes known as 22.21 <emphasis>plugins</emphasis>). We've already discussed a few of 22.22 these extensions in earlier chapters.</para> 22.23 <itemizedlist> 22.24 - <listitem><para>Section <xref linkend="sec.tour-merge.fetch"/> 22.25 + <listitem><para id="x_500"><xref linkend="sec:tour-merge:fetch"/> 22.26 covers the <literal role="hg-ext">fetch</literal> extension; 22.27 this combines pulling new changes and merging them with local 22.28 changes into a single command, <command 22.29 role="hg-ext-fetch">fetch</command>.</para> 22.30 </listitem> 22.31 - <listitem><para>In chapter <xref linkend="chap.hook"/>, we covered 22.32 + <listitem><para id="x_501">In <xref linkend="chap:hook"/>, we covered 22.33 several extensions that are useful for hook-related 22.34 functionality: <literal role="hg-ext">acl</literal> adds 22.35 access control lists; <literal 22.36 @@ -30,36 +30,36 @@ 22.37 role="hg-ext">notify</literal> sends notification emails on 22.38 new changes.</para> 22.39 </listitem> 22.40 - <listitem><para>The Mercurial Queues patch management extension is 22.41 + <listitem><para id="x_502">The Mercurial Queues patch management extension is 22.42 so invaluable that it merits two chapters and an appendix all 22.43 - to itself. Chapter <xref linkend="chap.mq"/> covers the 22.44 - basics; chapter <xref 22.45 - linkend="chap.mq-collab"/> discusses advanced topics; 22.46 - and appendix <xref linkend="chap.mqref"/> goes into detail on 22.47 + to itself. <xref linkend="chap:mq"/> covers the 22.48 + basics; <xref 22.49 + linkend="chap:mq-collab"/> discusses advanced topics; 22.50 + and <xref linkend="chap:mqref"/> goes into detail on 22.51 each 22.52 command.</para> 22.53 </listitem></itemizedlist> 22.54 22.55 - <para>In this chapter, we'll cover some of the other extensions that 22.56 + <para id="x_503">In this chapter, we'll cover some of the other extensions that 22.57 are available for Mercurial, and briefly touch on some of the 22.58 machinery you'll need to know about if you want to write an 22.59 extension of your own.</para> 22.60 <itemizedlist> 22.61 - <listitem><para>In section <xref linkend="sec.hgext.inotify"/>, 22.62 + <listitem><para id="x_504">In <xref linkend="sec:hgext:inotify"/>, 22.63 we'll discuss the possibility of <emphasis>huge</emphasis> 22.64 performance improvements using the <literal 22.65 role="hg-ext">inotify</literal> extension.</para> 22.66 </listitem></itemizedlist> 22.67 22.68 - <sect1 id="sec.hgext.inotify"> 22.69 + <sect1 id="sec:hgext:inotify"> 22.70 <title>Improve performance with the <literal 22.71 role="hg-ext">inotify</literal> extension</title> 22.72 22.73 - <para>Are you interested in having some of the most common 22.74 + <para id="x_505">Are you interested in having some of the most common 22.75 Mercurial operations run as much as a hundred times faster? 22.76 Read on!</para> 22.77 22.78 - <para>Mercurial has great performance under normal circumstances. 22.79 + <para id="x_506">Mercurial has great performance under normal circumstances. 22.80 For example, when you run the <command role="hg-cmd">hg 22.81 status</command> command, Mercurial has to scan almost every 22.82 directory and file in your repository so that it can display 22.83 @@ -69,7 +69,7 @@ 22.84 machinery to avoid doing an expensive comparison operation on 22.85 files that obviously haven't changed.</para> 22.86 22.87 - <para>Because obtaining file status is crucial to good 22.88 + <para id="x_507">Because obtaining file status is crucial to good 22.89 performance, the authors of Mercurial have optimised this code 22.90 to within an inch of its life. However, there's no avoiding the 22.91 fact that when you run <command role="hg-cmd">hg 22.92 @@ -79,20 +79,20 @@ 22.93 checked. For a sufficiently large repository, this can take a 22.94 long time.</para> 22.95 22.96 - <para>To put a number on the magnitude of this effect, I created a 22.97 + <para id="x_508">To put a number on the magnitude of this effect, I created a 22.98 repository containing 150,000 managed files. I timed <command 22.99 role="hg-cmd">hg status</command> as taking ten seconds to 22.100 run, even when <emphasis>none</emphasis> of those files had been 22.101 modified.</para> 22.102 22.103 - <para>Many modern operating systems contain a file notification 22.104 + <para id="x_509">Many modern operating systems contain a file notification 22.105 facility. If a program signs up to an appropriate service, the 22.106 operating system will notify it every time a file of interest is 22.107 created, modified, or deleted. On Linux systems, the kernel 22.108 component that does this is called 22.109 <literal>inotify</literal>.</para> 22.110 22.111 - <para>Mercurial's <literal role="hg-ext">inotify</literal> 22.112 + <para id="x_50a">Mercurial's <literal role="hg-ext">inotify</literal> 22.113 extension talks to the kernel's <literal>inotify</literal> 22.114 component to optimise <command role="hg-cmd">hg status</command> 22.115 commands. The extension has two components. A daemon sits in 22.116 @@ -105,29 +105,29 @@ 22.117 with a result instantaneously, avoiding the need to scan every 22.118 directory and file in the repository.</para> 22.119 22.120 - <para>Recall the ten seconds that I measured plain Mercurial as 22.121 + <para id="x_50b">Recall the ten seconds that I measured plain Mercurial as 22.122 taking to run <command role="hg-cmd">hg status</command> on a 22.123 150,000 file repository. With the <literal 22.124 role="hg-ext">inotify</literal> extension enabled, the time 22.125 dropped to 0.1 seconds, a factor of <emphasis>one 22.126 hundred</emphasis> faster.</para> 22.127 22.128 - <para>Before we continue, please pay attention to some 22.129 + <para id="x_50c">Before we continue, please pay attention to some 22.130 caveats.</para> 22.131 <itemizedlist> 22.132 - <listitem><para>The <literal role="hg-ext">inotify</literal> 22.133 + <listitem><para id="x_50d">The <literal role="hg-ext">inotify</literal> 22.134 extension is Linux-specific. Because it interfaces directly 22.135 to the Linux kernel's <literal>inotify</literal> subsystem, 22.136 it does not work on other operating systems.</para> 22.137 </listitem> 22.138 - <listitem><para>It should work on any Linux distribution that 22.139 + <listitem><para id="x_50e">It should work on any Linux distribution that 22.140 was released after early 2005. Older distributions are 22.141 likely to have a kernel that lacks 22.142 <literal>inotify</literal>, or a version of 22.143 <literal>glibc</literal> that does not have the necessary 22.144 interfacing support.</para> 22.145 </listitem> 22.146 - <listitem><para>Not all filesystems are suitable for use with 22.147 + <listitem><para id="x_50f">Not all filesystems are suitable for use with 22.148 the <literal role="hg-ext">inotify</literal> extension. 22.149 Network filesystems such as NFS are a non-starter, for 22.150 example, particularly if you're running Mercurial on several 22.151 @@ -138,40 +138,40 @@ 22.152 fine.</para> 22.153 </listitem></itemizedlist> 22.154 22.155 - <para>The <literal role="hg-ext">inotify</literal> extension is 22.156 + <para id="x_510">The <literal role="hg-ext">inotify</literal> extension is 22.157 not yet shipped with Mercurial as of May 2007, so it's a little 22.158 more involved to set up than other extensions. But the 22.159 performance improvement is worth it!</para> 22.160 22.161 - <para>The extension currently comes in two parts: a set of patches 22.162 + <para id="x_511">The extension currently comes in two parts: a set of patches 22.163 to the Mercurial source code, and a library of Python bindings 22.164 to the <literal>inotify</literal> subsystem.</para> 22.165 <note> 22.166 - <para> There are <emphasis>two</emphasis> Python 22.167 + <para id="x_512"> There are <emphasis>two</emphasis> Python 22.168 <literal>inotify</literal> binding libraries. One of them is 22.169 called <literal>pyinotify</literal>, and is packaged by some 22.170 Linux distributions as <literal>python-inotify</literal>. 22.171 This is <emphasis>not</emphasis> the one you'll need, as it is 22.172 too buggy and inefficient to be practical.</para> 22.173 </note> 22.174 - <para>To get going, it's best to already have a functioning copy 22.175 + <para id="x_513">To get going, it's best to already have a functioning copy 22.176 of Mercurial installed.</para> 22.177 <note> 22.178 - <para> If you follow the instructions below, you'll be 22.179 + <para id="x_514"> If you follow the instructions below, you'll be 22.180 <emphasis>replacing</emphasis> and overwriting any existing 22.181 installation of Mercurial that you might already have, using 22.182 the latest <quote>bleeding edge</quote> Mercurial code. Don't 22.183 say you weren't warned!</para> 22.184 </note> 22.185 <orderedlist> 22.186 - <listitem><para>Clone the Python <literal>inotify</literal> 22.187 + <listitem><para id="x_515">Clone the Python <literal>inotify</literal> 22.188 binding repository. Build and install it.</para> 22.189 <programlisting>hg clone http://hg.kublai.com/python/inotify 22.190 cd inotify 22.191 python setup.py build --force 22.192 sudo python setup.py install --skip-build</programlisting> 22.193 </listitem> 22.194 - <listitem><para>Clone the <filename 22.195 + <listitem><para id="x_516">Clone the <filename 22.196 class="directory">crew</filename> Mercurial repository. 22.197 Clone the <literal role="hg-ext">inotify</literal> patch 22.198 repository so that Mercurial Queues will be able to apply 22.199 @@ -181,13 +181,13 @@ 22.200 hg clone crew inotify 22.201 hg clone http://hg.kublai.com/mercurial/patches/inotify inotify/.hg/patches</programlisting> 22.202 </listitem> 22.203 - <listitem><para>Make sure that you have the Mercurial Queues 22.204 + <listitem><para id="x_517">Make sure that you have the Mercurial Queues 22.205 extension, <literal role="hg-ext">mq</literal>, enabled. If 22.206 - you've never used MQ, read section <xref 22.207 - linkend="sec.mq.start"/> to get started 22.208 + you've never used MQ, read <xref 22.209 + linkend="sec:mq:start"/> to get started 22.210 quickly.</para> 22.211 </listitem> 22.212 - <listitem><para>Go into the <filename 22.213 + <listitem><para id="x_518">Go into the <filename 22.214 class="directory">inotify</filename> repo, and apply all 22.215 of the <literal role="hg-ext">inotify</literal> patches 22.216 using the <option role="hg-ext-mq-cmd-qpush-opt">hg 22.217 @@ -196,28 +196,28 @@ 22.218 <programlisting>cd inotify 22.219 hg qpush -a</programlisting> 22.220 </listitem> 22.221 - <listitem><para> If you get an error message from <command 22.222 + <listitem><para id="x_519"> If you get an error message from <command 22.223 role="hg-ext-mq">qpush</command>, you should not continue. 22.224 Instead, ask for help.</para> 22.225 </listitem> 22.226 - <listitem><para>Build and install the patched version of 22.227 + <listitem><para id="x_51a">Build and install the patched version of 22.228 Mercurial.</para> 22.229 <programlisting>python setup.py build --force 22.230 sudo python setup.py install --skip-build</programlisting> 22.231 </listitem> 22.232 </orderedlist> 22.233 - <para>Once you've build a suitably patched version of Mercurial, 22.234 + <para id="x_51b">Once you've build a suitably patched version of Mercurial, 22.235 all you need to do to enable the <literal 22.236 role="hg-ext">inotify</literal> extension is add an entry to 22.237 your <filename role="special">~/.hgrc</filename>.</para> 22.238 <programlisting>[extensions] inotify =</programlisting> 22.239 - <para>When the <literal role="hg-ext">inotify</literal> extension 22.240 + <para id="x_51c">When the <literal role="hg-ext">inotify</literal> extension 22.241 is enabled, Mercurial will automatically and transparently start 22.242 the status daemon the first time you run a command that needs 22.243 status in a repository. It runs one status daemon per 22.244 repository.</para> 22.245 22.246 - <para>The status daemon is started silently, and runs in the 22.247 + <para id="x_51d">The status daemon is started silently, and runs in the 22.248 background. If you look at a list of running processes after 22.249 you've enabled the <literal role="hg-ext">inotify</literal> 22.250 extension and run a few commands in different repositories, 22.251 @@ -225,7 +225,7 @@ 22.252 around, waiting for updates from the kernel and queries from 22.253 Mercurial.</para> 22.254 22.255 - <para>The first time you run a Mercurial command in a repository 22.256 + <para id="x_51e">The first time you run a Mercurial command in a repository 22.257 when you have the <literal role="hg-ext">inotify</literal> 22.258 extension enabled, it will run with about the same performance 22.259 as a normal Mercurial command. This is because the status 22.260 @@ -239,14 +239,14 @@ 22.261 status operations almost instantaneous on repositories of all 22.262 sizes!</para> 22.263 22.264 - <para>If you like, you can manually start a status daemon using 22.265 + <para id="x_51f">If you like, you can manually start a status daemon using 22.266 the <command role="hg-ext-inotify">inserve</command> command. 22.267 This gives you slightly finer control over how the daemon ought 22.268 to run. This command will of course only be available when the 22.269 <literal role="hg-ext">inotify</literal> extension is 22.270 enabled.</para> 22.271 22.272 - <para>When you're using the <literal 22.273 + <para id="x_520">When you're using the <literal 22.274 role="hg-ext">inotify</literal> extension, you should notice 22.275 <emphasis>no difference at all</emphasis> in Mercurial's 22.276 behaviour, with the sole exception of status-related commands 22.277 @@ -256,28 +256,28 @@ 22.278 these situations occurs, please report a bug.</para> 22.279 22.280 </sect1> 22.281 - <sect1 id="sec.hgext.extdiff"> 22.282 + <sect1 id="sec:hgext:extdiff"> 22.283 <title>Flexible diff support with the <literal 22.284 role="hg-ext">extdiff</literal> extension</title> 22.285 22.286 - <para>Mercurial's built-in <command role="hg-cmd">hg 22.287 + <para id="x_521">Mercurial's built-in <command role="hg-cmd">hg 22.288 diff</command> command outputs plaintext unified diffs.</para> 22.289 22.290 &interaction.extdiff.diff; 22.291 22.292 - <para>If you would like to use an external tool to display 22.293 + <para id="x_522">If you would like to use an external tool to display 22.294 modifications, you'll want to use the <literal 22.295 role="hg-ext">extdiff</literal> extension. This will let you 22.296 use, for example, a graphical diff tool.</para> 22.297 22.298 - <para>The <literal role="hg-ext">extdiff</literal> extension is 22.299 + <para id="x_523">The <literal role="hg-ext">extdiff</literal> extension is 22.300 bundled with Mercurial, so it's easy to set up. In the <literal 22.301 role="rc-extensions">extensions</literal> section of your 22.302 <filename role="special">~/.hgrc</filename>, simply add a 22.303 one-line entry to enable the extension.</para> 22.304 <programlisting>[extensions] 22.305 extdiff =</programlisting> 22.306 - <para>This introduces a command named <command 22.307 + <para id="x_524">This introduces a command named <command 22.308 role="hg-ext-extdiff">extdiff</command>, which by default uses 22.309 your system's <command>diff</command> command to generate a 22.310 unified diff in the same form as the built-in <command 22.311 @@ -285,12 +285,12 @@ 22.312 22.313 &interaction.extdiff.extdiff; 22.314 22.315 - <para>The result won't be exactly the same as with the built-in 22.316 + <para id="x_525">The result won't be exactly the same as with the built-in 22.317 <command role="hg-cmd">hg diff</command> variations, because the 22.318 output of <command>diff</command> varies from one system to 22.319 another, even when passed the same options.</para> 22.320 22.321 - <para>As the <quote><literal>making snapshot</literal></quote> 22.322 + <para id="x_526">As the <quote><literal>making snapshot</literal></quote> 22.323 lines of output above imply, the <command 22.324 role="hg-ext-extdiff">extdiff</command> command works by 22.325 creating two snapshots of your source tree. The first snapshot 22.326 @@ -303,7 +303,7 @@ 22.327 directories and files that have changed between the two 22.328 revisions.</para> 22.329 22.330 - <para>Snapshot directory names have the same base name as your 22.331 + <para id="x_527">Snapshot directory names have the same base name as your 22.332 repository. If your repository path is <filename 22.333 class="directory">/quux/bar/foo</filename>, then <filename 22.334 class="directory">foo</filename> will be the name of each 22.335 @@ -319,7 +319,7 @@ 22.336 that the diff has the snapshot directory names embedded in its 22.337 header.</para> 22.338 22.339 - <para>The <command role="hg-ext-extdiff">extdiff</command> command 22.340 + <para id="x_528">The <command role="hg-ext-extdiff">extdiff</command> command 22.341 accepts two important options. The <option 22.342 role="hg-ext-extdiff-cmd-extdiff-opt">hg -p</option> option 22.343 lets you choose a program to view differences with, instead of 22.344 @@ -336,7 +336,7 @@ 22.345 and arguments to specify the revisions you want, the files you 22.346 want, and so on.</para> 22.347 22.348 - <para>As an example, here's how to run the normal system 22.349 + <para id="x_529">As an example, here's how to run the normal system 22.350 <command>diff</command> command, getting it to generate context 22.351 diffs (using the <option role="cmd-opt-diff">-c</option> option) 22.352 instead of unified diffs, and five lines of context instead of 22.353 @@ -345,28 +345,28 @@ 22.354 22.355 &interaction.extdiff.extdiff-ctx; 22.356 22.357 - <para>Launching a visual diff tool is just as easy. Here's how to 22.358 + <para id="x_52a">Launching a visual diff tool is just as easy. Here's how to 22.359 launch the <command>kdiff3</command> viewer.</para> 22.360 <programlisting>hg extdiff -p kdiff3 -o</programlisting> 22.361 22.362 - <para>If your diff viewing command can't deal with directories, 22.363 + <para id="x_52b">If your diff viewing command can't deal with directories, 22.364 you can easily work around this with a little scripting. For an 22.365 example of such scripting in action with the <literal 22.366 role="hg-ext">mq</literal> extension and the 22.367 - <command>interdiff</command> command, see section <xref 22.368 - linkend="mq-collab.tips.interdiff"/>.</para> 22.369 + <command>interdiff</command> command, see <xref 22.370 + linkend="mq-collab:tips:interdiff"/>.</para> 22.371 22.372 <sect2> 22.373 <title>Defining command aliases</title> 22.374 22.375 - <para>It can be cumbersome to remember the options to both the 22.376 + <para id="x_52c">It can be cumbersome to remember the options to both the 22.377 <command role="hg-ext-extdiff">extdiff</command> command and 22.378 the diff viewer you want to use, so the <literal 22.379 role="hg-ext">extdiff</literal> extension lets you define 22.380 <emphasis>new</emphasis> commands that will invoke your diff 22.381 viewer with exactly the right options.</para> 22.382 22.383 - <para>All you need to do is edit your <filename 22.384 + <para id="x_52d">All you need to do is edit your <filename 22.385 role="special">~/.hgrc</filename>, and add a section named 22.386 <literal role="rc-extdiff">extdiff</literal>. Inside this 22.387 section, you can define multiple commands. Here's how to add 22.388 @@ -376,7 +376,7 @@ 22.389 will run <command>kdiff3</command> for you.</para> 22.390 <programlisting>[extdiff] 22.391 cmd.kdiff3 =</programlisting> 22.392 - <para>If you leave the right hand side of the definition empty, 22.393 + <para id="x_52e">If you leave the right hand side of the definition empty, 22.394 as above, the <literal role="hg-ext">extdiff</literal> 22.395 extension uses the name of the command you defined as the name 22.396 of the external program to run. But these names don't have to 22.397 @@ -386,7 +386,7 @@ 22.398 <programlisting>[extdiff] 22.399 cmd.wibble = kdiff3</programlisting> 22.400 22.401 - <para>You can also specify the default options that you want to 22.402 + <para id="x_52f">You can also specify the default options that you want to 22.403 invoke your diff viewing program with. The prefix to use is 22.404 <quote><literal>opts.</literal></quote>, followed by the name 22.405 of the command to which the options apply. This example 22.406 @@ -399,18 +399,18 @@ 22.407 22.408 </sect2> 22.409 </sect1> 22.410 - <sect1 id="sec.hgext.transplant"> 22.411 + <sect1 id="sec:hgext:transplant"> 22.412 <title>Cherrypicking changes with the <literal 22.413 role="hg-ext">transplant</literal> extension</title> 22.414 22.415 - <para>Need to have a long chat with Brendan about this.</para> 22.416 + <para id="x_530">Need to have a long chat with Brendan about this.</para> 22.417 22.418 </sect1> 22.419 - <sect1 id="sec.hgext.patchbomb"> 22.420 + <sect1 id="sec:hgext:patchbomb"> 22.421 <title>Send changes via email with the <literal 22.422 role="hg-ext">patchbomb</literal> extension</title> 22.423 22.424 - <para>Many projects have a culture of <quote>change 22.425 + <para id="x_531">Many projects have a culture of <quote>change 22.426 review</quote>, in which people send their modifications to a 22.427 mailing list for others to read and comment on before they 22.428 commit the final version to a shared repository. Some projects 22.429 @@ -418,7 +418,7 @@ 22.430 other people to a repository to which those others don't have 22.431 access.</para> 22.432 22.433 - <para>Mercurial makes it easy to send changes over email for 22.434 + <para id="x_532">Mercurial makes it easy to send changes over email for 22.435 review or application, via its <literal 22.436 role="hg-ext">patchbomb</literal> extension. The extension is 22.437 so named because changes are formatted as patches, and it's usual 22.438 @@ -426,17 +426,17 @@ 22.439 of changes by email is thus much like <quote>bombing</quote> the 22.440 recipient's inbox, hence <quote>patchbomb</quote>.</para> 22.441 22.442 - <para>As usual, the basic configuration of the <literal 22.443 + <para id="x_533">As usual, the basic configuration of the <literal 22.444 role="hg-ext">patchbomb</literal> extension takes just one or 22.445 two lines in your <filename role="special"> 22.446 /.hgrc</filename>.</para> 22.447 <programlisting>[extensions] 22.448 patchbomb =</programlisting> 22.449 - <para>Once you've enabled the extension, you will have a new 22.450 + <para id="x_534">Once you've enabled the extension, you will have a new 22.451 command available, named <command 22.452 role="hg-ext-patchbomb">email</command>.</para> 22.453 22.454 - <para>The safest and best way to invoke the <command 22.455 + <para id="x_535">The safest and best way to invoke the <command 22.456 role="hg-ext-patchbomb">email</command> command is to 22.457 <emphasis>always</emphasis> run it first with the <option 22.458 role="hg-ext-patchbomb-cmd-email-opt">hg -n</option> option. 22.459 @@ -447,12 +447,12 @@ 22.460 role="hg-ext-patchbomb-cmd-email-opt">hg -n</option> option 22.461 removed.</para> 22.462 22.463 - <para>The <command role="hg-ext-patchbomb">email</command> command 22.464 + <para id="x_536">The <command role="hg-ext-patchbomb">email</command> command 22.465 accepts the same kind of revision syntax as every other 22.466 Mercurial command. For example, this command will send every 22.467 revision between 7 and <literal>tip</literal>, inclusive.</para> 22.468 <programlisting>hg email -n 7:tip</programlisting> 22.469 - <para>You can also specify a <emphasis>repository</emphasis> to 22.470 + <para id="x_537">You can also specify a <emphasis>repository</emphasis> to 22.471 compare with. If you provide a repository but no revisions, the 22.472 <command role="hg-ext-patchbomb">email</command> command will 22.473 send all revisions in the local repository that are not present 22.474 @@ -461,7 +461,7 @@ 22.475 role="hg-ext-patchbomb-cmd-email-opt">hg -b</option> option), 22.476 this will constrain the revisions sent.</para> 22.477 22.478 - <para>It's perfectly safe to run the <command 22.479 + <para id="x_538">It's perfectly safe to run the <command 22.480 role="hg-ext-patchbomb">email</command> command without the 22.481 names of the people you want to send to: if you do this, it will 22.482 just prompt you for those values interactively. (If you're 22.483 @@ -469,12 +469,12 @@ 22.484 <literal>readline</literal>-style editing capabilities when 22.485 entering those headers, too, which is useful.)</para> 22.486 22.487 - <para>When you are sending just one revision, the <command 22.488 + <para id="x_539">When you are sending just one revision, the <command 22.489 role="hg-ext-patchbomb">email</command> command will by 22.490 default use the first line of the changeset description as the 22.491 subject of the single email message it sends.</para> 22.492 22.493 - <para>If you send multiple revisions, the <command 22.494 + <para id="x_53a">If you send multiple revisions, the <command 22.495 role="hg-ext-patchbomb">email</command> command will usually 22.496 send one message per changeset. It will preface the series with 22.497 an introductory message, in which you should describe the 22.498 @@ -483,39 +483,39 @@ 22.499 <sect2> 22.500 <title>Changing the behaviour of patchbombs</title> 22.501 22.502 - <para>Not every project has exactly the same conventions for 22.503 + <para id="x_53b">Not every project has exactly the same conventions for 22.504 sending changes in email; the <literal 22.505 role="hg-ext">patchbomb</literal> extension tries to 22.506 accommodate a number of variations through command line 22.507 options.</para> 22.508 <itemizedlist> 22.509 - <listitem><para>You can write a subject for the introductory 22.510 + <listitem><para id="x_53c">You can write a subject for the introductory 22.511 message on the command line using the <option 22.512 role="hg-ext-patchbomb-cmd-email-opt">hg -s</option> 22.513 option. This takes one argument, the text of the subject 22.514 to use.</para> 22.515 </listitem> 22.516 - <listitem><para>To change the email address from which the 22.517 + <listitem><para id="x_53d">To change the email address from which the 22.518 messages originate, use the <option 22.519 role="hg-ext-patchbomb-cmd-email-opt">hg -f</option> 22.520 option. This takes one argument, the email address to 22.521 use.</para> 22.522 </listitem> 22.523 - <listitem><para>The default behaviour is to send unified diffs 22.524 - (see section <xref linkend="sec.mq.patch"/> for a 22.525 + <listitem><para id="x_53e">The default behaviour is to send unified diffs 22.526 + (see <xref linkend="sec:mq:patch"/> for a 22.527 description of the 22.528 format), one per message. You can send a binary bundle 22.529 instead with the <option 22.530 role="hg-ext-patchbomb-cmd-email-opt">hg -b</option> 22.531 option.</para> 22.532 </listitem> 22.533 - <listitem><para>Unified diffs are normally prefaced with a 22.534 + <listitem><para id="x_53f">Unified diffs are normally prefaced with a 22.535 metadata header. You can omit this, and send unadorned 22.536 diffs, with the <option 22.537 role="hg-ext-patchbomb-cmd-email-opt">hg 22.538 --plain</option> option.</para> 22.539 </listitem> 22.540 - <listitem><para>Diffs are normally sent <quote>inline</quote>, 22.541 + <listitem><para id="x_540">Diffs are normally sent <quote>inline</quote>, 22.542 in the same body part as the description of a patch. This 22.543 makes it easiest for the largest number of readers to 22.544 quote and respond to parts of a diff, as some mail clients 22.545 @@ -525,14 +525,14 @@ 22.546 role="hg-ext-patchbomb-cmd-email-opt">hg -a</option> 22.547 option.</para> 22.548 </listitem> 22.549 - <listitem><para>Instead of sending mail messages, you can 22.550 + <listitem><para id="x_541">Instead of sending mail messages, you can 22.551 write them to an <literal>mbox</literal>-format mail 22.552 folder using the <option 22.553 role="hg-ext-patchbomb-cmd-email-opt">hg -m</option> 22.554 option. That option takes one argument, the name of the 22.555 file to write to.</para> 22.556 </listitem> 22.557 - <listitem><para>If you would like to add a 22.558 + <listitem><para id="x_542">If you would like to add a 22.559 <command>diffstat</command>-format summary to each patch, 22.560 and one to the introductory message, use the <option 22.561 role="hg-ext-patchbomb-cmd-email-opt">hg -d</option>
23.1 --- a/en/examples/auto-snippets.xml Fri Mar 20 17:17:55 2009 +0800 23.2 +++ b/en/examples/auto-snippets.xml Mon Mar 30 16:23:33 2009 +0800 23.3 @@ -1,222 +1,225 @@ 23.4 -<!ENTITY ch06-apache-config.lst SYSTEM "ch06/apache-config.lst"> 23.5 -<!ENTITY ch10-bugzilla-config.lst SYSTEM "ch10/bugzilla-config.lst"> 23.6 -<!ENTITY ch10-notify-config-mail.lst SYSTEM "ch10/notify-config-mail.lst"> 23.7 -<!ENTITY ch10-notify-config.lst SYSTEM "ch10/notify-config.lst"> 23.8 -<!ENTITY interaction.backout.init SYSTEM "results/backout.init.out"> 23.9 -<!ENTITY interaction.backout.manual.backout SYSTEM "results/backout.manual.backout.out"> 23.10 -<!ENTITY interaction.backout.manual.cat SYSTEM "results/backout.manual.cat.out"> 23.11 -<!ENTITY interaction.backout.manual.clone SYSTEM "results/backout.manual.clone.out"> 23.12 -<!ENTITY interaction.backout.manual.heads SYSTEM "results/backout.manual.heads.out"> 23.13 -<!ENTITY interaction.backout.manual.log SYSTEM "results/backout.manual.log.out"> 23.14 -<!ENTITY interaction.backout.manual.merge SYSTEM "results/backout.manual.merge.out"> 23.15 -<!ENTITY interaction.backout.manual.parents SYSTEM "results/backout.manual.parents.out"> 23.16 -<!ENTITY interaction.backout.non-tip.backout SYSTEM "results/backout.non-tip.backout.out"> 23.17 -<!ENTITY interaction.backout.non-tip.cat SYSTEM "results/backout.non-tip.cat.out"> 23.18 -<!ENTITY interaction.backout.non-tip.clone SYSTEM "results/backout.non-tip.clone.out"> 23.19 -<!ENTITY interaction.backout.simple SYSTEM "results/backout.simple.out"> 23.20 -<!ENTITY interaction.backout.simple.log SYSTEM "results/backout.simple.log.out"> 23.21 -<!ENTITY interaction.bisect.commits SYSTEM "results/bisect.commits.out"> 23.22 -<!ENTITY interaction.bisect.help SYSTEM "results/bisect.help.out"> 23.23 -<!ENTITY interaction.bisect.init SYSTEM "results/bisect.init.out"> 23.24 -<!ENTITY interaction.bisect.search.bad-init SYSTEM "results/bisect.search.bad-init.out"> 23.25 -<!ENTITY interaction.bisect.search.good-init SYSTEM "results/bisect.search.good-init.out"> 23.26 -<!ENTITY interaction.bisect.search.init SYSTEM "results/bisect.search.init.out"> 23.27 -<!ENTITY interaction.bisect.search.mytest SYSTEM "results/bisect.search.mytest.out"> 23.28 -<!ENTITY interaction.bisect.search.reset SYSTEM "results/bisect.search.reset.out"> 23.29 -<!ENTITY interaction.bisect.search.rest SYSTEM "results/bisect.search.rest.out"> 23.30 -<!ENTITY interaction.bisect.search.step1 SYSTEM "results/bisect.search.step1.out"> 23.31 -<!ENTITY interaction.bisect.search.step2 SYSTEM "results/bisect.search.step2.out"> 23.32 -<!ENTITY interaction.branch-named.branch SYSTEM "results/branch-named.branch.out"> 23.33 -<!ENTITY interaction.branch-named.branches SYSTEM "results/branch-named.branches.out"> 23.34 -<!ENTITY interaction.branch-named.commit SYSTEM "results/branch-named.commit.out"> 23.35 -<!ENTITY interaction.branch-named.create SYSTEM "results/branch-named.create.out"> 23.36 -<!ENTITY interaction.branch-named.foo-commit SYSTEM "results/branch-named.foo-commit.out"> 23.37 -<!ENTITY interaction.branch-named.merge SYSTEM "results/branch-named.merge.out"> 23.38 -<!ENTITY interaction.branch-named.parents SYSTEM "results/branch-named.parents.out"> 23.39 -<!ENTITY interaction.branch-named.rebranch SYSTEM "results/branch-named.rebranch.out"> 23.40 -<!ENTITY interaction.branch-named.status SYSTEM "results/branch-named.status.out"> 23.41 -<!ENTITY interaction.branch-named.update-bar SYSTEM "results/branch-named.update-bar.out"> 23.42 -<!ENTITY interaction.branch-named.update-nothing SYSTEM "results/branch-named.update-nothing.out"> 23.43 -<!ENTITY interaction.branch-named.update-switchy SYSTEM "results/branch-named.update-switchy.out"> 23.44 -<!ENTITY interaction.branch-repo.bugfix SYSTEM "results/branch-repo.bugfix.out"> 23.45 -<!ENTITY interaction.branch-repo.clone SYSTEM "results/branch-repo.clone.out"> 23.46 -<!ENTITY interaction.branch-repo.merge SYSTEM "results/branch-repo.merge.out"> 23.47 -<!ENTITY interaction.branch-repo.new SYSTEM "results/branch-repo.new.out"> 23.48 -<!ENTITY interaction.branch-repo.pull SYSTEM "results/branch-repo.pull.out"> 23.49 -<!ENTITY interaction.branch-repo.tag SYSTEM "results/branch-repo.tag.out"> 23.50 -<!ENTITY interaction.branching.clone SYSTEM "results/branching.clone.out"> 23.51 -<!ENTITY interaction.branching.init SYSTEM "results/branching.init.out"> 23.52 -<!ENTITY interaction.branching.main SYSTEM "results/branching.main.out"> 23.53 -<!ENTITY interaction.branching.merge SYSTEM "results/branching.merge.out"> 23.54 -<!ENTITY interaction.branching.stable SYSTEM "results/branching.stable.out"> 23.55 -<!ENTITY interaction.branching.tag SYSTEM "results/branching.tag.out"> 23.56 -<!ENTITY interaction.branching.update SYSTEM "results/branching.update.out"> 23.57 -<!ENTITY interaction.cmdref.diff-p SYSTEM "results/cmdref.diff-p.out"> 23.58 -<!ENTITY interaction.daily.copy.after SYSTEM "results/daily.copy.after.out"> 23.59 -<!ENTITY interaction.daily.copy.cat SYSTEM "results/daily.copy.cat.out"> 23.60 -<!ENTITY interaction.daily.copy.clone SYSTEM "results/daily.copy.clone.out"> 23.61 -<!ENTITY interaction.daily.copy.copy SYSTEM "results/daily.copy.copy.out"> 23.62 -<!ENTITY interaction.daily.copy.dir-dest SYSTEM "results/daily.copy.dir-dest.out"> 23.63 -<!ENTITY interaction.daily.copy.dir-src SYSTEM "results/daily.copy.dir-src.out"> 23.64 -<!ENTITY interaction.daily.copy.dir-src-dest SYSTEM "results/daily.copy.dir-src-dest.out"> 23.65 -<!ENTITY interaction.daily.copy.init SYSTEM "results/daily.copy.init.out"> 23.66 -<!ENTITY interaction.daily.copy.merge SYSTEM "results/daily.copy.merge.out"> 23.67 -<!ENTITY interaction.daily.copy.other SYSTEM "results/daily.copy.other.out"> 23.68 -<!ENTITY interaction.daily.copy.simple SYSTEM "results/daily.copy.simple.out"> 23.69 -<!ENTITY interaction.daily.copy.status SYSTEM "results/daily.copy.status.out"> 23.70 -<!ENTITY interaction.daily.copy.status-copy SYSTEM "results/daily.copy.status-copy.out"> 23.71 -<!ENTITY interaction.daily.files.add SYSTEM "results/daily.files.add.out"> 23.72 -<!ENTITY interaction.daily.files.add-dir SYSTEM "results/daily.files.add-dir.out"> 23.73 -<!ENTITY interaction.daily.files.addremove SYSTEM "results/daily.files.addremove.out"> 23.74 -<!ENTITY interaction.daily.files.commit-addremove SYSTEM "results/daily.files.commit-addremove.out"> 23.75 -<!ENTITY interaction.daily.files.hidden SYSTEM "results/daily.files.hidden.out"> 23.76 -<!ENTITY interaction.daily.files.missing SYSTEM "results/daily.files.missing.out"> 23.77 -<!ENTITY interaction.daily.files.recover-missing SYSTEM "results/daily.files.recover-missing.out"> 23.78 -<!ENTITY interaction.daily.files.remove SYSTEM "results/daily.files.remove.out"> 23.79 -<!ENTITY interaction.daily.files.remove-after SYSTEM "results/daily.files.remove-after.out"> 23.80 -<!ENTITY interaction.daily.rename.rename SYSTEM "results/daily.rename.rename.out"> 23.81 -<!ENTITY interaction.daily.rename.status SYSTEM "results/daily.rename.status.out"> 23.82 -<!ENTITY interaction.daily.rename.status-copy SYSTEM "results/daily.rename.status-copy.out"> 23.83 -<!ENTITY interaction.daily.revert.add SYSTEM "results/daily.revert.add.out"> 23.84 -<!ENTITY interaction.daily.revert.copy SYSTEM "results/daily.revert.copy.out"> 23.85 -<!ENTITY interaction.daily.revert.missing SYSTEM "results/daily.revert.missing.out"> 23.86 -<!ENTITY interaction.daily.revert.modify SYSTEM "results/daily.revert.modify.out"> 23.87 -<!ENTITY interaction.daily.revert.remove SYSTEM "results/daily.revert.remove.out"> 23.88 -<!ENTITY interaction.daily.revert.rename SYSTEM "results/daily.revert.rename.out"> 23.89 -<!ENTITY interaction.daily.revert.rename-orig SYSTEM "results/daily.revert.rename-orig.out"> 23.90 -<!ENTITY interaction.daily.revert.status SYSTEM "results/daily.revert.status.out"> 23.91 -<!ENTITY interaction.daily.revert.unmodify SYSTEM "results/daily.revert.unmodify.out"> 23.92 -<!ENTITY interaction.extdiff.diff SYSTEM "results/extdiff.diff.out"> 23.93 -<!ENTITY interaction.extdiff.extdiff SYSTEM "results/extdiff.extdiff.out"> 23.94 -<!ENTITY interaction.extdiff.extdiff-ctx SYSTEM "results/extdiff.extdiff-ctx.out"> 23.95 -<!ENTITY interaction.filenames.dirs SYSTEM "results/filenames.dirs.out"> 23.96 -<!ENTITY interaction.filenames.files SYSTEM "results/filenames.files.out"> 23.97 -<!ENTITY interaction.filenames.filter.exclude SYSTEM "results/filenames.filter.exclude.out"> 23.98 -<!ENTITY interaction.filenames.filter.include SYSTEM "results/filenames.filter.include.out"> 23.99 -<!ENTITY interaction.filenames.glob.group SYSTEM "results/filenames.glob.group.out"> 23.100 -<!ENTITY interaction.filenames.glob.question SYSTEM "results/filenames.glob.question.out"> 23.101 -<!ENTITY interaction.filenames.glob.range SYSTEM "results/filenames.glob.range.out"> 23.102 -<!ENTITY interaction.filenames.glob.star SYSTEM "results/filenames.glob.star.out"> 23.103 -<!ENTITY interaction.filenames.glob.star-starstar SYSTEM "results/filenames.glob.star-starstar.out"> 23.104 -<!ENTITY interaction.filenames.glob.starstar SYSTEM "results/filenames.glob.starstar.out"> 23.105 -<!ENTITY interaction.filenames.wdir-relname SYSTEM "results/filenames.wdir-relname.out"> 23.106 -<!ENTITY interaction.filenames.wdir-subdir SYSTEM "results/filenames.wdir-subdir.out"> 23.107 -<!ENTITY interaction.hook.msglen.go SYSTEM "results/hook.msglen.go.out"> 23.108 -<!ENTITY interaction.hook.simple.ext SYSTEM "results/hook.simple.ext.out"> 23.109 -<!ENTITY interaction.hook.simple.init SYSTEM "results/hook.simple.init.out"> 23.110 -<!ENTITY interaction.hook.simple.pretxncommit SYSTEM "results/hook.simple.pretxncommit.out"> 23.111 -<!ENTITY interaction.hook.ws.better SYSTEM "results/hook.ws.better.out"> 23.112 -<!ENTITY interaction.hook.ws.simple SYSTEM "results/hook.ws.simple.out"> 23.113 -<!ENTITY interaction.issue29.go SYSTEM "results/issue29.go.out"> 23.114 -<!ENTITY interaction.mq.dodiff.diff SYSTEM "results/mq.dodiff.diff.out"> 23.115 -<!ENTITY interaction.mq.guards.init SYSTEM "results/mq.guards.init.out"> 23.116 -<!ENTITY interaction.mq.guards.qguard SYSTEM "results/mq.guards.qguard.out"> 23.117 -<!ENTITY interaction.mq.guards.qguard.neg SYSTEM "results/mq.guards.qguard.neg.out"> 23.118 -<!ENTITY interaction.mq.guards.qguard.pos SYSTEM "results/mq.guards.qguard.pos.out"> 23.119 -<!ENTITY interaction.mq.guards.qselect.cat SYSTEM "results/mq.guards.qselect.cat.out"> 23.120 -<!ENTITY interaction.mq.guards.qselect.error SYSTEM "results/mq.guards.qselect.error.out"> 23.121 -<!ENTITY interaction.mq.guards.qselect.foo SYSTEM "results/mq.guards.qselect.foo.out"> 23.122 -<!ENTITY interaction.mq.guards.qselect.foobar SYSTEM "results/mq.guards.qselect.foobar.out"> 23.123 -<!ENTITY interaction.mq.guards.qselect.qpush SYSTEM "results/mq.guards.qselect.qpush.out"> 23.124 -<!ENTITY interaction.mq.guards.qselect.quux SYSTEM "results/mq.guards.qselect.quux.out"> 23.125 -<!ENTITY interaction.mq.guards.series SYSTEM "results/mq.guards.series.out"> 23.126 -<!ENTITY interaction.mq.id.output SYSTEM "results/mq.id.output.out"> 23.127 -<!ENTITY interaction.mq.qinit-help.help SYSTEM "results/mq.qinit-help.help.out"> 23.128 -<!ENTITY interaction.mq.tarball.download SYSTEM "results/mq.tarball.download.out"> 23.129 -<!ENTITY interaction.mq.tarball.newsource SYSTEM "results/mq.tarball.newsource.out"> 23.130 -<!ENTITY interaction.mq.tarball.qinit SYSTEM "results/mq.tarball.qinit.out"> 23.131 -<!ENTITY interaction.mq.tarball.repush SYSTEM "results/mq.tarball.repush.out"> 23.132 -<!ENTITY interaction.mq.tools.lsdiff SYSTEM "results/mq.tools.lsdiff.out"> 23.133 -<!ENTITY interaction.mq.tools.tools SYSTEM "results/mq.tools.tools.out"> 23.134 -<!ENTITY interaction.mq.tutorial.add SYSTEM "results/mq.tutorial.add.out"> 23.135 -<!ENTITY interaction.mq.tutorial.qinit SYSTEM "results/mq.tutorial.qinit.out"> 23.136 -<!ENTITY interaction.mq.tutorial.qnew SYSTEM "results/mq.tutorial.qnew.out"> 23.137 -<!ENTITY interaction.mq.tutorial.qnew2 SYSTEM "results/mq.tutorial.qnew2.out"> 23.138 -<!ENTITY interaction.mq.tutorial.qpop SYSTEM "results/mq.tutorial.qpop.out"> 23.139 -<!ENTITY interaction.mq.tutorial.qpush-a SYSTEM "results/mq.tutorial.qpush-a.out"> 23.140 -<!ENTITY interaction.mq.tutorial.qrefresh SYSTEM "results/mq.tutorial.qrefresh.out"> 23.141 -<!ENTITY interaction.mq.tutorial.qrefresh2 SYSTEM "results/mq.tutorial.qrefresh2.out"> 23.142 -<!ENTITY interaction.mq.tutorial.qseries SYSTEM "results/mq.tutorial.qseries.out"> 23.143 -<!ENTITY interaction.rename.divergent.clone SYSTEM "results/rename.divergent.clone.out"> 23.144 -<!ENTITY interaction.rename.divergent.merge SYSTEM "results/rename.divergent.merge.out"> 23.145 -<!ENTITY interaction.rename.divergent.rename.anne SYSTEM "results/rename.divergent.rename.anne.out"> 23.146 -<!ENTITY interaction.rename.divergent.rename.bob SYSTEM "results/rename.divergent.rename.bob.out"> 23.147 -<!ENTITY interaction.rollback.add SYSTEM "results/rollback.add.out"> 23.148 -<!ENTITY interaction.rollback.commit SYSTEM "results/rollback.commit.out"> 23.149 -<!ENTITY interaction.rollback.rollback SYSTEM "results/rollback.rollback.out"> 23.150 -<!ENTITY interaction.rollback.status SYSTEM "results/rollback.status.out"> 23.151 -<!ENTITY interaction.rollback.tip SYSTEM "results/rollback.tip.out"> 23.152 -<!ENTITY interaction.rollback.twice SYSTEM "results/rollback.twice.out"> 23.153 -<!ENTITY interaction.tag.init SYSTEM "results/tag.init.out"> 23.154 -<!ENTITY interaction.tag.log SYSTEM "results/tag.log.out"> 23.155 -<!ENTITY interaction.tag.log.v1.0 SYSTEM "results/tag.log.v1.0.out"> 23.156 -<!ENTITY interaction.tag.remove SYSTEM "results/tag.remove.out"> 23.157 -<!ENTITY interaction.tag.replace SYSTEM "results/tag.replace.out"> 23.158 -<!ENTITY interaction.tag.tag SYSTEM "results/tag.tag.out"> 23.159 -<!ENTITY interaction.tag.tags SYSTEM "results/tag.tags.out"> 23.160 -<!ENTITY interaction.tag.tip SYSTEM "results/tag.tip.out"> 23.161 -<!ENTITY interaction.template.simple.changelog SYSTEM "results/template.simple.changelog.out"> 23.162 -<!ENTITY interaction.template.simple.combine SYSTEM "results/template.simple.combine.out"> 23.163 -<!ENTITY interaction.template.simple.compact SYSTEM "results/template.simple.compact.out"> 23.164 -<!ENTITY interaction.template.simple.datekeyword SYSTEM "results/template.simple.datekeyword.out"> 23.165 -<!ENTITY interaction.template.simple.keywords SYSTEM "results/template.simple.keywords.out"> 23.166 -<!ENTITY interaction.template.simple.manyfilters SYSTEM "results/template.simple.manyfilters.out"> 23.167 -<!ENTITY interaction.template.simple.normal SYSTEM "results/template.simple.normal.out"> 23.168 -<!ENTITY interaction.template.simple.rev SYSTEM "results/template.simple.rev.out"> 23.169 -<!ENTITY interaction.template.simple.simplest SYSTEM "results/template.simple.simplest.out"> 23.170 -<!ENTITY interaction.template.simple.simplesub SYSTEM "results/template.simple.simplesub.out"> 23.171 -<!ENTITY interaction.template.svnstyle.id SYSTEM "results/template.svnstyle.id.out"> 23.172 -<!ENTITY interaction.template.svnstyle.result SYSTEM "results/template.svnstyle.result.out"> 23.173 -<!ENTITY interaction.template.svnstyle.short SYSTEM "results/template.svnstyle.short.out"> 23.174 -<!ENTITY interaction.template.svnstyle.simplest SYSTEM "results/template.svnstyle.simplest.out"> 23.175 -<!ENTITY interaction.template.svnstyle.style SYSTEM "results/template.svnstyle.style.out"> 23.176 -<!ENTITY interaction.template.svnstyle.syntax.error SYSTEM "results/template.svnstyle.syntax.error.out"> 23.177 -<!ENTITY interaction.template.svnstyle.syntax.input SYSTEM "results/template.svnstyle.syntax.input.out"> 23.178 -<!ENTITY interaction.template.svnstyle.template SYSTEM "results/template.svnstyle.template.out"> 23.179 -<!ENTITY interaction.tour-merge-conflict.commit SYSTEM "results/tour-merge-conflict.commit.out"> 23.180 -<!ENTITY interaction.tour-merge-conflict.cousin SYSTEM "results/tour-merge-conflict.cousin.out"> 23.181 -<!ENTITY interaction.tour-merge-conflict.merge SYSTEM "results/tour-merge-conflict.merge.out"> 23.182 -<!ENTITY interaction.tour-merge-conflict.pull SYSTEM "results/tour-merge-conflict.pull.out"> 23.183 -<!ENTITY interaction.tour-merge-conflict.son SYSTEM "results/tour-merge-conflict.son.out"> 23.184 -<!ENTITY interaction.tour-merge-conflict.wife SYSTEM "results/tour-merge-conflict.wife.out"> 23.185 -<!ENTITY interaction.tour.clone SYSTEM "results/tour.clone.out"> 23.186 -<!ENTITY interaction.tour.clone-pull SYSTEM "results/tour.clone-pull.out"> 23.187 -<!ENTITY interaction.tour.clone-push SYSTEM "results/tour.clone-push.out"> 23.188 -<!ENTITY interaction.tour.commit SYSTEM "results/tour.commit.out"> 23.189 -<!ENTITY interaction.tour.diff SYSTEM "results/tour.diff.out"> 23.190 -<!ENTITY interaction.tour.help SYSTEM "results/tour.help.out"> 23.191 -<!ENTITY interaction.tour.incoming SYSTEM "results/tour.incoming.out"> 23.192 -<!ENTITY interaction.tour.log SYSTEM "results/tour.log.out"> 23.193 -<!ENTITY interaction.tour.log-r SYSTEM "results/tour.log-r.out"> 23.194 -<!ENTITY interaction.tour.log-v SYSTEM "results/tour.log-v.out"> 23.195 -<!ENTITY interaction.tour.log-vp SYSTEM "results/tour.log-vp.out"> 23.196 -<!ENTITY interaction.tour.log.range SYSTEM "results/tour.log.range.out"> 23.197 -<!ENTITY interaction.tour.ls SYSTEM "results/tour.ls.out"> 23.198 -<!ENTITY interaction.tour.ls-a SYSTEM "results/tour.ls-a.out"> 23.199 -<!ENTITY interaction.tour.merge.cat SYSTEM "results/tour.merge.cat.out"> 23.200 -<!ENTITY interaction.tour.merge.clone SYSTEM "results/tour.merge.clone.out"> 23.201 -<!ENTITY interaction.tour.merge.commit SYSTEM "results/tour.merge.commit.out"> 23.202 -<!ENTITY interaction.tour.merge.dummy1 SYSTEM "results/tour.merge.dummy1.out"> 23.203 -<!ENTITY interaction.tour.merge.dummy2 SYSTEM "results/tour.merge.dummy2.out"> 23.204 -<!ENTITY interaction.tour.merge.dummy3 SYSTEM "results/tour.merge.dummy3.out"> 23.205 -<!ENTITY interaction.tour.merge.dummy4 SYSTEM "results/tour.merge.dummy4.out"> 23.206 -<!ENTITY interaction.tour.merge.heads SYSTEM "results/tour.merge.heads.out"> 23.207 -<!ENTITY interaction.tour.merge.merge SYSTEM "results/tour.merge.merge.out"> 23.208 -<!ENTITY interaction.tour.merge.parents SYSTEM "results/tour.merge.parents.out"> 23.209 -<!ENTITY interaction.tour.merge.pull SYSTEM "results/tour.merge.pull.out"> 23.210 -<!ENTITY interaction.tour.merge.tip SYSTEM "results/tour.merge.tip.out"> 23.211 -<!ENTITY interaction.tour.merge.update SYSTEM "results/tour.merge.update.out"> 23.212 -<!ENTITY interaction.tour.older SYSTEM "results/tour.older.out"> 23.213 -<!ENTITY interaction.tour.outgoing SYSTEM "results/tour.outgoing.out"> 23.214 -<!ENTITY interaction.tour.outgoing.net SYSTEM "results/tour.outgoing.net.out"> 23.215 -<!ENTITY interaction.tour.parents SYSTEM "results/tour.parents.out"> 23.216 -<!ENTITY interaction.tour.pull SYSTEM "results/tour.pull.out"> 23.217 -<!ENTITY interaction.tour.push SYSTEM "results/tour.push.out"> 23.218 -<!ENTITY interaction.tour.push.net SYSTEM "results/tour.push.net.out"> 23.219 -<!ENTITY interaction.tour.push.nothing SYSTEM "results/tour.push.nothing.out"> 23.220 -<!ENTITY interaction.tour.reclone SYSTEM "results/tour.reclone.out"> 23.221 -<!ENTITY interaction.tour.sed SYSTEM "results/tour.sed.out"> 23.222 -<!ENTITY interaction.tour.status SYSTEM "results/tour.status.out"> 23.223 -<!ENTITY interaction.tour.tip SYSTEM "results/tour.tip.out"> 23.224 -<!ENTITY interaction.tour.update SYSTEM "results/tour.update.out"> 23.225 -<!ENTITY interaction.tour.version SYSTEM "results/tour.version.out"> 23.226 +<!ENTITY ch06-apache-config.lst SYSTEM "results/ch06-apache-config.lst.lxo"> 23.227 +<!ENTITY ch10-bugzilla-config.lst SYSTEM "results/ch10-bugzilla-config.lst.lxo"> 23.228 +<!ENTITY ch10-notify-config-mail.lst SYSTEM "results/ch10-notify-config-mail.lst.lxo"> 23.229 +<!ENTITY ch10-notify-config.lst SYSTEM "results/ch10-notify-config.lst.lxo"> 23.230 +<!ENTITY interaction.backout.init SYSTEM "results/backout.init.lxo"> 23.231 +<!ENTITY interaction.backout.manual.backout SYSTEM "results/backout.manual.backout.lxo"> 23.232 +<!ENTITY interaction.backout.manual.cat SYSTEM "results/backout.manual.cat.lxo"> 23.233 +<!ENTITY interaction.backout.manual.clone SYSTEM "results/backout.manual.clone.lxo"> 23.234 +<!ENTITY interaction.backout.manual.heads SYSTEM "results/backout.manual.heads.lxo"> 23.235 +<!ENTITY interaction.backout.manual.log SYSTEM "results/backout.manual.log.lxo"> 23.236 +<!ENTITY interaction.backout.manual.merge SYSTEM "results/backout.manual.merge.lxo"> 23.237 +<!ENTITY interaction.backout.manual.parents SYSTEM "results/backout.manual.parents.lxo"> 23.238 +<!ENTITY interaction.backout.non-tip.backout SYSTEM "results/backout.non-tip.backout.lxo"> 23.239 +<!ENTITY interaction.backout.non-tip.cat SYSTEM "results/backout.non-tip.cat.lxo"> 23.240 +<!ENTITY interaction.backout.non-tip.clone SYSTEM "results/backout.non-tip.clone.lxo"> 23.241 +<!ENTITY interaction.backout.simple SYSTEM "results/backout.simple.lxo"> 23.242 +<!ENTITY interaction.backout.simple.log SYSTEM "results/backout.simple.log.lxo"> 23.243 +<!ENTITY interaction.bisect.commits SYSTEM "results/bisect.commits.lxo"> 23.244 +<!ENTITY interaction.bisect.help SYSTEM "results/bisect.help.lxo"> 23.245 +<!ENTITY interaction.bisect.init SYSTEM "results/bisect.init.lxo"> 23.246 +<!ENTITY interaction.bisect.search.bad-init SYSTEM "results/bisect.search.bad-init.lxo"> 23.247 +<!ENTITY interaction.bisect.search.good-init SYSTEM "results/bisect.search.good-init.lxo"> 23.248 +<!ENTITY interaction.bisect.search.init SYSTEM "results/bisect.search.init.lxo"> 23.249 +<!ENTITY interaction.bisect.search.mytest SYSTEM "results/bisect.search.mytest.lxo"> 23.250 +<!ENTITY interaction.bisect.search.reset SYSTEM "results/bisect.search.reset.lxo"> 23.251 +<!ENTITY interaction.bisect.search.rest SYSTEM "results/bisect.search.rest.lxo"> 23.252 +<!ENTITY interaction.bisect.search.step1 SYSTEM "results/bisect.search.step1.lxo"> 23.253 +<!ENTITY interaction.bisect.search.step2 SYSTEM "results/bisect.search.step2.lxo"> 23.254 +<!ENTITY interaction.branch-named.branch SYSTEM "results/branch-named.branch.lxo"> 23.255 +<!ENTITY interaction.branch-named.branches SYSTEM "results/branch-named.branches.lxo"> 23.256 +<!ENTITY interaction.branch-named.commit SYSTEM "results/branch-named.commit.lxo"> 23.257 +<!ENTITY interaction.branch-named.create SYSTEM "results/branch-named.create.lxo"> 23.258 +<!ENTITY interaction.branch-named.foo-commit SYSTEM "results/branch-named.foo-commit.lxo"> 23.259 +<!ENTITY interaction.branch-named.merge SYSTEM "results/branch-named.merge.lxo"> 23.260 +<!ENTITY interaction.branch-named.parents SYSTEM "results/branch-named.parents.lxo"> 23.261 +<!ENTITY interaction.branch-named.rebranch SYSTEM "results/branch-named.rebranch.lxo"> 23.262 +<!ENTITY interaction.branch-named.status SYSTEM "results/branch-named.status.lxo"> 23.263 +<!ENTITY interaction.branch-named.update-bar SYSTEM "results/branch-named.update-bar.lxo"> 23.264 +<!ENTITY interaction.branch-named.update-nothing SYSTEM "results/branch-named.update-nothing.lxo"> 23.265 +<!ENTITY interaction.branch-named.update-switchy SYSTEM "results/branch-named.update-switchy.lxo"> 23.266 +<!ENTITY interaction.branch-repo.bugfix SYSTEM "results/branch-repo.bugfix.lxo"> 23.267 +<!ENTITY interaction.branch-repo.clone SYSTEM "results/branch-repo.clone.lxo"> 23.268 +<!ENTITY interaction.branch-repo.merge SYSTEM "results/branch-repo.merge.lxo"> 23.269 +<!ENTITY interaction.branch-repo.new SYSTEM "results/branch-repo.new.lxo"> 23.270 +<!ENTITY interaction.branch-repo.pull SYSTEM "results/branch-repo.pull.lxo"> 23.271 +<!ENTITY interaction.branch-repo.tag SYSTEM "results/branch-repo.tag.lxo"> 23.272 +<!ENTITY interaction.branching.clone SYSTEM "results/branching.clone.lxo"> 23.273 +<!ENTITY interaction.branching.init SYSTEM "results/branching.init.lxo"> 23.274 +<!ENTITY interaction.branching.main SYSTEM "results/branching.main.lxo"> 23.275 +<!ENTITY interaction.branching.merge SYSTEM "results/branching.merge.lxo"> 23.276 +<!ENTITY interaction.branching.stable SYSTEM "results/branching.stable.lxo"> 23.277 +<!ENTITY interaction.branching.tag SYSTEM "results/branching.tag.lxo"> 23.278 +<!ENTITY interaction.branching.update SYSTEM "results/branching.update.lxo"> 23.279 +<!ENTITY interaction.cmdref.diff-p SYSTEM "results/cmdref.diff-p.lxo"> 23.280 +<!ENTITY interaction.daily.copy.after SYSTEM "results/daily.copy.after.lxo"> 23.281 +<!ENTITY interaction.daily.copy.cat SYSTEM "results/daily.copy.cat.lxo"> 23.282 +<!ENTITY interaction.daily.copy.clone SYSTEM "results/daily.copy.clone.lxo"> 23.283 +<!ENTITY interaction.daily.copy.copy SYSTEM "results/daily.copy.copy.lxo"> 23.284 +<!ENTITY interaction.daily.copy.dir-dest SYSTEM "results/daily.copy.dir-dest.lxo"> 23.285 +<!ENTITY interaction.daily.copy.dir-src SYSTEM "results/daily.copy.dir-src.lxo"> 23.286 +<!ENTITY interaction.daily.copy.dir-src-dest SYSTEM "results/daily.copy.dir-src-dest.lxo"> 23.287 +<!ENTITY interaction.daily.copy.init SYSTEM "results/daily.copy.init.lxo"> 23.288 +<!ENTITY interaction.daily.copy.merge SYSTEM "results/daily.copy.merge.lxo"> 23.289 +<!ENTITY interaction.daily.copy.other SYSTEM "results/daily.copy.other.lxo"> 23.290 +<!ENTITY interaction.daily.copy.simple SYSTEM "results/daily.copy.simple.lxo"> 23.291 +<!ENTITY interaction.daily.copy.status SYSTEM "results/daily.copy.status.lxo"> 23.292 +<!ENTITY interaction.daily.copy.status-copy SYSTEM "results/daily.copy.status-copy.lxo"> 23.293 +<!ENTITY interaction.daily.files.add SYSTEM "results/daily.files.add.lxo"> 23.294 +<!ENTITY interaction.daily.files.add-dir SYSTEM "results/daily.files.add-dir.lxo"> 23.295 +<!ENTITY interaction.daily.files.addremove SYSTEM "results/daily.files.addremove.lxo"> 23.296 +<!ENTITY interaction.daily.files.commit-addremove SYSTEM "results/daily.files.commit-addremove.lxo"> 23.297 +<!ENTITY interaction.daily.files.hidden SYSTEM "results/daily.files.hidden.lxo"> 23.298 +<!ENTITY interaction.daily.files.missing SYSTEM "results/daily.files.missing.lxo"> 23.299 +<!ENTITY interaction.daily.files.recover-missing SYSTEM "results/daily.files.recover-missing.lxo"> 23.300 +<!ENTITY interaction.daily.files.remove SYSTEM "results/daily.files.remove.lxo"> 23.301 +<!ENTITY interaction.daily.files.remove-after SYSTEM "results/daily.files.remove-after.lxo"> 23.302 +<!ENTITY interaction.daily.rename.rename SYSTEM "results/daily.rename.rename.lxo"> 23.303 +<!ENTITY interaction.daily.rename.status SYSTEM "results/daily.rename.status.lxo"> 23.304 +<!ENTITY interaction.daily.rename.status-copy SYSTEM "results/daily.rename.status-copy.lxo"> 23.305 +<!ENTITY interaction.daily.revert.add SYSTEM "results/daily.revert.add.lxo"> 23.306 +<!ENTITY interaction.daily.revert.copy SYSTEM "results/daily.revert.copy.lxo"> 23.307 +<!ENTITY interaction.daily.revert.missing SYSTEM "results/daily.revert.missing.lxo"> 23.308 +<!ENTITY interaction.daily.revert.modify SYSTEM "results/daily.revert.modify.lxo"> 23.309 +<!ENTITY interaction.daily.revert.remove SYSTEM "results/daily.revert.remove.lxo"> 23.310 +<!ENTITY interaction.daily.revert.rename SYSTEM "results/daily.revert.rename.lxo"> 23.311 +<!ENTITY interaction.daily.revert.rename-orig SYSTEM "results/daily.revert.rename-orig.lxo"> 23.312 +<!ENTITY interaction.daily.revert.status SYSTEM "results/daily.revert.status.lxo"> 23.313 +<!ENTITY interaction.daily.revert.unmodify SYSTEM "results/daily.revert.unmodify.lxo"> 23.314 +<!ENTITY interaction.extdiff.diff SYSTEM "results/extdiff.diff.lxo"> 23.315 +<!ENTITY interaction.extdiff.extdiff SYSTEM "results/extdiff.extdiff.lxo"> 23.316 +<!ENTITY interaction.extdiff.extdiff-ctx SYSTEM "results/extdiff.extdiff-ctx.lxo"> 23.317 +<!ENTITY interaction.filenames.dirs SYSTEM "results/filenames.dirs.lxo"> 23.318 +<!ENTITY interaction.filenames.files SYSTEM "results/filenames.files.lxo"> 23.319 +<!ENTITY interaction.filenames.filter.exclude SYSTEM "results/filenames.filter.exclude.lxo"> 23.320 +<!ENTITY interaction.filenames.filter.include SYSTEM "results/filenames.filter.include.lxo"> 23.321 +<!ENTITY interaction.filenames.glob.group SYSTEM "results/filenames.glob.group.lxo"> 23.322 +<!ENTITY interaction.filenames.glob.question SYSTEM "results/filenames.glob.question.lxo"> 23.323 +<!ENTITY interaction.filenames.glob.range SYSTEM "results/filenames.glob.range.lxo"> 23.324 +<!ENTITY interaction.filenames.glob.star SYSTEM "results/filenames.glob.star.lxo"> 23.325 +<!ENTITY interaction.filenames.glob.star-starstar SYSTEM "results/filenames.glob.star-starstar.lxo"> 23.326 +<!ENTITY interaction.filenames.glob.starstar SYSTEM "results/filenames.glob.starstar.lxo"> 23.327 +<!ENTITY interaction.filenames.wdir-relname SYSTEM "results/filenames.wdir-relname.lxo"> 23.328 +<!ENTITY interaction.filenames.wdir-subdir SYSTEM "results/filenames.wdir-subdir.lxo"> 23.329 +<!ENTITY interaction.hook.msglen.go SYSTEM "results/hook.msglen.go.lxo"> 23.330 +<!ENTITY interaction.hook.simple.ext SYSTEM "results/hook.simple.ext.lxo"> 23.331 +<!ENTITY interaction.hook.simple.init SYSTEM "results/hook.simple.init.lxo"> 23.332 +<!ENTITY interaction.hook.simple.pretxncommit SYSTEM "results/hook.simple.pretxncommit.lxo"> 23.333 +<!ENTITY interaction.hook.ws.better SYSTEM "results/hook.ws.better.lxo"> 23.334 +<!ENTITY interaction.hook.ws.simple SYSTEM "results/hook.ws.simple.lxo"> 23.335 +<!ENTITY interaction.issue29.go SYSTEM "results/issue29.go.lxo"> 23.336 +<!ENTITY interaction.mq.dodiff.diff SYSTEM "results/mq.dodiff.diff.lxo"> 23.337 +<!ENTITY interaction.mq.guards.init SYSTEM "results/mq.guards.init.lxo"> 23.338 +<!ENTITY interaction.mq.guards.qguard SYSTEM "results/mq.guards.qguard.lxo"> 23.339 +<!ENTITY interaction.mq.guards.qguard.neg SYSTEM "results/mq.guards.qguard.neg.lxo"> 23.340 +<!ENTITY interaction.mq.guards.qguard.pos SYSTEM "results/mq.guards.qguard.pos.lxo"> 23.341 +<!ENTITY interaction.mq.guards.qselect.cat SYSTEM "results/mq.guards.qselect.cat.lxo"> 23.342 +<!ENTITY interaction.mq.guards.qselect.error SYSTEM "results/mq.guards.qselect.error.lxo"> 23.343 +<!ENTITY interaction.mq.guards.qselect.foo SYSTEM "results/mq.guards.qselect.foo.lxo"> 23.344 +<!ENTITY interaction.mq.guards.qselect.foobar SYSTEM "results/mq.guards.qselect.foobar.lxo"> 23.345 +<!ENTITY interaction.mq.guards.qselect.qpush SYSTEM "results/mq.guards.qselect.qpush.lxo"> 23.346 +<!ENTITY interaction.mq.guards.qselect.quux SYSTEM "results/mq.guards.qselect.quux.lxo"> 23.347 +<!ENTITY interaction.mq.guards.series SYSTEM "results/mq.guards.series.lxo"> 23.348 +<!ENTITY interaction.mq.id.lxoput SYSTEM "results/mq.id.lxoput.lxo"> 23.349 +<!ENTITY interaction.mq.id.output SYSTEM "results/mq.id.output.lxo"> 23.350 +<!ENTITY interaction.mq.qinit-help.help SYSTEM "results/mq.qinit-help.help.lxo"> 23.351 +<!ENTITY interaction.mq.tarball.download SYSTEM "results/mq.tarball.download.lxo"> 23.352 +<!ENTITY interaction.mq.tarball.newsource SYSTEM "results/mq.tarball.newsource.lxo"> 23.353 +<!ENTITY interaction.mq.tarball.qinit SYSTEM "results/mq.tarball.qinit.lxo"> 23.354 +<!ENTITY interaction.mq.tarball.repush SYSTEM "results/mq.tarball.repush.lxo"> 23.355 +<!ENTITY interaction.mq.tools.lsdiff SYSTEM "results/mq.tools.lsdiff.lxo"> 23.356 +<!ENTITY interaction.mq.tools.tools SYSTEM "results/mq.tools.tools.lxo"> 23.357 +<!ENTITY interaction.mq.tutorial.add SYSTEM "results/mq.tutorial.add.lxo"> 23.358 +<!ENTITY interaction.mq.tutorial.qinit SYSTEM "results/mq.tutorial.qinit.lxo"> 23.359 +<!ENTITY interaction.mq.tutorial.qnew SYSTEM "results/mq.tutorial.qnew.lxo"> 23.360 +<!ENTITY interaction.mq.tutorial.qnew2 SYSTEM "results/mq.tutorial.qnew2.lxo"> 23.361 +<!ENTITY interaction.mq.tutorial.qpop SYSTEM "results/mq.tutorial.qpop.lxo"> 23.362 +<!ENTITY interaction.mq.tutorial.qpush-a SYSTEM "results/mq.tutorial.qpush-a.lxo"> 23.363 +<!ENTITY interaction.mq.tutorial.qrefresh SYSTEM "results/mq.tutorial.qrefresh.lxo"> 23.364 +<!ENTITY interaction.mq.tutorial.qrefresh2 SYSTEM "results/mq.tutorial.qrefresh2.lxo"> 23.365 +<!ENTITY interaction.mq.tutorial.qseries SYSTEM "results/mq.tutorial.qseries.lxo"> 23.366 +<!ENTITY interaction.rename.divergent.clone SYSTEM "results/rename.divergent.clone.lxo"> 23.367 +<!ENTITY interaction.rename.divergent.merge SYSTEM "results/rename.divergent.merge.lxo"> 23.368 +<!ENTITY interaction.rename.divergent.rename.anne SYSTEM "results/rename.divergent.rename.anne.lxo"> 23.369 +<!ENTITY interaction.rename.divergent.rename.bob SYSTEM "results/rename.divergent.rename.bob.lxo"> 23.370 +<!ENTITY interaction.rollback.add SYSTEM "results/rollback.add.lxo"> 23.371 +<!ENTITY interaction.rollback.commit SYSTEM "results/rollback.commit.lxo"> 23.372 +<!ENTITY interaction.rollback.rollback SYSTEM "results/rollback.rollback.lxo"> 23.373 +<!ENTITY interaction.rollback.status SYSTEM "results/rollback.status.lxo"> 23.374 +<!ENTITY interaction.rollback.tip SYSTEM "results/rollback.tip.lxo"> 23.375 +<!ENTITY interaction.rollback.twice SYSTEM "results/rollback.twice.lxo"> 23.376 +<!ENTITY interaction.tag.init SYSTEM "results/tag.init.lxo"> 23.377 +<!ENTITY interaction.tag.log SYSTEM "results/tag.log.lxo"> 23.378 +<!ENTITY interaction.tag.log.v1.0 SYSTEM "results/tag.log.v1.0.lxo"> 23.379 +<!ENTITY interaction.tag.remove SYSTEM "results/tag.remove.lxo"> 23.380 +<!ENTITY interaction.tag.replace SYSTEM "results/tag.replace.lxo"> 23.381 +<!ENTITY interaction.tag.tag SYSTEM "results/tag.tag.lxo"> 23.382 +<!ENTITY interaction.tag.tags SYSTEM "results/tag.tags.lxo"> 23.383 +<!ENTITY interaction.tag.tip SYSTEM "results/tag.tip.lxo"> 23.384 +<!ENTITY interaction.template.simple.changelog SYSTEM "results/template.simple.changelog.lxo"> 23.385 +<!ENTITY interaction.template.simple.combine SYSTEM "results/template.simple.combine.lxo"> 23.386 +<!ENTITY interaction.template.simple.compact SYSTEM "results/template.simple.compact.lxo"> 23.387 +<!ENTITY interaction.template.simple.datekeyword SYSTEM "results/template.simple.datekeyword.lxo"> 23.388 +<!ENTITY interaction.template.simple.keywords SYSTEM "results/template.simple.keywords.lxo"> 23.389 +<!ENTITY interaction.template.simple.manyfilters SYSTEM "results/template.simple.manyfilters.lxo"> 23.390 +<!ENTITY interaction.template.simple.normal SYSTEM "results/template.simple.normal.lxo"> 23.391 +<!ENTITY interaction.template.simple.rev SYSTEM "results/template.simple.rev.lxo"> 23.392 +<!ENTITY interaction.template.simple.simplest SYSTEM "results/template.simple.simplest.lxo"> 23.393 +<!ENTITY interaction.template.simple.simplesub SYSTEM "results/template.simple.simplesub.lxo"> 23.394 +<!ENTITY interaction.template.svnstyle.id SYSTEM "results/template.svnstyle.id.lxo"> 23.395 +<!ENTITY interaction.template.svnstyle.result SYSTEM "results/template.svnstyle.result.lxo"> 23.396 +<!ENTITY interaction.template.svnstyle.short SYSTEM "results/template.svnstyle.short.lxo"> 23.397 +<!ENTITY interaction.template.svnstyle.simplest SYSTEM "results/template.svnstyle.simplest.lxo"> 23.398 +<!ENTITY interaction.template.svnstyle.style SYSTEM "results/template.svnstyle.style.lxo"> 23.399 +<!ENTITY interaction.template.svnstyle.syntax.error SYSTEM "results/template.svnstyle.syntax.error.lxo"> 23.400 +<!ENTITY interaction.template.svnstyle.syntax.input SYSTEM "results/template.svnstyle.syntax.input.lxo"> 23.401 +<!ENTITY interaction.template.svnstyle.template SYSTEM "results/template.svnstyle.template.lxo"> 23.402 +<!ENTITY interaction.tour-merge-conflict.commit SYSTEM "results/tour-merge-conflict.commit.lxo"> 23.403 +<!ENTITY interaction.tour-merge-conflict.cousin SYSTEM "results/tour-merge-conflict.cousin.lxo"> 23.404 +<!ENTITY interaction.tour-merge-conflict.merge SYSTEM "results/tour-merge-conflict.merge.lxo"> 23.405 +<!ENTITY interaction.tour-merge-conflict.pull SYSTEM "results/tour-merge-conflict.pull.lxo"> 23.406 +<!ENTITY interaction.tour-merge-conflict.son SYSTEM "results/tour-merge-conflict.son.lxo"> 23.407 +<!ENTITY interaction.tour-merge-conflict.wife SYSTEM "results/tour-merge-conflict.wife.lxo"> 23.408 +<!ENTITY interaction.tour.clone SYSTEM "results/tour.clone.lxo"> 23.409 +<!ENTITY interaction.tour.clone-pull SYSTEM "results/tour.clone-pull.lxo"> 23.410 +<!ENTITY interaction.tour.clone-push SYSTEM "results/tour.clone-push.lxo"> 23.411 +<!ENTITY interaction.tour.commit SYSTEM "results/tour.commit.lxo"> 23.412 +<!ENTITY interaction.tour.diff SYSTEM "results/tour.diff.lxo"> 23.413 +<!ENTITY interaction.tour.help SYSTEM "results/tour.help.lxo"> 23.414 +<!ENTITY interaction.tour.incoming SYSTEM "results/tour.incoming.lxo"> 23.415 +<!ENTITY interaction.tour.log SYSTEM "results/tour.log.lxo"> 23.416 +<!ENTITY interaction.tour.log-r SYSTEM "results/tour.log-r.lxo"> 23.417 +<!ENTITY interaction.tour.log-v SYSTEM "results/tour.log-v.lxo"> 23.418 +<!ENTITY interaction.tour.log-vp SYSTEM "results/tour.log-vp.lxo"> 23.419 +<!ENTITY interaction.tour.log.range SYSTEM "results/tour.log.range.lxo"> 23.420 +<!ENTITY interaction.tour.ls SYSTEM "results/tour.ls.lxo"> 23.421 +<!ENTITY interaction.tour.ls-a SYSTEM "results/tour.ls-a.lxo"> 23.422 +<!ENTITY interaction.tour.lxogoing SYSTEM "results/tour.lxogoing.lxo"> 23.423 +<!ENTITY interaction.tour.lxogoing.net SYSTEM "results/tour.lxogoing.net.lxo"> 23.424 +<!ENTITY interaction.tour.merge.cat SYSTEM "results/tour.merge.cat.lxo"> 23.425 +<!ENTITY interaction.tour.merge.clone SYSTEM "results/tour.merge.clone.lxo"> 23.426 +<!ENTITY interaction.tour.merge.commit SYSTEM "results/tour.merge.commit.lxo"> 23.427 +<!ENTITY interaction.tour.merge.dummy1 SYSTEM "results/tour.merge.dummy1.lxo"> 23.428 +<!ENTITY interaction.tour.merge.dummy2 SYSTEM "results/tour.merge.dummy2.lxo"> 23.429 +<!ENTITY interaction.tour.merge.dummy3 SYSTEM "results/tour.merge.dummy3.lxo"> 23.430 +<!ENTITY interaction.tour.merge.dummy4 SYSTEM "results/tour.merge.dummy4.lxo"> 23.431 +<!ENTITY interaction.tour.merge.heads SYSTEM "results/tour.merge.heads.lxo"> 23.432 +<!ENTITY interaction.tour.merge.merge SYSTEM "results/tour.merge.merge.lxo"> 23.433 +<!ENTITY interaction.tour.merge.parents SYSTEM "results/tour.merge.parents.lxo"> 23.434 +<!ENTITY interaction.tour.merge.pull SYSTEM "results/tour.merge.pull.lxo"> 23.435 +<!ENTITY interaction.tour.merge.tip SYSTEM "results/tour.merge.tip.lxo"> 23.436 +<!ENTITY interaction.tour.merge.update SYSTEM "results/tour.merge.update.lxo"> 23.437 +<!ENTITY interaction.tour.older SYSTEM "results/tour.older.lxo"> 23.438 +<!ENTITY interaction.tour.outgoing SYSTEM "results/tour.outgoing.lxo"> 23.439 +<!ENTITY interaction.tour.outgoing.net SYSTEM "results/tour.outgoing.net.lxo"> 23.440 +<!ENTITY interaction.tour.parents SYSTEM "results/tour.parents.lxo"> 23.441 +<!ENTITY interaction.tour.pull SYSTEM "results/tour.pull.lxo"> 23.442 +<!ENTITY interaction.tour.push SYSTEM "results/tour.push.lxo"> 23.443 +<!ENTITY interaction.tour.push.net SYSTEM "results/tour.push.net.lxo"> 23.444 +<!ENTITY interaction.tour.push.nothing SYSTEM "results/tour.push.nothing.lxo"> 23.445 +<!ENTITY interaction.tour.reclone SYSTEM "results/tour.reclone.lxo"> 23.446 +<!ENTITY interaction.tour.sed SYSTEM "results/tour.sed.lxo"> 23.447 +<!ENTITY interaction.tour.status SYSTEM "results/tour.status.lxo"> 23.448 +<!ENTITY interaction.tour.tip SYSTEM "results/tour.tip.lxo"> 23.449 +<!ENTITY interaction.tour.update SYSTEM "results/tour.update.lxo"> 23.450 +<!ENTITY interaction.tour.version SYSTEM "results/tour.version.lxo">
24.1 --- a/en/examples/results/backout.init.out Fri Mar 20 17:17:55 2009 +0800 24.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 24.3 @@ -1,8 +0,0 @@ 24.4 -<screen><prompt>$</prompt> <userinput>hg init myrepo</userinput> 24.5 -<prompt>$</prompt> <userinput>cd myrepo</userinput> 24.6 -<prompt>$</prompt> <userinput>echo first change >> myfile</userinput> 24.7 -<prompt>$</prompt> <userinput>hg add myfile</userinput> 24.8 -<prompt>$</prompt> <userinput>hg commit -m 'first change'</userinput> 24.9 -<prompt>$</prompt> <userinput>echo second change >> myfile</userinput> 24.10 -<prompt>$</prompt> <userinput>hg commit -m 'second change'</userinput> 24.11 -</screen>
25.1 --- a/en/examples/results/backout.manual.backout.out Fri Mar 20 17:17:55 2009 +0800 25.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 25.3 @@ -1,9 +0,0 @@ 25.4 -<screen><prompt>$</prompt> <userinput>echo third change >> myfile</userinput> 25.5 -<prompt>$</prompt> <userinput>hg commit -m 'third change'</userinput> 25.6 -<prompt>$</prompt> <userinput>hg backout -m 'back out second change' 1</userinput> 25.7 -reverting myfile 25.8 -created new head 25.9 -changeset backs out changeset 25.10 -the backout changeset is a new head - do not forget to merge 25.11 -(use "backout --merge" if you want to auto-merge) 25.12 -</screen>
26.1 --- a/en/examples/results/backout.manual.cat.out Fri Mar 20 17:17:55 2009 +0800 26.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 26.3 @@ -1,5 +0,0 @@ 26.4 -<screen><prompt>$</prompt> <userinput>cat myfile</userinput> 26.5 -first change 26.6 -second change 26.7 -third change 26.8 -</screen>
27.1 --- a/en/examples/results/backout.manual.clone.out Fri Mar 20 17:17:55 2009 +0800 27.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 27.3 @@ -1,11 +0,0 @@ 27.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 27.5 -<prompt>$</prompt> <userinput>hg clone -r1 myrepo newrepo</userinput> 27.6 -requesting all changes 27.7 -adding changesets 27.8 -adding manifests 27.9 -adding file changes 27.10 -added 2 changesets with 2 changes to 1 files 27.11 -updating working directory 27.12 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 27.13 -<prompt>$</prompt> <userinput>cd newrepo</userinput> 27.14 -</screen>
28.1 --- a/en/examples/results/backout.manual.heads.out Fri Mar 20 17:17:55 2009 +0800 28.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 28.3 @@ -1,14 +0,0 @@ 28.4 -<screen><prompt>$</prompt> <userinput>hg heads</userinput> 28.5 -changeset: 28.6 -tag: tip 28.7 -parent: 28.8 -user: Bryan O'Sullivan <bos@serpentine.com> 28.9 - 28.10 -summary: back out second change 28.11 - 28.12 -changeset: 28.13 -user: Bryan O'Sullivan <bos@serpentine.com> 28.14 - 28.15 -summary: third change 28.16 - 28.17 -</screen>
29.1 --- a/en/examples/results/backout.manual.log.out Fri Mar 20 17:17:55 2009 +0800 29.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 29.3 @@ -1,14 +0,0 @@ 29.4 -<screen><prompt>$</prompt> <userinput>hg log --style compact</userinput> 29.5 -3[tip]:1 2009-03-10 04:37 +0000 bos 29.6 - back out second change 29.7 - 29.8 -2 2009-03-10 04:37 +0000 bos 29.9 - third change 29.10 - 29.11 -1 2009-03-10 04:37 +0000 bos 29.12 - second change 29.13 - 29.14 -0 2009-03-10 04:37 +0000 bos 29.15 - first change 29.16 - 29.17 -</screen>
30.1 --- a/en/examples/results/backout.manual.merge.out Fri Mar 20 17:17:55 2009 +0800 30.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 30.3 @@ -1,9 +0,0 @@ 30.4 -<screen><prompt>$</prompt> <userinput>hg merge</userinput> 30.5 -merging myfile 30.6 -0 files updated, 1 files merged, 0 files removed, 0 files unresolved 30.7 -(branch merge, don't forget to commit) 30.8 -<prompt>$</prompt> <userinput>hg commit -m 'merged backout with previous tip'</userinput> 30.9 -<prompt>$</prompt> <userinput>cat myfile</userinput> 30.10 -first change 30.11 -third change 30.12 -</screen>
31.1 --- a/en/examples/results/backout.manual.parents.out Fri Mar 20 17:17:55 2009 +0800 31.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 31.3 @@ -1,7 +0,0 @@ 31.4 -<screen><prompt>$</prompt> <userinput>hg parents</userinput> 31.5 -changeset: 31.6 -user: Bryan O'Sullivan <bos@serpentine.com> 31.7 - 31.8 -summary: third change 31.9 - 31.10 -</screen>
32.1 --- a/en/examples/results/backout.non-tip.backout.out Fri Mar 20 17:17:55 2009 +0800 32.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 32.3 @@ -1,11 +0,0 @@ 32.4 -<screen><prompt>$</prompt> <userinput>echo third change >> myfile</userinput> 32.5 -<prompt>$</prompt> <userinput>hg commit -m 'third change'</userinput> 32.6 -<prompt>$</prompt> <userinput>hg backout --merge -m 'back out second change' 1</userinput> 32.7 -reverting myfile 32.8 -created new head 32.9 -changeset backs out changeset 32.10 -merging with changeset 32.11 -merging myfile 32.12 -0 files updated, 1 files merged, 0 files removed, 0 files unresolved 32.13 -(branch merge, don't forget to commit) 32.14 -</screen>
33.1 --- a/en/examples/results/backout.non-tip.cat.out Fri Mar 20 17:17:55 2009 +0800 33.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 33.3 @@ -1,4 +0,0 @@ 33.4 -<screen><prompt>$</prompt> <userinput>cat myfile</userinput> 33.5 -first change 33.6 -third change 33.7 -</screen>
34.1 --- a/en/examples/results/backout.non-tip.clone.out Fri Mar 20 17:17:55 2009 +0800 34.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 34.3 @@ -1,11 +0,0 @@ 34.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 34.5 -<prompt>$</prompt> <userinput>hg clone -r1 myrepo non-tip-repo</userinput> 34.6 -requesting all changes 34.7 -adding changesets 34.8 -adding manifests 34.9 -adding file changes 34.10 -added 2 changesets with 2 changes to 1 files 34.11 -updating working directory 34.12 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 34.13 -<prompt>$</prompt> <userinput>cd non-tip-repo</userinput> 34.14 -</screen>
35.1 --- a/en/examples/results/backout.simple.log.out Fri Mar 20 17:17:55 2009 +0800 35.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 35.3 @@ -1,11 +0,0 @@ 35.4 -<screen><prompt>$</prompt> <userinput>hg log --style compact</userinput> 35.5 -2[tip] 2009-03-10 04:37 +0000 bos 35.6 - back out second change 35.7 - 35.8 -1 2009-03-10 04:37 +0000 bos 35.9 - second change 35.10 - 35.11 -0 2009-03-10 04:37 +0000 bos 35.12 - first change 35.13 - 35.14 -</screen>
36.1 --- a/en/examples/results/backout.simple.out Fri Mar 20 17:17:55 2009 +0800 36.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 36.3 @@ -1,6 +0,0 @@ 36.4 -<screen><prompt>$</prompt> <userinput>hg backout -m 'back out second change' tip</userinput> 36.5 -reverting myfile 36.6 -changeset backs out changeset 36.7 -<prompt>$</prompt> <userinput>cat myfile</userinput> 36.8 -first change 36.9 -</screen>
37.1 --- a/en/examples/results/bisect.commits.out Fri Mar 20 17:17:55 2009 +0800 37.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 37.3 @@ -1,11 +0,0 @@ 37.4 - 37.5 - 37.6 - 37.7 - 37.8 - 37.9 - 37.10 - 37.11 - 37.12 - 37.13 - 37.14 -
38.1 --- a/en/examples/results/bisect.help.out Fri Mar 20 17:17:55 2009 +0800 38.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 38.3 @@ -1,34 +0,0 @@ 38.4 - 38.5 - 38.6 - 38.7 - 38.8 - 38.9 - 38.10 - 38.11 - 38.12 - 38.13 - 38.14 - 38.15 - 38.16 - 38.17 - 38.18 - 38.19 - 38.20 - 38.21 - 38.22 - 38.23 - 38.24 - 38.25 - 38.26 - 38.27 - 38.28 - 38.29 - 38.30 - 38.31 - 38.32 - 38.33 - 38.34 - 38.35 - 38.36 - 38.37 -
39.1 --- a/en/examples/results/bisect.init.out Fri Mar 20 17:17:55 2009 +0800 39.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 39.3 @@ -1,3 +0,0 @@ 39.4 - 39.5 - 39.6 -
40.1 --- a/en/examples/results/bisect.search.bad-init.out Fri Mar 20 17:17:55 2009 +0800 40.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 40.3 @@ -1,3 +0,0 @@ 40.4 - 40.5 - 40.6 -
41.1 --- a/en/examples/results/bisect.search.good-init.out Fri Mar 20 17:17:55 2009 +0800 41.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 41.3 @@ -1,5 +0,0 @@ 41.4 - 41.5 - 41.6 - 41.7 - 41.8 -
42.1 --- a/en/examples/results/bisect.search.init.out Fri Mar 20 17:17:55 2009 +0800 42.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 42.3 @@ -1,3 +0,0 @@ 42.4 - 42.5 - 42.6 -
43.1 --- a/en/examples/results/bisect.search.mytest.out Fri Mar 20 17:17:55 2009 +0800 43.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 43.3 @@ -1,11 +0,0 @@ 43.4 - 43.5 - 43.6 - 43.7 - 43.8 - 43.9 - 43.10 - 43.11 - 43.12 - 43.13 - 43.14 -
44.1 --- a/en/examples/results/bisect.search.reset.out Fri Mar 20 17:17:55 2009 +0800 44.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 44.3 @@ -1,3 +0,0 @@ 44.4 - 44.5 - 44.6 -
45.1 --- a/en/examples/results/bisect.search.rest.out Fri Mar 20 17:17:55 2009 +0800 45.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 45.3 @@ -1,20 +0,0 @@ 45.4 - 45.5 - 45.6 - 45.7 - 45.8 - 45.9 - 45.10 - 45.11 - 45.12 - 45.13 - 45.14 - 45.15 - 45.16 - 45.17 - 45.18 - 45.19 - 45.20 - 45.21 - 45.22 - 45.23 -
46.1 --- a/en/examples/results/bisect.search.step1.out Fri Mar 20 17:17:55 2009 +0800 46.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 46.3 @@ -1,12 +0,0 @@ 46.4 - 46.5 - 46.6 - 46.7 - 46.8 - 46.9 - 46.10 - 46.11 - 46.12 - 46.13 - 46.14 - 46.15 -
47.1 --- a/en/examples/results/bisect.search.step2.out Fri Mar 20 17:17:55 2009 +0800 47.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 47.3 @@ -1,6 +0,0 @@ 47.4 - 47.5 - 47.6 - 47.7 - 47.8 - 47.9 -
48.1 --- a/en/examples/results/branch-named.branch.out Fri Mar 20 17:17:55 2009 +0800 48.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 48.3 @@ -1,3 +0,0 @@ 48.4 -<screen><prompt>$</prompt> <userinput>hg branch</userinput> 48.5 -default 48.6 -</screen>
49.1 --- a/en/examples/results/branch-named.branches.out Fri Mar 20 17:17:55 2009 +0800 49.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 49.3 @@ -1,10 +0,0 @@ 49.4 -<screen><prompt>$</prompt> <userinput>hg tip</userinput> 49.5 -changeset: 49.6 -tag: tip 49.7 -user: Bryan O'Sullivan <bos@serpentine.com> 49.8 - 49.9 -summary: Initial commit 49.10 - 49.11 -<prompt>$</prompt> <userinput>hg branches</userinput> 49.12 -default 49.13 -</screen>
50.1 --- a/en/examples/results/branch-named.commit.out Fri Mar 20 17:17:55 2009 +0800 50.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 50.3 @@ -1,11 +0,0 @@ 50.4 -<screen><prompt>$</prompt> <userinput>echo 'hello again' >> myfile</userinput> 50.5 -<prompt>$</prompt> <userinput>hg commit -m 'Second commit'</userinput> 50.6 -<prompt>$</prompt> <userinput>hg tip</userinput> 50.7 -changeset: 50.8 -branch: foo 50.9 -tag: tip 50.10 -user: Bryan O'Sullivan <bos@serpentine.com> 50.11 - 50.12 -summary: Second commit 50.13 - 50.14 -</screen>
51.1 --- a/en/examples/results/branch-named.create.out Fri Mar 20 17:17:55 2009 +0800 51.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 51.3 @@ -1,5 +0,0 @@ 51.4 -<screen><prompt>$</prompt> <userinput>hg branch foo</userinput> 51.5 -marked working directory as branch foo 51.6 -<prompt>$</prompt> <userinput>hg branch</userinput> 51.7 -foo 51.8 -</screen>
52.1 --- a/en/examples/results/branch-named.foo-commit.out Fri Mar 20 17:17:55 2009 +0800 52.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 52.3 @@ -1,20 +0,0 @@ 52.4 -<screen><prompt>$</prompt> <userinput>echo something > somefile</userinput> 52.5 -<prompt>$</prompt> <userinput>hg commit -A -m 'New file'</userinput> 52.6 -adding somefile 52.7 -created new head 52.8 -<prompt>$</prompt> <userinput>hg heads</userinput> 52.9 -changeset: 52.10 -branch: foo 52.11 -tag: tip 52.12 -parent: 52.13 -user: Bryan O'Sullivan <bos@serpentine.com> 52.14 - 52.15 -summary: New file 52.16 - 52.17 -changeset: 52.18 -branch: bar 52.19 -user: Bryan O'Sullivan <bos@serpentine.com> 52.20 - 52.21 -summary: Third commit 52.22 - 52.23 -</screen>
53.1 --- a/en/examples/results/branch-named.merge.out Fri Mar 20 17:17:55 2009 +0800 53.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 53.3 @@ -1,17 +0,0 @@ 53.4 -<screen><prompt>$</prompt> <userinput>hg branch</userinput> 53.5 -bar 53.6 -<prompt>$</prompt> <userinput>hg merge foo</userinput> 53.7 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 53.8 -(branch merge, don't forget to commit) 53.9 -<prompt>$</prompt> <userinput>hg commit -m 'Merge'</userinput> 53.10 -<prompt>$</prompt> <userinput>hg tip</userinput> 53.11 -changeset: 53.12 -branch: bar 53.13 -tag: tip 53.14 -parent: 53.15 -parent: 53.16 -user: Bryan O'Sullivan <bos@serpentine.com> 53.17 - 53.18 -summary: Merge 53.19 - 53.20 -</screen>
54.1 --- a/en/examples/results/branch-named.parents.out Fri Mar 20 17:17:55 2009 +0800 54.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 54.3 @@ -1,13 +0,0 @@ 54.4 -<screen><prompt>$</prompt> <userinput>hg parents</userinput> 54.5 -changeset: 54.6 -branch: bar 54.7 -tag: tip 54.8 -user: Bryan O'Sullivan <bos@serpentine.com> 54.9 - 54.10 -summary: Third commit 54.11 - 54.12 -<prompt>$</prompt> <userinput>hg branches</userinput> 54.13 -bar 54.14 -foo (inactive) 54.15 -default (inactive) 54.16 -</screen>
55.1 --- a/en/examples/results/branch-named.rebranch.out Fri Mar 20 17:17:55 2009 +0800 55.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 55.3 @@ -1,16 +0,0 @@ 55.4 -<screen><prompt>$</prompt> <userinput>hg branch</userinput> 55.5 -foo 55.6 -<prompt>$</prompt> <userinput>hg branch bar</userinput> 55.7 -marked working directory as branch bar 55.8 -<prompt>$</prompt> <userinput>echo new file > newfile</userinput> 55.9 -<prompt>$</prompt> <userinput>hg commit -A -m 'Third commit'</userinput> 55.10 -adding newfile 55.11 -<prompt>$</prompt> <userinput>hg tip</userinput> 55.12 -changeset: 55.13 -branch: bar 55.14 -tag: tip 55.15 -user: Bryan O'Sullivan <bos@serpentine.com> 55.16 - 55.17 -summary: Third commit 55.18 - 55.19 -</screen>
56.1 --- a/en/examples/results/branch-named.status.out Fri Mar 20 17:17:55 2009 +0800 56.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 56.3 @@ -1,9 +0,0 @@ 56.4 -<screen><prompt>$</prompt> <userinput>hg status</userinput> 56.5 -<prompt>$</prompt> <userinput>hg tip</userinput> 56.6 -changeset: 56.7 -tag: tip 56.8 -user: Bryan O'Sullivan <bos@serpentine.com> 56.9 - 56.10 -summary: Initial commit 56.11 - 56.12 -</screen>
57.1 --- a/en/examples/results/branch-named.update-bar.out Fri Mar 20 17:17:55 2009 +0800 57.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 57.3 @@ -1,3 +0,0 @@ 57.4 -<screen><prompt>$</prompt> <userinput>hg update bar</userinput> 57.5 -1 files updated, 0 files merged, 1 files removed, 0 files unresolved 57.6 -</screen>
58.1 --- a/en/examples/results/branch-named.update-foo.out Fri Mar 20 17:17:55 2009 +0800 58.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 58.3 @@ -1,13 +0,0 @@ 58.4 -$ \textbf{hg update foo} 58.5 -0 files updated, 0 files merged, 1 files removed, 0 files unresolved 58.6 -$ \textbf{hg update} 58.7 -0 files updated, 0 files merged, 0 files removed, 0 files unresolved 58.8 -$ \textbf{hg parents} 58.9 -changeset: 58.10 -branch: foo 58.11 -user: Bryan O'Sullivan <bos@serpentine.com> 58.12 - 58.13 -summary: Second commit 58.14 - 58.15 -$ \textbf{hg update bar} 58.16 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved
59.1 --- a/en/examples/results/branch-named.update-nothing.out Fri Mar 20 17:17:55 2009 +0800 59.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 59.3 @@ -1,5 +0,0 @@ 59.4 -<screen><prompt>$</prompt> <userinput>hg update foo</userinput> 59.5 -0 files updated, 0 files merged, 1 files removed, 0 files unresolved 59.6 -<prompt>$</prompt> <userinput>hg update</userinput> 59.7 -0 files updated, 0 files merged, 0 files removed, 0 files unresolved 59.8 -</screen>
60.1 --- a/en/examples/results/branch-named.update-switchy.out Fri Mar 20 17:17:55 2009 +0800 60.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 60.3 @@ -1,20 +0,0 @@ 60.4 -<screen><prompt>$</prompt> <userinput>hg update foo</userinput> 60.5 -0 files updated, 0 files merged, 1 files removed, 0 files unresolved 60.6 -<prompt>$</prompt> <userinput>hg parents</userinput> 60.7 -changeset: 60.8 -branch: foo 60.9 -user: Bryan O'Sullivan <bos@serpentine.com> 60.10 - 60.11 -summary: Second commit 60.12 - 60.13 -<prompt>$</prompt> <userinput>hg update bar</userinput> 60.14 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 60.15 -<prompt>$</prompt> <userinput>hg parents</userinput> 60.16 -changeset: 60.17 -branch: bar 60.18 -tag: tip 60.19 -user: Bryan O'Sullivan <bos@serpentine.com> 60.20 - 60.21 -summary: Third commit 60.22 - 60.23 -</screen>
61.1 --- a/en/examples/results/branch-named.update.out Fri Mar 20 17:17:55 2009 +0800 61.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 61.3 @@ -1,13 +0,0 @@ 61.4 -$ \textbf{hg update foo} 61.5 -0 files updated, 0 files merged, 1 files removed, 0 files unresolved 61.6 -$ \textbf{hg update} 61.7 -0 files updated, 0 files merged, 0 files removed, 0 files unresolved 61.8 -$ \textbf{hg parent} 61.9 -changeset: 61.10 -branch: foo 61.11 -user: Bryan O'Sullivan <bos@serpentine.com> 61.12 - 61.13 -summary: Second commit 61.14 - 61.15 -$ \textbf{hg update bar} 61.16 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved
62.1 --- a/en/examples/results/branch-repo.bugfix.out Fri Mar 20 17:17:55 2009 +0800 62.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 62.3 @@ -1,14 +0,0 @@ 62.4 -<screen><prompt>$</prompt> <userinput>hg clone myproject-1.0.1 my-1.0.1-bugfix</userinput> 62.5 -updating working directory 62.6 -2 files updated, 0 files merged, 0 files removed, 0 files unresolved 62.7 -<prompt>$</prompt> <userinput>cd my-1.0.1-bugfix</userinput> 62.8 -<prompt>$</prompt> <userinput>echo 'I fixed a bug using only echo!' >> myfile</userinput> 62.9 -<prompt>$</prompt> <userinput>hg commit -m 'Important fix for 1.0.1'</userinput> 62.10 -<prompt>$</prompt> <userinput>hg push</userinput> 62.11 -pushing to 62.12 -searching for changes 62.13 -adding changesets 62.14 -adding manifests 62.15 -adding file changes 62.16 -added 1 changesets with 1 changes to 1 files 62.17 -</screen>
63.1 --- a/en/examples/results/branch-repo.clone.out Fri Mar 20 17:17:55 2009 +0800 63.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 63.3 @@ -1,5 +0,0 @@ 63.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 63.5 -<prompt>$</prompt> <userinput>hg clone myproject myproject-1.0.1</userinput> 63.6 -updating working directory 63.7 -2 files updated, 0 files merged, 0 files removed, 0 files unresolved 63.8 -</screen>
64.1 --- a/en/examples/results/branch-repo.merge.out Fri Mar 20 17:17:55 2009 +0800 64.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 64.3 @@ -1,12 +0,0 @@ 64.4 -<screen><prompt>$</prompt> <userinput>hg merge</userinput> 64.5 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 64.6 -(branch merge, don't forget to commit) 64.7 -<prompt>$</prompt> <userinput>hg commit -m 'Merge bugfix from 1.0.1 branch'</userinput> 64.8 -<prompt>$</prompt> <userinput>hg push</userinput> 64.9 -pushing to 64.10 -searching for changes 64.11 -adding changesets 64.12 -adding manifests 64.13 -adding file changes 64.14 -added 2 changesets with 1 changes to 1 files 64.15 -</screen>
65.1 --- a/en/examples/results/branch-repo.new.out Fri Mar 20 17:17:55 2009 +0800 65.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 65.3 @@ -1,16 +0,0 @@ 65.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 65.5 -<prompt>$</prompt> <userinput>hg clone myproject my-feature</userinput> 65.6 -updating working directory 65.7 -2 files updated, 0 files merged, 0 files removed, 0 files unresolved 65.8 -<prompt>$</prompt> <userinput>cd my-feature</userinput> 65.9 -<prompt>$</prompt> <userinput>echo 'This sure is an exciting new feature!' > mynewfile</userinput> 65.10 -<prompt>$</prompt> <userinput>hg commit -A -m 'New feature'</userinput> 65.11 -adding mynewfile 65.12 -<prompt>$</prompt> <userinput>hg push</userinput> 65.13 -pushing to 65.14 -searching for changes 65.15 -adding changesets 65.16 -adding manifests 65.17 -adding file changes 65.18 -added 1 changesets with 1 changes to 1 files 65.19 -</screen>
66.1 --- a/en/examples/results/branch-repo.pull.out Fri Mar 20 17:17:55 2009 +0800 66.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 66.3 @@ -1,14 +0,0 @@ 66.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 66.5 -<prompt>$</prompt> <userinput>hg clone myproject myproject-merge</userinput> 66.6 -updating working directory 66.7 -3 files updated, 0 files merged, 0 files removed, 0 files unresolved 66.8 -<prompt>$</prompt> <userinput>cd myproject-merge</userinput> 66.9 -<prompt>$</prompt> <userinput>hg pull ../myproject-1.0.1</userinput> 66.10 -pulling from ../myproject-1.0.1 66.11 -searching for changes 66.12 -adding changesets 66.13 -adding manifests 66.14 -adding file changes 66.15 -added 1 changesets with 1 changes to 1 files (+1 heads) 66.16 -(run 'hg heads' to see heads, 'hg merge' to merge) 66.17 -</screen>
67.1 --- a/en/examples/results/branch-repo.tag.out Fri Mar 20 17:17:55 2009 +0800 67.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 67.3 @@ -1,3 +0,0 @@ 67.4 -<screen><prompt>$</prompt> <userinput>cd myproject</userinput> 67.5 -<prompt>$</prompt> <userinput>hg tag v1.0</userinput> 67.6 -</screen>
68.1 --- a/en/examples/results/branching.clone.out Fri Mar 20 17:17:55 2009 +0800 68.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 68.3 @@ -1,10 +0,0 @@ 68.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 68.5 -<prompt>$</prompt> <userinput>hg clone -rv1.0 main stable</userinput> 68.6 -requesting all changes 68.7 -adding changesets 68.8 -adding manifests 68.9 -adding file changes 68.10 -added 1 changesets with 1 changes to 1 files 68.11 -updating working directory 68.12 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 68.13 -</screen>
69.1 --- a/en/examples/results/branching.init.out Fri Mar 20 17:17:55 2009 +0800 69.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 69.3 @@ -1,6 +0,0 @@ 69.4 -<screen><prompt>$</prompt> <userinput>hg init main</userinput> 69.5 -<prompt>$</prompt> <userinput>cd main</userinput> 69.6 -<prompt>$</prompt> <userinput>echo 'This is a boring feature.' > myfile</userinput> 69.7 -<prompt>$</prompt> <userinput>hg commit -A -m 'We have reached an important milestone!'</userinput> 69.8 -adding myfile 69.9 -</screen>
70.1 --- a/en/examples/results/branching.main.out Fri Mar 20 17:17:55 2009 +0800 70.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 70.3 @@ -1,7 +0,0 @@ 70.4 -<screen><prompt>$</prompt> <userinput>cd ../main</userinput> 70.5 -<prompt>$</prompt> <userinput>echo 'This is exciting and new!' >> myfile</userinput> 70.6 -<prompt>$</prompt> <userinput>hg commit -m 'Add a new feature'</userinput> 70.7 -<prompt>$</prompt> <userinput>cat myfile</userinput> 70.8 -This is a boring feature. 70.9 -This is exciting and new! 70.10 -</screen>
71.1 --- a/en/examples/results/branching.merge.out Fri Mar 20 17:17:55 2009 +0800 71.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 71.3 @@ -1,18 +0,0 @@ 71.4 -<screen><prompt>$</prompt> <userinput>cd ../main</userinput> 71.5 -<prompt>$</prompt> <userinput>hg pull ../stable</userinput> 71.6 -pulling from ../stable 71.7 -searching for changes 71.8 -adding changesets 71.9 -adding manifests 71.10 -adding file changes 71.11 -added 1 changesets with 1 changes to 1 files (+1 heads) 71.12 -(run 'hg heads' to see heads, 'hg merge' to merge) 71.13 -<prompt>$</prompt> <userinput>hg merge</userinput> 71.14 -merging myfile 71.15 -0 files updated, 1 files merged, 0 files removed, 0 files unresolved 71.16 -(branch merge, don't forget to commit) 71.17 -<prompt>$</prompt> <userinput>hg commit -m 'Bring in bugfix from stable branch'</userinput> 71.18 -<prompt>$</prompt> <userinput>cat myfile</userinput> 71.19 -This is a fix to a boring feature. 71.20 -This is exciting and new! 71.21 -</screen>
72.1 --- a/en/examples/results/branching.stable.out Fri Mar 20 17:17:55 2009 +0800 72.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 72.3 @@ -1,14 +0,0 @@ 72.4 -<screen><prompt>$</prompt> <userinput>hg clone stable stable-fix</userinput> 72.5 -updating working directory 72.6 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 72.7 -<prompt>$</prompt> <userinput>cd stable-fix</userinput> 72.8 -<prompt>$</prompt> <userinput>echo 'This is a fix to a boring feature.' > myfile</userinput> 72.9 -<prompt>$</prompt> <userinput>hg commit -m 'Fix a bug'</userinput> 72.10 -<prompt>$</prompt> <userinput>hg push</userinput> 72.11 -pushing to 72.12 -searching for changes 72.13 -adding changesets 72.14 -adding manifests 72.15 -adding file changes 72.16 -added 1 changesets with 1 changes to 1 files 72.17 -</screen>
73.1 --- a/en/examples/results/branching.tag.out Fri Mar 20 17:17:55 2009 +0800 73.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 73.3 @@ -1,12 +0,0 @@ 73.4 -<screen><prompt>$</prompt> <userinput>hg tag v1.0</userinput> 73.5 -<prompt>$</prompt> <userinput>hg tip</userinput> 73.6 -changeset: 73.7 -tag: tip 73.8 -user: Bryan O'Sullivan <bos@serpentine.com> 73.9 - 73.10 -summary: Added tag v1.0 for changeset 73.11 - 73.12 -<prompt>$</prompt> <userinput>hg tags</userinput> 73.13 -tip 73.14 -v1.0 73.15 -</screen>
74.1 --- a/en/examples/results/branching.update.out Fri Mar 20 17:17:55 2009 +0800 74.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 74.3 @@ -1,8 +0,0 @@ 74.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 74.5 -<prompt>$</prompt> <userinput>hg clone -U main main-old</userinput> 74.6 -<prompt>$</prompt> <userinput>cd main-old</userinput> 74.7 -<prompt>$</prompt> <userinput>hg update v1.0</userinput> 74.8 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 74.9 -<prompt>$</prompt> <userinput>cat myfile</userinput> 74.10 -This is a boring feature. 74.11 -</screen>
75.1 --- a/en/examples/results/cmdref.diff-p.out Fri Mar 20 17:17:55 2009 +0800 75.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 75.3 @@ -1,23 +0,0 @@ 75.4 -<screen><prompt>$</prompt> <userinput>echo '[diff]' >> $HGRC</userinput> 75.5 -<prompt>$</prompt> <userinput>echo 'showfunc = False' >> $HGRC</userinput> 75.6 -<prompt>$</prompt> <userinput>hg diff</userinput> 75.7 -diff -r myfile.c 75.8 - 75.9 - 75.10 -@@ -1,4 +1,4 @@ 75.11 - int myfunc() 75.12 - { 75.13 -- return 1; 75.14 -+ return 10; 75.15 - } 75.16 -<prompt>$</prompt> <userinput>hg diff -p</userinput> 75.17 -diff -r myfile.c 75.18 - 75.19 - 75.20 -@@ -1,4 +1,4 @@ 75.21 - int myfunc() 75.22 - { 75.23 -- return 1; 75.24 -+ return 10; 75.25 - } 75.26 -</screen>
76.1 --- a/en/examples/results/daily.copy.after.out Fri Mar 20 17:17:55 2009 +0800 76.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 76.3 @@ -1,3 +0,0 @@ 76.4 -<screen><prompt>$</prompt> <userinput>cp a z</userinput> 76.5 -<prompt>$</prompt> <userinput>hg copy --after a z</userinput> 76.6 -</screen>
77.1 --- a/en/examples/results/daily.copy.cat.out Fri Mar 20 17:17:55 2009 +0800 77.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 77.3 @@ -1,6 +0,0 @@ 77.4 -<screen><prompt>$</prompt> <userinput>cat file</userinput> 77.5 -line 77.6 -new contents 77.7 -<prompt>$</prompt> <userinput>cat ../my-copy/new-file</userinput> 77.8 -line 77.9 -</screen>
78.1 --- a/en/examples/results/daily.copy.clone.out Fri Mar 20 17:17:55 2009 +0800 78.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 78.3 @@ -1,5 +0,0 @@ 78.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 78.5 -<prompt>$</prompt> <userinput>hg clone my-copy your-copy</userinput> 78.6 -updating working directory 78.7 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 78.8 -</screen>
79.1 --- a/en/examples/results/daily.copy.copy.out Fri Mar 20 17:17:55 2009 +0800 79.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 79.3 @@ -1,3 +0,0 @@ 79.4 -<screen><prompt>$</prompt> <userinput>cd my-copy</userinput> 79.5 -<prompt>$</prompt> <userinput>hg copy file new-file</userinput> 79.6 -</screen>
80.1 --- a/en/examples/results/daily.copy.dir-dest.out Fri Mar 20 17:17:55 2009 +0800 80.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 80.3 @@ -1,5 +0,0 @@ 80.4 -<screen><prompt>$</prompt> <userinput>mkdir d</userinput> 80.5 -<prompt>$</prompt> <userinput>hg copy a b d</userinput> 80.6 -<prompt>$</prompt> <userinput>ls d</userinput> 80.7 -a b 80.8 -</screen>
81.1 --- a/en/examples/results/daily.copy.dir-src-dest.out Fri Mar 20 17:17:55 2009 +0800 81.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 81.3 @@ -1,3 +0,0 @@ 81.4 -<screen><prompt>$</prompt> <userinput>hg copy c d</userinput> 81.5 -copying c/a/c to d/c/a/c 81.6 -</screen>
82.1 --- a/en/examples/results/daily.copy.dir-src.out Fri Mar 20 17:17:55 2009 +0800 82.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 82.3 @@ -1,3 +0,0 @@ 82.4 -<screen><prompt>$</prompt> <userinput>hg copy c e</userinput> 82.5 -copying c/a/c to e/a/c 82.6 -</screen>
83.1 --- a/en/examples/results/daily.copy.init.out Fri Mar 20 17:17:55 2009 +0800 83.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 83.3 @@ -1,6 +0,0 @@ 83.4 -<screen><prompt>$</prompt> <userinput>hg init my-copy</userinput> 83.5 -<prompt>$</prompt> <userinput>cd my-copy</userinput> 83.6 -<prompt>$</prompt> <userinput>echo line > file</userinput> 83.7 -<prompt>$</prompt> <userinput>hg add file</userinput> 83.8 -<prompt>$</prompt> <userinput>hg commit -m 'Added a file'</userinput> 83.9 -</screen>
84.1 --- a/en/examples/results/daily.copy.merge.out Fri Mar 20 17:17:55 2009 +0800 84.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 84.3 @@ -1,16 +0,0 @@ 84.4 -<screen><prompt>$</prompt> <userinput>hg pull ../my-copy</userinput> 84.5 -pulling from ../my-copy 84.6 -searching for changes 84.7 -adding changesets 84.8 -adding manifests 84.9 -adding file changes 84.10 -added 1 changesets with 1 changes to 1 files (+1 heads) 84.11 -(run 'hg heads' to see heads, 'hg merge' to merge) 84.12 -<prompt>$</prompt> <userinput>hg merge</userinput> 84.13 -merging file and new-file to new-file 84.14 -0 files updated, 1 files merged, 0 files removed, 0 files unresolved 84.15 -(branch merge, don't forget to commit) 84.16 -<prompt>$</prompt> <userinput>cat new-file</userinput> 84.17 -line 84.18 -new contents 84.19 -</screen>
85.1 --- a/en/examples/results/daily.copy.other.out Fri Mar 20 17:17:55 2009 +0800 85.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 85.3 @@ -1,4 +0,0 @@ 85.4 -<screen><prompt>$</prompt> <userinput>cd ../your-copy</userinput> 85.5 -<prompt>$</prompt> <userinput>echo 'new contents' >> file</userinput> 85.6 -<prompt>$</prompt> <userinput>hg commit -m 'Changed file'</userinput> 85.7 -</screen>
86.1 --- a/en/examples/results/daily.copy.simple.out Fri Mar 20 17:17:55 2009 +0800 86.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 86.3 @@ -1,5 +0,0 @@ 86.4 -<screen><prompt>$</prompt> <userinput>mkdir k</userinput> 86.5 -<prompt>$</prompt> <userinput>hg copy a k</userinput> 86.6 -<prompt>$</prompt> <userinput>ls k</userinput> 86.7 -a 86.8 -</screen>
87.1 --- a/en/examples/results/daily.copy.status-copy.out Fri Mar 20 17:17:55 2009 +0800 87.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 87.3 @@ -1,5 +0,0 @@ 87.4 -<screen><prompt>$</prompt> <userinput>hg status -C</userinput> 87.5 -A new-file 87.6 - file 87.7 -<prompt>$</prompt> <userinput>hg commit -m 'Copied file'</userinput> 87.8 -</screen>
88.1 --- a/en/examples/results/daily.copy.status.out Fri Mar 20 17:17:55 2009 +0800 88.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 88.3 @@ -1,3 +0,0 @@ 88.4 -<screen><prompt>$</prompt> <userinput>hg status</userinput> 88.5 -A new-file 88.6 -</screen>
89.1 --- a/en/examples/results/daily.files.add-dir.out Fri Mar 20 17:17:55 2009 +0800 89.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 89.3 @@ -1,11 +0,0 @@ 89.4 -<screen><prompt>$</prompt> <userinput>mkdir b</userinput> 89.5 -<prompt>$</prompt> <userinput>echo b > b/b</userinput> 89.6 -<prompt>$</prompt> <userinput>echo c > b/c</userinput> 89.7 -<prompt>$</prompt> <userinput>mkdir b/d</userinput> 89.8 -<prompt>$</prompt> <userinput>echo d > b/d/d</userinput> 89.9 -<prompt>$</prompt> <userinput>hg add b</userinput> 89.10 -adding b/b 89.11 -adding b/c 89.12 -adding b/d/d 89.13 -<prompt>$</prompt> <userinput>hg commit -m 'Added all files in subdirectory'</userinput> 89.14 -</screen>
90.1 --- a/en/examples/results/daily.files.add.out Fri Mar 20 17:17:55 2009 +0800 90.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 90.3 @@ -1,11 +0,0 @@ 90.4 -<screen><prompt>$</prompt> <userinput>hg init add-example</userinput> 90.5 -<prompt>$</prompt> <userinput>cd add-example</userinput> 90.6 -<prompt>$</prompt> <userinput>echo a > a</userinput> 90.7 -<prompt>$</prompt> <userinput>hg status</userinput> 90.8 -? a 90.9 -<prompt>$</prompt> <userinput>hg add a</userinput> 90.10 -<prompt>$</prompt> <userinput>hg status</userinput> 90.11 -A a 90.12 -<prompt>$</prompt> <userinput>hg commit -m 'Added one file'</userinput> 90.13 -<prompt>$</prompt> <userinput>hg status</userinput> 90.14 -</screen>
91.1 --- a/en/examples/results/daily.files.addremove.out Fri Mar 20 17:17:55 2009 +0800 91.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 91.3 @@ -1,8 +0,0 @@ 91.4 -<screen><prompt>$</prompt> <userinput>hg init addremove-example</userinput> 91.5 -<prompt>$</prompt> <userinput>cd addremove-example</userinput> 91.6 -<prompt>$</prompt> <userinput>echo a > a</userinput> 91.7 -<prompt>$</prompt> <userinput>echo b > b</userinput> 91.8 -<prompt>$</prompt> <userinput>hg addremove</userinput> 91.9 -adding a 91.10 -adding b 91.11 -</screen>
92.1 --- a/en/examples/results/daily.files.commit-addremove.out Fri Mar 20 17:17:55 2009 +0800 92.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 92.3 @@ -1,4 +0,0 @@ 92.4 -<screen><prompt>$</prompt> <userinput>echo c > c</userinput> 92.5 -<prompt>$</prompt> <userinput>hg commit -A -m 'Commit with addremove'</userinput> 92.6 -adding c 92.7 -</screen>
93.1 --- a/en/examples/results/daily.files.hidden.out Fri Mar 20 17:17:55 2009 +0800 93.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 93.3 @@ -1,15 +0,0 @@ 93.4 -<screen><prompt>$</prompt> <userinput>hg init hidden-example</userinput> 93.5 -<prompt>$</prompt> <userinput>cd hidden-example</userinput> 93.6 -<prompt>$</prompt> <userinput>mkdir empty</userinput> 93.7 -<prompt>$</prompt> <userinput>touch empty/.hidden</userinput> 93.8 -<prompt>$</prompt> <userinput>hg add empty/.hidden</userinput> 93.9 -<prompt>$</prompt> <userinput>hg commit -m 'Manage an empty-looking directory'</userinput> 93.10 -<prompt>$</prompt> <userinput>ls empty</userinput> 93.11 -<prompt>$</prompt> <userinput>cd ..</userinput> 93.12 -<prompt>$</prompt> <userinput>hg clone hidden-example tmp</userinput> 93.13 -updating working directory 93.14 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 93.15 -<prompt>$</prompt> <userinput>ls tmp</userinput> 93.16 -empty 93.17 -<prompt>$</prompt> <userinput>ls tmp/empty</userinput> 93.18 -</screen>
94.1 --- a/en/examples/results/daily.files.missing.out Fri Mar 20 17:17:55 2009 +0800 94.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 94.3 @@ -1,9 +0,0 @@ 94.4 -<screen><prompt>$</prompt> <userinput>hg init missing-example</userinput> 94.5 -<prompt>$</prompt> <userinput>cd missing-example</userinput> 94.6 -<prompt>$</prompt> <userinput>echo a > a</userinput> 94.7 -<prompt>$</prompt> <userinput>hg add a</userinput> 94.8 -<prompt>$</prompt> <userinput>hg commit -m 'File about to be missing'</userinput> 94.9 -<prompt>$</prompt> <userinput>rm a</userinput> 94.10 -<prompt>$</prompt> <userinput>hg status</userinput> 94.11 -! a 94.12 -</screen>
95.1 --- a/en/examples/results/daily.files.recover-missing.out Fri Mar 20 17:17:55 2009 +0800 95.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 95.3 @@ -1,5 +0,0 @@ 95.4 -<screen><prompt>$</prompt> <userinput>hg revert a</userinput> 95.5 -<prompt>$</prompt> <userinput>cat a</userinput> 95.6 -a 95.7 -<prompt>$</prompt> <userinput>hg status</userinput> 95.8 -</screen>
96.1 --- a/en/examples/results/daily.files.remove-after.out Fri Mar 20 17:17:55 2009 +0800 96.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 96.3 @@ -1,4 +0,0 @@ 96.4 -<screen><prompt>$</prompt> <userinput>hg remove --after a</userinput> 96.5 -<prompt>$</prompt> <userinput>hg status</userinput> 96.6 -R a 96.7 -</screen>
97.1 --- a/en/examples/results/daily.files.remove.out Fri Mar 20 17:17:55 2009 +0800 97.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 97.3 @@ -1,14 +0,0 @@ 97.4 -<screen><prompt>$</prompt> <userinput>hg init remove-example</userinput> 97.5 -<prompt>$</prompt> <userinput>cd remove-example</userinput> 97.6 -<prompt>$</prompt> <userinput>echo a > a</userinput> 97.7 -<prompt>$</prompt> <userinput>mkdir b</userinput> 97.8 -<prompt>$</prompt> <userinput>echo b > b/b</userinput> 97.9 -<prompt>$</prompt> <userinput>hg add a b</userinput> 97.10 -adding b/b 97.11 -<prompt>$</prompt> <userinput>hg commit -m 'Small example for file removal'</userinput> 97.12 -<prompt>$</prompt> <userinput>hg remove a</userinput> 97.13 -<prompt>$</prompt> <userinput>hg status</userinput> 97.14 -R a 97.15 -<prompt>$</prompt> <userinput>hg remove b</userinput> 97.16 -removing b/b 97.17 -</screen>
98.1 --- a/en/examples/results/daily.rename.rename.out Fri Mar 20 17:17:55 2009 +0800 98.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 98.3 @@ -1,2 +0,0 @@ 98.4 -<screen><prompt>$</prompt> <userinput>hg rename a b</userinput> 98.5 -</screen>
99.1 --- a/en/examples/results/daily.rename.status-copy.out Fri Mar 20 17:17:55 2009 +0800 99.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 99.3 @@ -1,5 +0,0 @@ 99.4 -<screen><prompt>$</prompt> <userinput>hg status -C</userinput> 99.5 -A b 99.6 - a 99.7 -R a 99.8 -</screen>
100.1 --- a/en/examples/results/daily.rename.status.out Fri Mar 20 17:17:55 2009 +0800 100.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 100.3 @@ -1,4 +0,0 @@ 100.4 -<screen><prompt>$</prompt> <userinput>hg status</userinput> 100.5 -A b 100.6 -R a 100.7 -</screen>
101.1 --- a/en/examples/results/daily.revert.add.out Fri Mar 20 17:17:55 2009 +0800 101.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 101.3 @@ -1,8 +0,0 @@ 101.4 -<screen><prompt>$</prompt> <userinput>echo oops > oops</userinput> 101.5 -<prompt>$</prompt> <userinput>hg add oops</userinput> 101.6 -<prompt>$</prompt> <userinput>hg status oops</userinput> 101.7 -A oops 101.8 -<prompt>$</prompt> <userinput>hg revert oops</userinput> 101.9 -<prompt>$</prompt> <userinput>hg status</userinput> 101.10 -? oops 101.11 -</screen>
102.1 --- a/en/examples/results/daily.revert.copy.out Fri Mar 20 17:17:55 2009 +0800 102.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 102.3 @@ -1,5 +0,0 @@ 102.4 -<screen><prompt>$</prompt> <userinput>hg copy file new-file</userinput> 102.5 -<prompt>$</prompt> <userinput>hg revert new-file</userinput> 102.6 -<prompt>$</prompt> <userinput>hg status</userinput> 102.7 -? new-file 102.8 -</screen>
103.1 --- a/en/examples/results/daily.revert.missing.out Fri Mar 20 17:17:55 2009 +0800 103.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 103.3 @@ -1,7 +0,0 @@ 103.4 -<screen><prompt>$</prompt> <userinput>rm file</userinput> 103.5 -<prompt>$</prompt> <userinput>hg status</userinput> 103.6 -! file 103.7 -<prompt>$</prompt> <userinput>hg revert file</userinput> 103.8 -<prompt>$</prompt> <userinput>ls file</userinput> 103.9 -file 103.10 -</screen>
104.1 --- a/en/examples/results/daily.revert.modify.out Fri Mar 20 17:17:55 2009 +0800 104.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 104.3 @@ -1,11 +0,0 @@ 104.4 -<screen><prompt>$</prompt> <userinput>cat file</userinput> 104.5 -original content 104.6 -<prompt>$</prompt> <userinput>echo unwanted change >> file</userinput> 104.7 -<prompt>$</prompt> <userinput>hg diff file</userinput> 104.8 -diff -r file 104.9 - 104.10 - 104.11 -@@ -1,1 +1,2 @@ 104.12 - original content 104.13 -+unwanted change 104.14 -</screen>
105.1 --- a/en/examples/results/daily.revert.remove.out Fri Mar 20 17:17:55 2009 +0800 105.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 105.3 @@ -1,8 +0,0 @@ 105.4 -<screen><prompt>$</prompt> <userinput>hg remove file</userinput> 105.5 -<prompt>$</prompt> <userinput>hg status</userinput> 105.6 -R file 105.7 -<prompt>$</prompt> <userinput>hg revert file</userinput> 105.8 -<prompt>$</prompt> <userinput>hg status</userinput> 105.9 -<prompt>$</prompt> <userinput>ls file</userinput> 105.10 -file 105.11 -</screen>
106.1 --- a/en/examples/results/daily.revert.rename-orig.out Fri Mar 20 17:17:55 2009 +0800 106.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 106.3 @@ -1,5 +0,0 @@ 106.4 -<screen><prompt>$</prompt> <userinput>hg revert file</userinput> 106.5 -no changes needed to file 106.6 -<prompt>$</prompt> <userinput>hg status</userinput> 106.7 -? new-file 106.8 -</screen>
107.1 --- a/en/examples/results/daily.revert.rename.out Fri Mar 20 17:17:55 2009 +0800 107.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 107.3 @@ -1,5 +0,0 @@ 107.4 -<screen><prompt>$</prompt> <userinput>hg rename file new-file</userinput> 107.5 -<prompt>$</prompt> <userinput>hg revert new-file</userinput> 107.6 -<prompt>$</prompt> <userinput>hg status</userinput> 107.7 -? new-file 107.8 -</screen>
108.1 --- a/en/examples/results/daily.revert.status.out Fri Mar 20 17:17:55 2009 +0800 108.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 108.3 @@ -1,6 +0,0 @@ 108.4 -<screen><prompt>$</prompt> <userinput>hg status</userinput> 108.5 -? file.orig 108.6 -<prompt>$</prompt> <userinput>cat file.orig</userinput> 108.7 -original content 108.8 -unwanted change 108.9 -</screen>
109.1 --- a/en/examples/results/daily.revert.unmodify.out Fri Mar 20 17:17:55 2009 +0800 109.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 109.3 @@ -1,6 +0,0 @@ 109.4 -<screen><prompt>$</prompt> <userinput>hg status</userinput> 109.5 -M file 109.6 -<prompt>$</prompt> <userinput>hg revert file</userinput> 109.7 -<prompt>$</prompt> <userinput>cat file</userinput> 109.8 -original content 109.9 -</screen>
110.1 --- a/en/examples/results/extdiff.diff.out Fri Mar 20 17:17:55 2009 +0800 110.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 110.3 @@ -1,8 +0,0 @@ 110.4 -<screen><prompt>$</prompt> <userinput>hg diff</userinput> 110.5 -diff -r myfile 110.6 - 110.7 - 110.8 -@@ -1,1 +1,2 @@ 110.9 - The first line. 110.10 -+The second line. 110.11 -</screen>
111.1 --- a/en/examples/results/extdiff.extdiff-ctx.out Fri Mar 20 17:17:55 2009 +0800 111.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 111.3 @@ -1,9 +0,0 @@ 111.4 -<screen><prompt>$</prompt> <userinput>hg extdiff -o -NprcC5</userinput> 111.5 - 111.6 - 111.7 -*************** 111.8 -*** 1 **** 111.9 - 111.10 - The first line. 111.11 -+ The second line. 111.12 -</screen>
112.1 --- a/en/examples/results/extdiff.extdiff.out Fri Mar 20 17:17:55 2009 +0800 112.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 112.3 @@ -1,7 +0,0 @@ 112.4 -<screen><prompt>$</prompt> <userinput>hg extdiff</userinput> 112.5 - 112.6 - 112.7 -@@ -1 +1,2 @@ 112.8 - The first line. 112.9 -+The second line. 112.10 -</screen>
113.1 --- a/en/examples/results/filenames.dirs.out Fri Mar 20 17:17:55 2009 +0800 113.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 113.3 @@ -1,6 +0,0 @@ 113.4 -<screen><prompt>$</prompt> <userinput>hg status src</userinput> 113.5 -? src/main.py 113.6 -? src/watcher/_watcher.c 113.7 -? src/watcher/watcher.py 113.8 -? src/xyzzy.txt 113.9 -</screen>
114.1 --- a/en/examples/results/filenames.files.out Fri Mar 20 17:17:55 2009 +0800 114.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 114.3 @@ -1,2 +0,0 @@ 114.4 -<screen><prompt>$</prompt> <userinput>hg add COPYING README examples/simple.py</userinput> 114.5 -</screen>
115.1 --- a/en/examples/results/filenames.filter.exclude.out Fri Mar 20 17:17:55 2009 +0800 115.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 115.3 @@ -1,4 +0,0 @@ 115.4 -<screen><prompt>$</prompt> <userinput>hg status -X '**.py' src</userinput> 115.5 -? src/watcher/_watcher.c 115.6 -? src/xyzzy.txt 115.7 -</screen>
116.1 --- a/en/examples/results/filenames.filter.include.out Fri Mar 20 17:17:55 2009 +0800 116.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 116.3 @@ -1,3 +0,0 @@ 116.4 -<screen><prompt>$</prompt> <userinput>hg status -I '*.in'</userinput> 116.5 -? MANIFEST.in 116.6 -</screen>
117.1 --- a/en/examples/results/filenames.glob.group.out Fri Mar 20 17:17:55 2009 +0800 117.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 117.3 @@ -1,4 +0,0 @@ 117.4 -<screen><prompt>$</prompt> <userinput>hg status 'glob:*.{in,py}'</userinput> 117.5 -? MANIFEST.in 117.6 -? setup.py 117.7 -</screen>
118.1 --- a/en/examples/results/filenames.glob.question.out Fri Mar 20 17:17:55 2009 +0800 118.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 118.3 @@ -1,3 +0,0 @@ 118.4 -<screen><prompt>$</prompt> <userinput>hg status 'glob:**.?'</userinput> 118.5 -? src/watcher/_watcher.c 118.6 -</screen>
119.1 --- a/en/examples/results/filenames.glob.range.out Fri Mar 20 17:17:55 2009 +0800 119.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 119.3 @@ -1,4 +0,0 @@ 119.4 -<screen><prompt>$</prompt> <userinput>hg status 'glob:**[nr-t]'</userinput> 119.5 -? MANIFEST.in 119.6 -? src/xyzzy.txt 119.7 -</screen>
120.1 --- a/en/examples/results/filenames.glob.star-starstar.out Fri Mar 20 17:17:55 2009 +0800 120.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 120.3 @@ -1,9 +0,0 @@ 120.4 -<screen><prompt>$</prompt> <userinput>hg status 'glob:*.py'</userinput> 120.5 -? setup.py 120.6 -<prompt>$</prompt> <userinput>hg status 'glob:**.py'</userinput> 120.7 -A examples/simple.py 120.8 -A src/main.py 120.9 -? examples/performant.py 120.10 -? setup.py 120.11 -? src/watcher/watcher.py 120.12 -</screen>
121.1 --- a/en/examples/results/filenames.glob.star.out Fri Mar 20 17:17:55 2009 +0800 121.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 121.3 @@ -1,3 +0,0 @@ 121.4 -<screen><prompt>$</prompt> <userinput>hg add 'glob:*.py'</userinput> 121.5 -adding main.py 121.6 -</screen>
122.1 --- a/en/examples/results/filenames.glob.starstar.out Fri Mar 20 17:17:55 2009 +0800 122.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 122.3 @@ -1,8 +0,0 @@ 122.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 122.5 -<prompt>$</prompt> <userinput>hg status 'glob:**.py'</userinput> 122.6 -A examples/simple.py 122.7 -A src/main.py 122.8 -? examples/performant.py 122.9 -? setup.py 122.10 -? src/watcher/watcher.py 122.11 -</screen>
123.1 --- a/en/examples/results/filenames.wdir-relname.out Fri Mar 20 17:17:55 2009 +0800 123.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 123.3 @@ -1,23 +0,0 @@ 123.4 -<screen><prompt>$</prompt> <userinput>hg status</userinput> 123.5 -A COPYING 123.6 -A README 123.7 -A examples/simple.py 123.8 -? MANIFEST.in 123.9 -? examples/performant.py 123.10 -? setup.py 123.11 -? src/main.py 123.12 -? src/watcher/_watcher.c 123.13 -? src/watcher/watcher.py 123.14 -? src/xyzzy.txt 123.15 -<prompt>$</prompt> <userinput>hg status `hg root`</userinput> 123.16 -A ../COPYING 123.17 -A ../README 123.18 -A ../examples/simple.py 123.19 -? ../MANIFEST.in 123.20 -? ../examples/performant.py 123.21 -? ../setup.py 123.22 -? main.py 123.23 -? watcher/_watcher.c 123.24 -? watcher/watcher.py 123.25 -? xyzzy.txt 123.26 -</screen>
124.1 --- a/en/examples/results/filenames.wdir-subdir.out Fri Mar 20 17:17:55 2009 +0800 124.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 124.3 @@ -1,15 +0,0 @@ 124.4 -<screen><prompt>$</prompt> <userinput>cd src</userinput> 124.5 -<prompt>$</prompt> <userinput>hg add -n</userinput> 124.6 -adding ../MANIFEST.in 124.7 -adding ../examples/performant.py 124.8 -adding ../setup.py 124.9 -adding main.py 124.10 -adding watcher/_watcher.c 124.11 -adding watcher/watcher.py 124.12 -adding xyzzy.txt 124.13 -<prompt>$</prompt> <userinput>hg add -n .</userinput> 124.14 -adding main.py 124.15 -adding watcher/_watcher.c 124.16 -adding watcher/watcher.py 124.17 -adding xyzzy.txt 124.18 -</screen>
125.1 --- a/en/examples/results/hook.msglen.go.out Fri Mar 20 17:17:55 2009 +0800 125.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 125.3 @@ -1,11 +0,0 @@ 125.4 -<screen><prompt>$</prompt> <userinput>cat .hg/hgrc</userinput> 125.5 -[hooks] 125.6 -pretxncommit.msglen = test `hg tip --template {desc} | wc -c` -ge 10 125.7 -<prompt>$</prompt> <userinput>echo a > a</userinput> 125.8 -<prompt>$</prompt> <userinput>hg add a</userinput> 125.9 -<prompt>$</prompt> <userinput>hg commit -A -m 'too short'</userinput> 125.10 -transaction abort! 125.11 -rollback completed 125.12 -abort: pretxncommit.msglen hook exited with status 1 125.13 -<prompt>$</prompt> <userinput>hg commit -A -m 'long enough'</userinput> 125.14 -</screen>
126.1 --- a/en/examples/results/hook.msglen.run.out Fri Mar 20 17:17:55 2009 +0800 126.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 126.3 @@ -1,10 +0,0 @@ 126.4 -$ \textbf{cat .hg/hgrc} 126.5 -[hooks] 126.6 -pretxncommit.msglen = test `hg tip --template \{desc\} | wc -c` -ge 10 126.7 -$ \textbf{echo a > a} 126.8 -$ \textbf{hg add a} 126.9 -$ \textbf{hg commit -A -m 'too short'} 126.10 -abort: pretxncommit.msglen hook exited with status 1 126.11 -transaction abort! 126.12 -rollback completed 126.13 -$ \textbf{hg commit -A -m 'long enough'}
127.1 --- a/en/examples/results/hook.simple.ext.out Fri Mar 20 17:17:55 2009 +0800 127.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 127.3 @@ -1,6 +0,0 @@ 127.4 -<screen><prompt>$</prompt> <userinput>echo 'commit.when = echo -n "date of commit: "; date' >> .hg/hgrc</userinput> 127.5 -<prompt>$</prompt> <userinput>echo a >> a</userinput> 127.6 -<prompt>$</prompt> <userinput>hg commit -m 'i have two hooks'</userinput> 127.7 -committed 127.8 - 127.9 -</screen>
128.1 --- a/en/examples/results/hook.simple.init.out Fri Mar 20 17:17:55 2009 +0800 128.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 128.3 @@ -1,12 +0,0 @@ 128.4 -<screen><prompt>$</prompt> <userinput>hg init hook-test</userinput> 128.5 -<prompt>$</prompt> <userinput>cd hook-test</userinput> 128.6 -<prompt>$</prompt> <userinput>echo '[hooks]' >> .hg/hgrc</userinput> 128.7 -<prompt>$</prompt> <userinput>echo 'commit = echo committed $HG_NODE' >> .hg/hgrc</userinput> 128.8 -<prompt>$</prompt> <userinput>cat .hg/hgrc</userinput> 128.9 -[hooks] 128.10 -commit = echo committed $HG_NODE 128.11 -<prompt>$</prompt> <userinput>echo a > a</userinput> 128.12 -<prompt>$</prompt> <userinput>hg add a</userinput> 128.13 -<prompt>$</prompt> <userinput>hg commit -m 'testing commit hook'</userinput> 128.14 -committed 128.15 -</screen>
129.1 --- a/en/examples/results/hook.simple.pretxncommit.out Fri Mar 20 17:17:55 2009 +0800 129.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 129.3 @@ -1,14 +0,0 @@ 129.4 -<screen><prompt>$</prompt> <userinput>cat check_bug_id</userinput> 129.5 -#!/bin/sh 129.6 -# check that a commit comment mentions a numeric bug id 129.7 -hg log -r $1 --template {desc} | grep -q "\<bug *[0-9]" 129.8 -<prompt>$</prompt> <userinput>echo 'pretxncommit.bug_id_required = ./check_bug_id $HG_NODE' >> .hg/hgrc</userinput> 129.9 -<prompt>$</prompt> <userinput>echo a >> a</userinput> 129.10 -<prompt>$</prompt> <userinput>hg commit -m 'i am not mentioning a bug id'</userinput> 129.11 -transaction abort! 129.12 -rollback completed 129.13 -abort: pretxncommit.bug_id_required hook exited with status 1 129.14 -<prompt>$</prompt> <userinput>hg commit -m 'i refer you to bug 666'</userinput> 129.15 -committed 129.16 - 129.17 -</screen>
130.1 --- a/en/examples/results/hook.ws.better.out Fri Mar 20 17:17:55 2009 +0800 130.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 130.3 @@ -1,18 +0,0 @@ 130.4 -<screen><prompt>$</prompt> <userinput>cat .hg/hgrc</userinput> 130.5 -[hooks] 130.6 -pretxncommit.whitespace = .hg/check_whitespace.py 130.7 -<prompt>$</prompt> <userinput>echo 'a ' >> a</userinput> 130.8 -<prompt>$</prompt> <userinput>hg commit -A -m 'add new line with trailing whitespace'</userinput> 130.9 -a, line 2: trailing whitespace added 130.10 -commit message saved to .hg/commit.save 130.11 -transaction abort! 130.12 -rollback completed 130.13 -abort: pretxncommit.whitespace hook exited with status 1 130.14 -<prompt>$</prompt> <userinput>sed -i 's, *$,,' a</userinput> 130.15 -<prompt>$</prompt> <userinput>hg commit -A -m 'trimmed trailing whitespace'</userinput> 130.16 -a, line 2: trailing whitespace added 130.17 -commit message saved to .hg/commit.save 130.18 -transaction abort! 130.19 -rollback completed 130.20 -abort: pretxncommit.whitespace hook exited with status 1 130.21 -</screen>
131.1 --- a/en/examples/results/hook.ws.simple.out Fri Mar 20 17:17:55 2009 +0800 131.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 131.3 @@ -1,12 +0,0 @@ 131.4 -<screen><prompt>$</prompt> <userinput>cat .hg/hgrc</userinput> 131.5 -[hooks] 131.6 -pretxncommit.whitespace = hg export tip | (! egrep -q '^\+.*[ \t]$') 131.7 -<prompt>$</prompt> <userinput>echo 'a ' > a</userinput> 131.8 -<prompt>$</prompt> <userinput>hg commit -A -m 'test with trailing whitespace'</userinput> 131.9 -adding a 131.10 -transaction abort! 131.11 -rollback completed 131.12 -abort: pretxncommit.whitespace hook exited with status 1 131.13 -<prompt>$</prompt> <userinput>echo 'a' > a</userinput> 131.14 -<prompt>$</prompt> <userinput>hg commit -A -m 'drop trailing whitespace and try again'</userinput> 131.15 -</screen>
132.1 --- a/en/examples/results/issue29.go.out Fri Mar 20 17:17:55 2009 +0800 132.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 132.3 @@ -1,18 +0,0 @@ 132.4 -<screen><prompt>$</prompt> <userinput>hg init issue29</userinput> 132.5 -<prompt>$</prompt> <userinput>cd issue29</userinput> 132.6 -<prompt>$</prompt> <userinput>echo a > a</userinput> 132.7 -<prompt>$</prompt> <userinput>hg ci -Ama</userinput> 132.8 -adding a 132.9 -<prompt>$</prompt> <userinput>echo b > b</userinput> 132.10 -<prompt>$</prompt> <userinput>hg ci -Amb</userinput> 132.11 -adding b 132.12 -<prompt>$</prompt> <userinput>hg up 0</userinput> 132.13 -0 files updated, 0 files merged, 1 files removed, 0 files unresolved 132.14 -<prompt>$</prompt> <userinput>mkdir b</userinput> 132.15 -<prompt>$</prompt> <userinput>echo b > b/b</userinput> 132.16 -<prompt>$</prompt> <userinput>hg ci -Amc</userinput> 132.17 -adding b/b 132.18 -created new head 132.19 -<prompt>$</prompt> <userinput>hg merge</userinput> 132.20 - 132.21 -</screen>
133.1 --- a/en/examples/results/mq.dodiff.diff.out Fri Mar 20 17:17:55 2009 +0800 133.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 133.3 @@ -1,14 +0,0 @@ 133.4 -<screen><prompt>$</prompt> <userinput>echo 'this is my original thought' > oldfile</userinput> 133.5 -<prompt>$</prompt> <userinput>echo 'i have changed my mind' > newfile</userinput> 133.6 -<prompt>$</prompt> <userinput>diff -u oldfile newfile > tiny.patch</userinput> 133.7 -<prompt>$</prompt> <userinput>cat tiny.patch</userinput> 133.8 - 133.9 - 133.10 -@@ -1 +1 @@ 133.11 --this is my original thought 133.12 -+i have changed my mind 133.13 -<prompt>$</prompt> <userinput>patch < tiny.patch</userinput> 133.14 -patching file oldfile 133.15 -<prompt>$</prompt> <userinput>cat oldfile</userinput> 133.16 -i have changed my mind 133.17 -</screen>
134.1 --- a/en/examples/results/mq.guards.init.out Fri Mar 20 17:17:55 2009 +0800 134.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 134.3 @@ -1,10 +0,0 @@ 134.4 -<screen><prompt>$</prompt> <userinput>hg qinit</userinput> 134.5 -<prompt>$</prompt> <userinput>hg qnew hello.patch</userinput> 134.6 -<prompt>$</prompt> <userinput>echo hello > hello</userinput> 134.7 -<prompt>$</prompt> <userinput>hg add hello</userinput> 134.8 -<prompt>$</prompt> <userinput>hg qrefresh</userinput> 134.9 -<prompt>$</prompt> <userinput>hg qnew goodbye.patch</userinput> 134.10 -<prompt>$</prompt> <userinput>echo goodbye > goodbye</userinput> 134.11 -<prompt>$</prompt> <userinput>hg add goodbye</userinput> 134.12 -<prompt>$</prompt> <userinput>hg qrefresh</userinput> 134.13 -</screen>
135.1 --- a/en/examples/results/mq.guards.qguard.neg.out Fri Mar 20 17:17:55 2009 +0800 135.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 135.3 @@ -1,4 +0,0 @@ 135.4 -<screen><prompt>$</prompt> <userinput>hg qguard hello.patch -quux</userinput> 135.5 -<prompt>$</prompt> <userinput>hg qguard hello.patch</userinput> 135.6 -hello.patch: -quux 135.7 -</screen>
136.1 --- a/en/examples/results/mq.guards.qguard.out Fri Mar 20 17:17:55 2009 +0800 136.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 136.3 @@ -1,3 +0,0 @@ 136.4 -<screen><prompt>$</prompt> <userinput>hg qguard</userinput> 136.5 -goodbye.patch: unguarded 136.6 -</screen>
137.1 --- a/en/examples/results/mq.guards.qguard.pos.out Fri Mar 20 17:17:55 2009 +0800 137.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 137.3 @@ -1,4 +0,0 @@ 137.4 -<screen><prompt>$</prompt> <userinput>hg qguard +foo</userinput> 137.5 -<prompt>$</prompt> <userinput>hg qguard</userinput> 137.6 -goodbye.patch: +foo 137.7 -</screen>
138.1 --- a/en/examples/results/mq.guards.qselect.cat.out Fri Mar 20 17:17:55 2009 +0800 138.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 138.3 @@ -1,3 +0,0 @@ 138.4 -<screen><prompt>$</prompt> <userinput>cat .hg/patches/guards</userinput> 138.5 -foo 138.6 -</screen>
139.1 --- a/en/examples/results/mq.guards.qselect.error.out Fri Mar 20 17:17:55 2009 +0800 139.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 139.3 @@ -1,3 +0,0 @@ 139.4 -<screen><prompt>$</prompt> <userinput>hg qselect +foo</userinput> 139.5 -abort: guard '+foo' starts with invalid character: '+' 139.6 -</screen>
140.1 --- a/en/examples/results/mq.guards.qselect.foo.out Fri Mar 20 17:17:55 2009 +0800 140.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 140.3 @@ -1,9 +0,0 @@ 140.4 -<screen><prompt>$</prompt> <userinput>hg qpop -a</userinput> 140.5 -patch queue now empty 140.6 -<prompt>$</prompt> <userinput>hg qselect</userinput> 140.7 -no active guards 140.8 -<prompt>$</prompt> <userinput>hg qselect foo</userinput> 140.9 -number of unguarded, unapplied patches has changed from 1 to 2 140.10 -<prompt>$</prompt> <userinput>hg qselect</userinput> 140.11 -foo 140.12 -</screen>
141.1 --- a/en/examples/results/mq.guards.qselect.foobar.out Fri Mar 20 17:17:55 2009 +0800 141.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 141.3 @@ -1,9 +0,0 @@ 141.4 -<screen><prompt>$</prompt> <userinput>hg qselect foo bar</userinput> 141.5 -number of unguarded, unapplied patches has changed from 0 to 2 141.6 -<prompt>$</prompt> <userinput>hg qpop -a</userinput> 141.7 -no patches applied 141.8 -<prompt>$</prompt> <userinput>hg qpush -a</userinput> 141.9 -applying hello.patch 141.10 -applying goodbye.patch 141.11 -now at: goodbye.patch 141.12 -</screen>
142.1 --- a/en/examples/results/mq.guards.qselect.qpush.out Fri Mar 20 17:17:55 2009 +0800 142.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 142.3 @@ -1,5 +0,0 @@ 142.4 -<screen><prompt>$</prompt> <userinput>hg qpush -a</userinput> 142.5 -applying hello.patch 142.6 -applying goodbye.patch 142.7 -now at: goodbye.patch 142.8 -</screen>
143.1 --- a/en/examples/results/mq.guards.qselect.quux.out Fri Mar 20 17:17:55 2009 +0800 143.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 143.3 @@ -1,7 +0,0 @@ 143.4 -<screen><prompt>$</prompt> <userinput>hg qselect quux</userinput> 143.5 -number of guarded, applied patches has changed from 0 to 2 143.6 -<prompt>$</prompt> <userinput>hg qpop -a</userinput> 143.7 -patch queue now empty 143.8 -<prompt>$</prompt> <userinput>hg qpush -a</userinput> 143.9 -patch series already fully applied 143.10 -</screen>
144.1 --- a/en/examples/results/mq.guards.series.out Fri Mar 20 17:17:55 2009 +0800 144.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 144.3 @@ -1,4 +0,0 @@ 144.4 -<screen><prompt>$</prompt> <userinput>cat .hg/patches/series</userinput> 144.5 -hello.patch #-quux 144.6 -goodbye.patch #+foo 144.7 -</screen>
145.1 --- a/en/examples/results/mq.id.out.out Fri Mar 20 17:17:55 2009 +0800 145.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 145.3 @@ -1,32 +0,0 @@ 145.4 -$ \textbf{hg qapplied} 145.5 -first.patch 145.6 -second.patch 145.7 -$ \textbf{hg log -r qbase:qtip} 145.8 -changeset: 145.9 -tag: first.patch 145.10 -tag: qbase 145.11 -user: Bryan O'Sullivan <bos@serpentine.com> 145.12 - 145.13 -summary: patch queue: first.patch 145.14 - 145.15 -changeset: 145.16 -tag: second.patch 145.17 -tag: qtip 145.18 -tag: tip 145.19 -user: Bryan O'Sullivan <bos@serpentine.com> 145.20 - 145.21 -summary: patch queue: second.patch 145.22 - 145.23 -$ \textbf{hg export second.patch} 145.24 -# HG changeset patch 145.25 -# User Bryan O'Sullivan <bos@serpentine.com> 145.26 - 145.27 -# Node ID 145.28 -# Parent 145.29 -patch queue: second.patch 145.30 - 145.31 -diff -r -r other.c 145.32 - 145.33 - 145.34 -@@ -0,0 +1,1 @@ 145.35 -+double u;
146.1 --- a/en/examples/results/mq.id.output.out Fri Mar 20 17:17:55 2009 +0800 146.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 146.3 @@ -1,33 +0,0 @@ 146.4 -<screen><prompt>$</prompt> <userinput>hg qapplied</userinput> 146.5 -first.patch 146.6 -second.patch 146.7 -<prompt>$</prompt> <userinput>hg log -r qbase:qtip</userinput> 146.8 -changeset: 146.9 -tag: first.patch 146.10 -tag: qbase 146.11 -user: Bryan O'Sullivan <bos@serpentine.com> 146.12 - 146.13 -summary: [mq]: first.patch 146.14 - 146.15 -changeset: 146.16 -tag: qtip 146.17 -tag: second.patch 146.18 -tag: tip 146.19 -user: Bryan O'Sullivan <bos@serpentine.com> 146.20 - 146.21 -summary: [mq]: second.patch 146.22 - 146.23 -<prompt>$</prompt> <userinput>hg export second.patch</userinput> 146.24 -# HG changeset patch 146.25 -# User Bryan O'Sullivan <bos@serpentine.com> 146.26 - 146.27 -# Node ID 146.28 -# Parent 146.29 -[mq]: second.patch 146.30 - 146.31 -diff -r -r other.c 146.32 - 146.33 - 146.34 -@@ -0,0 +1,1 @@ 146.35 -+double u; 146.36 -</screen>
147.1 --- a/en/examples/results/mq.qinit-help.help.out Fri Mar 20 17:17:55 2009 +0800 147.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 147.3 @@ -1,17 +0,0 @@ 147.4 -<screen><prompt>$</prompt> <userinput>hg help qinit</userinput> 147.5 -hg qinit [-c] 147.6 - 147.7 -init a new queue repository 147.8 - 147.9 - The queue repository is unversioned by default. If -c is 147.10 - specified, qinit will create a separate nested repository 147.11 - for patches (qinit -c may also be run later to convert 147.12 - an unversioned patch repository into a versioned one). 147.13 - You can use qcommit to commit changes to this queue repository. 147.14 - 147.15 -options: 147.16 - 147.17 - -c --create-repo create queue repository 147.18 - 147.19 -use "hg -v help qinit" to show global options 147.20 -</screen>
148.1 --- a/en/examples/results/mq.tarball.download.out Fri Mar 20 17:17:55 2009 +0800 148.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 148.3 @@ -1,10 +0,0 @@ 148.4 -<screen><prompt>$</prompt> <userinput>download netplug-1.2.5.tar.bz2</userinput> 148.5 -<prompt>$</prompt> <userinput>tar jxf netplug-1.2.5.tar.bz2</userinput> 148.6 -<prompt>$</prompt> <userinput>cd netplug-1.2.5</userinput> 148.7 -<prompt>$</prompt> <userinput>hg init</userinput> 148.8 -<prompt>$</prompt> <userinput>hg commit -q --addremove --message netplug-1.2.5</userinput> 148.9 -<prompt>$</prompt> <userinput>cd ..</userinput> 148.10 -<prompt>$</prompt> <userinput>hg clone netplug-1.2.5 netplug</userinput> 148.11 -updating working directory 148.12 -18 files updated, 0 files merged, 0 files removed, 0 files unresolved 148.13 -</screen>
149.1 --- a/en/examples/results/mq.tarball.newsource.out Fri Mar 20 17:17:55 2009 +0800 149.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 149.3 @@ -1,14 +0,0 @@ 149.4 -<screen><prompt>$</prompt> <userinput>hg qpop -a</userinput> 149.5 -patch queue now empty 149.6 -<prompt>$</prompt> <userinput>cd ..</userinput> 149.7 -<prompt>$</prompt> <userinput>download netplug-1.2.8.tar.bz2</userinput> 149.8 -<prompt>$</prompt> <userinput>hg clone netplug-1.2.5 netplug-1.2.8</userinput> 149.9 -updating working directory 149.10 -18 files updated, 0 files merged, 0 files removed, 0 files unresolved 149.11 -<prompt>$</prompt> <userinput>cd netplug-1.2.8</userinput> 149.12 -<prompt>$</prompt> <userinput>hg locate -0 | xargs -0 rm</userinput> 149.13 -<prompt>$</prompt> <userinput>cd ..</userinput> 149.14 -<prompt>$</prompt> <userinput>tar jxf netplug-1.2.8.tar.bz2</userinput> 149.15 -<prompt>$</prompt> <userinput>cd netplug-1.2.8</userinput> 149.16 -<prompt>$</prompt> <userinput>hg commit --addremove --message netplug-1.2.8</userinput> 149.17 -</screen>
150.1 --- a/en/examples/results/mq.tarball.qinit.out Fri Mar 20 17:17:55 2009 +0800 150.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 150.3 @@ -1,29 +0,0 @@ 150.4 -<screen><prompt>$</prompt> <userinput>cd netplug</userinput> 150.5 -<prompt>$</prompt> <userinput>hg qinit</userinput> 150.6 -<prompt>$</prompt> <userinput>hg qnew -m 'fix build problem with gcc 4' build-fix.patch</userinput> 150.7 -<prompt>$</prompt> <userinput>perl -pi -e 's/int addr_len/socklen_t addr_len/' netlink.c</userinput> 150.8 -<prompt>$</prompt> <userinput>hg qrefresh</userinput> 150.9 -<prompt>$</prompt> <userinput>hg tip -p</userinput> 150.10 -changeset: 150.11 -tag: qtip 150.12 -tag: build-fix.patch 150.13 -tag: tip 150.14 -tag: qbase 150.15 -user: Bryan O'Sullivan <bos@serpentine.com> 150.16 - 150.17 -summary: fix build problem with gcc 4 150.18 - 150.19 -diff -r -r netlink.c 150.20 - 150.21 - 150.22 -@@ -275,7 +275,7 @@ 150.23 - exit(1); 150.24 - } 150.25 - 150.26 -- int addr_len = sizeof(addr); 150.27 -+ socklen_t addr_len = sizeof(addr); 150.28 - 150.29 - if (getsockname(fd, (struct sockaddr *) &addr, &addr_len) == -1) { 150.30 - do_log(LOG_ERR, "Could not get socket details: %m"); 150.31 - 150.32 -</screen>
151.1 --- a/en/examples/results/mq.tarball.repush.out Fri Mar 20 17:17:55 2009 +0800 151.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 151.3 @@ -1,14 +0,0 @@ 151.4 -<screen><prompt>$</prompt> <userinput>cd ../netplug</userinput> 151.5 -<prompt>$</prompt> <userinput>hg pull ../netplug-1.2.8</userinput> 151.6 -pulling from ../netplug-1.2.8 151.7 -searching for changes 151.8 -adding changesets 151.9 -adding manifests 151.10 -adding file changes 151.11 -added 1 changesets with 12 changes to 12 files 151.12 -(run 'hg update' to get a working copy) 151.13 -<prompt>$</prompt> <userinput>hg qpush -a</userinput> 151.14 -(working directory not at tip) 151.15 -applying build-fix.patch 151.16 -now at: build-fix.patch 151.17 -</screen>
152.1 --- a/en/examples/results/mq.tools.lsdiff.out Fri Mar 20 17:17:55 2009 +0800 152.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 152.3 @@ -1,22 +0,0 @@ 152.4 -<screen><prompt>$</prompt> <userinput>lsdiff -nvv remove-redundant-null-checks.patch</userinput> 152.5 -22 File #1 a/drivers/char/agp/sgi-agp.c 152.6 - 24 Hunk #1 static int __devinit agp_sgi_init(void) 152.7 -37 File #2 a/drivers/char/hvcs.c 152.8 - 39 Hunk #1 static struct tty_operations hvcs_ops = 152.9 - 53 Hunk #2 static int hvcs_alloc_index_list(int n) 152.10 -69 File #3 a/drivers/message/fusion/mptfc.c 152.11 - 71 Hunk #1 mptfc_GetFcDevPage0(MPT_ADAPTER *ioc, in 152.12 -85 File #4 a/drivers/message/fusion/mptsas.c 152.13 - 87 Hunk #1 mptsas_probe_hba_phys(MPT_ADAPTER *ioc) 152.14 -98 File #5 a/drivers/net/fs_enet/fs_enet-mii.c 152.15 - 100 Hunk #1 static struct fs_enet_mii_bus *create_bu 152.16 -111 File #6 a/drivers/net/wireless/ipw2200.c 152.17 - 113 Hunk #1 static struct ipw_fw_error *ipw_alloc_er 152.18 - 126 Hunk #2 static ssize_t clear_error(struct device 152.19 - 140 Hunk #3 static void ipw_irq_tasklet(struct ipw_p 152.20 - 150 Hunk #4 static void ipw_pci_remove(struct pci_de 152.21 -164 File #7 a/drivers/scsi/libata-scsi.c 152.22 - 166 Hunk #1 int ata_cmd_ioctl(struct scsi_device *sc 152.23 -178 File #8 a/drivers/video/au1100fb.c 152.24 - 180 Hunk #1 void __exit au1100fb_cleanup(void) 152.25 -</screen>
153.1 --- a/en/examples/results/mq.tools.tools.out Fri Mar 20 17:17:55 2009 +0800 153.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 153.3 @@ -1,24 +0,0 @@ 153.4 -<screen><prompt>$</prompt> <userinput>diffstat -p1 remove-redundant-null-checks.patch</userinput> 153.5 - drivers/char/agp/sgi-agp.c | 5 ++--- 153.6 - drivers/char/hvcs.c | 11 +++++------ 153.7 - drivers/message/fusion/mptfc.c | 6 ++---- 153.8 - drivers/message/fusion/mptsas.c | 3 +-- 153.9 - drivers/net/fs_enet/fs_enet-mii.c | 3 +-- 153.10 - drivers/net/wireless/ipw2200.c | 22 ++++++---------------- 153.11 - drivers/scsi/libata-scsi.c | 4 +--- 153.12 - drivers/video/au1100fb.c | 3 +-- 153.13 - 8 files changed, 19 insertions(+), 38 deletions(-) 153.14 -<prompt>$</prompt> <userinput>filterdiff -i '*/video/*' remove-redundant-null-checks.patch</userinput> 153.15 - 153.16 - 153.17 -@@ -743,8 +743,7 @@ void __exit au1100fb_cleanup(void) 153.18 - { 153.19 - driver_unregister(&au1100fb_driver); 153.20 - 153.21 -- if (drv_info.opt_mode) 153.22 -- kfree(drv_info.opt_mode); 153.23 -+ kfree(drv_info.opt_mode); 153.24 - } 153.25 - 153.26 - module_init(au1100fb_init); 153.27 -</screen>
154.1 --- a/en/examples/results/mq.tutorial.add.out Fri Mar 20 17:17:55 2009 +0800 154.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 154.3 @@ -1,5 +0,0 @@ 154.4 -<screen><prompt>$</prompt> <userinput>echo 'file 3, line 1' >> file3</userinput> 154.5 -<prompt>$</prompt> <userinput>hg qnew add-file3.patch</userinput> 154.6 -<prompt>$</prompt> <userinput>hg qnew -f add-file3.patch</userinput> 154.7 -abort: patch "add-file3.patch" already exists 154.8 -</screen>
155.1 --- a/en/examples/results/mq.tutorial.qinit.out Fri Mar 20 17:17:55 2009 +0800 155.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 155.3 @@ -1,8 +0,0 @@ 155.4 -<screen><prompt>$</prompt> <userinput>hg init mq-sandbox</userinput> 155.5 -<prompt>$</prompt> <userinput>cd mq-sandbox</userinput> 155.6 -<prompt>$</prompt> <userinput>echo 'line 1' > file1</userinput> 155.7 -<prompt>$</prompt> <userinput>echo 'another line 1' > file2</userinput> 155.8 -<prompt>$</prompt> <userinput>hg add file1 file2</userinput> 155.9 -<prompt>$</prompt> <userinput>hg commit -m'first change'</userinput> 155.10 -<prompt>$</prompt> <userinput>hg qinit</userinput> 155.11 -</screen>
156.1 --- a/en/examples/results/mq.tutorial.qnew.out Fri Mar 20 17:17:55 2009 +0800 156.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 156.3 @@ -1,21 +0,0 @@ 156.4 -<screen><prompt>$</prompt> <userinput>hg tip</userinput> 156.5 -changeset: 156.6 -tag: tip 156.7 -user: Bryan O'Sullivan <bos@serpentine.com> 156.8 - 156.9 -summary: first change 156.10 - 156.11 -<prompt>$</prompt> <userinput>hg qnew first.patch</userinput> 156.12 -<prompt>$</prompt> <userinput>hg tip</userinput> 156.13 -changeset: 156.14 -tag: qtip 156.15 -tag: first.patch 156.16 -tag: tip 156.17 -tag: qbase 156.18 -user: Bryan O'Sullivan <bos@serpentine.com> 156.19 - 156.20 -summary: [mq]: first.patch 156.21 - 156.22 -<prompt>$</prompt> <userinput>ls .hg/patches</userinput> 156.23 -first.patch series status 156.24 -</screen>
157.1 --- a/en/examples/results/mq.tutorial.qnew2.out Fri Mar 20 17:17:55 2009 +0800 157.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 157.3 @@ -1,29 +0,0 @@ 157.4 -<screen><prompt>$</prompt> <userinput>hg qnew second.patch</userinput> 157.5 -<prompt>$</prompt> <userinput>hg log --style=compact --limit=2</userinput> 157.6 -2[qtip,second.patch,tip] 2009-03-10 04:38 +0000 bos 157.7 - [mq]: second.patch 157.8 - 157.9 -1[first.patch,qbase] 2009-03-10 04:38 +0000 bos 157.10 - [mq]: first.patch 157.11 - 157.12 -<prompt>$</prompt> <userinput>echo 'line 4' >> file1</userinput> 157.13 -<prompt>$</prompt> <userinput>hg qrefresh</userinput> 157.14 -<prompt>$</prompt> <userinput>hg tip --style=compact --patch</userinput> 157.15 -2[qtip,second.patch,tip] 2009-03-10 04:38 +0000 bos 157.16 - [mq]: second.patch 157.17 - 157.18 -diff -r -r file1 157.19 - 157.20 - 157.21 -@@ -1,3 +1,4 @@ 157.22 - line 1 157.23 - line 2 157.24 - line 3 157.25 -+line 4 157.26 - 157.27 -<prompt>$</prompt> <userinput>hg annotate file1</userinput> 157.28 -0: line 1 157.29 -1: line 2 157.30 -1: line 3 157.31 -2: line 4 157.32 -</screen>
158.1 --- a/en/examples/results/mq.tutorial.qpop.out Fri Mar 20 17:17:55 2009 +0800 158.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 158.3 @@ -1,15 +0,0 @@ 158.4 -<screen><prompt>$</prompt> <userinput>hg qapplied</userinput> 158.5 -first.patch 158.6 -second.patch 158.7 -<prompt>$</prompt> <userinput>hg qpop</userinput> 158.8 -now at: first.patch 158.9 -<prompt>$</prompt> <userinput>hg qseries</userinput> 158.10 -first.patch 158.11 -second.patch 158.12 -<prompt>$</prompt> <userinput>hg qapplied</userinput> 158.13 -first.patch 158.14 -<prompt>$</prompt> <userinput>cat file1</userinput> 158.15 -line 1 158.16 -line 2 158.17 -line 3 158.18 -</screen>
159.1 --- a/en/examples/results/mq.tutorial.qpush-a.out Fri Mar 20 17:17:55 2009 +0800 159.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 159.3 @@ -1,9 +0,0 @@ 159.4 -<screen><prompt>$</prompt> <userinput>hg qpush -a</userinput> 159.5 -applying second.patch 159.6 -now at: second.patch 159.7 -<prompt>$</prompt> <userinput>cat file1</userinput> 159.8 -line 1 159.9 -line 2 159.10 -line 3 159.11 -line 4 159.12 -</screen>
160.1 --- a/en/examples/results/mq.tutorial.qrefresh.out Fri Mar 20 17:17:55 2009 +0800 160.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 160.3 @@ -1,22 +0,0 @@ 160.4 -<screen><prompt>$</prompt> <userinput>echo 'line 2' >> file1</userinput> 160.5 -<prompt>$</prompt> <userinput>hg diff</userinput> 160.6 -diff -r file1 160.7 - 160.8 - 160.9 -@@ -1,1 +1,2 @@ 160.10 - line 1 160.11 -+line 2 160.12 -<prompt>$</prompt> <userinput>hg qrefresh</userinput> 160.13 -<prompt>$</prompt> <userinput>hg diff</userinput> 160.14 -<prompt>$</prompt> <userinput>hg tip --style=compact --patch</userinput> 160.15 -1[qtip,first.patch,tip,qbase] 2009-03-10 04:38 +0000 bos 160.16 - [mq]: first.patch 160.17 - 160.18 -diff -r -r file1 160.19 - 160.20 - 160.21 -@@ -1,1 +1,2 @@ 160.22 - line 1 160.23 -+line 2 160.24 - 160.25 -</screen>
161.1 --- a/en/examples/results/mq.tutorial.qrefresh2.out Fri Mar 20 17:17:55 2009 +0800 161.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 161.3 @@ -1,17 +0,0 @@ 161.4 -<screen><prompt>$</prompt> <userinput>echo 'line 3' >> file1</userinput> 161.5 -<prompt>$</prompt> <userinput>hg status</userinput> 161.6 -M file1 161.7 -<prompt>$</prompt> <userinput>hg qrefresh</userinput> 161.8 -<prompt>$</prompt> <userinput>hg tip --style=compact --patch</userinput> 161.9 -1[qtip,first.patch,tip,qbase] 2009-03-10 04:38 +0000 bos 161.10 - [mq]: first.patch 161.11 - 161.12 -diff -r -r file1 161.13 - 161.14 - 161.15 -@@ -1,1 +1,3 @@ 161.16 - line 1 161.17 -+line 2 161.18 -+line 3 161.19 - 161.20 -</screen>
162.1 --- a/en/examples/results/mq.tutorial.qseries.out Fri Mar 20 17:17:55 2009 +0800 162.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 162.3 @@ -1,7 +0,0 @@ 162.4 -<screen><prompt>$</prompt> <userinput>hg qseries</userinput> 162.5 -first.patch 162.6 -second.patch 162.7 -<prompt>$</prompt> <userinput>hg qapplied</userinput> 162.8 -first.patch 162.9 -second.patch 162.10 -</screen>
163.1 --- a/en/examples/results/rename.divergent.clone.out Fri Mar 20 17:17:55 2009 +0800 163.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 163.3 @@ -1,7 +0,0 @@ 163.4 -<screen><prompt>$</prompt> <userinput>hg clone orig anne</userinput> 163.5 -updating working directory 163.6 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 163.7 -<prompt>$</prompt> <userinput>hg clone orig bob</userinput> 163.8 -updating working directory 163.9 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 163.10 -</screen>
164.1 --- a/en/examples/results/rename.divergent.merge.out Fri Mar 20 17:17:55 2009 +0800 164.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 164.3 @@ -1,27 +0,0 @@ 164.4 -<screen># See http://www.selenic.com/mercurial/bts/issue455 164.5 -<prompt>$</prompt> <userinput>cd ../orig</userinput> 164.6 -<prompt>$</prompt> <userinput>hg pull -u ../anne</userinput> 164.7 -pulling from ../anne 164.8 -searching for changes 164.9 -adding changesets 164.10 -adding manifests 164.11 -adding file changes 164.12 -added 1 changesets with 1 changes to 1 files 164.13 -1 files updated, 0 files merged, 1 files removed, 0 files unresolved 164.14 -<prompt>$</prompt> <userinput>hg pull ../bob</userinput> 164.15 -pulling from ../bob 164.16 -searching for changes 164.17 -adding changesets 164.18 -adding manifests 164.19 -adding file changes 164.20 -added 1 changesets with 1 changes to 1 files (+1 heads) 164.21 -(run 'hg heads' to see heads, 'hg merge' to merge) 164.22 -<prompt>$</prompt> <userinput>hg merge</userinput> 164.23 -warning: detected divergent renames of foo to: 164.24 - bar 164.25 - quux 164.26 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 164.27 -(branch merge, don't forget to commit) 164.28 -<prompt>$</prompt> <userinput>ls</userinput> 164.29 -bar quux 164.30 -</screen>
165.1 --- a/en/examples/results/rename.divergent.rename.anne.out Fri Mar 20 17:17:55 2009 +0800 165.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 165.3 @@ -1,4 +0,0 @@ 165.4 -<screen><prompt>$</prompt> <userinput>cd anne</userinput> 165.5 -<prompt>$</prompt> <userinput>hg mv foo bar</userinput> 165.6 -<prompt>$</prompt> <userinput>hg ci -m 'Rename foo to bar'</userinput> 165.7 -</screen>
166.1 --- a/en/examples/results/rename.divergent.rename.bob.out Fri Mar 20 17:17:55 2009 +0800 166.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 166.3 @@ -1,4 +0,0 @@ 166.4 -<screen><prompt>$</prompt> <userinput>cd ../bob</userinput> 166.5 -<prompt>$</prompt> <userinput>hg mv foo quux</userinput> 166.6 -<prompt>$</prompt> <userinput>hg ci -m 'Rename foo to quux'</userinput> 166.7 -</screen>
167.1 --- a/en/examples/results/rollback.add.out Fri Mar 20 17:17:55 2009 +0800 167.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 167.3 @@ -1,3 +0,0 @@ 167.4 -<screen><prompt>$</prompt> <userinput>hg add b</userinput> 167.5 -<prompt>$</prompt> <userinput>hg commit -m 'Add file b, this time for real'</userinput> 167.6 -</screen>
168.1 --- a/en/examples/results/rollback.commit.out Fri Mar 20 17:17:55 2009 +0800 168.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 168.3 @@ -1,5 +0,0 @@ 168.4 -<screen><prompt>$</prompt> <userinput>hg status</userinput> 168.5 -M a 168.6 -<prompt>$</prompt> <userinput>echo b > b</userinput> 168.7 -<prompt>$</prompt> <userinput>hg commit -m 'Add file b'</userinput> 168.8 -</screen>
169.1 --- a/en/examples/results/rollback.rollback.out Fri Mar 20 17:17:55 2009 +0800 169.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 169.3 @@ -1,13 +0,0 @@ 169.4 -<screen><prompt>$</prompt> <userinput>hg rollback</userinput> 169.5 -rolling back last transaction 169.6 -<prompt>$</prompt> <userinput>hg tip</userinput> 169.7 -changeset: 169.8 -tag: tip 169.9 -user: Bryan O'Sullivan <bos@serpentine.com> 169.10 - 169.11 -summary: First commit 169.12 - 169.13 -<prompt>$</prompt> <userinput>hg status</userinput> 169.14 -M a 169.15 -? b 169.16 -</screen>
170.1 --- a/en/examples/results/rollback.status.out Fri Mar 20 17:17:55 2009 +0800 170.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 170.3 @@ -1,10 +0,0 @@ 170.4 -<screen><prompt>$</prompt> <userinput>hg status</userinput> 170.5 -? b 170.6 -<prompt>$</prompt> <userinput>hg tip</userinput> 170.7 -changeset: 170.8 -tag: tip 170.9 -user: Bryan O'Sullivan <bos@serpentine.com> 170.10 - 170.11 -summary: Add file b 170.12 - 170.13 -</screen>
171.1 --- a/en/examples/results/rollback.tip.out Fri Mar 20 17:17:55 2009 +0800 171.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 171.3 @@ -1,1 +0,0 @@ 171.4 -<screen></screen>
172.1 --- a/en/examples/results/rollback.twice.out Fri Mar 20 17:17:55 2009 +0800 172.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 172.3 @@ -1,5 +0,0 @@ 172.4 -<screen><prompt>$</prompt> <userinput>hg rollback</userinput> 172.5 -rolling back last transaction 172.6 -<prompt>$</prompt> <userinput>hg rollback</userinput> 172.7 -no rollback information available 172.8 -</screen>
173.1 --- a/en/examples/results/tag.init.out Fri Mar 20 17:17:55 2009 +0800 173.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 173.3 @@ -1,6 +0,0 @@ 173.4 -<screen><prompt>$</prompt> <userinput>hg init mytag</userinput> 173.5 -<prompt>$</prompt> <userinput>cd mytag</userinput> 173.6 -<prompt>$</prompt> <userinput>echo hello > myfile</userinput> 173.7 -<prompt>$</prompt> <userinput>hg commit -A -m 'Initial commit'</userinput> 173.8 -adding myfile 173.9 -</screen>
174.1 --- a/en/examples/results/tag.log.out Fri Mar 20 17:17:55 2009 +0800 174.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 174.3 @@ -1,14 +0,0 @@ 174.4 -<screen><prompt>$</prompt> <userinput>hg log</userinput> 174.5 -changeset: 174.6 -tag: tip 174.7 -user: Bryan O'Sullivan <bos@serpentine.com> 174.8 - 174.9 -summary: Added tag v1.0 for changeset 174.10 - 174.11 -changeset: 174.12 -tag: v1.0 174.13 -user: Bryan O'Sullivan <bos@serpentine.com> 174.14 - 174.15 -summary: Initial commit 174.16 - 174.17 -</screen>
175.1 --- a/en/examples/results/tag.log.v1.0.out Fri Mar 20 17:17:55 2009 +0800 175.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 175.3 @@ -1,11 +0,0 @@ 175.4 -<screen><prompt>$</prompt> <userinput>echo goodbye > myfile2</userinput> 175.5 -<prompt>$</prompt> <userinput>hg commit -A -m 'Second commit'</userinput> 175.6 -adding myfile2 175.7 -<prompt>$</prompt> <userinput>hg log -r v1.0</userinput> 175.8 -changeset: 175.9 -tag: v1.0 175.10 -user: Bryan O'Sullivan <bos@serpentine.com> 175.11 - 175.12 -summary: Initial commit 175.13 - 175.14 -</screen>
176.1 --- a/en/examples/results/tag.remove.out Fri Mar 20 17:17:55 2009 +0800 176.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 176.3 @@ -1,4 +0,0 @@ 176.4 -<screen><prompt>$</prompt> <userinput>hg tag --remove v1.0</userinput> 176.5 -<prompt>$</prompt> <userinput>hg tags</userinput> 176.6 -tip 176.7 -</screen>
177.1 --- a/en/examples/results/tag.replace.out Fri Mar 20 17:17:55 2009 +0800 177.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 177.3 @@ -1,11 +0,0 @@ 177.4 -<screen><prompt>$</prompt> <userinput>hg tag -r 1 v1.1</userinput> 177.5 -<prompt>$</prompt> <userinput>hg tags</userinput> 177.6 -tip 177.7 -v1.1 177.8 -<prompt>$</prompt> <userinput>hg tag -r 2 v1.1</userinput> 177.9 -abort: tag 'v1.1' already exists (use -f to force) 177.10 -<prompt>$</prompt> <userinput>hg tag -f -r 2 v1.1</userinput> 177.11 -<prompt>$</prompt> <userinput>hg tags</userinput> 177.12 -tip 177.13 -v1.1 177.14 -</screen>
178.1 --- a/en/examples/results/tag.tag.out Fri Mar 20 17:17:55 2009 +0800 178.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 178.3 @@ -1,2 +0,0 @@ 178.4 -<screen><prompt>$</prompt> <userinput>hg tag v1.0</userinput> 178.5 -</screen>
179.1 --- a/en/examples/results/tag.tags.out Fri Mar 20 17:17:55 2009 +0800 179.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 179.3 @@ -1,4 +0,0 @@ 179.4 -<screen><prompt>$</prompt> <userinput>hg tags</userinput> 179.5 -tip 179.6 -v1.0 179.7 -</screen>
180.1 --- a/en/examples/results/tag.tip.out Fri Mar 20 17:17:55 2009 +0800 180.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 180.3 @@ -1,8 +0,0 @@ 180.4 -<screen><prompt>$</prompt> <userinput>hg tip</userinput> 180.5 -changeset: 180.6 -tag: tip 180.7 -user: Bryan O'Sullivan <bos@serpentine.com> 180.8 - 180.9 -summary: Added tag v1.1 for changeset 180.10 - 180.11 -</screen>
181.1 --- a/en/examples/results/template.simple.changelog.out Fri Mar 20 17:17:55 2009 +0800 181.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 181.3 @@ -1,23 +0,0 @@ 181.4 - 181.5 - 181.6 - 181.7 - 181.8 - 181.9 - 181.10 - 181.11 - 181.12 - 181.13 - 181.14 - 181.15 - 181.16 - 181.17 - 181.18 - 181.19 - 181.20 - 181.21 - 181.22 - 181.23 - 181.24 - 181.25 - 181.26 -
182.1 --- a/en/examples/results/template.simple.combine.out Fri Mar 20 17:17:55 2009 +0800 182.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 182.3 @@ -1,7 +0,0 @@ 182.4 - 182.5 - 182.6 - 182.7 - 182.8 - 182.9 - 182.10 -
183.1 --- a/en/examples/results/template.simple.compact.out Fri Mar 20 17:17:55 2009 +0800 183.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 183.3 @@ -1,14 +0,0 @@ 183.4 - 183.5 - 183.6 - 183.7 - 183.8 - 183.9 - 183.10 - 183.11 - 183.12 - 183.13 - 183.14 - 183.15 - 183.16 - 183.17 -
184.1 --- a/en/examples/results/template.simple.datekeyword.out Fri Mar 20 17:17:55 2009 +0800 184.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 184.3 @@ -1,5 +0,0 @@ 184.4 - 184.5 - 184.6 - 184.7 - 184.8 -
185.1 --- a/en/examples/results/template.simple.keywords.out Fri Mar 20 17:17:55 2009 +0800 185.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 185.3 @@ -1,22 +0,0 @@ 185.4 - 185.5 - 185.6 - 185.7 - 185.8 - 185.9 - 185.10 - 185.11 - 185.12 - 185.13 - 185.14 - 185.15 - 185.16 - 185.17 - 185.18 - 185.19 - 185.20 - 185.21 - 185.22 - 185.23 - 185.24 - 185.25 -
186.1 --- a/en/examples/results/template.simple.manyfilters.out Fri Mar 20 17:17:55 2009 +0800 186.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 186.3 @@ -1,63 +0,0 @@ 186.4 - 186.5 - 186.6 - 186.7 - 186.8 - 186.9 - 186.10 - 186.11 - 186.12 - 186.13 - 186.14 - 186.15 - 186.16 - 186.17 - 186.18 - 186.19 - 186.20 - 186.21 - 186.22 - 186.23 - 186.24 - 186.25 - 186.26 - 186.27 - 186.28 - 186.29 - 186.30 - 186.31 - 186.32 - 186.33 - 186.34 - 186.35 - 186.36 - 186.37 - 186.38 - 186.39 - 186.40 - 186.41 - 186.42 - 186.43 - 186.44 - 186.45 - 186.46 - 186.47 - 186.48 - 186.49 - 186.50 - 186.51 - 186.52 - 186.53 - 186.54 - 186.55 - 186.56 - 186.57 - 186.58 - 186.59 - 186.60 - 186.61 - 186.62 - 186.63 - 186.64 - 186.65 - 186.66 -
187.1 --- a/en/examples/results/template.simple.normal.out Fri Mar 20 17:17:55 2009 +0800 187.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 187.3 @@ -1,8 +0,0 @@ 187.4 - 187.5 - 187.6 - 187.7 - 187.8 - 187.9 - 187.10 - 187.11 -
188.1 --- a/en/examples/results/template.simple.rev.out Fri Mar 20 17:17:55 2009 +0800 188.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 188.3 @@ -1,4 +0,0 @@ 188.4 - 188.5 - 188.6 - 188.7 -
189.1 --- a/en/examples/results/template.simple.simplest.out Fri Mar 20 17:17:55 2009 +0800 189.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 189.3 @@ -1,3 +0,0 @@ 189.4 - 189.5 - 189.6 -
190.1 --- a/en/examples/results/template.simple.simplesub.out Fri Mar 20 17:17:55 2009 +0800 190.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 190.3 @@ -1,8 +0,0 @@ 190.4 - 190.5 - 190.6 - 190.7 - 190.8 - 190.9 - 190.10 - 190.11 -
191.1 --- a/en/examples/results/template.svnstyle.id.out Fri Mar 20 17:17:55 2009 +0800 191.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 191.3 @@ -1,2 +0,0 @@ 191.4 -<screen><prompt>$</prompt> <userinput>hg log -r0 --template '{node}'</userinput> 191.5 -</screen>
192.1 --- a/en/examples/results/template.svnstyle.result.out Fri Mar 20 17:17:55 2009 +0800 192.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 192.3 @@ -1,12 +0,0 @@ 192.4 -<screen><prompt>$</prompt> <userinput>hg log -r1 --style svn.style</userinput> 192.5 ------------------------------------------------------------------------- 192.6 - 192.7 -r1 | bos | 192.8 - 192.9 -added line to end of <<hello>> file. 192.10 - 192.11 -in addition, added a file with the helpful name (at least i hope that some 192.12 -might consider it so) of goodbye. 192.13 - 192.14 ------------------------------------------------------------------------- 192.15 -</screen>
193.1 --- a/en/examples/results/template.svnstyle.short.out Fri Mar 20 17:17:55 2009 +0800 193.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 193.3 @@ -1,11 +0,0 @@ 193.4 -<screen><prompt>$</prompt> <userinput>svn log -r9653</userinput> 193.5 ------------------------------------------------------------------------- 193.6 -r9653 | sean.hefty | 2006-09-27 14:39:55 -0700 (Wed, 27 Sep 2006) | 5 lines 193.7 - 193.8 -On reporting a route error, also include the status for the error, 193.9 -rather than indicating a status of 0 when an error has occurred. 193.10 - 193.11 -Signed-off-by: Sean Hefty <sean.hefty@intel.com> 193.12 - 193.13 ------------------------------------------------------------------------- 193.14 -</screen>
194.1 --- a/en/examples/results/template.svnstyle.simplest.out Fri Mar 20 17:17:55 2009 +0800 194.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 194.3 @@ -1,5 +0,0 @@ 194.4 -<screen><prompt>$</prompt> <userinput>cat svn.style</userinput> 194.5 -changeset = "{node|short}\n" 194.6 -<prompt>$</prompt> <userinput>hg log -r1 --style svn.style</userinput> 194.7 - 194.8 -</screen>
195.1 --- a/en/examples/results/template.svnstyle.style.out Fri Mar 20 17:17:55 2009 +0800 195.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 195.3 @@ -1,4 +0,0 @@ 195.4 -<screen><prompt>$</prompt> <userinput>cat svn.style</userinput> 195.5 -header = '------------------------------------------------------------------------\n\n' 195.6 -changeset = svn.template 195.7 -</screen>
196.1 --- a/en/examples/results/template.svnstyle.syntax.error.out Fri Mar 20 17:17:55 2009 +0800 196.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 196.3 @@ -1,3 +0,0 @@ 196.4 -<screen><prompt>$</prompt> <userinput>hg log -r1 --style broken.style</userinput> 196.5 -abort: broken.style:1: parse error 196.6 -</screen>
197.1 --- a/en/examples/results/template.svnstyle.syntax.input.out Fri Mar 20 17:17:55 2009 +0800 197.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 197.3 @@ -1,3 +0,0 @@ 197.4 -<screen><prompt>$</prompt> <userinput>cat broken.style</userinput> 197.5 -changeset = 197.6 -</screen>
198.1 --- a/en/examples/results/template.svnstyle.template.out Fri Mar 20 17:17:55 2009 +0800 198.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 198.3 @@ -1,7 +0,0 @@ 198.4 -<screen><prompt>$</prompt> <userinput>cat svn.template</userinput> 198.5 -r{rev} | {author|user} | {date|isodate} ({date|rfc822date}) 198.6 - 198.7 -{desc|strip|fill76} 198.8 - 198.9 ------------------------------------------------------------------------- 198.10 -</screen>
199.1 --- a/en/examples/results/tour-merge-conflict.commit.out Fri Mar 20 17:17:55 2009 +0800 199.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 199.3 @@ -1,17 +0,0 @@ 199.4 -<screen><prompt>$</prompt> <userinput>cat > letter.txt <<EOF</userinput> 199.5 -<prompt>></prompt> <userinput>Greetings!</userinput> 199.6 -<prompt>></prompt> <userinput>I am Bryan O'Sullivan, no relation of the former</userinput> 199.7 -<prompt>></prompt> <userinput>Nigerian dictator Sani Abacha.</userinput> 199.8 -<prompt>></prompt> <userinput>EOF</userinput> 199.9 -<prompt>$</prompt> <userinput>hg resolve -m letter.txt</userinput> 199.10 -<prompt>$</prompt> <userinput>hg commit -m 'Send me your money'</userinput> 199.11 -<prompt>$</prompt> <userinput>hg tip</userinput> 199.12 -changeset: 199.13 -tag: tip 199.14 -parent: 199.15 -parent: 199.16 -user: Bryan O'Sullivan <bos@serpentine.com> 199.17 - 199.18 -summary: Send me your money 199.19 - 199.20 -</screen>
200.1 --- a/en/examples/results/tour-merge-conflict.cousin.out Fri Mar 20 17:17:55 2009 +0800 200.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 200.3 @@ -1,12 +0,0 @@ 200.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 200.5 -<prompt>$</prompt> <userinput>hg clone scam scam-cousin</userinput> 200.6 -updating working directory 200.7 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 200.8 -<prompt>$</prompt> <userinput>cd scam-cousin</userinput> 200.9 -<prompt>$</prompt> <userinput>cat > letter.txt <<EOF</userinput> 200.10 -<prompt>></prompt> <userinput>Greetings!</userinput> 200.11 -<prompt>></prompt> <userinput>I am Shehu Musa Abacha, cousin to the former</userinput> 200.12 -<prompt>></prompt> <userinput>Nigerian dictator Sani Abacha.</userinput> 200.13 -<prompt>></prompt> <userinput>EOF</userinput> 200.14 -<prompt>$</prompt> <userinput>hg commit -m '419 scam, with cousin'</userinput> 200.15 -</screen>
201.1 --- a/en/examples/results/tour-merge-conflict.merge.out Fri Mar 20 17:17:55 2009 +0800 201.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 201.3 @@ -1,18 +0,0 @@ 201.4 -<screen><prompt>$</prompt> <userinput>export HGMERGE=merge</userinput> 201.5 -<prompt>$</prompt> <userinput>echo 'XXX this is broken and must be fixed'</userinput> 201.6 -XXX this is broken and must be fixed 201.7 -<prompt>$</prompt> <userinput>hg merge</userinput> 201.8 -merging letter.txt 201.9 -merge: warning: conflicts during merge 201.10 -merging letter.txt failed! 201.11 -0 files updated, 0 files merged, 0 files removed, 1 files unresolved 201.12 -use 'hg resolve' to retry unresolved file merges 201.13 -<prompt>$</prompt> <userinput>cat letter.txt</userinput> 201.14 -Greetings! 201.15 -<<<<<<< /tmp/tour-merge-conflictBrdfE0/scam-merge/letter.txt 201.16 -I am Shehu Musa Abacha, cousin to the former 201.17 -======= 201.18 -I am Alhaji Abba Abacha, son of the former 201.19 ->>>>>>> /tmp/letter.txt~other.1ctEYy 201.20 -Nigerian dictator Sani Abacha. 201.21 -</screen>
202.1 --- a/en/examples/results/tour-merge-conflict.pull.out Fri Mar 20 17:17:55 2009 +0800 202.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 202.3 @@ -1,15 +0,0 @@ 202.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 202.5 -<prompt>$</prompt> <userinput>hg clone scam-cousin scam-merge</userinput> 202.6 -updating working directory 202.7 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 202.8 -<prompt>$</prompt> <userinput>cd scam-merge</userinput> 202.9 -<prompt>$</prompt> <userinput>hg pull -u ../scam-son</userinput> 202.10 -pulling from ../scam-son 202.11 -searching for changes 202.12 -adding changesets 202.13 -adding manifests 202.14 -adding file changes 202.15 -added 1 changesets with 1 changes to 1 files (+1 heads) 202.16 -not updating, since new heads added 202.17 -(run 'hg heads' to see heads, 'hg merge' to merge) 202.18 -</screen>
203.1 --- a/en/examples/results/tour-merge-conflict.son.out Fri Mar 20 17:17:55 2009 +0800 203.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 203.3 @@ -1,12 +0,0 @@ 203.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 203.5 -<prompt>$</prompt> <userinput>hg clone scam scam-son</userinput> 203.6 -updating working directory 203.7 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 203.8 -<prompt>$</prompt> <userinput>cd scam-son</userinput> 203.9 -<prompt>$</prompt> <userinput>cat > letter.txt <<EOF</userinput> 203.10 -<prompt>></prompt> <userinput>Greetings!</userinput> 203.11 -<prompt>></prompt> <userinput>I am Alhaji Abba Abacha, son of the former</userinput> 203.12 -<prompt>></prompt> <userinput>Nigerian dictator Sani Abacha.</userinput> 203.13 -<prompt>></prompt> <userinput>EOF</userinput> 203.14 -<prompt>$</prompt> <userinput>hg commit -m '419 scam, with son'</userinput> 203.15 -</screen>
204.1 --- a/en/examples/results/tour-merge-conflict.wife.out Fri Mar 20 17:17:55 2009 +0800 204.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 204.3 @@ -1,8 +0,0 @@ 204.4 -<screen><prompt>$</prompt> <userinput>cat > letter.txt <<EOF</userinput> 204.5 -<prompt>></prompt> <userinput>Greetings!</userinput> 204.6 -<prompt>></prompt> <userinput>I am Mariam Abacha, the wife of former</userinput> 204.7 -<prompt>></prompt> <userinput>Nigerian dictator Sani Abacha.</userinput> 204.8 -<prompt>></prompt> <userinput>EOF</userinput> 204.9 -<prompt>$</prompt> <userinput>hg add letter.txt</userinput> 204.10 -<prompt>$</prompt> <userinput>hg commit -m '419 scam, first draft'</userinput> 204.11 -</screen>
205.1 --- a/en/examples/results/tour.clone-pull.out Fri Mar 20 17:17:55 2009 +0800 205.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 205.3 @@ -1,5 +0,0 @@ 205.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 205.5 -<prompt>$</prompt> <userinput>hg clone hello hello-pull</userinput> 205.6 -updating working directory 205.7 -2 files updated, 0 files merged, 0 files removed, 0 files unresolved 205.8 -</screen>
206.1 --- a/en/examples/results/tour.clone-push.out Fri Mar 20 17:17:55 2009 +0800 206.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 206.3 @@ -1,5 +0,0 @@ 206.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 206.5 -<prompt>$</prompt> <userinput>hg clone hello hello-push</userinput> 206.6 -updating working directory 206.7 -2 files updated, 0 files merged, 0 files removed, 0 files unresolved 206.8 -</screen>
207.1 --- a/en/examples/results/tour.clone.out Fri Mar 20 17:17:55 2009 +0800 207.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 207.3 @@ -1,10 +0,0 @@ 207.4 -<screen><prompt>$</prompt> <userinput>hg clone http://hg.serpentine.com/tutorial/hello</userinput> 207.5 -destination directory: hello 207.6 -requesting all changes 207.7 -adding changesets 207.8 -adding manifests 207.9 -adding file changes 207.10 -added 5 changesets with 5 changes to 2 files 207.11 -updating working directory 207.12 -2 files updated, 0 files merged, 0 files removed, 0 files unresolved 207.13 -</screen>
208.1 --- a/en/examples/results/tour.commit.out Fri Mar 20 17:17:55 2009 +0800 208.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 208.3 @@ -1,2 +0,0 @@ 208.4 -<screen><prompt>$</prompt> <userinput>hg commit</userinput> 208.5 -</screen>
209.1 --- a/en/examples/results/tour.diff.out Fri Mar 20 17:17:55 2009 +0800 209.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 209.3 @@ -1,12 +0,0 @@ 209.4 -<screen><prompt>$</prompt> <userinput>hg diff</userinput> 209.5 -diff -r hello.c 209.6 - 209.7 - 209.8 -@@ -8,5 +8,6 @@ 209.9 - int main(int argc, char **argv) 209.10 - { 209.11 - printf("hello, world!\"); 209.12 -+ printf("hello again!\n"); 209.13 - return 0; 209.14 - } 209.15 -</screen>
210.1 --- a/en/examples/results/tour.help.out Fri Mar 20 17:17:55 2009 +0800 210.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 210.3 @@ -1,20 +0,0 @@ 210.4 -<screen><prompt>$</prompt> <userinput>hg help init</userinput> 210.5 -hg init [-e CMD] [--remotecmd CMD] [DEST] 210.6 - 210.7 -create a new repository in the given directory 210.8 - 210.9 - Initialize a new repository in the given directory. If the given 210.10 - directory does not exist, it is created. 210.11 - 210.12 - If no directory is given, the current directory is used. 210.13 - 210.14 - It is possible to specify an ssh:// URL as the destination. 210.15 - See 'hg help urls' for more information. 210.16 - 210.17 -options: 210.18 - 210.19 - -e --ssh specify ssh command to use 210.20 - --remotecmd specify hg command to run on the remote side 210.21 - 210.22 -use "hg -v help init" to show global options 210.23 -</screen>
211.1 --- a/en/examples/results/tour.incoming.out Fri Mar 20 17:17:55 2009 +0800 211.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 211.3 @@ -1,11 +0,0 @@ 211.4 -<screen><prompt>$</prompt> <userinput>cd hello-pull</userinput> 211.5 -<prompt>$</prompt> <userinput>hg incoming ../my-hello</userinput> 211.6 -comparing with ../my-hello 211.7 -searching for changes 211.8 -changeset: 211.9 -tag: tip 211.10 -user: Bryan O'Sullivan <bos@serpentine.com> 211.11 - 211.12 -summary: Added an extra line of output 211.13 - 211.14 -</screen>
212.1 --- a/en/examples/results/tour.log-r.out Fri Mar 20 17:17:55 2009 +0800 212.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 212.3 @@ -1,25 +0,0 @@ 212.4 -<screen><prompt>$</prompt> <userinput>hg log -r 3</userinput> 212.5 -changeset: 212.6 -user: Bryan O'Sullivan <bos@serpentine.com> 212.7 - 212.8 -summary: Get make to generate the final binary from a .o file. 212.9 - 212.10 -<prompt>$</prompt> <userinput>hg log -r </userinput> 212.11 -changeset: 212.12 -user: Bryan O'Sullivan <bos@serpentine.com> 212.13 - 212.14 -summary: Get make to generate the final binary from a .o file. 212.15 - 212.16 -<prompt>$</prompt> <userinput>hg log -r 1 -r 4</userinput> 212.17 -changeset: 212.18 -user: mpm@selenic.com 212.19 - 212.20 -summary: Create a makefile 212.21 - 212.22 -changeset: 212.23 -tag: tip 212.24 -user: Bryan O'Sullivan <bos@serpentine.com> 212.25 - 212.26 -summary: Trim comments. 212.27 - 212.28 -</screen>
213.1 --- a/en/examples/results/tour.log-v.out Fri Mar 20 17:17:55 2009 +0800 213.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 213.3 @@ -1,10 +0,0 @@ 213.4 -<screen><prompt>$</prompt> <userinput>hg log -v -r 3</userinput> 213.5 -changeset: 213.6 -user: Bryan O'Sullivan <bos@serpentine.com> 213.7 - 213.8 -files: Makefile 213.9 -description: 213.10 -Get make to generate the final binary from a .o file. 213.11 - 213.12 - 213.13 -</screen>
214.1 --- a/en/examples/results/tour.log-vp.out Fri Mar 20 17:17:55 2009 +0800 214.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 214.3 @@ -1,22 +0,0 @@ 214.4 -<screen><prompt>$</prompt> <userinput>hg log -v -p -r 2</userinput> 214.5 -changeset: 214.6 -user: Bryan O'Sullivan <bos@serpentine.com> 214.7 - 214.8 -files: hello.c 214.9 -description: 214.10 -Introduce a typo into hello.c. 214.11 - 214.12 - 214.13 -diff -r -r hello.c 214.14 - 214.15 - 214.16 -@@ -11,6 +11,6 @@ 214.17 - 214.18 - int main(int argc, char **argv) 214.19 - { 214.20 -- printf("hello, world!\n"); 214.21 -+ printf("hello, world!\"); 214.22 - return 0; 214.23 - } 214.24 - 214.25 -</screen>
215.1 --- a/en/examples/results/tour.log.out Fri Mar 20 17:17:55 2009 +0800 215.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 215.3 @@ -1,28 +0,0 @@ 215.4 -<screen><prompt>$</prompt> <userinput>hg log</userinput> 215.5 -changeset: 215.6 -tag: tip 215.7 -user: Bryan O'Sullivan <bos@serpentine.com> 215.8 - 215.9 -summary: Trim comments. 215.10 - 215.11 -changeset: 215.12 -user: Bryan O'Sullivan <bos@serpentine.com> 215.13 - 215.14 -summary: Get make to generate the final binary from a .o file. 215.15 - 215.16 -changeset: 215.17 -user: Bryan O'Sullivan <bos@serpentine.com> 215.18 - 215.19 -summary: Introduce a typo into hello.c. 215.20 - 215.21 -changeset: 215.22 -user: mpm@selenic.com 215.23 - 215.24 -summary: Create a makefile 215.25 - 215.26 -changeset: 215.27 -user: mpm@selenic.com 215.28 - 215.29 -summary: Create a standard "hello, world" program 215.30 - 215.31 -</screen>
216.1 --- a/en/examples/results/tour.log.range.out Fri Mar 20 17:17:55 2009 +0800 216.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 216.3 @@ -1,18 +0,0 @@ 216.4 -<screen><prompt>$</prompt> <userinput>hg log -r 2:4</userinput> 216.5 -changeset: 216.6 -user: Bryan O'Sullivan <bos@serpentine.com> 216.7 - 216.8 -summary: Introduce a typo into hello.c. 216.9 - 216.10 -changeset: 216.11 -user: Bryan O'Sullivan <bos@serpentine.com> 216.12 - 216.13 -summary: Get make to generate the final binary from a .o file. 216.14 - 216.15 -changeset: 216.16 -tag: tip 216.17 -user: Bryan O'Sullivan <bos@serpentine.com> 216.18 - 216.19 -summary: Trim comments. 216.20 - 216.21 -</screen>
217.1 --- a/en/examples/results/tour.ls-a.out Fri Mar 20 17:17:55 2009 +0800 217.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 217.3 @@ -1,4 +0,0 @@ 217.4 -<screen><prompt>$</prompt> <userinput>cd hello</userinput> 217.5 -<prompt>$</prompt> <userinput>ls -a</userinput> 217.6 -. .. .hg Makefile hello.c 217.7 -</screen>
218.1 --- a/en/examples/results/tour.ls.out Fri Mar 20 17:17:55 2009 +0800 218.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 218.3 @@ -1,6 +0,0 @@ 218.4 -<screen><prompt>$</prompt> <userinput>ls -l</userinput> 218.5 - 218.6 - 218.7 -<prompt>$</prompt> <userinput>ls hello</userinput> 218.8 -Makefile hello.c 218.9 -</screen>
219.1 --- a/en/examples/results/tour.merge.cat.out Fri Mar 20 17:17:55 2009 +0800 219.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 219.3 @@ -1,29 +0,0 @@ 219.4 -<screen><prompt>$</prompt> <userinput>cat hello.c</userinput> 219.5 -/* 219.6 - * Placed in the public domain by Bryan O'Sullivan. This program is 219.7 - * not covered by patents in the United States or other countries. 219.8 - */ 219.9 - 219.10 -#include <stdio.h> 219.11 - 219.12 -int main(int argc, char **argv) 219.13 -{ 219.14 - printf("once more, hello.\n"); 219.15 - printf("hello, world!\"); 219.16 - return 0; 219.17 -} 219.18 -<prompt>$</prompt> <userinput>cat ../my-hello/hello.c</userinput> 219.19 -/* 219.20 - * Placed in the public domain by Bryan O'Sullivan. This program is 219.21 - * not covered by patents in the United States or other countries. 219.22 - */ 219.23 - 219.24 -#include <stdio.h> 219.25 - 219.26 -int main(int argc, char **argv) 219.27 -{ 219.28 - printf("hello, world!\"); 219.29 - printf("hello again!\n"); 219.30 - return 0; 219.31 -} 219.32 -</screen>
220.1 --- a/en/examples/results/tour.merge.clone.out Fri Mar 20 17:17:55 2009 +0800 220.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 220.3 @@ -1,8 +0,0 @@ 220.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 220.5 -<prompt>$</prompt> <userinput>hg clone hello my-new-hello</userinput> 220.6 -updating working directory 220.7 -2 files updated, 0 files merged, 0 files removed, 0 files unresolved 220.8 -<prompt>$</prompt> <userinput>cd my-new-hello</userinput> 220.9 -<prompt>$</prompt> <userinput>sed -i '/printf/i\\tprintf("once more, hello.\\n");' hello.c</userinput> 220.10 -<prompt>$</prompt> <userinput>hg commit -m 'A new hello for a new day.'</userinput> 220.11 -</screen>
221.1 --- a/en/examples/results/tour.merge.commit.out Fri Mar 20 17:17:55 2009 +0800 221.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 221.3 @@ -1,2 +0,0 @@ 221.4 -<screen><prompt>$</prompt> <userinput>hg commit -m 'Merged changes'</userinput> 221.5 -</screen>
222.1 --- a/en/examples/results/tour.merge.heads.out Fri Mar 20 17:17:55 2009 +0800 222.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 222.3 @@ -1,14 +0,0 @@ 222.4 -<screen><prompt>$</prompt> <userinput>hg heads</userinput> 222.5 -changeset: 222.6 -tag: tip 222.7 -parent: 222.8 -user: Bryan O'Sullivan <bos@serpentine.com> 222.9 - 222.10 -summary: Added an extra line of output 222.11 - 222.12 -changeset: 222.13 -user: Bryan O'Sullivan <bos@serpentine.com> 222.14 - 222.15 -summary: A new hello for a new day. 222.16 - 222.17 -</screen>
223.1 --- a/en/examples/results/tour.merge.merge.out Fri Mar 20 17:17:55 2009 +0800 223.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 223.3 @@ -1,5 +0,0 @@ 223.4 -<screen><prompt>$</prompt> <userinput>hg merge</userinput> 223.5 -merging hello.c 223.6 -0 files updated, 1 files merged, 0 files removed, 0 files unresolved 223.7 -(branch merge, don't forget to commit) 223.8 -</screen>
224.1 --- a/en/examples/results/tour.merge.parents.out Fri Mar 20 17:17:55 2009 +0800 224.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 224.3 @@ -1,29 +0,0 @@ 224.4 -<screen><prompt>$</prompt> <userinput>hg parents</userinput> 224.5 -changeset: 224.6 -user: Bryan O'Sullivan <bos@serpentine.com> 224.7 - 224.8 -summary: A new hello for a new day. 224.9 - 224.10 -changeset: 224.11 -tag: tip 224.12 -parent: 224.13 -user: Bryan O'Sullivan <bos@serpentine.com> 224.14 - 224.15 -summary: Added an extra line of output 224.16 - 224.17 -<prompt>$</prompt> <userinput>cat hello.c</userinput> 224.18 -/* 224.19 - * Placed in the public domain by Bryan O'Sullivan. This program is 224.20 - * not covered by patents in the United States or other countries. 224.21 - */ 224.22 - 224.23 -#include <stdio.h> 224.24 - 224.25 -int main(int argc, char **argv) 224.26 -{ 224.27 - printf("once more, hello.\n"); 224.28 - printf("hello, world!\"); 224.29 - printf("hello again!\n"); 224.30 - return 0; 224.31 -} 224.32 -</screen>
225.1 --- a/en/examples/results/tour.merge.pull.out Fri Mar 20 17:17:55 2009 +0800 225.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 225.3 @@ -1,9 +0,0 @@ 225.4 -<screen><prompt>$</prompt> <userinput>hg pull ../my-hello</userinput> 225.5 -pulling from ../my-hello 225.6 -searching for changes 225.7 -adding changesets 225.8 -adding manifests 225.9 -adding file changes 225.10 -added 1 changesets with 1 changes to 1 files (+1 heads) 225.11 -(run 'hg heads' to see heads, 'hg merge' to merge) 225.12 -</screen>
226.1 --- a/en/examples/results/tour.merge.tip.out Fri Mar 20 17:17:55 2009 +0800 226.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 226.3 @@ -1,10 +0,0 @@ 226.4 -<screen><prompt>$</prompt> <userinput>hg tip</userinput> 226.5 -changeset: 226.6 -tag: tip 226.7 -parent: 226.8 -parent: 226.9 -user: Bryan O'Sullivan <bos@serpentine.com> 226.10 - 226.11 -summary: Merged changes 226.12 - 226.13 -</screen>
227.1 --- a/en/examples/results/tour.merge.update.out Fri Mar 20 17:17:55 2009 +0800 227.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 227.3 @@ -1,3 +0,0 @@ 227.4 -<screen><prompt>$</prompt> <userinput>hg update</userinput> 227.5 -abort: crosses branches (use 'hg merge' or 'hg update -C') 227.6 -</screen>
228.1 --- a/en/examples/results/tour.older.out Fri Mar 20 17:17:55 2009 +0800 228.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 228.3 @@ -1,11 +0,0 @@ 228.4 -<screen><prompt>$</prompt> <userinput>hg update 2</userinput> 228.5 -2 files updated, 0 files merged, 0 files removed, 0 files unresolved 228.6 -<prompt>$</prompt> <userinput>hg parents</userinput> 228.7 -changeset: 228.8 -user: Bryan O'Sullivan <bos@serpentine.com> 228.9 - 228.10 -summary: Introduce a typo into hello.c. 228.11 - 228.12 -<prompt>$</prompt> <userinput>hg update</userinput> 228.13 -2 files updated, 0 files merged, 0 files removed, 0 files unresolved 228.14 -</screen>
229.1 --- a/en/examples/results/tour.outgoing.net.out Fri Mar 20 17:17:55 2009 +0800 229.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 229.3 @@ -1,10 +0,0 @@ 229.4 -<screen><prompt>$</prompt> <userinput>hg outgoing http://hg.serpentine.com/tutorial/hello</userinput> 229.5 -comparing with http://hg.serpentine.com/tutorial/hello 229.6 -searching for changes 229.7 -changeset: 229.8 -tag: tip 229.9 -user: Bryan O'Sullivan <bos@serpentine.com> 229.10 - 229.11 -summary: Added an extra line of output 229.12 - 229.13 -</screen>
230.1 --- a/en/examples/results/tour.outgoing.out Fri Mar 20 17:17:55 2009 +0800 230.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 230.3 @@ -1,11 +0,0 @@ 230.4 -<screen><prompt>$</prompt> <userinput>cd my-hello</userinput> 230.5 -<prompt>$</prompt> <userinput>hg outgoing ../hello-push</userinput> 230.6 -comparing with ../hello-push 230.7 -searching for changes 230.8 -changeset: 230.9 -tag: tip 230.10 -user: Bryan O'Sullivan <bos@serpentine.com> 230.11 - 230.12 -summary: Added an extra line of output 230.13 - 230.14 -</screen>
231.1 --- a/en/examples/results/tour.parents.out Fri Mar 20 17:17:55 2009 +0800 231.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 231.3 @@ -1,8 +0,0 @@ 231.4 -<screen><prompt>$</prompt> <userinput>hg parents</userinput> 231.5 -changeset: 231.6 -tag: tip 231.7 -user: Bryan O'Sullivan <bos@serpentine.com> 231.8 - 231.9 -summary: Added an extra line of output 231.10 - 231.11 -</screen>
232.1 --- a/en/examples/results/tour.pull.out Fri Mar 20 17:17:55 2009 +0800 232.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 232.3 @@ -1,23 +0,0 @@ 232.4 -<screen><prompt>$</prompt> <userinput>hg tip</userinput> 232.5 -changeset: 232.6 -tag: tip 232.7 -user: Bryan O'Sullivan <bos@serpentine.com> 232.8 - 232.9 -summary: Trim comments. 232.10 - 232.11 -<prompt>$</prompt> <userinput>hg pull ../my-hello</userinput> 232.12 -pulling from ../my-hello 232.13 -searching for changes 232.14 -adding changesets 232.15 -adding manifests 232.16 -adding file changes 232.17 -added 1 changesets with 1 changes to 1 files 232.18 -(run 'hg update' to get a working copy) 232.19 -<prompt>$</prompt> <userinput>hg tip</userinput> 232.20 -changeset: 232.21 -tag: tip 232.22 -user: Bryan O'Sullivan <bos@serpentine.com> 232.23 - 232.24 -summary: Added an extra line of output 232.25 - 232.26 -</screen>
233.1 --- a/en/examples/results/tour.push.net.out Fri Mar 20 17:17:55 2009 +0800 233.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 233.3 @@ -1,5 +0,0 @@ 233.4 -<screen><prompt>$</prompt> <userinput>hg push http://hg.serpentine.com/tutorial/hello</userinput> 233.5 -pushing to http://hg.serpentine.com/tutorial/hello 233.6 -searching for changes 233.7 -ssl required 233.8 -</screen>
234.1 --- a/en/examples/results/tour.push.nothing.out Fri Mar 20 17:17:55 2009 +0800 234.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 234.3 @@ -1,5 +0,0 @@ 234.4 -<screen><prompt>$</prompt> <userinput>hg push ../hello-push</userinput> 234.5 -pushing to ../hello-push 234.6 -searching for changes 234.7 -no changes found 234.8 -</screen>
235.1 --- a/en/examples/results/tour.push.out Fri Mar 20 17:17:55 2009 +0800 235.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 235.3 @@ -1,8 +0,0 @@ 235.4 -<screen><prompt>$</prompt> <userinput>hg push ../hello-push</userinput> 235.5 -pushing to ../hello-push 235.6 -searching for changes 235.7 -adding changesets 235.8 -adding manifests 235.9 -adding file changes 235.10 -added 1 changesets with 1 changes to 1 files 235.11 -</screen>
236.1 --- a/en/examples/results/tour.reclone.out Fri Mar 20 17:17:55 2009 +0800 236.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 236.3 @@ -1,6 +0,0 @@ 236.4 -<screen><prompt>$</prompt> <userinput>cd ..</userinput> 236.5 -<prompt>$</prompt> <userinput>hg clone hello my-hello</userinput> 236.6 -updating working directory 236.7 -2 files updated, 0 files merged, 0 files removed, 0 files unresolved 236.8 -<prompt>$</prompt> <userinput>cd my-hello</userinput> 236.9 -</screen>
237.1 --- a/en/examples/results/tour.sed.out Fri Mar 20 17:17:55 2009 +0800 237.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 237.3 @@ -1,2 +0,0 @@ 237.4 -<screen><prompt>$</prompt> <userinput>sed -i '/printf/a\\tprintf("hello again!\\n");' hello.c</userinput> 237.5 -</screen>
238.1 --- a/en/examples/results/tour.status.out Fri Mar 20 17:17:55 2009 +0800 238.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 238.3 @@ -1,5 +0,0 @@ 238.4 -<screen><prompt>$</prompt> <userinput>ls</userinput> 238.5 -Makefile hello.c 238.6 -<prompt>$</prompt> <userinput>hg status</userinput> 238.7 -M hello.c 238.8 -</screen>
239.1 --- a/en/examples/results/tour.tip.out Fri Mar 20 17:17:55 2009 +0800 239.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 239.3 @@ -1,22 +0,0 @@ 239.4 -<screen><prompt>$</prompt> <userinput>hg tip -vp</userinput> 239.5 -changeset: 239.6 -tag: tip 239.7 -user: Bryan O'Sullivan <bos@serpentine.com> 239.8 - 239.9 -files: hello.c 239.10 -description: 239.11 -Added an extra line of output 239.12 - 239.13 - 239.14 -diff -r -r hello.c 239.15 - 239.16 - 239.17 -@@ -8,5 +8,6 @@ 239.18 - int main(int argc, char **argv) 239.19 - { 239.20 - printf("hello, world!\"); 239.21 -+ printf("hello again!\n"); 239.22 - return 0; 239.23 - } 239.24 - 239.25 -</screen>
240.1 --- a/en/examples/results/tour.update.out Fri Mar 20 17:17:55 2009 +0800 240.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 240.3 @@ -1,8 +0,0 @@ 240.4 -<screen><prompt>$</prompt> <userinput>grep printf hello.c</userinput> 240.5 - printf("hello, world!\"); 240.6 -<prompt>$</prompt> <userinput>hg update tip</userinput> 240.7 -1 files updated, 0 files merged, 0 files removed, 0 files unresolved 240.8 -<prompt>$</prompt> <userinput>grep printf hello.c</userinput> 240.9 - printf("hello, world!\"); 240.10 - printf("hello again!\n"); 240.11 -</screen>
241.1 --- a/en/examples/results/tour.version.out Fri Mar 20 17:17:55 2009 +0800 241.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 241.3 @@ -1,7 +0,0 @@ 241.4 -<screen><prompt>$</prompt> <userinput>hg version</userinput> 241.5 -Mercurial Distributed SCM (version ) 241.6 - 241.7 -Copyright (C) 2005-2008 Matt Mackall <mpm@selenic.com> and others 241.8 -This is free software; see the source for copying conditions. There is NO 241.9 -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 241.10 -</screen>
242.1 --- a/en/examples/run-example Fri Mar 20 17:17:55 2009 +0800 242.2 +++ b/en/examples/run-example Mon Mar 30 16:23:33 2009 +0800 242.3 @@ -134,7 +134,7 @@ 242.4 self.rename_output(self.name) 242.5 norm = self.name.replace(os.sep, '-') 242.6 example.entities[ 242.7 - '<!ENTITY %s SYSTEM "results/%s.out">' % (norm, norm)] = 1 242.8 + '<!ENTITY %s SYSTEM "results/%s.lxo">' % (norm, norm)] = 1 242.9 242.10 242.11 class shell_example(example): 242.12 @@ -316,7 +316,7 @@ 242.13 norm = os.path.normpath(ofp_basename) 242.14 example.entities[ 242.15 '<!ENTITY interaction.%s ' 242.16 - 'SYSTEM "results/%s.out">' 242.17 + 'SYSTEM "results/%s.lxo">' 242.18 % (norm, norm)] = 1 242.19 read_hint = ofp_basename + ' ' 242.20 ofp = wopen(result_name(ofp_basename + '.tmp'))
243.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 243.2 +++ b/en/figs/feature-branches.dot Mon Mar 30 16:23:33 2009 +0800 243.3 @@ -0,0 +1,8 @@ 243.4 +digraph feature_branches { 243.5 + master -> crypto; 243.6 + master -> filesystems; 243.7 + master -> ipc; 243.8 + master -> memory; 243.9 + master -> network; 243.10 + master -> security; 243.11 +}
244.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 244.2 +++ b/en/figs/filelog.svg Mon Mar 30 16:23:33 2009 +0800 244.3 @@ -0,0 +1,373 @@ 244.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 244.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 244.6 +<svg 244.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 244.8 + xmlns:cc="http://web.resource.org/cc/" 244.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 244.10 + xmlns:svg="http://www.w3.org/2000/svg" 244.11 + xmlns="http://www.w3.org/2000/svg" 244.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 244.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 244.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 244.15 + width="744.09448819" 244.16 + height="1052.3622047" 244.17 + id="svg2" 244.18 + sodipodi:version="0.32" 244.19 + inkscape:version="0.45.1" 244.20 + sodipodi:docname="filelog.svg" 244.21 + sodipodi:docbase="/home/arun/hgbook/en" 244.22 + inkscape:output_extension="org.inkscape.output.svg.inkscape"> 244.23 + <defs 244.24 + id="defs4"> 244.25 + <marker 244.26 + inkscape:stockid="Arrow1Mend" 244.27 + orient="auto" 244.28 + refY="0.0" 244.29 + refX="0.0" 244.30 + id="Arrow1Mend" 244.31 + style="overflow:visible;"> 244.32 + <path 244.33 + id="path3128" 244.34 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 244.35 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 244.36 + transform="scale(0.4) rotate(180) translate(10,0)" /> 244.37 + </marker> 244.38 + <linearGradient 244.39 + id="linearGradient2887"> 244.40 + <stop 244.41 + style="stop-color:#91cfcf;stop-opacity:1;" 244.42 + offset="0" 244.43 + id="stop2889" /> 244.44 + <stop 244.45 + style="stop-color:aqua;stop-opacity:0;" 244.46 + offset="1" 244.47 + id="stop2891" /> 244.48 + </linearGradient> 244.49 + <linearGradient 244.50 + id="linearGradient2795"> 244.51 + <stop 244.52 + style="stop-color:#ccc;stop-opacity:1;" 244.53 + offset="0" 244.54 + id="stop2797" /> 244.55 + <stop 244.56 + style="stop-color:#ccc;stop-opacity:0;" 244.57 + offset="1" 244.58 + id="stop2799" /> 244.59 + </linearGradient> 244.60 + <linearGradient 244.61 + inkscape:collect="always" 244.62 + xlink:href="#linearGradient2795" 244.63 + id="linearGradient3170" 244.64 + gradientUnits="userSpaceOnUse" 244.65 + gradientTransform="translate(121.2183,94.95434)" 244.66 + x1="81.322357" 244.67 + y1="404.34424" 244.68 + x2="201.52036" 244.69 + y2="373.03967" /> 244.70 + <linearGradient 244.71 + inkscape:collect="always" 244.72 + xlink:href="#linearGradient2887" 244.73 + id="linearGradient3172" 244.74 + gradientUnits="userSpaceOnUse" 244.75 + gradientTransform="translate(0,12)" 244.76 + x1="62.634491" 244.77 + y1="503.3392" 244.78 + x2="248.49242" 244.79 + y2="462.94327" /> 244.80 + <linearGradient 244.81 + inkscape:collect="always" 244.82 + xlink:href="#linearGradient2795" 244.83 + id="linearGradient3174" 244.84 + gradientUnits="userSpaceOnUse" 244.85 + gradientTransform="matrix(1.001035,0,0,0.653159,236.7075,153.0415)" 244.86 + x1="81.322357" 244.87 + y1="404.34424" 244.88 + x2="201.52036" 244.89 + y2="373.03967" /> 244.90 + <linearGradient 244.91 + inkscape:collect="always" 244.92 + xlink:href="#linearGradient2887" 244.93 + id="linearGradient3176" 244.94 + gradientUnits="userSpaceOnUse" 244.95 + gradientTransform="translate(0,12)" 244.96 + x1="62.634491" 244.97 + y1="503.3392" 244.98 + x2="248.49242" 244.99 + y2="462.94327" /> 244.100 + <linearGradient 244.101 + inkscape:collect="always" 244.102 + xlink:href="#linearGradient2795" 244.103 + id="linearGradient3208" 244.104 + gradientUnits="userSpaceOnUse" 244.105 + gradientTransform="matrix(1.001035,0,0,0.653159,236.7075,153.0415)" 244.106 + x1="81.322357" 244.107 + y1="404.34424" 244.108 + x2="201.52036" 244.109 + y2="373.03967" /> 244.110 + <linearGradient 244.111 + inkscape:collect="always" 244.112 + xlink:href="#linearGradient2887" 244.113 + id="linearGradient3210" 244.114 + gradientUnits="userSpaceOnUse" 244.115 + gradientTransform="translate(0,12)" 244.116 + x1="62.634491" 244.117 + y1="503.3392" 244.118 + x2="248.49242" 244.119 + y2="462.94327" /> 244.120 + <linearGradient 244.121 + inkscape:collect="always" 244.122 + xlink:href="#linearGradient2795" 244.123 + id="linearGradient3212" 244.124 + gradientUnits="userSpaceOnUse" 244.125 + gradientTransform="translate(121.2183,94.95434)" 244.126 + x1="81.322357" 244.127 + y1="404.34424" 244.128 + x2="201.52036" 244.129 + y2="373.03967" /> 244.130 + <linearGradient 244.131 + inkscape:collect="always" 244.132 + xlink:href="#linearGradient2887" 244.133 + id="linearGradient3214" 244.134 + gradientUnits="userSpaceOnUse" 244.135 + gradientTransform="translate(0,12)" 244.136 + x1="62.634491" 244.137 + y1="503.3392" 244.138 + x2="248.49242" 244.139 + y2="462.94327" /> 244.140 + <linearGradient 244.141 + inkscape:collect="always" 244.142 + xlink:href="#linearGradient2795" 244.143 + id="linearGradient3256" 244.144 + gradientUnits="userSpaceOnUse" 244.145 + gradientTransform="matrix(1.2343775,0,0,0.9981848,103.25588,95.681888)" 244.146 + x1="74.301666" 244.147 + y1="431.67441" 244.148 + x2="260.05884" 244.149 + y2="369.95322" /> 244.150 + <linearGradient 244.151 + inkscape:collect="always" 244.152 + xlink:href="#linearGradient2887" 244.153 + id="linearGradient3258" 244.154 + gradientUnits="userSpaceOnUse" 244.155 + gradientTransform="matrix(1.228929,0,0,0.9972824,-62.037003,13.312997)" 244.156 + x1="62.634491" 244.157 + y1="503.3392" 244.158 + x2="248.49242" 244.159 + y2="462.94327" /> 244.160 + <linearGradient 244.161 + inkscape:collect="always" 244.162 + xlink:href="#linearGradient2795" 244.163 + id="linearGradient3260" 244.164 + gradientUnits="userSpaceOnUse" 244.165 + gradientTransform="matrix(1.2300738,0,0,0.6517275,219.97511,153.61527)" 244.166 + x1="74.387527" 244.167 + y1="431.80576" 244.168 + x2="259.97339" 244.169 + y2="369.82224" /> 244.170 + <linearGradient 244.171 + inkscape:collect="always" 244.172 + xlink:href="#linearGradient2887" 244.173 + id="linearGradient3262" 244.174 + gradientUnits="userSpaceOnUse" 244.175 + gradientTransform="matrix(1.2289272,0,0,0.9972824,-62.036756,13.312985)" 244.176 + x1="62.634491" 244.177 + y1="503.3392" 244.178 + x2="248.49242" 244.179 + y2="462.94327" /> 244.180 + </defs> 244.181 + <sodipodi:namedview 244.182 + id="base" 244.183 + pagecolor="#ffffff" 244.184 + bordercolor="#666666" 244.185 + borderopacity="1.0" 244.186 + gridtolerance="10000" 244.187 + guidetolerance="10" 244.188 + objecttolerance="10" 244.189 + inkscape:pageopacity="0.0" 244.190 + inkscape:pageshadow="2" 244.191 + inkscape:zoom="1.4" 244.192 + inkscape:cx="455.8122" 244.193 + inkscape:cy="520" 244.194 + inkscape:document-units="px" 244.195 + inkscape:current-layer="layer1" 244.196 + inkscape:window-width="1680" 244.197 + inkscape:window-height="970" 244.198 + inkscape:window-x="0" 244.199 + inkscape:window-y="54" /> 244.200 + <metadata 244.201 + id="metadata7"> 244.202 + <rdf:RDF> 244.203 + <cc:Work 244.204 + rdf:about=""> 244.205 + <dc:format>image/svg+xml</dc:format> 244.206 + <dc:type 244.207 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 244.208 + </cc:Work> 244.209 + </rdf:RDF> 244.210 + </metadata> 244.211 + <g 244.212 + inkscape:label="Layer 1" 244.213 + inkscape:groupmode="layer" 244.214 + id="layer1"> 244.215 + <rect 244.216 + style="opacity:1;fill:#abadf8;fill-opacity:1;stroke:#595959;stroke-width:0.93760371;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 244.217 + id="rect3180" 244.218 + width="273.81375" 244.219 + height="199.06245" 244.220 + x="369.1796" 244.221 + y="351.79019" /> 244.222 + <rect 244.223 + style="opacity:1;fill:#a2f69c;fill-opacity:1;stroke:#595959;stroke-width:0.93760341;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 244.224 + id="rect3178" 244.225 + width="273.81339" 244.226 + height="199.06233" 244.227 + x="72.699799" 244.228 + y="351.78983" /> 244.229 + <g 244.230 + id="g3144" 244.231 + transform="translate(80.467048,0.71578)"> 244.232 + <g 244.233 + id="g2940"> 244.234 + <rect 244.235 + style="fill:url(#linearGradient3260);fill-opacity:1;stroke:#000000;stroke-width:0.89536202;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 244.236 + id="rect2914" 244.237 + width="227.38896" 244.238 + height="39.500999" 244.239 + x="311.92496" 244.240 + y="395.08627" /> 244.241 + <text 244.242 + xml:space="preserve" 244.243 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 244.244 + x="323.72824" 244.245 + y="416.7626" 244.246 + id="text2918"><tspan 244.247 + sodipodi:role="line" 244.248 + id="tspan2920" 244.249 + x="323.72824" 244.250 + y="416.7626" 244.251 + style="font-family:Courier">.hg/store/data/README.i</tspan></text> 244.252 + </g> 244.253 + <g 244.254 + transform="translate(3.79093e-5,-80.1853)" 244.255 + id="g2945"> 244.256 + <g 244.257 + id="g2955"> 244.258 + <rect 244.259 + y="475.4968" 244.260 + x="15.550935" 244.261 + height="39.500999" 244.262 + width="227.17694" 244.263 + id="rect2947" 244.264 + style="fill:url(#linearGradient3262);fill-opacity:1;stroke:#000000;stroke-width:1.10706258;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 244.265 + <text 244.266 + id="text2949" 244.267 + y="498.35123" 244.268 + x="31.230644" 244.269 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 244.270 + xml:space="preserve"><tspan 244.271 + style="font-family:Courier" 244.272 + y="498.35123" 244.273 + x="31.230644" 244.274 + id="tspan2951" 244.275 + sodipodi:role="line">README</tspan></text> 244.276 + </g> 244.277 + </g> 244.278 + <path 244.279 + inkscape:connector-type="polyline" 244.280 + id="path2960" 244.281 + d="M 242.94685,414.91115 C 242.94685,414.91115 293.61127,415.26754 310.16269,415.38633" 244.282 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.02046943px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 244.283 + sodipodi:nodetypes="cz" /> 244.284 + </g> 244.285 + <g 244.286 + id="g3156" 244.287 + transform="translate(80.467048,0.71578)"> 244.288 + <g 244.289 + transform="translate(116,0)" 244.290 + id="g2831"> 244.291 + <rect 244.292 + style="fill:url(#linearGradient3256);fill-opacity:1;stroke:#000000;stroke-width:1.11001658;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 244.293 + id="rect1906" 244.294 + width="228.18446" 244.295 + height="60.499123" 244.296 + x="195.52719" 244.297 + y="465.51859" /> 244.298 + <g 244.299 + id="g2803" 244.300 + transform="translate(-0.893671,1.833581)"> 244.301 + <text 244.302 + id="text1884" 244.303 + y="483.92801" 244.304 + x="208.95944" 244.305 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 244.306 + xml:space="preserve"><tspan 244.307 + style="font-family:Courier" 244.308 + y="483.92801" 244.309 + x="208.95944" 244.310 + id="tspan1886" 244.311 + sodipodi:role="line">.hg/store/data/src/hello.c.d</tspan></text> 244.312 + <text 244.313 + id="text1888" 244.314 + y="507.79309" 244.315 + x="208.95944" 244.316 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 244.317 + xml:space="preserve"><tspan 244.318 + style="font-family:Courier" 244.319 + y="507.79309" 244.320 + x="208.95944" 244.321 + id="tspan1890" 244.322 + sodipodi:role="line">.hg/store/data/src/hello.c.i</tspan></text> 244.323 + </g> 244.324 + </g> 244.325 + <g 244.326 + id="g2907"> 244.327 + <rect 244.328 + style="fill:url(#linearGradient3258);fill-opacity:1;stroke:#000000;stroke-width:1.10706329;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 244.329 + id="rect2843" 244.330 + width="227.17728" 244.331 + height="39.500999" 244.332 + x="15.550805" 244.333 + y="475.4968" /> 244.334 + <text 244.335 + xml:space="preserve" 244.336 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 244.337 + x="31.230644" 244.338 + y="498.35123" 244.339 + id="text2847"><tspan 244.340 + sodipodi:role="line" 244.341 + id="tspan2849" 244.342 + x="31.230644" 244.343 + y="498.35123" 244.344 + style="font-family:Courier">src/hello.c</tspan></text> 244.345 + </g> 244.346 + <path 244.347 + inkscape:connection-end="#g2831" 244.348 + inkscape:connection-start="#g2907" 244.349 + inkscape:connector-type="polyline" 244.350 + id="path2962" 244.351 + d="M 242.4315,495.88043 C 242.4315,495.88043 292.8861,495.99942 310.04102,496.03909" 244.352 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 244.353 + sodipodi:nodetypes="cs" /> 244.354 + </g> 244.355 + <text 244.356 + xml:space="preserve" 244.357 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 244.358 + x="98.496666" 244.359 + y="373.96353" 244.360 + id="text3216"><tspan 244.361 + sodipodi:role="line" 244.362 + id="tspan3218" 244.363 + x="98.496666" 244.364 + y="373.96353">Working directory</tspan></text> 244.365 + <text 244.366 + xml:space="preserve" 244.367 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 244.368 + x="391.39197" 244.369 + y="373.96353" 244.370 + id="text3228"><tspan 244.371 + sodipodi:role="line" 244.372 + id="tspan3230" 244.373 + x="391.39197" 244.374 + y="373.96353">Repository</tspan></text> 244.375 + </g> 244.376 +</svg>
245.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 245.2 +++ b/en/figs/metadata.svg Mon Mar 30 16:23:33 2009 +0800 245.3 @@ -0,0 +1,328 @@ 245.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 245.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 245.6 +<svg 245.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 245.8 + xmlns:cc="http://web.resource.org/cc/" 245.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 245.10 + xmlns:svg="http://www.w3.org/2000/svg" 245.11 + xmlns="http://www.w3.org/2000/svg" 245.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 245.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 245.14 + width="744.09448819" 245.15 + height="1052.3622047" 245.16 + id="svg2" 245.17 + sodipodi:version="0.32" 245.18 + inkscape:version="0.44.1" 245.19 + sodipodi:docname="metadata.svg" 245.20 + sodipodi:docbase="/home/bos/hg/hgbook/en"> 245.21 + <defs 245.22 + id="defs4"> 245.23 + <marker 245.24 + inkscape:stockid="Arrow1Mend" 245.25 + orient="auto" 245.26 + refY="0.0" 245.27 + refX="0.0" 245.28 + id="Arrow1Mend" 245.29 + style="overflow:visible;"> 245.30 + <path 245.31 + id="path2944" 245.32 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 245.33 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 245.34 + transform="scale(0.4) rotate(180) translate(10,0)" /> 245.35 + </marker> 245.36 + </defs> 245.37 + <sodipodi:namedview 245.38 + id="base" 245.39 + pagecolor="#ffffff" 245.40 + bordercolor="#666666" 245.41 + borderopacity="1.0" 245.42 + gridtolerance="10000" 245.43 + guidetolerance="10" 245.44 + objecttolerance="10" 245.45 + inkscape:pageopacity="0.0" 245.46 + inkscape:pageshadow="2" 245.47 + inkscape:zoom="1.4" 245.48 + inkscape:cx="232.14286" 245.49 + inkscape:cy="490.68696" 245.50 + inkscape:document-units="px" 245.51 + inkscape:current-layer="layer1" 245.52 + inkscape:window-width="906" 245.53 + inkscape:window-height="620" 245.54 + inkscape:window-x="181" 245.55 + inkscape:window-y="58" /> 245.56 + <metadata 245.57 + id="metadata7"> 245.58 + <rdf:RDF> 245.59 + <cc:Work 245.60 + rdf:about=""> 245.61 + <dc:format>image/svg+xml</dc:format> 245.62 + <dc:type 245.63 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 245.64 + </cc:Work> 245.65 + </rdf:RDF> 245.66 + </metadata> 245.67 + <g 245.68 + inkscape:label="Layer 1" 245.69 + inkscape:groupmode="layer" 245.70 + id="layer1"> 245.71 + <path 245.72 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1;display:inline" 245.73 + d="M 326.94646,467.18359 L 326.94646,510.98123" 245.74 + id="path1910" 245.75 + inkscape:connector-type="polyline" 245.76 + inkscape:connection-end="#rect2962" 245.77 + inkscape:connection-start="#rect2764" /> 245.78 + <path 245.79 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1;display:inline" 245.80 + d="M 326.94646,531.98123 L 326.94646,591.77887" 245.81 + id="path1912" 245.82 + inkscape:connector-type="polyline" 245.83 + inkscape:connection-start="#rect2962" 245.84 + inkscape:connection-end="#rect3000" /> 245.85 + <path 245.86 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1;display:inline" 245.87 + d="M 316.1622,531.98123 L 192.30212,652.57648" 245.88 + id="path1916" 245.89 + inkscape:connector-type="polyline" 245.90 + inkscape:connection-end="#rect3038" 245.91 + inkscape:connection-start="#rect2962" /> 245.92 + <path 245.93 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#484848;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1" 245.94 + d="M 254.23217,467.18359 L 254.23216,510.98123" 245.95 + id="path3088" 245.96 + inkscape:connector-type="polyline" 245.97 + inkscape:connection-start="#rect1872" 245.98 + inkscape:connection-end="#rect2960" /> 245.99 + <path 245.100 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#484848;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1" 245.101 + d="M 254.23215,531.98123 L 254.23215,591.77887" 245.102 + id="path3090" 245.103 + inkscape:connector-type="polyline" 245.104 + inkscape:connection-start="#rect2960" 245.105 + inkscape:connection-end="#rect2998" /> 245.106 + <path 245.107 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#484848;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1" 245.108 + d="M 248.84002,531.98123 L 186.90999,652.57648" 245.109 + id="path3092" 245.110 + inkscape:connector-type="polyline" 245.111 + inkscape:connection-start="#rect2960" 245.112 + inkscape:connection-end="#rect3038" /> 245.113 + <rect 245.114 + style="fill:#7b7df5;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.115 + id="rect1872" 245.116 + width="51.42857" 245.117 + height="20" 245.118 + x="228.51788" 245.119 + y="446.68359" /> 245.120 + <rect 245.121 + style="fill:#cacbfb;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.122 + id="rect2764" 245.123 + width="51.42857" 245.124 + height="20" 245.125 + x="301.23218" 245.126 + y="446.68359" /> 245.127 + <rect 245.128 + style="fill:#cacbfb;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.129 + id="rect2766" 245.130 + width="51.42857" 245.131 + height="20" 245.132 + x="155.80359" 245.133 + y="446.68359" /> 245.134 + <rect 245.135 + style="fill:#cacbfb;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.136 + id="rect2768" 245.137 + width="51.42857" 245.138 + height="20" 245.139 + x="83.089294" 245.140 + y="446.68359" /> 245.141 + <path 245.142 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 245.143 + d="M 135.01786,456.68359 L 155.30359,456.68359" 245.144 + id="path2770" 245.145 + inkscape:connector-type="polyline" 245.146 + inkscape:connection-start="#rect2768" 245.147 + inkscape:connection-end="#rect2766" /> 245.148 + <path 245.149 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 245.150 + d="M 207.73216,456.68359 L 228.01788,456.68359" 245.151 + id="path2772" 245.152 + inkscape:connector-type="polyline" 245.153 + inkscape:connection-start="#rect2766" 245.154 + inkscape:connection-end="#rect1872" /> 245.155 + <path 245.156 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 245.157 + d="M 280.44645,456.68359 L 300.73218,456.68359" 245.158 + id="path2774" 245.159 + inkscape:connector-type="polyline" 245.160 + inkscape:connection-start="#rect1872" 245.161 + inkscape:connection-end="#rect2764" /> 245.162 + <path 245.163 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 245.164 + d="M 62.303571,456.68359 L 82.589294,456.68359" 245.165 + id="path2778" 245.166 + inkscape:connector-type="polyline" 245.167 + inkscape:connection-end="#rect2768" /> 245.168 + <rect 245.169 + style="fill:#84f57b;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.170 + id="rect2960" 245.171 + width="51.42857" 245.172 + height="20" 245.173 + x="228.51787" 245.174 + y="511.48123" /> 245.175 + <rect 245.176 + style="fill:#cefbca;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.177 + id="rect2962" 245.178 + width="51.42857" 245.179 + height="20" 245.180 + x="301.23218" 245.181 + y="511.48123" /> 245.182 + <rect 245.183 + style="fill:#cefbca;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.184 + id="rect2964" 245.185 + width="51.42857" 245.186 + height="20" 245.187 + x="155.80357" 245.188 + y="511.48123" /> 245.189 + <rect 245.190 + style="fill:#cefbca;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.191 + id="rect2966" 245.192 + width="51.42857" 245.193 + height="20" 245.194 + x="83.089287" 245.195 + y="511.48123" /> 245.196 + <path 245.197 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 245.198 + d="M 135.01786,521.48121 L 155.30359,521.48121" 245.199 + id="path2968" 245.200 + inkscape:connector-type="polyline" /> 245.201 + <path 245.202 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 245.203 + d="M 207.73216,521.48121 L 228.01788,521.48121" 245.204 + id="path2970" 245.205 + inkscape:connector-type="polyline" /> 245.206 + <path 245.207 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 245.208 + d="M 280.44645,521.48121 L 300.73218,521.48121" 245.209 + id="path2972" 245.210 + inkscape:connector-type="polyline" /> 245.211 + <path 245.212 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 245.213 + d="M 62.30358,521.48121 L 82.5893,521.48121" 245.214 + id="path2974" 245.215 + inkscape:connector-type="polyline" /> 245.216 + <rect 245.217 + style="fill:#f57b8f;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.218 + id="rect2998" 245.219 + width="51.42857" 245.220 + height="20" 245.221 + x="228.51787" 245.222 + y="592.27887" /> 245.223 + <rect 245.224 + style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.225 + id="rect3000" 245.226 + width="51.42857" 245.227 + height="20" 245.228 + x="301.23218" 245.229 + y="592.27887" /> 245.230 + <rect 245.231 + style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.232 + id="rect3002" 245.233 + width="51.42857" 245.234 + height="20" 245.235 + x="155.80357" 245.236 + y="592.27887" /> 245.237 + <rect 245.238 + style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.239 + id="rect3004" 245.240 + width="51.42857" 245.241 + height="20" 245.242 + x="83.089287" 245.243 + y="592.27887" /> 245.244 + <path 245.245 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 245.246 + d="M 135.01786,602.27884 L 155.30359,602.27884" 245.247 + id="path3006" 245.248 + inkscape:connector-type="polyline" /> 245.249 + <path 245.250 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 245.251 + d="M 207.73216,602.27884 L 228.01788,602.27884" 245.252 + id="path3008" 245.253 + inkscape:connector-type="polyline" /> 245.254 + <path 245.255 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 245.256 + d="M 280.44645,602.27884 L 300.73218,602.27884" 245.257 + id="path3010" 245.258 + inkscape:connector-type="polyline" /> 245.259 + <path 245.260 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 245.261 + d="M 62.30358,602.27884 L 82.5893,602.27884" 245.262 + id="path3012" 245.263 + inkscape:connector-type="polyline" /> 245.264 + <rect 245.265 + style="fill:#ffced6;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.266 + id="rect3034" 245.267 + width="51.42857" 245.268 + height="20" 245.269 + x="228.51787" 245.270 + y="653.07648" /> 245.271 + <rect 245.272 + style="fill:#f57b8f;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.273 + id="rect3038" 245.274 + width="51.42857" 245.275 + height="20" 245.276 + x="155.80357" 245.277 + y="653.07648" /> 245.278 + <rect 245.279 + style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 245.280 + id="rect3040" 245.281 + width="51.42857" 245.282 + height="20" 245.283 + x="83.089287" 245.284 + y="653.07648" /> 245.285 + <path 245.286 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 245.287 + d="M 135.01786,663.07646 L 155.30359,663.07646" 245.288 + id="path3042" 245.289 + inkscape:connector-type="polyline" /> 245.290 + <path 245.291 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 245.292 + d="M 207.73216,663.07646 L 228.01788,663.07646" 245.293 + id="path3044" 245.294 + inkscape:connector-type="polyline" /> 245.295 + <path 245.296 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 245.297 + d="M 62.30358,663.07646 L 82.5893,663.07646" 245.298 + id="path3048" 245.299 + inkscape:connector-type="polyline" /> 245.300 + <text 245.301 + xml:space="preserve" 245.302 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 245.303 + x="82.072548" 245.304 + y="432.64789" 245.305 + id="text3094"><tspan 245.306 + sodipodi:role="line" 245.307 + id="tspan3096" 245.308 + x="82.072548" 245.309 + y="432.64789">Changelog</tspan></text> 245.310 + <text 245.311 + xml:space="preserve" 245.312 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 245.313 + x="82.306923" 245.314 + y="498.97327" 245.315 + id="text3098"><tspan 245.316 + sodipodi:role="line" 245.317 + id="tspan3100" 245.318 + x="82.306923" 245.319 + y="498.97327">Manifest</tspan></text> 245.320 + <text 245.321 + xml:space="preserve" 245.322 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 245.323 + x="82.14286" 245.324 + y="580.08569" 245.325 + id="text3102"><tspan 245.326 + sodipodi:role="line" 245.327 + id="tspan3104" 245.328 + x="82.14286" 245.329 + y="580.08569">Filelogs</tspan></text> 245.330 + </g> 245.331 +</svg>
246.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 246.2 +++ b/en/figs/mq-stack.svg Mon Mar 30 16:23:33 2009 +0800 246.3 @@ -0,0 +1,270 @@ 246.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 246.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 246.6 +<svg 246.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 246.8 + xmlns:cc="http://web.resource.org/cc/" 246.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 246.10 + xmlns:svg="http://www.w3.org/2000/svg" 246.11 + xmlns="http://www.w3.org/2000/svg" 246.12 + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" 246.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 246.14 + width="744.09448819" 246.15 + height="1052.3622047" 246.16 + id="svg2" 246.17 + sodipodi:version="0.32" 246.18 + inkscape:version="0.43" 246.19 + sodipodi:docname="mq-stack.svg" 246.20 + sodipodi:docbase="/home/bos/hg/hgbook/en"> 246.21 + <defs 246.22 + id="defs4" /> 246.23 + <sodipodi:namedview 246.24 + id="base" 246.25 + pagecolor="#ffffff" 246.26 + bordercolor="#666666" 246.27 + borderopacity="1.0" 246.28 + inkscape:pageopacity="0.0" 246.29 + inkscape:pageshadow="2" 246.30 + inkscape:zoom="1.4142136" 246.31 + inkscape:cx="299.33323" 246.32 + inkscape:cy="815.646" 246.33 + inkscape:document-units="px" 246.34 + inkscape:current-layer="layer1" 246.35 + inkscape:window-width="1014" 246.36 + inkscape:window-height="689" 246.37 + inkscape:window-x="0" 246.38 + inkscape:window-y="25" /> 246.39 + <metadata 246.40 + id="metadata7"> 246.41 + <rdf:RDF> 246.42 + <cc:Work 246.43 + rdf:about=""> 246.44 + <dc:format>image/svg+xml</dc:format> 246.45 + <dc:type 246.46 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 246.47 + </cc:Work> 246.48 + </rdf:RDF> 246.49 + </metadata> 246.50 + <g 246.51 + inkscape:label="Layer 1" 246.52 + inkscape:groupmode="layer" 246.53 + id="layer1"> 246.54 + <rect 246.55 + style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 246.56 + id="rect1307" 246.57 + width="202.93683" 246.58 + height="24.243662" 246.59 + x="230.01944" 246.60 + y="221.70146" /> 246.61 + <text 246.62 + xml:space="preserve" 246.63 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.64 + x="237.89606" 246.65 + y="237.13383" 246.66 + id="text1309"><tspan 246.67 + sodipodi:role="line" 246.68 + id="tspan1311" 246.69 + x="237.89606" 246.70 + y="237.13383">prevent-compiler-reorder.patch</tspan></text> 246.71 + <rect 246.72 + style="fill:#7979ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 246.73 + id="rect1320" 246.74 + width="202.93683" 246.75 + height="24.243662" 246.76 + x="230.01936" 246.77 + y="251.34325" /> 246.78 + <text 246.79 + xml:space="preserve" 246.80 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.81 + x="237.89598" 246.82 + y="266.77563" 246.83 + id="text1322"><tspan 246.84 + sodipodi:role="line" 246.85 + id="tspan1324" 246.86 + x="237.89598" 246.87 + y="266.77563">namespace-cleanup.patch</tspan></text> 246.88 + <rect 246.89 + style="fill:#7979ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 246.90 + id="rect2217" 246.91 + width="202.93683" 246.92 + height="24.243662" 246.93 + x="230.01936" 246.94 + y="280.98505" /> 246.95 + <text 246.96 + xml:space="preserve" 246.97 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.98 + x="237.89598" 246.99 + y="296.41742" 246.100 + id="text2219"><tspan 246.101 + sodipodi:role="line" 246.102 + id="tspan2221" 246.103 + x="237.89598" 246.104 + y="296.41742">powerpc-port-fixes.patch</tspan></text> 246.105 + <rect 246.106 + style="fill:#7979ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 246.107 + id="rect3114" 246.108 + width="202.93683" 246.109 + height="24.243662" 246.110 + x="230.01936" 246.111 + y="310.6268" /> 246.112 + <text 246.113 + xml:space="preserve" 246.114 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.115 + x="237.89598" 246.116 + y="326.05917" 246.117 + id="text3116"><tspan 246.118 + sodipodi:role="line" 246.119 + id="tspan3118" 246.120 + x="237.89598" 246.121 + y="326.05917">report-devinfo-correctly.patch</tspan></text> 246.122 + <text 246.123 + xml:space="preserve" 246.124 + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.125 + x="200.01021" 246.126 + y="191.68094" 246.127 + id="text3170" 246.128 + sodipodi:linespacing="125%"><tspan 246.129 + sodipodi:role="line" 246.130 + id="tspan3172" 246.131 + x="200.01021" 246.132 + y="191.68094" 246.133 + style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">{</tspan></text> 246.134 + <text 246.135 + xml:space="preserve" 246.136 + style="font-size:15.25329685px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.137 + x="255.26627" 246.138 + y="248.79449" 246.139 + id="text3190" 246.140 + sodipodi:linespacing="125%" 246.141 + transform="scale(0.786716,1.271107)"><tspan 246.142 + sodipodi:role="line" 246.143 + id="tspan3192" 246.144 + x="255.26627" 246.145 + y="248.79449" 246.146 + style="font-size:61.01318741px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">{</tspan></text> 246.147 + <text 246.148 + xml:space="preserve" 246.149 + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.150 + x="195.86807" 246.151 + y="173.17117" 246.152 + id="text4085" 246.153 + sodipodi:linespacing="125%"><tspan 246.154 + sodipodi:role="line" 246.155 + id="tspan4087" 246.156 + x="195.86807" 246.157 + y="173.17117" 246.158 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">present in series,</tspan><tspan 246.159 + sodipodi:role="line" 246.160 + x="195.86807" 246.161 + y="188.17117" 246.162 + id="tspan4089" 246.163 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">but not applied</tspan></text> 246.164 + <text 246.165 + xml:space="preserve" 246.166 + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.167 + x="195.0712" 246.168 + y="288.91745" 246.169 + id="text4091" 246.170 + sodipodi:linespacing="125%"><tspan 246.171 + sodipodi:role="line" 246.172 + id="tspan4093" 246.173 + x="195.0712" 246.174 + y="288.91745" 246.175 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">patches applied,</tspan><tspan 246.176 + sodipodi:role="line" 246.177 + x="195.0712" 246.178 + y="303.91745" 246.179 + id="tspan4111" 246.180 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">changesets present</tspan></text> 246.181 + <text 246.182 + xml:space="preserve" 246.183 + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.184 + x="195.0712" 246.185 + y="229.28813" 246.186 + id="text4095" 246.187 + sodipodi:linespacing="125%"><tspan 246.188 + sodipodi:role="line" 246.189 + id="tspan4097" 246.190 + x="195.0712" 246.191 + y="229.28813" 246.192 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">topmost</tspan><tspan 246.193 + sodipodi:role="line" 246.194 + x="195.0712" 246.195 + y="244.28813" 246.196 + id="tspan4109" 246.197 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">applied patch</tspan></text> 246.198 + <text 246.199 + xml:space="preserve" 246.200 + style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#666666;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.201 + x="450.4975" 246.202 + y="238.29692" 246.203 + id="text4137"><tspan 246.204 + sodipodi:role="line" 246.205 + id="tspan4139" 246.206 + x="450.4975" 246.207 + y="238.29692">201ad3209902</tspan></text> 246.208 + <text 246.209 + xml:space="preserve" 246.210 + style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#989898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.211 + x="450.05804" 246.212 + y="267.93872" 246.213 + id="text4141"><tspan 246.214 + sodipodi:role="line" 246.215 + id="tspan4143" 246.216 + x="450.05804" 246.217 + y="267.93872">126b84e593ae</tspan></text> 246.218 + <text 246.219 + xml:space="preserve" 246.220 + style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#989898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.221 + x="450.6557" 246.222 + y="297.58051" 246.223 + id="text4145"><tspan 246.224 + sodipodi:role="line" 246.225 + id="tspan4147" 246.226 + x="450.6557" 246.227 + y="297.58051">a655daf15409</tspan></text> 246.228 + <text 246.229 + xml:space="preserve" 246.230 + style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#989898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.231 + x="450.71429" 246.232 + y="327.22226" 246.233 + id="text4149"><tspan 246.234 + sodipodi:role="line" 246.235 + id="tspan4151" 246.236 + x="450.71429" 246.237 + y="327.22226">e50d59aaea3a</tspan></text> 246.238 + <rect 246.239 + style="fill:#d7d7ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#a6a6a6;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 246.240 + id="rect3106" 246.241 + width="202.93683" 246.242 + height="24.243662" 246.243 + x="230.01936" 246.244 + y="150.41792" /> 246.245 + <text 246.246 + xml:space="preserve" 246.247 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.248 + x="237.89598" 246.249 + y="165.8503" 246.250 + id="text3108"><tspan 246.251 + sodipodi:role="line" 246.252 + id="tspan3110" 246.253 + x="237.89598" 246.254 + y="165.8503">forbid-illegal-params.patch</tspan></text> 246.255 + <rect 246.256 + style="fill:#d7d7ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#a6a6a6;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 246.257 + id="rect2241" 246.258 + width="202.93683" 246.259 + height="24.243662" 246.260 + x="230.16466" 246.261 + y="180.05968" /> 246.262 + <text 246.263 + xml:space="preserve" 246.264 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 246.265 + x="238.04128" 246.266 + y="195.49205" 246.267 + id="text2243"><tspan 246.268 + sodipodi:role="line" 246.269 + id="tspan2245" 246.270 + x="238.04128" 246.271 + y="195.49205">fix-memory-leak.patch</tspan></text> 246.272 + </g> 246.273 +</svg>
247.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 247.2 +++ b/en/figs/revlog.svg Mon Mar 30 16:23:33 2009 +0800 247.3 @@ -0,0 +1,1155 @@ 247.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 247.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 247.6 +<svg 247.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 247.8 + xmlns:cc="http://web.resource.org/cc/" 247.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 247.10 + xmlns:svg="http://www.w3.org/2000/svg" 247.11 + xmlns="http://www.w3.org/2000/svg" 247.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 247.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 247.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 247.15 + width="744.09448819" 247.16 + height="1052.3622047" 247.17 + id="svg2" 247.18 + sodipodi:version="0.32" 247.19 + inkscape:version="0.44.1" 247.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 247.21 + sodipodi:docname="revlog.svg"> 247.22 + <defs 247.23 + id="defs4"> 247.24 + <marker 247.25 + inkscape:stockid="Arrow1Mend" 247.26 + orient="auto" 247.27 + refY="0.0" 247.28 + refX="0.0" 247.29 + id="Arrow1Mend" 247.30 + style="overflow:visible;"> 247.31 + <path 247.32 + id="path4852" 247.33 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 247.34 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 247.35 + transform="scale(0.4) rotate(180) translate(10,0)" /> 247.36 + </marker> 247.37 + <linearGradient 247.38 + id="linearGradient3092"> 247.39 + <stop 247.40 + style="stop-color:#44436f;stop-opacity:1;" 247.41 + offset="0" 247.42 + id="stop3094" /> 247.43 + <stop 247.44 + style="stop-color:#abade5;stop-opacity:1;" 247.45 + offset="1" 247.46 + id="stop3096" /> 247.47 + </linearGradient> 247.48 + <linearGradient 247.49 + inkscape:collect="always" 247.50 + xlink:href="#linearGradient3092" 247.51 + id="linearGradient3118" 247.52 + gradientUnits="userSpaceOnUse" 247.53 + x1="176.16635" 247.54 + y1="405.21934" 247.55 + x2="417.11935" 247.56 + y2="405.21934" /> 247.57 + <linearGradient 247.58 + inkscape:collect="always" 247.59 + xlink:href="#linearGradient3092" 247.60 + id="linearGradient3120" 247.61 + gradientUnits="userSpaceOnUse" 247.62 + x1="176.16635" 247.63 + y1="405.21934" 247.64 + x2="417.11935" 247.65 + y2="405.21934" /> 247.66 + <linearGradient 247.67 + inkscape:collect="always" 247.68 + xlink:href="#linearGradient3092" 247.69 + id="linearGradient3129" 247.70 + gradientUnits="userSpaceOnUse" 247.71 + x1="176.16635" 247.72 + y1="405.21934" 247.73 + x2="417.11935" 247.74 + y2="405.21934" 247.75 + gradientTransform="translate(-0.928574,-1.428574)" /> 247.76 + <linearGradient 247.77 + inkscape:collect="always" 247.78 + xlink:href="#linearGradient3092" 247.79 + id="linearGradient3133" 247.80 + gradientUnits="userSpaceOnUse" 247.81 + x1="176.16635" 247.82 + y1="405.21934" 247.83 + x2="417.11935" 247.84 + y2="405.21934" 247.85 + gradientTransform="translate(-0.928574,-1.428574)" /> 247.86 + <linearGradient 247.87 + inkscape:collect="always" 247.88 + xlink:href="#linearGradient3092" 247.89 + id="linearGradient3708" 247.90 + gradientUnits="userSpaceOnUse" 247.91 + gradientTransform="matrix(0.423343,0,0,0.423343,138.874,-67.01732)" 247.92 + x1="175.23776" 247.93 + y1="509.98154" 247.94 + x2="416.29077" 247.95 + y2="297.49997" /> 247.96 + <linearGradient 247.97 + inkscape:collect="always" 247.98 + xlink:href="#linearGradient3092" 247.99 + id="linearGradient5164" 247.100 + gradientUnits="userSpaceOnUse" 247.101 + gradientTransform="matrix(0.423343,0,0,0.423343,198.249,247.4358)" 247.102 + x1="175.23776" 247.103 + y1="509.98154" 247.104 + x2="416.29077" 247.105 + y2="297.49997" /> 247.106 + <linearGradient 247.107 + inkscape:collect="always" 247.108 + xlink:href="#linearGradient3092" 247.109 + id="linearGradient5584" 247.110 + gradientUnits="userSpaceOnUse" 247.111 + gradientTransform="matrix(0.423343,0,0,0.423343,143.9081,371.2915)" 247.112 + x1="175.23776" 247.113 + y1="509.98154" 247.114 + x2="416.29077" 247.115 + y2="297.49997" /> 247.116 + <linearGradient 247.117 + inkscape:collect="always" 247.118 + xlink:href="#linearGradient3092" 247.119 + id="linearGradient5784" 247.120 + gradientUnits="userSpaceOnUse" 247.121 + gradientTransform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 247.122 + x1="175.23776" 247.123 + y1="509.98154" 247.124 + x2="416.29077" 247.125 + y2="297.49997" /> 247.126 + <linearGradient 247.127 + inkscape:collect="always" 247.128 + xlink:href="#linearGradient3092" 247.129 + id="linearGradient5786" 247.130 + gradientUnits="userSpaceOnUse" 247.131 + gradientTransform="matrix(0.423343,0,0,0.423343,198.249,152.137)" 247.132 + x1="175.23776" 247.133 + y1="509.98154" 247.134 + x2="416.29077" 247.135 + y2="297.49997" /> 247.136 + <linearGradient 247.137 + inkscape:collect="always" 247.138 + xlink:href="#linearGradient3092" 247.139 + id="linearGradient5895" 247.140 + gradientUnits="userSpaceOnUse" 247.141 + gradientTransform="matrix(0.423343,0,0,0.423343,198.0215,261.7142)" 247.142 + x1="175.23776" 247.143 + y1="509.98154" 247.144 + x2="416.29077" 247.145 + y2="297.49997" /> 247.146 + <linearGradient 247.147 + inkscape:collect="always" 247.148 + xlink:href="#linearGradient3092" 247.149 + id="linearGradient5958" 247.150 + gradientUnits="userSpaceOnUse" 247.151 + gradientTransform="matrix(0.423343,0,0,0.423343,137.1978,42.55987)" 247.152 + x1="175.23776" 247.153 + y1="509.98154" 247.154 + x2="416.29077" 247.155 + y2="297.49997" /> 247.156 + </defs> 247.157 + <sodipodi:namedview 247.158 + id="base" 247.159 + pagecolor="#ffffff" 247.160 + bordercolor="#666666" 247.161 + borderopacity="1.0" 247.162 + gridtolerance="10000" 247.163 + guidetolerance="10" 247.164 + objecttolerance="10" 247.165 + inkscape:pageopacity="0.0" 247.166 + inkscape:pageshadow="2" 247.167 + inkscape:zoom="0.64" 247.168 + inkscape:cx="566.02368" 247.169 + inkscape:cy="688.16826" 247.170 + inkscape:document-units="px" 247.171 + inkscape:current-layer="layer1" 247.172 + inkscape:window-width="906" 247.173 + inkscape:window-height="620" 247.174 + inkscape:window-x="29" 247.175 + inkscape:window-y="79" 247.176 + inkscape:connector-spacing="11" /> 247.177 + <metadata 247.178 + id="metadata7"> 247.179 + <rdf:RDF> 247.180 + <cc:Work 247.181 + rdf:about=""> 247.182 + <dc:format>image/svg+xml</dc:format> 247.183 + <dc:type 247.184 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 247.185 + </cc:Work> 247.186 + </rdf:RDF> 247.187 + </metadata> 247.188 + <g 247.189 + inkscape:label="Layer 1" 247.190 + inkscape:groupmode="layer" 247.191 + id="layer1"> 247.192 + <rect 247.193 + y="168.74846" 247.194 + x="211.58516" 247.195 + height="89.506805" 247.196 + width="101.60232" 247.197 + id="rect3068" 247.198 + style="fill:url(#linearGradient5958);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 247.199 + <g 247.200 + id="g3215" 247.201 + transform="matrix(0.423343,0,0,0.423343,137.1977,42.55985)"> 247.202 + <rect 247.203 + y="447.71451" 247.204 + x="299.67859" 247.205 + height="48.571426" 247.206 + width="103.14286" 247.207 + id="rect2899" 247.208 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 247.209 + <text 247.210 + id="text2903" 247.211 + y="464.8139" 247.212 + x="308.89639" 247.213 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.214 + xml:space="preserve"><tspan 247.215 + y="464.8139" 247.216 + x="308.89639" 247.217 + sodipodi:role="line" 247.218 + id="tspan2905">Second parent</tspan></text> 247.219 + <text 247.220 + id="text2907" 247.221 + y="485.50256" 247.222 + x="308.20175" 247.223 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.224 + xml:space="preserve"><tspan 247.225 + style="font-family:Courier" 247.226 + y="485.50256" 247.227 + x="308.20175" 247.228 + id="tspan2909" 247.229 + sodipodi:role="line">32bf9a5f22c0</tspan></text> 247.230 + </g> 247.231 + <g 247.232 + id="g3250" 247.233 + transform="matrix(0.423343,0,0,0.423343,137.1977,42.55986)"> 247.234 + <rect 247.235 + y="311.28598" 247.236 + x="188.6071" 247.237 + height="48.571426" 247.238 + width="103.14286" 247.239 + id="rect2936" 247.240 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 247.241 + <text 247.242 + id="text2940" 247.243 + y="328.38538" 247.244 + x="197.82495" 247.245 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.246 + xml:space="preserve"><tspan 247.247 + y="328.38538" 247.248 + x="197.82495" 247.249 + sodipodi:role="line" 247.250 + id="tspan2942">Revision hash</tspan></text> 247.251 + <text 247.252 + id="text2944" 247.253 + y="349.07404" 247.254 + x="197.13031" 247.255 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.256 + xml:space="preserve"><tspan 247.257 + style="font-family:Courier" 247.258 + y="349.07404" 247.259 + x="197.13031" 247.260 + id="tspan2946" 247.261 + sodipodi:role="line">34b8b7a15ea1</tspan></text> 247.262 + </g> 247.263 + <g 247.264 + id="g3243" 247.265 + transform="matrix(0.423343,0,0,0.423343,137.6664,43.91853)"> 247.266 + <rect 247.267 + y="363.07654" 247.268 + x="187.5" 247.269 + height="75" 247.270 + width="213.85715" 247.271 + id="rect2950" 247.272 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 247.273 + <text 247.274 + id="text2958" 247.275 + y="400.86459" 247.276 + x="196.02321" 247.277 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.278 + xml:space="preserve"><tspan 247.279 + style="fill:black;fill-opacity:1;font-family:Courier" 247.280 + y="400.86459" 247.281 + x="196.02321" 247.282 + id="tspan2960" 247.283 + sodipodi:role="line">...</tspan></text> 247.284 + <text 247.285 + id="text2954" 247.286 + y="380.17593" 247.287 + x="196.71785" 247.288 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.289 + xml:space="preserve"><tspan 247.290 + y="380.17593" 247.291 + x="196.71785" 247.292 + sodipodi:role="line" 247.293 + id="tspan2956" 247.294 + style="fill:black;fill-opacity:1">Revision data (delta or snapshot)</tspan></text> 247.295 + </g> 247.296 + <g 247.297 + id="g5529" 247.298 + transform="translate(-6.710312,-8.165836e-6)"> 247.299 + <rect 247.300 + style="fill:url(#linearGradient5584);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.301 + id="rect3509" 247.302 + width="101.60232" 247.303 + height="89.506805" 247.304 + x="218.29547" 247.305 + y="497.4801" /> 247.306 + <g 247.307 + transform="matrix(0.423343,0,0,0.423343,143.908,371.2915)" 247.308 + id="g3513"> 247.309 + <g 247.310 + id="g3515"> 247.311 + <rect 247.312 + y="447.72418" 247.313 + x="188.6071" 247.314 + height="48.571426" 247.315 + width="103.14286" 247.316 + id="rect3517" 247.317 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 247.318 + <text 247.319 + id="text3519" 247.320 + y="464.82358" 247.321 + x="197.82495" 247.322 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.323 + xml:space="preserve"><tspan 247.324 + y="464.82358" 247.325 + x="197.82495" 247.326 + sodipodi:role="line" 247.327 + id="tspan3521">First parent</tspan></text> 247.328 + <text 247.329 + id="text3523" 247.330 + y="485.51224" 247.331 + x="197.13031" 247.332 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.333 + xml:space="preserve"><tspan 247.334 + style="font-family:Courier" 247.335 + y="485.51224" 247.336 + x="197.13031" 247.337 + id="tspan3525" 247.338 + sodipodi:role="line">000000000000</tspan></text> 247.339 + </g> 247.340 + <g 247.341 + id="g3527"> 247.342 + <rect 247.343 + y="447.71451" 247.344 + x="299.67859" 247.345 + height="48.571426" 247.346 + width="103.14286" 247.347 + id="rect3529" 247.348 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 247.349 + <text 247.350 + id="text3531" 247.351 + y="464.8139" 247.352 + x="308.89639" 247.353 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.354 + xml:space="preserve"><tspan 247.355 + y="464.8139" 247.356 + x="308.89639" 247.357 + sodipodi:role="line" 247.358 + id="tspan3533">Second parent</tspan></text> 247.359 + <text 247.360 + id="text3535" 247.361 + y="485.50256" 247.362 + x="308.20175" 247.363 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.364 + xml:space="preserve"><tspan 247.365 + style="font-family:Courier" 247.366 + y="485.50256" 247.367 + x="308.20175" 247.368 + id="tspan3537" 247.369 + sodipodi:role="line">000000000000</tspan></text> 247.370 + </g> 247.371 + </g> 247.372 + <g 247.373 + transform="matrix(0.423343,0,0,0.423343,143.908,371.2915)" 247.374 + id="g3539"> 247.375 + <rect 247.376 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.377 + id="rect3541" 247.378 + width="103.14286" 247.379 + height="48.571426" 247.380 + x="188.6071" 247.381 + y="311.28598" /> 247.382 + <text 247.383 + xml:space="preserve" 247.384 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.385 + x="197.82495" 247.386 + y="328.38538" 247.387 + id="text3543"><tspan 247.388 + id="tspan3545" 247.389 + sodipodi:role="line" 247.390 + x="197.82495" 247.391 + y="328.38538">Revision hash</tspan></text> 247.392 + <text 247.393 + xml:space="preserve" 247.394 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.395 + x="197.13031" 247.396 + y="349.07404" 247.397 + id="text3547"><tspan 247.398 + sodipodi:role="line" 247.399 + id="tspan3549" 247.400 + x="197.13031" 247.401 + y="349.07404" 247.402 + style="font-family:Courier">ff9dc8bc2a8b</tspan></text> 247.403 + </g> 247.404 + <g 247.405 + transform="matrix(0.423343,0,0,0.423343,144.3767,372.6502)" 247.406 + id="g3551"> 247.407 + <rect 247.408 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.409 + id="rect3553" 247.410 + width="213.85715" 247.411 + height="75" 247.412 + x="187.5" 247.413 + y="363.07654" /> 247.414 + <text 247.415 + xml:space="preserve" 247.416 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.417 + x="196.02321" 247.418 + y="400.86459" 247.419 + id="text3555"><tspan 247.420 + sodipodi:role="line" 247.421 + id="tspan3557" 247.422 + x="196.02321" 247.423 + y="400.86459" 247.424 + style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 247.425 + <text 247.426 + xml:space="preserve" 247.427 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.428 + x="196.71785" 247.429 + y="380.17593" 247.430 + id="text3559"><tspan 247.431 + style="fill:black;fill-opacity:1" 247.432 + id="tspan3561" 247.433 + sodipodi:role="line" 247.434 + x="196.71785" 247.435 + y="380.17593">Revision data (delta or snapshot)</tspan></text> 247.436 + </g> 247.437 + </g> 247.438 + <g 247.439 + id="g4868" 247.440 + transform="translate(-1.676208,-2.342463e-5)"> 247.441 + <rect 247.442 + style="fill:url(#linearGradient3708);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.443 + id="rect3567" 247.444 + width="101.60232" 247.445 + height="89.506805" 247.446 + x="213.26137" 247.447 + y="59.171272" /> 247.448 + <g 247.449 + transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01734)" 247.450 + id="g3573"> 247.451 + <rect 247.452 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.453 + id="rect3575" 247.454 + width="103.14286" 247.455 + height="48.571426" 247.456 + x="188.6071" 247.457 + y="447.72418" /> 247.458 + <text 247.459 + xml:space="preserve" 247.460 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.461 + x="197.82495" 247.462 + y="464.82358" 247.463 + id="text3577"><tspan 247.464 + id="tspan3579" 247.465 + sodipodi:role="line" 247.466 + x="197.82495" 247.467 + y="464.82358">First parent</tspan></text> 247.468 + <text 247.469 + xml:space="preserve" 247.470 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.471 + x="197.13031" 247.472 + y="485.51224" 247.473 + id="text3581"><tspan 247.474 + sodipodi:role="line" 247.475 + id="tspan3583" 247.476 + x="197.13031" 247.477 + y="485.51224" 247.478 + style="font-family:Courier">34b8b7a15ea1</tspan></text> 247.479 + </g> 247.480 + <g 247.481 + transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01734)" 247.482 + id="g3585"> 247.483 + <rect 247.484 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.485 + id="rect3587" 247.486 + width="103.14286" 247.487 + height="48.571426" 247.488 + x="299.67859" 247.489 + y="447.71451" /> 247.490 + <text 247.491 + xml:space="preserve" 247.492 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.493 + x="308.89639" 247.494 + y="464.8139" 247.495 + id="text3589"><tspan 247.496 + id="tspan3591" 247.497 + sodipodi:role="line" 247.498 + x="308.89639" 247.499 + y="464.8139">Second parent</tspan></text> 247.500 + <text 247.501 + xml:space="preserve" 247.502 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.503 + x="308.20175" 247.504 + y="485.50256" 247.505 + id="text3593"><tspan 247.506 + sodipodi:role="line" 247.507 + id="tspan3595" 247.508 + x="308.20175" 247.509 + y="485.50256" 247.510 + style="font-family:Courier">000000000000</tspan></text> 247.511 + </g> 247.512 + <g 247.513 + transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01733)" 247.514 + id="g3597"> 247.515 + <rect 247.516 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.517 + id="rect3599" 247.518 + width="103.14286" 247.519 + height="48.571426" 247.520 + x="188.6071" 247.521 + y="311.28598" /> 247.522 + <text 247.523 + xml:space="preserve" 247.524 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.525 + x="197.82495" 247.526 + y="328.38538" 247.527 + id="text3601"><tspan 247.528 + id="tspan3603" 247.529 + sodipodi:role="line" 247.530 + x="197.82495" 247.531 + y="328.38538">Revision hash</tspan></text> 247.532 + <text 247.533 + xml:space="preserve" 247.534 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.535 + x="197.13031" 247.536 + y="349.07404" 247.537 + id="text3605"><tspan 247.538 + sodipodi:role="line" 247.539 + id="tspan3607" 247.540 + x="197.13031" 247.541 + y="349.07404" 247.542 + style="font-family:Courier">1b67dc96f27a</tspan></text> 247.543 + </g> 247.544 + <g 247.545 + transform="matrix(0.423343,0,0,0.423343,139.3426,-65.65866)" 247.546 + id="g3609"> 247.547 + <rect 247.548 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.549 + id="rect3611" 247.550 + width="213.85715" 247.551 + height="75" 247.552 + x="187.5" 247.553 + y="363.07654" /> 247.554 + <text 247.555 + xml:space="preserve" 247.556 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.557 + x="196.02321" 247.558 + y="400.86459" 247.559 + id="text3613"><tspan 247.560 + sodipodi:role="line" 247.561 + id="tspan3615" 247.562 + x="196.02321" 247.563 + y="400.86459" 247.564 + style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 247.565 + <text 247.566 + xml:space="preserve" 247.567 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.568 + x="196.71785" 247.569 + y="380.17593" 247.570 + id="text3617"><tspan 247.571 + style="fill:black;fill-opacity:1" 247.572 + id="tspan3619" 247.573 + sodipodi:role="line" 247.574 + x="196.71785" 247.575 + y="380.17593">Revision data (delta or snapshot)</tspan></text> 247.576 + </g> 247.577 + </g> 247.578 + <path 247.579 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)" 247.580 + d="M 240.78255,143.08593 L 241.42595,171.75349" 247.581 + id="path3801" 247.582 + inkscape:connector-type="polyline" 247.583 + inkscape:connection-start="#g3573" 247.584 + inkscape:connection-end="#g3250" /> 247.585 + <g 247.586 + id="g5677"> 247.587 + <rect 247.588 + style="fill:url(#linearGradient5784);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.589 + id="rect3393" 247.590 + width="101.60232" 247.591 + height="89.506805" 247.592 + x="150.76137" 247.593 + y="278.32565" /> 247.594 + <g 247.595 + transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 247.596 + id="g3399"> 247.597 + <rect 247.598 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.599 + id="rect3401" 247.600 + width="103.14286" 247.601 + height="48.571426" 247.602 + x="188.6071" 247.603 + y="447.72418" /> 247.604 + <text 247.605 + xml:space="preserve" 247.606 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.607 + x="197.82495" 247.608 + y="464.82358" 247.609 + id="text3403"><tspan 247.610 + id="tspan3405" 247.611 + sodipodi:role="line" 247.612 + x="197.82495" 247.613 + y="464.82358">First parent</tspan></text> 247.614 + <text 247.615 + xml:space="preserve" 247.616 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.617 + x="197.13031" 247.618 + y="485.51224" 247.619 + id="text3407"><tspan 247.620 + sodipodi:role="line" 247.621 + id="tspan3409" 247.622 + x="197.13031" 247.623 + y="485.51224" 247.624 + style="font-family:Courier">ff9dc8bc2a8b</tspan></text> 247.625 + </g> 247.626 + <g 247.627 + transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 247.628 + id="g3411"> 247.629 + <rect 247.630 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.631 + id="rect3413" 247.632 + width="103.14286" 247.633 + height="48.571426" 247.634 + x="299.67859" 247.635 + y="447.71451" /> 247.636 + <text 247.637 + xml:space="preserve" 247.638 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.639 + x="308.89639" 247.640 + y="464.8139" 247.641 + id="text3415"><tspan 247.642 + id="tspan3417" 247.643 + sodipodi:role="line" 247.644 + x="308.89639" 247.645 + y="464.8139">Second parent</tspan></text> 247.646 + <text 247.647 + xml:space="preserve" 247.648 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.649 + x="308.20175" 247.650 + y="485.50256" 247.651 + id="text3419"><tspan 247.652 + sodipodi:role="line" 247.653 + id="tspan3421" 247.654 + x="308.20175" 247.655 + y="485.50256" 247.656 + style="font-family:Courier">000000000000</tspan></text> 247.657 + </g> 247.658 + <g 247.659 + transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 247.660 + id="g3423"> 247.661 + <rect 247.662 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.663 + id="rect3425" 247.664 + width="103.14286" 247.665 + height="48.571426" 247.666 + x="188.6071" 247.667 + y="311.28598" /> 247.668 + <text 247.669 + xml:space="preserve" 247.670 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.671 + x="197.82495" 247.672 + y="328.38538" 247.673 + id="text3427"><tspan 247.674 + id="tspan3429" 247.675 + sodipodi:role="line" 247.676 + x="197.82495" 247.677 + y="328.38538">Revision hash</tspan></text> 247.678 + <text 247.679 + xml:space="preserve" 247.680 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.681 + x="197.13031" 247.682 + y="349.07404" 247.683 + id="text3431"><tspan 247.684 + sodipodi:role="line" 247.685 + id="tspan3433" 247.686 + x="197.13031" 247.687 + y="349.07404" 247.688 + style="font-family:Courier">5b80c922ebdd</tspan></text> 247.689 + </g> 247.690 + <g 247.691 + transform="matrix(0.423343,0,0,0.423343,76.84265,153.4957)" 247.692 + id="g3435"> 247.693 + <rect 247.694 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.695 + id="rect3437" 247.696 + width="213.85715" 247.697 + height="75" 247.698 + x="187.5" 247.699 + y="363.07654" /> 247.700 + <text 247.701 + xml:space="preserve" 247.702 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.703 + x="196.02321" 247.704 + y="400.86459" 247.705 + id="text3439"><tspan 247.706 + sodipodi:role="line" 247.707 + id="tspan3441" 247.708 + x="196.02321" 247.709 + y="400.86459" 247.710 + style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 247.711 + <text 247.712 + xml:space="preserve" 247.713 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.714 + x="196.71785" 247.715 + y="380.17593" 247.716 + id="text3443"><tspan 247.717 + style="fill:black;fill-opacity:1" 247.718 + id="tspan3445" 247.719 + sodipodi:role="line" 247.720 + x="196.71785" 247.721 + y="380.17593">Revision data (delta or snapshot)</tspan></text> 247.722 + </g> 247.723 + </g> 247.724 + <g 247.725 + id="g5646" 247.726 + transform="translate(-0.227432,0)"> 247.727 + <rect 247.728 + style="fill:url(#linearGradient5786);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.729 + id="rect3451" 247.730 + width="101.60232" 247.731 + height="89.506805" 247.732 + x="272.63638" 247.733 + y="278.32565" /> 247.734 + <g 247.735 + transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)" 247.736 + id="g3457"> 247.737 + <rect 247.738 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.739 + id="rect3459" 247.740 + width="103.14286" 247.741 + height="48.571426" 247.742 + x="188.6071" 247.743 + y="447.72418" /> 247.744 + <text 247.745 + xml:space="preserve" 247.746 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.747 + x="197.82495" 247.748 + y="464.82358" 247.749 + id="text3461"><tspan 247.750 + id="tspan3463" 247.751 + sodipodi:role="line" 247.752 + x="197.82495" 247.753 + y="464.82358">First parent</tspan></text> 247.754 + <text 247.755 + xml:space="preserve" 247.756 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.757 + x="197.13031" 247.758 + y="485.51224" 247.759 + id="text3465"><tspan 247.760 + sodipodi:role="line" 247.761 + id="tspan3467" 247.762 + x="197.13031" 247.763 + y="485.51224" 247.764 + style="font-family:Courier">ecacb6b4c9fd</tspan></text> 247.765 + </g> 247.766 + <g 247.767 + transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)" 247.768 + id="g3469"> 247.769 + <rect 247.770 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.771 + id="rect3471" 247.772 + width="103.14286" 247.773 + height="48.571426" 247.774 + x="299.67859" 247.775 + y="447.71451" /> 247.776 + <text 247.777 + xml:space="preserve" 247.778 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.779 + x="308.89639" 247.780 + y="464.8139" 247.781 + id="text3473"><tspan 247.782 + id="tspan3475" 247.783 + sodipodi:role="line" 247.784 + x="308.89639" 247.785 + y="464.8139">Second parent</tspan></text> 247.786 + <text 247.787 + xml:space="preserve" 247.788 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.789 + x="308.20175" 247.790 + y="485.50256" 247.791 + id="text3477"><tspan 247.792 + sodipodi:role="line" 247.793 + id="tspan3479" 247.794 + x="308.20175" 247.795 + y="485.50256" 247.796 + style="font-family:Courier">000000000000</tspan></text> 247.797 + </g> 247.798 + <g 247.799 + transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)" 247.800 + id="g3481"> 247.801 + <rect 247.802 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.803 + id="rect3483" 247.804 + width="103.14286" 247.805 + height="48.571426" 247.806 + x="188.6071" 247.807 + y="311.28598" /> 247.808 + <text 247.809 + xml:space="preserve" 247.810 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.811 + x="197.82495" 247.812 + y="328.38538" 247.813 + id="text3485"><tspan 247.814 + id="tspan3487" 247.815 + sodipodi:role="line" 247.816 + x="197.82495" 247.817 + y="328.38538">Revision hash</tspan></text> 247.818 + <text 247.819 + xml:space="preserve" 247.820 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.821 + x="197.13031" 247.822 + y="349.07404" 247.823 + id="text3489"><tspan 247.824 + sodipodi:role="line" 247.825 + id="tspan3491" 247.826 + x="197.13031" 247.827 + y="349.07404" 247.828 + style="font-family:Courier">32bf9a5f22c0</tspan></text> 247.829 + </g> 247.830 + <g 247.831 + transform="matrix(0.423343,0,0,0.423343,198.7176,153.4957)" 247.832 + id="g3493"> 247.833 + <rect 247.834 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.835 + id="rect3495" 247.836 + width="213.85715" 247.837 + height="75" 247.838 + x="187.5" 247.839 + y="363.07654" /> 247.840 + <text 247.841 + xml:space="preserve" 247.842 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.843 + x="196.02321" 247.844 + y="400.86459" 247.845 + id="text3497"><tspan 247.846 + sodipodi:role="line" 247.847 + id="tspan3499" 247.848 + x="196.02321" 247.849 + y="400.86459" 247.850 + style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 247.851 + <text 247.852 + xml:space="preserve" 247.853 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.854 + x="196.71785" 247.855 + y="380.17593" 247.856 + id="text3501"><tspan 247.857 + style="fill:black;fill-opacity:1" 247.858 + id="tspan3503" 247.859 + sodipodi:role="line" 247.860 + x="196.71785" 247.861 + y="380.17593">Revision data (delta or snapshot)</tspan></text> 247.862 + </g> 247.863 + </g> 247.864 + <rect 247.865 + y="387.90286" 247.866 + x="272.40894" 247.867 + height="89.506805" 247.868 + width="101.60232" 247.869 + id="rect5081" 247.870 + style="fill:url(#linearGradient5895);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 247.871 + <g 247.872 + id="g5087" 247.873 + transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)"> 247.874 + <rect 247.875 + y="447.72418" 247.876 + x="188.6071" 247.877 + height="48.571426" 247.878 + width="103.14286" 247.879 + id="rect5089" 247.880 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 247.881 + <text 247.882 + id="text5091" 247.883 + y="464.82358" 247.884 + x="197.82495" 247.885 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.886 + xml:space="preserve"><tspan 247.887 + y="464.82358" 247.888 + x="197.82495" 247.889 + sodipodi:role="line" 247.890 + id="tspan5093">First parent</tspan></text> 247.891 + <text 247.892 + id="text5095" 247.893 + y="485.51224" 247.894 + x="197.13031" 247.895 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.896 + xml:space="preserve"><tspan 247.897 + style="font-family:Courier" 247.898 + y="485.51224" 247.899 + x="197.13031" 247.900 + id="tspan5097" 247.901 + sodipodi:role="line">ff9dc8bc2a8b</tspan></text> 247.902 + </g> 247.903 + <g 247.904 + id="g5099" 247.905 + transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)"> 247.906 + <rect 247.907 + y="447.71451" 247.908 + x="299.67859" 247.909 + height="48.571426" 247.910 + width="103.14286" 247.911 + id="rect5101" 247.912 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 247.913 + <text 247.914 + id="text5103" 247.915 + y="464.8139" 247.916 + x="308.89639" 247.917 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.918 + xml:space="preserve"><tspan 247.919 + y="464.8139" 247.920 + x="308.89639" 247.921 + sodipodi:role="line" 247.922 + id="tspan5105">Second parent</tspan></text> 247.923 + <text 247.924 + id="text5107" 247.925 + y="485.50256" 247.926 + x="308.20175" 247.927 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.928 + xml:space="preserve"><tspan 247.929 + style="font-family:Courier" 247.930 + y="485.50256" 247.931 + x="308.20175" 247.932 + id="tspan5109" 247.933 + sodipodi:role="line">000000000000</tspan></text> 247.934 + </g> 247.935 + <g 247.936 + id="g5111" 247.937 + transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)"> 247.938 + <rect 247.939 + y="311.28598" 247.940 + x="188.6071" 247.941 + height="48.571426" 247.942 + width="103.14286" 247.943 + id="rect5113" 247.944 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 247.945 + <text 247.946 + id="text5115" 247.947 + y="328.38538" 247.948 + x="197.82495" 247.949 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.950 + xml:space="preserve"><tspan 247.951 + y="328.38538" 247.952 + x="197.82495" 247.953 + sodipodi:role="line" 247.954 + id="tspan5117">Revision hash</tspan></text> 247.955 + <text 247.956 + id="text5119" 247.957 + y="349.07404" 247.958 + x="197.13031" 247.959 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.960 + xml:space="preserve"><tspan 247.961 + style="font-family:Courier" 247.962 + y="349.07404" 247.963 + x="197.13031" 247.964 + id="tspan5121" 247.965 + sodipodi:role="line">ecacb6b4c9fd</tspan></text> 247.966 + </g> 247.967 + <g 247.968 + id="g5123" 247.969 + transform="matrix(0.423343,0,0,0.423343,198.4901,263.0729)"> 247.970 + <rect 247.971 + y="363.07654" 247.972 + x="187.5" 247.973 + height="75" 247.974 + width="213.85715" 247.975 + id="rect5125" 247.976 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 247.977 + <text 247.978 + id="text5127" 247.979 + y="400.86459" 247.980 + x="196.02321" 247.981 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.982 + xml:space="preserve"><tspan 247.983 + style="fill:black;fill-opacity:1;font-family:Courier" 247.984 + y="400.86459" 247.985 + x="196.02321" 247.986 + id="tspan5129" 247.987 + sodipodi:role="line">...</tspan></text> 247.988 + <text 247.989 + id="text5131" 247.990 + y="380.17593" 247.991 + x="196.71785" 247.992 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.993 + xml:space="preserve"><tspan 247.994 + y="380.17593" 247.995 + x="196.71785" 247.996 + sodipodi:role="line" 247.997 + id="tspan5133" 247.998 + style="fill:black;fill-opacity:1">Revision data (delta or snapshot)</tspan></text> 247.999 + </g> 247.1000 + <path 247.1001 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 247.1002 + d="M 299.69935,362.24027 L 299.69931,393.49494" 247.1003 + id="path5203" 247.1004 + inkscape:connector-type="polyline" 247.1005 + inkscape:connection-start="#g3457" 247.1006 + inkscape:connection-end="#g5111" /> 247.1007 + <path 247.1008 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 247.1009 + d="M 182.35357,362.22647 L 241.2842,503.07224" 247.1010 + id="path5271" 247.1011 + inkscape:connector-type="polyline" 247.1012 + inkscape:connection-start="#g3399" 247.1013 + inkscape:connection-end="#g3539" /> 247.1014 + <path 247.1015 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 247.1016 + d="M 287.63109,471.81747 L 250.9438,503.07223" 247.1017 + id="path5285" 247.1018 + inkscape:connector-type="polyline" 247.1019 + inkscape:connection-start="#g5087" 247.1020 + inkscape:connection-end="#g3539" /> 247.1021 + <path 247.1022 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 247.1023 + d="M 290.80419,250.07192 L 297.80065,283.90394" 247.1024 + id="path5077" 247.1025 + inkscape:connector-type="polyline" 247.1026 + inkscape:connection-start="#g3215" 247.1027 + inkscape:connection-end="#g3481" /> 247.1028 + <path 247.1029 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 247.1030 + d="M 229.63373,250.07601 L 190.07484,283.90394" 247.1031 + id="path5075" 247.1032 + inkscape:connector-type="polyline" 247.1033 + inkscape:connection-end="#g3423" /> 247.1034 + <text 247.1035 + xml:space="preserve" 247.1036 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.1037 + x="131.5625" 247.1038 + y="100.79968" 247.1039 + id="text5897"><tspan 247.1040 + sodipodi:role="line" 247.1041 + id="tspan5899" 247.1042 + x="131.5625" 247.1043 + y="100.79968" 247.1044 + style="text-align:end;text-anchor:end">Head revision</tspan><tspan 247.1045 + sodipodi:role="line" 247.1046 + x="131.5625" 247.1047 + y="115.79968" 247.1048 + id="tspan5901" 247.1049 + style="text-align:end;text-anchor:end">(no children)</tspan></text> 247.1050 + <text 247.1051 + xml:space="preserve" 247.1052 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.1053 + x="131.5625" 247.1054 + y="207.04968" 247.1055 + id="text5903"><tspan 247.1056 + sodipodi:role="line" 247.1057 + id="tspan5905" 247.1058 + x="131.5625" 247.1059 + y="207.04968" 247.1060 + style="text-align:end;text-anchor:end">Merge revision</tspan><tspan 247.1061 + sodipodi:role="line" 247.1062 + x="131.5625" 247.1063 + y="222.04968" 247.1064 + id="tspan5907" 247.1065 + style="text-align:end;text-anchor:end">(two parents)</tspan></text> 247.1066 + <text 247.1067 + xml:space="preserve" 247.1068 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.1069 + x="131.92578" 247.1070 + y="451.58093" 247.1071 + id="text5909"><tspan 247.1072 + sodipodi:role="line" 247.1073 + id="tspan5911" 247.1074 + x="131.92578" 247.1075 + y="451.58093" 247.1076 + style="text-align:end;text-anchor:end">Branches</tspan><tspan 247.1077 + sodipodi:role="line" 247.1078 + x="131.92578" 247.1079 + y="466.58093" 247.1080 + id="tspan5913" 247.1081 + style="text-align:end;text-anchor:end">(two revisions,</tspan><tspan 247.1082 + sodipodi:role="line" 247.1083 + x="131.92578" 247.1084 + y="481.58093" 247.1085 + id="tspan5915" 247.1086 + style="text-align:end;text-anchor:end">same parent)</tspan></text> 247.1087 + <path 247.1088 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 247.1089 + d="M 111.71875,433.61218 L 154.7268,368.52294" 247.1090 + id="path5917" 247.1091 + inkscape:connector-type="polyline" /> 247.1092 + <path 247.1093 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 247.1094 + d="M 134.375,464.86218 L 277.86691,440.37816" 247.1095 + id="path5919" 247.1096 + inkscape:connector-type="polyline" 247.1097 + inkscape:connection-end="#g5123" /> 247.1098 + <text 247.1099 + xml:space="preserve" 247.1100 + style="font-size:12px;font-style:normal;font-weight:normal;text-align:end;text-anchor:end;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.1101 + x="131.5625" 247.1102 + y="536.73718" 247.1103 + id="text5927"><tspan 247.1104 + sodipodi:role="line" 247.1105 + id="tspan5929" 247.1106 + x="131.5625" 247.1107 + y="536.73718">First revision</tspan><tspan 247.1108 + sodipodi:role="line" 247.1109 + x="131.5625" 247.1110 + y="551.73718" 247.1111 + id="tspan5931">(both parents null)</tspan></text> 247.1112 + <rect 247.1113 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 247.1114 + id="rect2830" 247.1115 + width="43.664806" 247.1116 + height="20.562374" 247.1117 + x="217.0432" 247.1118 + y="232.10075" /> 247.1119 + <text 247.1120 + xml:space="preserve" 247.1121 + style="font-size:5.0801158px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.1122 + x="220.94551" 247.1123 + y="239.33966" 247.1124 + id="text2832"><tspan 247.1125 + id="tspan2836" 247.1126 + sodipodi:role="line" 247.1127 + x="220.94551" 247.1128 + y="239.33966">First parent</tspan></text> 247.1129 + <text 247.1130 + xml:space="preserve" 247.1131 + style="font-size:5.0801158px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 247.1132 + x="220.65144" 247.1133 + y="248.09805" 247.1134 + id="text2879"><tspan 247.1135 + sodipodi:role="line" 247.1136 + id="tspan2881" 247.1137 + x="220.65144" 247.1138 + y="248.09805" 247.1139 + style="font-family:Courier">5b80c922ebdd</tspan></text> 247.1140 + <path 247.1141 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 247.1142 + d="M 139.84375,107.83093 L 210.15625,107.83093" 247.1143 + id="path5965" 247.1144 + inkscape:connector-type="polyline" /> 247.1145 + <path 247.1146 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 247.1147 + d="M 137.5,213.29968 L 210.49036,214.09055" 247.1148 + id="path5967" 247.1149 + inkscape:connector-type="polyline" /> 247.1150 + <path 247.1151 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 247.1152 + d="M 136.34375,544.54968 L 206.65625,544.54968" 247.1153 + id="path5969" 247.1154 + inkscape:connector-type="polyline" 247.1155 + inkscape:transform-center-y="-171.09375" 247.1156 + inkscape:transform-center-x="53.90625" /> 247.1157 + </g> 247.1158 +</svg>
248.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 248.2 +++ b/en/figs/snapshot.svg Mon Mar 30 16:23:33 2009 +0800 248.3 @@ -0,0 +1,202 @@ 248.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 248.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 248.6 +<svg 248.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 248.8 + xmlns:cc="http://web.resource.org/cc/" 248.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 248.10 + xmlns:svg="http://www.w3.org/2000/svg" 248.11 + xmlns="http://www.w3.org/2000/svg" 248.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 248.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 248.14 + width="744.09448819" 248.15 + height="1052.3622047" 248.16 + id="svg2807" 248.17 + sodipodi:version="0.32" 248.18 + inkscape:version="0.44.1" 248.19 + sodipodi:docbase="/home/bos/hg/hgbook/en" 248.20 + sodipodi:docname="snapshots.svg"> 248.21 + <defs 248.22 + id="defs2809" /> 248.23 + <sodipodi:namedview 248.24 + id="base" 248.25 + pagecolor="#ffffff" 248.26 + bordercolor="#666666" 248.27 + borderopacity="1.0" 248.28 + gridtolerance="10000" 248.29 + guidetolerance="10" 248.30 + objecttolerance="10" 248.31 + inkscape:pageopacity="0.0" 248.32 + inkscape:pageshadow="2" 248.33 + inkscape:zoom="1.4" 248.34 + inkscape:cx="252.04111" 248.35 + inkscape:cy="605.75448" 248.36 + inkscape:document-units="px" 248.37 + inkscape:current-layer="layer1" 248.38 + inkscape:window-width="906" 248.39 + inkscape:window-height="721" 248.40 + inkscape:window-x="0" 248.41 + inkscape:window-y="25" /> 248.42 + <metadata 248.43 + id="metadata2812"> 248.44 + <rdf:RDF> 248.45 + <cc:Work 248.46 + rdf:about=""> 248.47 + <dc:format>image/svg+xml</dc:format> 248.48 + <dc:type 248.49 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 248.50 + </cc:Work> 248.51 + </rdf:RDF> 248.52 + </metadata> 248.53 + <g 248.54 + inkscape:label="Layer 1" 248.55 + inkscape:groupmode="layer" 248.56 + id="layer1"> 248.57 + <rect 248.58 + style="opacity:1;fill:#d3ceff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.88795626;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 248.59 + id="rect2817" 248.60 + width="118.18347" 248.61 + height="245.32632" 248.62 + x="243.05112" 248.63 + y="315.4133" 248.64 + inkscape:transform-center-x="136.84403" 248.65 + inkscape:transform-center-y="-66.529183" /> 248.66 + <rect 248.67 + y="315.04153" 248.68 + x="46.965065" 248.69 + height="97.803009" 248.70 + width="108.92702" 248.71 + id="rect2815" 248.72 + style="fill:#ffced6;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.14441991;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 248.73 + <g 248.74 + id="g3814"> 248.75 + <rect 248.76 + y="348.94302" 248.77 + x="59.285713" 248.78 + height="30" 248.79 + width="84.285713" 248.80 + id="rect2819" 248.81 + style="fill:#ff6e86;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 248.82 + ry="0" /> 248.83 + <text 248.84 + id="text2821" 248.85 + y="368.02701" 248.86 + x="72.717636" 248.87 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 248.88 + xml:space="preserve"><tspan 248.89 + y="368.02701" 248.90 + x="72.717636" 248.91 + id="tspan2823" 248.92 + sodipodi:role="line">Index, rev 7</tspan></text> 248.93 + </g> 248.94 + <text 248.95 + id="text3722" 248.96 + y="301.29074" 248.97 + x="46.187778" 248.98 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 248.99 + xml:space="preserve"><tspan 248.100 + y="301.29074" 248.101 + x="46.187778" 248.102 + id="tspan3724" 248.103 + sodipodi:role="line">Revlog index (.i file)</tspan></text> 248.104 + <text 248.105 + id="text3726" 248.106 + y="301.29074" 248.107 + x="241.90207" 248.108 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 248.109 + xml:space="preserve"><tspan 248.110 + y="301.29074" 248.111 + x="241.90207" 248.112 + id="tspan3728" 248.113 + sodipodi:role="line">Revlog data (.d file)</tspan></text> 248.114 + <path 248.115 + style="fill:#c695ff;fill-opacity:0.60109288;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 248.116 + d="M 143.57143,348.07647 L 255,368.07646 L 255.71429,544.50504 L 142.85714,379.50504 L 143.57143,348.07647 z " 248.117 + id="path3839" 248.118 + sodipodi:nodetypes="ccccc" /> 248.119 + <rect 248.120 + style="fill:#4733ff;fill-opacity:1;stroke:#a7a7a7;stroke-width:2.35124183;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 248.121 + id="rect3752" 248.122 + width="92.720184" 248.123 + height="67.005905" 248.124 + x="255.42564" 248.125 + y="368.64264" /> 248.126 + <text 248.127 + xml:space="preserve" 248.128 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 248.129 + x="264.45859" 248.130 + y="387.30099" 248.131 + id="text3754"><tspan 248.132 + sodipodi:role="line" 248.133 + id="tspan3756" 248.134 + x="264.45859" 248.135 + y="387.30099">Snapshot, rev 4</tspan></text> 248.136 + <rect 248.137 + style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 248.138 + id="rect3761" 248.139 + width="93.49366" 248.140 + height="29.922237" 248.141 + x="255.03891" 248.142 + y="442.04395" /> 248.143 + <text 248.144 + xml:space="preserve" 248.145 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 248.146 + x="263.2662" 248.147 + y="460.17206" 248.148 + id="text3763"><tspan 248.149 + sodipodi:role="line" 248.150 + id="tspan3765" 248.151 + x="263.2662" 248.152 + y="460.17206">Delta, rev 4 to 5</tspan></text> 248.153 + <rect 248.154 + style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 248.155 + id="rect3774" 248.156 + width="93.49366" 248.157 + height="29.922237" 248.158 + x="255.03891" 248.159 + y="477.97485" /> 248.160 + <text 248.161 + xml:space="preserve" 248.162 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 248.163 + x="263.2662" 248.164 + y="496.10297" 248.165 + id="text3776"><tspan 248.166 + sodipodi:role="line" 248.167 + id="tspan3778" 248.168 + x="263.2662" 248.169 + y="496.10297">Delta, rev 5 to 6</tspan></text> 248.170 + <rect 248.171 + style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 248.172 + id="rect3782" 248.173 + width="93.49366" 248.174 + height="29.922237" 248.175 + x="255.03891" 248.176 + y="513.90576" /> 248.177 + <text 248.178 + xml:space="preserve" 248.179 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 248.180 + x="263.2662" 248.181 + y="532.03387" 248.182 + id="text3784"><tspan 248.183 + sodipodi:role="line" 248.184 + id="tspan3786" 248.185 + x="263.2662" 248.186 + y="532.03387">Delta, rev 6 to 7</tspan></text> 248.187 + <rect 248.188 + style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 248.189 + id="rect3889" 248.190 + width="93.49366" 248.191 + height="29.922237" 248.192 + x="255.03891" 248.193 + y="332.32489" /> 248.194 + <text 248.195 + xml:space="preserve" 248.196 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 248.197 + x="263.2662" 248.198 + y="350.453" 248.199 + id="text3891"><tspan 248.200 + sodipodi:role="line" 248.201 + id="tspan3893" 248.202 + x="263.2662" 248.203 + y="350.453">Delta, rev 2 to 3</tspan></text> 248.204 + </g> 248.205 +</svg>
249.1 Binary file en/figs/throbber.gif has changed
250.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 250.2 +++ b/en/figs/tour-history.svg Mon Mar 30 16:23:33 2009 +0800 250.3 @@ -0,0 +1,289 @@ 250.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 250.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 250.6 +<svg 250.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 250.8 + xmlns:cc="http://web.resource.org/cc/" 250.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 250.10 + xmlns:svg="http://www.w3.org/2000/svg" 250.11 + xmlns="http://www.w3.org/2000/svg" 250.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 250.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 250.14 + width="744.09448819" 250.15 + height="1052.3622047" 250.16 + id="svg2" 250.17 + sodipodi:version="0.32" 250.18 + inkscape:version="0.44.1" 250.19 + sodipodi:docname="tour-history.svg"> 250.20 + <defs 250.21 + id="defs4"> 250.22 + <marker 250.23 + inkscape:stockid="Arrow1Mstart" 250.24 + orient="auto" 250.25 + refY="0.0" 250.26 + refX="0.0" 250.27 + id="Arrow1Mstart" 250.28 + style="overflow:visible"> 250.29 + <path 250.30 + id="path2973" 250.31 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 250.32 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 250.33 + transform="scale(0.4) translate(10,0)" /> 250.34 + </marker> 250.35 + <marker 250.36 + inkscape:stockid="Arrow1Mend" 250.37 + orient="auto" 250.38 + refY="0.0" 250.39 + refX="0.0" 250.40 + id="Arrow1Mend" 250.41 + style="overflow:visible;"> 250.42 + <path 250.43 + id="path3066" 250.44 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 250.45 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 250.46 + transform="scale(0.4) rotate(180) translate(10,0)" /> 250.47 + </marker> 250.48 + </defs> 250.49 + <sodipodi:namedview 250.50 + id="base" 250.51 + pagecolor="#ffffff" 250.52 + bordercolor="#666666" 250.53 + borderopacity="1.0" 250.54 + gridtolerance="10000" 250.55 + guidetolerance="10" 250.56 + objecttolerance="10" 250.57 + inkscape:pageopacity="0.0" 250.58 + inkscape:pageshadow="2" 250.59 + inkscape:zoom="1.4" 250.60 + inkscape:cx="232.14286" 250.61 + inkscape:cy="672.75296" 250.62 + inkscape:document-units="px" 250.63 + inkscape:current-layer="layer1" 250.64 + inkscape:window-width="906" 250.65 + inkscape:window-height="620" 250.66 + inkscape:window-x="5" 250.67 + inkscape:window-y="49" /> 250.68 + <metadata 250.69 + id="metadata7"> 250.70 + <rdf:RDF> 250.71 + <cc:Work 250.72 + rdf:about=""> 250.73 + <dc:format>image/svg+xml</dc:format> 250.74 + <dc:type 250.75 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 250.76 + </cc:Work> 250.77 + </rdf:RDF> 250.78 + </metadata> 250.79 + <g 250.80 + inkscape:label="Layer 1" 250.81 + inkscape:groupmode="layer" 250.82 + id="layer1"> 250.83 + <rect 250.84 + style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 250.85 + id="rect1878" 250.86 + width="94.285713" 250.87 + height="20.714285" 250.88 + x="138" 250.89 + y="479.50504" /> 250.90 + <text 250.91 + xml:space="preserve" 250.92 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 250.93 + x="162.09892" 250.94 + y="493.12619" 250.95 + id="text1872"><tspan 250.96 + sodipodi:role="line" 250.97 + id="tspan1874" 250.98 + x="162.09892" 250.99 + y="493.12619" 250.100 + style="font-family:Courier"><tspan 250.101 + style="font-weight:bold" 250.102 + id="tspan1876">0</tspan>: REV0</tspan></text> 250.103 + <rect 250.104 + style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 250.105 + id="rect2800" 250.106 + width="94.285713" 250.107 + height="20.714285" 250.108 + x="138" 250.109 + y="432.63004" /> 250.110 + <text 250.111 + xml:space="preserve" 250.112 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 250.113 + x="162.09892" 250.114 + y="446.25119" 250.115 + id="text2794"><tspan 250.116 + sodipodi:role="line" 250.117 + id="tspan2796" 250.118 + x="162.09892" 250.119 + y="446.25119" 250.120 + style="font-family:Courier"><tspan 250.121 + id="tspan2868" 250.122 + style="font-weight:bold">1</tspan>: REV1</tspan></text> 250.123 + <rect 250.124 + style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 250.125 + id="rect2810" 250.126 + width="94.285713" 250.127 + height="20.714285" 250.128 + x="138" 250.129 + y="385.75504" /> 250.130 + <text 250.131 + xml:space="preserve" 250.132 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 250.133 + x="162.09892" 250.134 + y="399.37619" 250.135 + id="text2804"><tspan 250.136 + sodipodi:role="line" 250.137 + id="tspan2806" 250.138 + x="162.09892" 250.139 + y="399.37619" 250.140 + style="font-family:Courier"><tspan 250.141 + style="font-weight:bold" 250.142 + id="tspan2866">2</tspan>: REV2</tspan></text> 250.143 + <rect 250.144 + style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 250.145 + id="rect2820" 250.146 + width="94.285713" 250.147 + height="20.714285" 250.148 + x="138" 250.149 + y="338.88007" /> 250.150 + <text 250.151 + xml:space="preserve" 250.152 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 250.153 + x="162.09892" 250.154 + y="352.50122" 250.155 + id="text2814"><tspan 250.156 + sodipodi:role="line" 250.157 + id="tspan2816" 250.158 + x="162.09892" 250.159 + y="352.50122" 250.160 + style="font-family:Courier"><tspan 250.161 + style="font-weight:bold" 250.162 + id="tspan2864">3</tspan>: REV3</tspan></text> 250.163 + <rect 250.164 + style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 250.165 + id="rect2830" 250.166 + width="94.285713" 250.167 + height="20.714285" 250.168 + x="138" 250.169 + y="292.00504" /> 250.170 + <text 250.171 + xml:space="preserve" 250.172 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 250.173 + x="162.09892" 250.174 + y="305.62619" 250.175 + id="text2824"><tspan 250.176 + sodipodi:role="line" 250.177 + id="tspan2826" 250.178 + x="162.09892" 250.179 + y="305.62619" 250.180 + style="font-family:Courier"><tspan 250.181 + style="font-weight:bold" 250.182 + id="tspan2862">4</tspan>: REV4</tspan></text> 250.183 + <text 250.184 + xml:space="preserve" 250.185 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 250.186 + x="173.57143" 250.187 + y="443.79074" 250.188 + id="text2832"><tspan 250.189 + sodipodi:role="line" 250.190 + id="tspan2834" 250.191 + x="173.57143" 250.192 + y="443.79074" /></text> 250.193 + <path 250.194 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 250.195 + d="M 185.14286,478.50504 L 185.14286,454.34432" 250.196 + id="path2894" 250.197 + inkscape:connector-type="polyline" /> 250.198 + <path 250.199 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 250.200 + d="M 185.14286,431.63004 L 185.14286,407.46932" 250.201 + id="path2896" 250.202 + inkscape:connector-type="polyline" /> 250.203 + <path 250.204 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 250.205 + d="M 185.14286,384.75504 L 185.14286,360.59435" 250.206 + id="path2898" 250.207 + inkscape:connector-type="polyline" /> 250.208 + <path 250.209 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 250.210 + d="M 185.14286,337.88007 L 185.14286,313.71932" 250.211 + id="path2900" 250.212 + inkscape:connector-type="polyline" /> 250.213 + <text 250.214 + xml:space="preserve" 250.215 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 250.216 + x="244.60992" 250.217 + y="305.245" 250.218 + id="text1902"><tspan 250.219 + sodipodi:role="line" 250.220 + id="tspan1904" 250.221 + x="244.60992" 250.222 + y="305.245">(newest)</tspan></text> 250.223 + <text 250.224 + xml:space="preserve" 250.225 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 250.226 + x="244.60992" 250.227 + y="492.745" 250.228 + id="text1906"><tspan 250.229 + sodipodi:role="line" 250.230 + id="tspan1908" 250.231 + x="244.60992" 250.232 + y="492.745">(oldest)</tspan></text> 250.233 + <rect 250.234 + style="opacity:1;fill:#d2e1e4;fill-opacity:1;stroke:#b1cbd0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 250.235 + id="rect1907" 250.236 + width="94.285713" 250.237 + height="20.714285" 250.238 + x="309.28571" 250.239 + y="324.86218" /> 250.240 + <text 250.241 + xml:space="preserve" 250.242 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 250.243 + x="333.38464" 250.244 + y="338.48334" 250.245 + id="text1909"><tspan 250.246 + sodipodi:role="line" 250.247 + id="tspan1911" 250.248 + x="333.38464" 250.249 + y="338.48334" 250.250 + style="font-family:Courier"><tspan 250.251 + style="font-weight:bold" 250.252 + id="tspan1913">4</tspan>: REV4</tspan></text> 250.253 + <path 250.254 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 250.255 + d="M 332.14286,375.21932 L 335.71429,347.36218" 250.256 + id="path2802" /> 250.257 + <path 250.258 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 250.259 + d="M 372.69968,375.21932 L 369.12825,347.36218" 250.260 + id="path2986" /> 250.261 + <text 250.262 + xml:space="preserve" 250.263 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 250.264 + x="335.14285" 250.265 + y="387.21933" 250.266 + id="text2988"><tspan 250.267 + sodipodi:role="line" 250.268 + x="335.14285" 250.269 + y="387.21933" 250.270 + id="tspan3020" 250.271 + style="text-align:end;text-anchor:end">revision</tspan><tspan 250.272 + sodipodi:role="line" 250.273 + x="335.14285" 250.274 + y="402.21933" 250.275 + id="tspan3014" 250.276 + style="text-align:end;text-anchor:end">number</tspan></text> 250.277 + <text 250.278 + xml:space="preserve" 250.279 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 250.280 + x="368.71429" 250.281 + y="387.21933" 250.282 + id="text2994"><tspan 250.283 + sodipodi:role="line" 250.284 + id="tspan2996" 250.285 + x="368.71429" 250.286 + y="387.21933">changeset</tspan><tspan 250.287 + sodipodi:role="line" 250.288 + x="368.71429" 250.289 + y="402.21933" 250.290 + id="tspan2998">identifier</tspan></text> 250.291 + </g> 250.292 +</svg>
251.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 251.2 +++ b/en/figs/tour-merge-conflict.svg Mon Mar 30 16:23:33 2009 +0800 251.3 @@ -0,0 +1,210 @@ 251.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 251.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 251.6 +<svg 251.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 251.8 + xmlns:cc="http://web.resource.org/cc/" 251.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 251.10 + xmlns:svg="http://www.w3.org/2000/svg" 251.11 + xmlns="http://www.w3.org/2000/svg" 251.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 251.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 251.14 + width="744.09448819" 251.15 + height="1052.3622047" 251.16 + id="svg2" 251.17 + sodipodi:version="0.32" 251.18 + inkscape:version="0.44.1" 251.19 + sodipodi:docname="tour-merge-conflict.svg"> 251.20 + <defs 251.21 + id="defs4"> 251.22 + <marker 251.23 + inkscape:stockid="Arrow1Mend" 251.24 + orient="auto" 251.25 + refY="0.0" 251.26 + refX="0.0" 251.27 + id="Arrow1Mend" 251.28 + style="overflow:visible;"> 251.29 + <path 251.30 + id="path3053" 251.31 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 251.32 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 251.33 + transform="scale(0.4) rotate(180) translate(10,0)" /> 251.34 + </marker> 251.35 + </defs> 251.36 + <sodipodi:namedview 251.37 + id="base" 251.38 + pagecolor="#ffffff" 251.39 + bordercolor="#666666" 251.40 + borderopacity="1.0" 251.41 + gridtolerance="10000" 251.42 + guidetolerance="10" 251.43 + objecttolerance="10" 251.44 + inkscape:pageopacity="0.0" 251.45 + inkscape:pageshadow="2" 251.46 + inkscape:zoom="1.4" 251.47 + inkscape:cx="164.78349" 251.48 + inkscape:cy="590.07679" 251.49 + inkscape:document-units="px" 251.50 + inkscape:current-layer="layer1" 251.51 + inkscape:window-width="906" 251.52 + inkscape:window-height="620" 251.53 + inkscape:window-x="5" 251.54 + inkscape:window-y="49" /> 251.55 + <metadata 251.56 + id="metadata7"> 251.57 + <rdf:RDF> 251.58 + <cc:Work 251.59 + rdf:about=""> 251.60 + <dc:format>image/svg+xml</dc:format> 251.61 + <dc:type 251.62 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 251.63 + </cc:Work> 251.64 + </rdf:RDF> 251.65 + </metadata> 251.66 + <g 251.67 + inkscape:label="Layer 1" 251.68 + inkscape:groupmode="layer" 251.69 + id="layer1"> 251.70 + <g 251.71 + id="g1988" 251.72 + transform="translate(84.85711,0)"> 251.73 + <g 251.74 + id="g1876"> 251.75 + <path 251.76 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 251.77 + d="M 118.57143,458.21933 L 118.57143,563.79075 L 191.42857,563.79075 L 204.28571,550.93361 L 203.57142,459.6479 L 118.57143,458.21933 z " 251.78 + id="path1872" 251.79 + sodipodi:nodetypes="cccccc" /> 251.80 + <path 251.81 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 251.82 + d="M 191.55484,563.36862 L 191.6923,560.98794 L 192.69126,552.44884 L 203.80416,551.31242" 251.83 + id="path1874" 251.84 + sodipodi:nodetypes="cccc" /> 251.85 + </g> 251.86 + <flowRoot 251.87 + style="font-size:8px;font-family:Times New Roman" 251.88 + id="flowRoot1898" 251.89 + xml:space="preserve"><flowRegion 251.90 + id="flowRegion1900"><rect 251.91 + style="font-size:8px;font-family:Times New Roman" 251.92 + y="464.50504" 251.93 + x="122.85714" 251.94 + height="93.571426" 251.95 + width="76.428574" 251.96 + id="rect1902" /></flowRegion><flowPara 251.97 + id="flowPara1904">Greetings!</flowPara><flowPara 251.98 + id="flowPara1906" /><flowPara 251.99 + id="flowPara1908">I am Mariam Abacha, the wife of former Nigerian dictator Sani Abacha. I am contacting you in confidence, and as a means of developing</flowPara></flowRoot> </g> 251.100 + <g 251.101 + id="g1966" 251.102 + transform="translate(82,0.35715)"> 251.103 + <g 251.104 + transform="translate(-77.85718,-140.0714)" 251.105 + id="g1910"> 251.106 + <path 251.107 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 251.108 + d="M 118.57143,458.21933 L 118.57143,563.79075 L 191.42857,563.79075 L 204.28571,550.93361 L 203.57142,459.6479 L 118.57143,458.21933 z " 251.109 + id="path1912" 251.110 + sodipodi:nodetypes="cccccc" /> 251.111 + <path 251.112 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 251.113 + d="M 191.55484,563.36862 L 191.6923,560.98794 L 192.69126,552.44884 L 203.80416,551.31242" 251.114 + id="path1914" 251.115 + sodipodi:nodetypes="cccc" /> 251.116 + </g> 251.117 + <flowRoot 251.118 + transform="translate(-77.85718,-140.0714)" 251.119 + style="font-size:8px;font-family:Times New Roman" 251.120 + id="flowRoot1916" 251.121 + xml:space="preserve"><flowRegion 251.122 + id="flowRegion1918"><rect 251.123 + style="font-size:8px;font-family:Times New Roman" 251.124 + y="464.50504" 251.125 + x="122.85714" 251.126 + height="93.571426" 251.127 + width="76.428574" 251.128 + id="rect1920" /></flowRegion><flowPara 251.129 + id="flowPara1922">Greetings!</flowPara><flowPara 251.130 + id="flowPara1924" /><flowPara 251.131 + id="flowPara1926">I am <flowSpan 251.132 + style="font-style:italic;fill:red" 251.133 + id="flowSpan3094">Shehu Musa Abacha, cousin to</flowSpan> the former Nigerian dictator Sani Abacha. I am contacting you in confidence, and as a means of developing</flowPara></flowRoot> </g> 251.134 + <g 251.135 + id="g1977" 251.136 + transform="translate(81.99999,-0.35715)"> 251.137 + <g 251.138 + transform="translate(83.57141,-139.3571)" 251.139 + id="g1932"> 251.140 + <path 251.141 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 251.142 + d="M 118.57143,458.21933 L 118.57143,563.79075 L 191.42857,563.79075 L 204.28571,550.93361 L 203.57142,459.6479 L 118.57143,458.21933 z " 251.143 + id="path1934" 251.144 + sodipodi:nodetypes="cccccc" /> 251.145 + <path 251.146 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 251.147 + d="M 191.55484,563.36862 L 191.6923,560.98794 L 192.69126,552.44884 L 203.80416,551.31242" 251.148 + id="path1936" 251.149 + sodipodi:nodetypes="cccc" /> 251.150 + </g> 251.151 + <flowRoot 251.152 + transform="translate(83.57141,-139.3571)" 251.153 + style="font-size:8px;font-family:Times New Roman" 251.154 + id="flowRoot1938" 251.155 + xml:space="preserve"><flowRegion 251.156 + id="flowRegion1940"><rect 251.157 + style="font-size:8px;font-family:Times New Roman" 251.158 + y="464.50504" 251.159 + x="122.85714" 251.160 + height="93.571426" 251.161 + width="76.428574" 251.162 + id="rect1942" /></flowRegion><flowPara 251.163 + id="flowPara1944">Greetings!</flowPara><flowPara 251.164 + id="flowPara1946" /><flowPara 251.165 + id="flowPara1948">I am <flowSpan 251.166 + style="font-style:italic;fill:red" 251.167 + id="flowSpan3096">Alhaji Abba Abacha, son of</flowSpan> the former Nigerian dictator Sani Abacha. I am contacting you in confidence, and as a means of developing</flowPara></flowRoot> </g> 251.168 + <path 251.169 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 251.170 + d="M 215.502,457.71933 L 196.35507,424.5765" 251.171 + id="path1999" 251.172 + inkscape:connector-type="polyline" 251.173 + inkscape:connection-start="#g1988" 251.174 + inkscape:connection-end="#g1966" /> 251.175 + <path 251.176 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 251.177 + d="M 277.06936,457.71933 L 296.21629,424.5765" 251.178 + id="path2001" 251.179 + inkscape:connector-type="polyline" 251.180 + inkscape:connection-start="#g1988" 251.181 + inkscape:connection-end="#g1977" /> 251.182 + <text 251.183 + xml:space="preserve" 251.184 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 251.185 + x="302.42859" 251.186 + y="515.08905" 251.187 + id="text1905"><tspan 251.188 + sodipodi:role="line" 251.189 + id="tspan1907" 251.190 + x="302.42859" 251.191 + y="515.08905">Base version</tspan></text> 251.192 + <text 251.193 + xml:space="preserve" 251.194 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 251.195 + x="45.57143" 251.196 + y="374.1619" 251.197 + id="text1917"><tspan 251.198 + sodipodi:role="line" 251.199 + id="tspan1919" 251.200 + x="45.57143" 251.201 + y="374.1619">Our changes</tspan></text> 251.202 + <text 251.203 + xml:space="preserve" 251.204 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 251.205 + x="385.71429" 251.206 + y="374.1619" 251.207 + id="text1921"><tspan 251.208 + sodipodi:role="line" 251.209 + id="tspan1923" 251.210 + x="385.71429" 251.211 + y="374.1619">Their changes</tspan></text> 251.212 + </g> 251.213 +</svg>
252.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 252.2 +++ b/en/figs/tour-merge-merge.svg Mon Mar 30 16:23:33 2009 +0800 252.3 @@ -0,0 +1,380 @@ 252.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 252.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 252.6 +<svg 252.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 252.8 + xmlns:cc="http://web.resource.org/cc/" 252.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 252.10 + xmlns:svg="http://www.w3.org/2000/svg" 252.11 + xmlns="http://www.w3.org/2000/svg" 252.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 252.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 252.14 + width="744.09448819" 252.15 + height="1052.3622047" 252.16 + id="svg2" 252.17 + sodipodi:version="0.32" 252.18 + inkscape:version="0.44.1" 252.19 + sodipodi:docname="tour-merge-merge.svg"> 252.20 + <defs 252.21 + id="defs4"> 252.22 + <marker 252.23 + inkscape:stockid="Arrow1Mstart" 252.24 + orient="auto" 252.25 + refY="0.0" 252.26 + refX="0.0" 252.27 + id="Arrow1Mstart" 252.28 + style="overflow:visible"> 252.29 + <path 252.30 + id="path2973" 252.31 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 252.32 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 252.33 + transform="scale(0.4) translate(10,0)" /> 252.34 + </marker> 252.35 + <marker 252.36 + inkscape:stockid="Arrow1Mend" 252.37 + orient="auto" 252.38 + refY="0.0" 252.39 + refX="0.0" 252.40 + id="Arrow1Mend" 252.41 + style="overflow:visible;"> 252.42 + <path 252.43 + id="path3066" 252.44 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 252.45 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 252.46 + transform="scale(0.4) rotate(180) translate(10,0)" /> 252.47 + </marker> 252.48 + </defs> 252.49 + <sodipodi:namedview 252.50 + id="base" 252.51 + pagecolor="#ffffff" 252.52 + bordercolor="#666666" 252.53 + borderopacity="1.0" 252.54 + gridtolerance="10000" 252.55 + guidetolerance="10" 252.56 + objecttolerance="10" 252.57 + inkscape:pageopacity="0.0" 252.58 + inkscape:pageshadow="2" 252.59 + inkscape:zoom="1.4" 252.60 + inkscape:cx="247.53795" 252.61 + inkscape:cy="871.05738" 252.62 + inkscape:document-units="px" 252.63 + inkscape:current-layer="layer1" 252.64 + inkscape:window-width="906" 252.65 + inkscape:window-height="620" 252.66 + inkscape:window-x="38" 252.67 + inkscape:window-y="95" /> 252.68 + <metadata 252.69 + id="metadata7"> 252.70 + <rdf:RDF> 252.71 + <cc:Work 252.72 + rdf:about=""> 252.73 + <dc:format>image/svg+xml</dc:format> 252.74 + <dc:type 252.75 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 252.76 + </cc:Work> 252.77 + </rdf:RDF> 252.78 + </metadata> 252.79 + <g 252.80 + inkscape:label="Layer 1" 252.81 + inkscape:groupmode="layer" 252.82 + id="layer1"> 252.83 + <rect 252.84 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 252.85 + id="rect2995" 252.86 + width="94.285713" 252.87 + height="20.714285" 252.88 + x="532.85718" 252.89 + y="203.0479" /> 252.90 + <text 252.91 + xml:space="preserve" 252.92 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 252.93 + x="173.57143" 252.94 + y="443.79074" 252.95 + id="text2832"><tspan 252.96 + sodipodi:role="line" 252.97 + id="tspan2834" 252.98 + x="173.57143" 252.99 + y="443.79074" /></text> 252.100 + <rect 252.101 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 252.102 + id="rect2830" 252.103 + width="94.285713" 252.104 + height="20.714285" 252.105 + x="138" 252.106 + y="297.76227" /> 252.107 + <text 252.108 + xml:space="preserve" 252.109 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 252.110 + x="162.09892" 252.111 + y="311.38342" 252.112 + id="text2824"><tspan 252.113 + sodipodi:role="line" 252.114 + id="tspan2826" 252.115 + x="162.09892" 252.116 + y="311.38342" 252.117 + style="font-family:Courier"><tspan 252.118 + style="font-weight:bold" 252.119 + id="tspan2862">4</tspan>: REV4</tspan></text> 252.120 + <path 252.121 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 252.122 + d="M 185.14286,343.63731 L 185.14286,319.47656" 252.123 + id="path2900" 252.124 + inkscape:connector-type="polyline" /> 252.125 + <rect 252.126 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 252.127 + id="rect2863" 252.128 + width="94.285713" 252.129 + height="20.714285" 252.130 + x="91.428574" 252.131 + y="250.47656" /> 252.132 + <text 252.133 + xml:space="preserve" 252.134 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 252.135 + x="116.09886" 252.136 + y="264.56592" 252.137 + id="text1965" 252.138 + transform="scale(1.000002,0.999998)"><tspan 252.139 + sodipodi:role="line" 252.140 + id="tspan1967" 252.141 + x="116.09886" 252.142 + y="264.56592" 252.143 + style="font-family:Courier"><tspan 252.144 + style="font-weight:bold" 252.145 + id="tspan1973">5</tspan>: REV_my_new_hello</tspan></text> 252.146 + <path 252.147 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 252.148 + d="M 173.95727,296.76228 L 149.75702,272.19085" 252.149 + id="path1971" 252.150 + inkscape:connector-type="polyline" 252.151 + inkscape:connection-end="#rect2863" 252.152 + inkscape:connection-start="#rect2830" /> 252.153 + <rect 252.154 + style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 252.155 + id="rect2911" 252.156 + width="94.285995" 252.157 + height="20.714283" 252.158 + x="186.71414" 252.159 + y="204.40514" /> 252.160 + <text 252.161 + xml:space="preserve" 252.162 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 252.163 + x="210.81311" 252.164 + y="218.02673" 252.165 + id="text2913" 252.166 + transform="scale(1.000002,0.999998)"><tspan 252.167 + sodipodi:role="line" 252.168 + id="tspan2915" 252.169 + x="210.81311" 252.170 + y="218.02673" 252.171 + style="font-family:Courier"><tspan 252.172 + id="tspan1966" 252.173 + style="font-weight:bold">6</tspan>: REV6_my_new_hello</tspan></text> 252.174 + <path 252.175 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 252.176 + d="M 191.06908,296.76228 L 227.93092,226.11942" 252.177 + id="path2919" 252.178 + inkscape:connector-type="polyline" 252.179 + inkscape:connection-start="#rect2830" /> 252.180 + <text 252.181 + xml:space="preserve" 252.182 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 252.183 + x="295.28571" 252.184 + y="217.56711" 252.185 + id="text2871"><tspan 252.186 + sodipodi:role="line" 252.187 + id="tspan2873" 252.188 + x="295.28571" 252.189 + y="217.56711">tip (and head)</tspan></text> 252.190 + <text 252.191 + xml:space="preserve" 252.192 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 252.193 + x="76" 252.194 + y="264.91769" 252.195 + id="text2875"><tspan 252.196 + sodipodi:role="line" 252.197 + id="tspan2877" 252.198 + x="76" 252.199 + y="264.91769" 252.200 + style="text-align:end;text-anchor:end">head</tspan></text> 252.201 + <rect 252.202 + style="fill:#c8aaa5;fill-opacity:1;stroke:#a07163;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0;stroke-opacity:1" 252.203 + id="rect1913" 252.204 + width="94.285713" 252.205 + height="20.714285" 252.206 + x="138" 252.207 + y="156.90514" /> 252.208 + <path 252.209 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1" 252.210 + d="M 144.22399,249.47657 L 179.49029,178.61943" 252.211 + id="path1915" 252.212 + inkscape:connector-type="polyline" 252.213 + inkscape:connection-start="#rect2863" 252.214 + inkscape:connection-end="#rect1913" /> 252.215 + <path 252.216 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1" 252.217 + d="M 222.20966,203.40514 L 196.79033,178.61943" 252.218 + id="path1917" 252.219 + inkscape:connector-type="polyline" 252.220 + inkscape:connection-start="#rect2911" 252.221 + inkscape:connection-end="#rect1913" /> 252.222 + <text 252.223 + xml:space="preserve" 252.224 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 252.225 + x="166.16823" 252.226 + y="168.52228" 252.227 + id="text2806"><tspan 252.228 + sodipodi:role="line" 252.229 + id="tspan2808" 252.230 + x="166.16823" 252.231 + y="168.52228" 252.232 + style="font-family:Courier">merge</tspan></text> 252.233 + <text 252.234 + xml:space="preserve" 252.235 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 252.236 + x="246" 252.237 + y="162.63338" 252.238 + id="text2810"><tspan 252.239 + sodipodi:role="line" 252.240 + id="tspan2812" 252.241 + x="246" 252.242 + y="162.63338">working directory</tspan><tspan 252.243 + sodipodi:role="line" 252.244 + x="246" 252.245 + y="177.63338" 252.246 + id="tspan2814">during merge</tspan></text> 252.247 + <rect 252.248 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 252.249 + id="rect2816" 252.250 + width="94.285713" 252.251 + height="20.714285" 252.252 + x="483.14636" 252.253 + y="297.76227" /> 252.254 + <text 252.255 + xml:space="preserve" 252.256 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 252.257 + x="507.24527" 252.258 + y="311.38342" 252.259 + id="text2818"><tspan 252.260 + sodipodi:role="line" 252.261 + id="tspan2820" 252.262 + x="507.24527" 252.263 + y="311.38342" 252.264 + style="font-family:Courier"><tspan 252.265 + style="font-weight:bold" 252.266 + id="tspan2822">4</tspan>: REV4</tspan></text> 252.267 + <path 252.268 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 252.269 + d="M 530.28921,343.6373 L 530.28921,319.47655" 252.270 + id="path2824" 252.271 + inkscape:connector-type="polyline" /> 252.272 + <rect 252.273 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 252.274 + id="rect2826" 252.275 + width="94.285713" 252.276 + height="20.714285" 252.277 + x="436.57492" 252.278 + y="250.47656" /> 252.279 + <text 252.280 + xml:space="preserve" 252.281 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 252.282 + x="461.24484" 252.283 + y="264.56613" 252.284 + id="text2828" 252.285 + transform="scale(1.000002,0.999998)"><tspan 252.286 + sodipodi:role="line" 252.287 + id="tspan2830" 252.288 + x="461.24484" 252.289 + y="264.56613" 252.290 + style="font-family:Courier"><tspan 252.291 + style="font-weight:bold" 252.292 + id="tspan2832">5</tspan>: REV_my_new_hello</tspan></text> 252.293 + <path 252.294 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 252.295 + d="M 519.10362,296.76227 L 494.90337,272.19084" 252.296 + id="path2834" 252.297 + inkscape:connector-type="polyline" /> 252.298 + <rect 252.299 + style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 252.300 + id="rect2836" 252.301 + width="94.285995" 252.302 + height="20.714283" 252.303 + x="483.14001" 252.304 + y="156.548" /> 252.305 + <text 252.306 + xml:space="preserve" 252.307 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 252.308 + x="555.95911" 252.309 + y="218.02698" 252.310 + id="text2838" 252.311 + transform="scale(1.000002,0.999998)"><tspan 252.312 + sodipodi:role="line" 252.313 + id="tspan2840" 252.314 + x="555.95911" 252.315 + y="218.02698" 252.316 + style="font-family:Courier"><tspan 252.317 + id="tspan2842" 252.318 + style="font-weight:bold">6</tspan>: REV6_my_new_hello</tspan></text> 252.319 + <path 252.320 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 252.321 + d="M 536.21543,296.76227 L 574.03453,224.76218" 252.322 + id="path2844" 252.323 + inkscape:connector-type="polyline" /> 252.324 + <text 252.325 + xml:space="preserve" 252.326 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 252.327 + x="594.43207" 252.328 + y="169.78796" 252.329 + id="text2846"><tspan 252.330 + sodipodi:role="line" 252.331 + id="tspan2848" 252.332 + x="594.43207" 252.333 + y="169.78796">tip</tspan></text> 252.334 + <path 252.335 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" 252.336 + d="M 489.37034,249.47656 L 524.65575,178.26229" 252.337 + id="path2856" 252.338 + inkscape:connector-type="polyline" 252.339 + inkscape:connection-end="#rect2836" /> 252.340 + <path 252.341 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" 252.342 + d="M 567.85714,202.0479 L 542.42591,178.26229" 252.343 + id="path2858" 252.344 + inkscape:connector-type="polyline" 252.345 + inkscape:connection-end="#rect2836" 252.346 + inkscape:connection-start="#rect2995" /> 252.347 + <text 252.348 + xml:space="preserve" 252.349 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 252.350 + x="504.54507" 252.351 + y="170.39714" 252.352 + id="text2860"><tspan 252.353 + sodipodi:role="line" 252.354 + id="tspan2863" 252.355 + x="504.54507" 252.356 + y="170.39714" 252.357 + style="font-family:Courier"><tspan 252.358 + style="font-weight:bold" 252.359 + id="tspan2997">7</tspan>: REV7_my_new_hello</tspan></text> 252.360 + <text 252.361 + xml:space="preserve" 252.362 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 252.363 + x="90.323105" 252.364 + y="120.21933" 252.365 + id="text2929"><tspan 252.366 + sodipodi:role="line" 252.367 + id="tspan2931" 252.368 + x="90.323105" 252.369 + y="120.21933" 252.370 + style="font-weight:bold">Working directory during merge</tspan></text> 252.371 + <text 252.372 + xml:space="preserve" 252.373 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 252.374 + x="435.35226" 252.375 + y="120.21933" 252.376 + id="text2937"><tspan 252.377 + sodipodi:role="line" 252.378 + id="tspan2939" 252.379 + x="435.35226" 252.380 + y="120.21933" 252.381 + style="font-weight:bold">Repository after merge committed</tspan></text> 252.382 + </g> 252.383 +</svg>
253.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 253.2 +++ b/en/figs/tour-merge-pull.svg Mon Mar 30 16:23:33 2009 +0800 253.3 @@ -0,0 +1,288 @@ 253.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 253.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 253.6 +<svg 253.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 253.8 + xmlns:cc="http://web.resource.org/cc/" 253.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 253.10 + xmlns:svg="http://www.w3.org/2000/svg" 253.11 + xmlns="http://www.w3.org/2000/svg" 253.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 253.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 253.14 + width="744.09448819" 253.15 + height="1052.3622047" 253.16 + id="svg2" 253.17 + sodipodi:version="0.32" 253.18 + inkscape:version="0.44.1" 253.19 + sodipodi:docname="tour-merge-pull.svg" 253.20 + sodipodi:docbase="/home/bos/hg/hgbook/en"> 253.21 + <defs 253.22 + id="defs4"> 253.23 + <marker 253.24 + inkscape:stockid="Arrow1Mstart" 253.25 + orient="auto" 253.26 + refY="0.0" 253.27 + refX="0.0" 253.28 + id="Arrow1Mstart" 253.29 + style="overflow:visible"> 253.30 + <path 253.31 + id="path2973" 253.32 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 253.33 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 253.34 + transform="scale(0.4) translate(10,0)" /> 253.35 + </marker> 253.36 + <marker 253.37 + inkscape:stockid="Arrow1Mend" 253.38 + orient="auto" 253.39 + refY="0.0" 253.40 + refX="0.0" 253.41 + id="Arrow1Mend" 253.42 + style="overflow:visible;"> 253.43 + <path 253.44 + id="path3066" 253.45 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 253.46 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 253.47 + transform="scale(0.4) rotate(180) translate(10,0)" /> 253.48 + </marker> 253.49 + </defs> 253.50 + <sodipodi:namedview 253.51 + id="base" 253.52 + pagecolor="#ffffff" 253.53 + bordercolor="#666666" 253.54 + borderopacity="1.0" 253.55 + gridtolerance="10000" 253.56 + guidetolerance="10" 253.57 + objecttolerance="10" 253.58 + inkscape:pageopacity="0.0" 253.59 + inkscape:pageshadow="2" 253.60 + inkscape:zoom="1.4" 253.61 + inkscape:cx="233.63208" 253.62 + inkscape:cy="832.54381" 253.63 + inkscape:document-units="px" 253.64 + inkscape:current-layer="layer1" 253.65 + inkscape:window-width="906" 253.66 + inkscape:window-height="620" 253.67 + inkscape:window-x="237" 253.68 + inkscape:window-y="103" /> 253.69 + <metadata 253.70 + id="metadata7"> 253.71 + <rdf:RDF> 253.72 + <cc:Work 253.73 + rdf:about=""> 253.74 + <dc:format>image/svg+xml</dc:format> 253.75 + <dc:type 253.76 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 253.77 + </cc:Work> 253.78 + </rdf:RDF> 253.79 + </metadata> 253.80 + <g 253.81 + inkscape:label="Layer 1" 253.82 + inkscape:groupmode="layer" 253.83 + id="layer1"> 253.84 + <text 253.85 + xml:space="preserve" 253.86 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 253.87 + x="173.57143" 253.88 + y="443.79074" 253.89 + id="text2832"><tspan 253.90 + sodipodi:role="line" 253.91 + id="tspan2834" 253.92 + x="173.57143" 253.93 + y="443.79074" /></text> 253.94 + <rect 253.95 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 253.96 + id="rect1878" 253.97 + width="94.285713" 253.98 + height="20.714285" 253.99 + x="138" 253.100 + y="479.50504" /> 253.101 + <text 253.102 + xml:space="preserve" 253.103 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 253.104 + x="162.09892" 253.105 + y="493.12619" 253.106 + id="text1872"><tspan 253.107 + sodipodi:role="line" 253.108 + id="tspan1874" 253.109 + x="162.09892" 253.110 + y="493.12619" 253.111 + style="font-family:Courier"><tspan 253.112 + style="font-weight:bold" 253.113 + id="tspan1876">0</tspan>: REV0</tspan></text> 253.114 + <rect 253.115 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 253.116 + id="rect2800" 253.117 + width="94.285713" 253.118 + height="20.714285" 253.119 + x="138" 253.120 + y="432.63004" /> 253.121 + <text 253.122 + xml:space="preserve" 253.123 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 253.124 + x="162.09892" 253.125 + y="446.25119" 253.126 + id="text2794"><tspan 253.127 + sodipodi:role="line" 253.128 + id="tspan2796" 253.129 + x="162.09892" 253.130 + y="446.25119" 253.131 + style="font-family:Courier"><tspan 253.132 + id="tspan2868" 253.133 + style="font-weight:bold">1</tspan>: REV1</tspan></text> 253.134 + <rect 253.135 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 253.136 + id="rect2810" 253.137 + width="94.285713" 253.138 + height="20.714285" 253.139 + x="138" 253.140 + y="385.75504" /> 253.141 + <text 253.142 + xml:space="preserve" 253.143 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 253.144 + x="162.09892" 253.145 + y="399.37619" 253.146 + id="text2804"><tspan 253.147 + sodipodi:role="line" 253.148 + id="tspan2806" 253.149 + x="162.09892" 253.150 + y="399.37619" 253.151 + style="font-family:Courier"><tspan 253.152 + style="font-weight:bold" 253.153 + id="tspan2866">2</tspan>: REV2</tspan></text> 253.154 + <rect 253.155 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 253.156 + id="rect2820" 253.157 + width="94.285713" 253.158 + height="20.714285" 253.159 + x="138" 253.160 + y="338.88007" /> 253.161 + <text 253.162 + xml:space="preserve" 253.163 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 253.164 + x="162.09892" 253.165 + y="352.50122" 253.166 + id="text2814"><tspan 253.167 + sodipodi:role="line" 253.168 + id="tspan2816" 253.169 + x="162.09892" 253.170 + y="352.50122" 253.171 + style="font-family:Courier"><tspan 253.172 + style="font-weight:bold" 253.173 + id="tspan2864">3</tspan>: REV3</tspan></text> 253.174 + <rect 253.175 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 253.176 + id="rect2830" 253.177 + width="94.285713" 253.178 + height="20.714285" 253.179 + x="138" 253.180 + y="292.00504" /> 253.181 + <text 253.182 + xml:space="preserve" 253.183 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 253.184 + x="162.09892" 253.185 + y="305.62619" 253.186 + id="text2824"><tspan 253.187 + sodipodi:role="line" 253.188 + id="tspan2826" 253.189 + x="162.09892" 253.190 + y="305.62619" 253.191 + style="font-family:Courier"><tspan 253.192 + style="font-weight:bold" 253.193 + id="tspan2862">4</tspan>: REV4</tspan></text> 253.194 + <path 253.195 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 253.196 + d="M 185.14286,478.50504 L 185.14286,454.34432" 253.197 + id="path2894" 253.198 + inkscape:connector-type="polyline" /> 253.199 + <path 253.200 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 253.201 + d="M 185.14286,431.63004 L 185.14286,407.46932" 253.202 + id="path2896" 253.203 + inkscape:connector-type="polyline" /> 253.204 + <path 253.205 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 253.206 + d="M 185.14286,384.75504 L 185.14286,360.59435" 253.207 + id="path2898" 253.208 + inkscape:connector-type="polyline" /> 253.209 + <path 253.210 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 253.211 + d="M 185.14286,337.88007 L 185.14286,313.71932" 253.212 + id="path2900" 253.213 + inkscape:connector-type="polyline" /> 253.214 + <rect 253.215 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 253.216 + id="rect2863" 253.217 + width="94.285713" 253.218 + height="20.714285" 253.219 + x="91.428574" 253.220 + y="244.71933" /> 253.221 + <text 253.222 + xml:space="preserve" 253.223 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 253.224 + x="116.09886" 253.225 + y="258.80865" 253.226 + id="text1965" 253.227 + transform="scale(1.000002,0.999998)"><tspan 253.228 + sodipodi:role="line" 253.229 + id="tspan1967" 253.230 + x="116.09886" 253.231 + y="258.80865" 253.232 + style="font-family:Courier"><tspan 253.233 + style="font-weight:bold" 253.234 + id="tspan1973">5</tspan>: REV_my_new_hello</tspan></text> 253.235 + <path 253.236 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 253.237 + d="M 173.95727,291.00504 L 149.75702,266.43361" 253.238 + id="path1971" 253.239 + inkscape:connector-type="polyline" 253.240 + inkscape:connection-end="#rect2863" 253.241 + inkscape:connection-start="#rect2830" /> 253.242 + <rect 253.243 + style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 253.244 + id="rect2911" 253.245 + width="94.285995" 253.246 + height="20.714283" 253.247 + x="186.71414" 253.248 + y="198.6479" /> 253.249 + <text 253.250 + xml:space="preserve" 253.251 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 253.252 + x="210.81311" 253.253 + y="212.26949" 253.254 + id="text2913" 253.255 + transform="scale(1.000002,0.999998)"><tspan 253.256 + sodipodi:role="line" 253.257 + id="tspan2915" 253.258 + x="210.81311" 253.259 + y="212.26949" 253.260 + style="font-family:Courier"><tspan 253.261 + id="tspan1966" 253.262 + style="font-weight:bold">6</tspan>: REV6_my_new_hello</tspan></text> 253.263 + <path 253.264 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 253.265 + d="M 191.06908,291.00504 L 227.93092,220.36218" 253.266 + id="path2919" 253.267 + inkscape:connector-type="polyline" 253.268 + inkscape:connection-start="#rect2830" /> 253.269 + <text 253.270 + xml:space="preserve" 253.271 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 253.272 + x="295.28571" 253.273 + y="211.80988" 253.274 + id="text2871"><tspan 253.275 + sodipodi:role="line" 253.276 + id="tspan2873" 253.277 + x="295.28571" 253.278 + y="211.80988">tip (and head)</tspan></text> 253.279 + <text 253.280 + xml:space="preserve" 253.281 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 253.282 + x="76" 253.283 + y="259.16046" 253.284 + id="text2875"><tspan 253.285 + sodipodi:role="line" 253.286 + id="tspan2877" 253.287 + x="76" 253.288 + y="259.16046" 253.289 + style="text-align:end;text-anchor:end">head</tspan></text> 253.290 + </g> 253.291 +</svg>
254.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 254.2 +++ b/en/figs/tour-merge-sep-repos.svg Mon Mar 30 16:23:33 2009 +0800 254.3 @@ -0,0 +1,466 @@ 254.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 254.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 254.6 +<svg 254.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 254.8 + xmlns:cc="http://web.resource.org/cc/" 254.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 254.10 + xmlns:svg="http://www.w3.org/2000/svg" 254.11 + xmlns="http://www.w3.org/2000/svg" 254.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 254.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 254.14 + width="744.09448819" 254.15 + height="1052.3622047" 254.16 + id="svg2" 254.17 + sodipodi:version="0.32" 254.18 + inkscape:version="0.44.1" 254.19 + sodipodi:docname="tour-merge-sep-repos.svg"> 254.20 + <defs 254.21 + id="defs4"> 254.22 + <marker 254.23 + inkscape:stockid="Arrow1Mstart" 254.24 + orient="auto" 254.25 + refY="0.0" 254.26 + refX="0.0" 254.27 + id="Arrow1Mstart" 254.28 + style="overflow:visible"> 254.29 + <path 254.30 + id="path2973" 254.31 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 254.32 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 254.33 + transform="scale(0.4) translate(10,0)" /> 254.34 + </marker> 254.35 + <marker 254.36 + inkscape:stockid="Arrow1Mend" 254.37 + orient="auto" 254.38 + refY="0.0" 254.39 + refX="0.0" 254.40 + id="Arrow1Mend" 254.41 + style="overflow:visible;"> 254.42 + <path 254.43 + id="path3066" 254.44 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 254.45 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 254.46 + transform="scale(0.4) rotate(180) translate(10,0)" /> 254.47 + </marker> 254.48 + </defs> 254.49 + <sodipodi:namedview 254.50 + id="base" 254.51 + pagecolor="#ffffff" 254.52 + bordercolor="#666666" 254.53 + borderopacity="1.0" 254.54 + gridtolerance="10000" 254.55 + guidetolerance="10" 254.56 + objecttolerance="10" 254.57 + inkscape:pageopacity="0.0" 254.58 + inkscape:pageshadow="2" 254.59 + inkscape:zoom="1.4" 254.60 + inkscape:cx="307.20351" 254.61 + inkscape:cy="716.87911" 254.62 + inkscape:document-units="px" 254.63 + inkscape:current-layer="layer1" 254.64 + inkscape:window-width="906" 254.65 + inkscape:window-height="620" 254.66 + inkscape:window-x="5" 254.67 + inkscape:window-y="49" /> 254.68 + <metadata 254.69 + id="metadata7"> 254.70 + <rdf:RDF> 254.71 + <cc:Work 254.72 + rdf:about=""> 254.73 + <dc:format>image/svg+xml</dc:format> 254.74 + <dc:type 254.75 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 254.76 + </cc:Work> 254.77 + </rdf:RDF> 254.78 + </metadata> 254.79 + <g 254.80 + inkscape:label="Layer 1" 254.81 + inkscape:groupmode="layer" 254.82 + id="layer1"> 254.83 + <text 254.84 + xml:space="preserve" 254.85 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.86 + x="173.57143" 254.87 + y="443.79074" 254.88 + id="text2832"><tspan 254.89 + sodipodi:role="line" 254.90 + id="tspan2834" 254.91 + x="173.57143" 254.92 + y="443.79074" /></text> 254.93 + <rect 254.94 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.95 + id="rect1878" 254.96 + width="94.285713" 254.97 + height="20.714285" 254.98 + x="138" 254.99 + y="479.50504" /> 254.100 + <text 254.101 + xml:space="preserve" 254.102 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.103 + x="162.09892" 254.104 + y="493.12619" 254.105 + id="text1872"><tspan 254.106 + sodipodi:role="line" 254.107 + id="tspan1874" 254.108 + x="162.09892" 254.109 + y="493.12619" 254.110 + style="font-family:Courier"><tspan 254.111 + style="font-weight:bold" 254.112 + id="tspan1876">0</tspan>: REV0</tspan></text> 254.113 + <rect 254.114 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.115 + id="rect2800" 254.116 + width="94.285713" 254.117 + height="20.714285" 254.118 + x="138" 254.119 + y="432.63004" /> 254.120 + <text 254.121 + xml:space="preserve" 254.122 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.123 + x="162.09892" 254.124 + y="446.25119" 254.125 + id="text2794"><tspan 254.126 + sodipodi:role="line" 254.127 + id="tspan2796" 254.128 + x="162.09892" 254.129 + y="446.25119" 254.130 + style="font-family:Courier"><tspan 254.131 + id="tspan2868" 254.132 + style="font-weight:bold">1</tspan>: REV1</tspan></text> 254.133 + <rect 254.134 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.135 + id="rect2810" 254.136 + width="94.285713" 254.137 + height="20.714285" 254.138 + x="138" 254.139 + y="385.75504" /> 254.140 + <text 254.141 + xml:space="preserve" 254.142 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.143 + x="162.09892" 254.144 + y="399.37619" 254.145 + id="text2804"><tspan 254.146 + sodipodi:role="line" 254.147 + id="tspan2806" 254.148 + x="162.09892" 254.149 + y="399.37619" 254.150 + style="font-family:Courier"><tspan 254.151 + style="font-weight:bold" 254.152 + id="tspan2866">2</tspan>: REV2</tspan></text> 254.153 + <rect 254.154 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.155 + id="rect2820" 254.156 + width="94.285713" 254.157 + height="20.714285" 254.158 + x="138" 254.159 + y="338.88007" /> 254.160 + <text 254.161 + xml:space="preserve" 254.162 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.163 + x="162.09892" 254.164 + y="352.50122" 254.165 + id="text2814"><tspan 254.166 + sodipodi:role="line" 254.167 + id="tspan2816" 254.168 + x="162.09892" 254.169 + y="352.50122" 254.170 + style="font-family:Courier"><tspan 254.171 + style="font-weight:bold" 254.172 + id="tspan2864">3</tspan>: REV3</tspan></text> 254.173 + <rect 254.174 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.175 + id="rect2830" 254.176 + width="94.285713" 254.177 + height="20.714285" 254.178 + x="138" 254.179 + y="292.00504" /> 254.180 + <text 254.181 + xml:space="preserve" 254.182 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.183 + x="162.09892" 254.184 + y="305.62619" 254.185 + id="text2824"><tspan 254.186 + sodipodi:role="line" 254.187 + id="tspan2826" 254.188 + x="162.09892" 254.189 + y="305.62619" 254.190 + style="font-family:Courier"><tspan 254.191 + style="font-weight:bold" 254.192 + id="tspan2862">4</tspan>: REV4</tspan></text> 254.193 + <path 254.194 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 254.195 + d="M 185.14286,478.50504 L 185.14286,454.34432" 254.196 + id="path2894" 254.197 + inkscape:connector-type="polyline" /> 254.198 + <path 254.199 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 254.200 + d="M 185.14286,431.63004 L 185.14286,407.46932" 254.201 + id="path2896" 254.202 + inkscape:connector-type="polyline" /> 254.203 + <path 254.204 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 254.205 + d="M 185.14286,384.75504 L 185.14286,360.59435" 254.206 + id="path2898" 254.207 + inkscape:connector-type="polyline" /> 254.208 + <path 254.209 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 254.210 + d="M 185.14286,337.88007 L 185.14286,313.71932" 254.211 + id="path2900" 254.212 + inkscape:connector-type="polyline" /> 254.213 + <rect 254.214 + style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.215 + id="rect1963" 254.216 + width="94.285995" 254.217 + height="20.714283" 254.218 + x="138" 254.219 + y="245.18723" /> 254.220 + <text 254.221 + xml:space="preserve" 254.222 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.223 + x="162.09877" 254.224 + y="258.80865" 254.225 + id="text1965" 254.226 + transform="scale(1.000002,0.999998)"><tspan 254.227 + sodipodi:role="line" 254.228 + id="tspan1967" 254.229 + x="162.09877" 254.230 + y="258.80865" 254.231 + style="font-family:Courier"><tspan 254.232 + style="font-weight:bold" 254.233 + id="tspan1973">5</tspan>: REV_my_hello</tspan></text> 254.234 + <path 254.235 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 254.236 + d="M 185.143,291.06218 L 185.143,266.90143" 254.237 + id="path1971" 254.238 + inkscape:connector-type="polyline" /> 254.239 + <text 254.240 + xml:space="preserve" 254.241 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 254.242 + x="136.90039" 254.243 + y="232.25546" 254.244 + id="text2921"><tspan 254.245 + sodipodi:role="line" 254.246 + id="tspan2923" 254.247 + x="136.90039" 254.248 + y="232.25546">my-hello</tspan></text> 254.249 + <rect 254.250 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.251 + id="rect2863" 254.252 + width="94.285713" 254.253 + height="20.714285" 254.254 + x="370.71414" 254.255 + y="479.49289" /> 254.256 + <text 254.257 + xml:space="preserve" 254.258 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.259 + x="394.81305" 254.260 + y="493.11404" 254.261 + id="text2865"><tspan 254.262 + sodipodi:role="line" 254.263 + id="tspan2867" 254.264 + x="394.81305" 254.265 + y="493.11404" 254.266 + style="font-family:Courier"><tspan 254.267 + style="font-weight:bold" 254.268 + id="tspan2869">0</tspan>: REV0</tspan></text> 254.269 + <rect 254.270 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.271 + id="rect2871" 254.272 + width="94.285713" 254.273 + height="20.714285" 254.274 + x="370.71414" 254.275 + y="432.61789" /> 254.276 + <text 254.277 + xml:space="preserve" 254.278 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.279 + x="394.81305" 254.280 + y="446.23904" 254.281 + id="text2873"><tspan 254.282 + sodipodi:role="line" 254.283 + id="tspan2875" 254.284 + x="394.81305" 254.285 + y="446.23904" 254.286 + style="font-family:Courier"><tspan 254.287 + id="tspan2877" 254.288 + style="font-weight:bold">1</tspan>: REV1</tspan></text> 254.289 + <rect 254.290 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.291 + id="rect2879" 254.292 + width="94.285713" 254.293 + height="20.714285" 254.294 + x="370.71414" 254.295 + y="385.74289" /> 254.296 + <text 254.297 + xml:space="preserve" 254.298 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.299 + x="394.81305" 254.300 + y="399.36404" 254.301 + id="text2881"><tspan 254.302 + sodipodi:role="line" 254.303 + id="tspan2883" 254.304 + x="394.81305" 254.305 + y="399.36404" 254.306 + style="font-family:Courier"><tspan 254.307 + style="font-weight:bold" 254.308 + id="tspan2885">2</tspan>: REV2</tspan></text> 254.309 + <rect 254.310 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.311 + id="rect2887" 254.312 + width="94.285713" 254.313 + height="20.714285" 254.314 + x="370.71414" 254.315 + y="338.86792" /> 254.316 + <text 254.317 + xml:space="preserve" 254.318 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.319 + x="394.81305" 254.320 + y="352.48907" 254.321 + id="text2889"><tspan 254.322 + sodipodi:role="line" 254.323 + id="tspan2891" 254.324 + x="394.81305" 254.325 + y="352.48907" 254.326 + style="font-family:Courier"><tspan 254.327 + style="font-weight:bold" 254.328 + id="tspan2893">3</tspan>: REV3</tspan></text> 254.329 + <rect 254.330 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.331 + id="rect2895" 254.332 + width="94.285713" 254.333 + height="20.714285" 254.334 + x="370.71414" 254.335 + y="291.99289" /> 254.336 + <text 254.337 + xml:space="preserve" 254.338 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.339 + x="394.81305" 254.340 + y="305.61404" 254.341 + id="text2897"><tspan 254.342 + sodipodi:role="line" 254.343 + id="tspan2899" 254.344 + x="394.81305" 254.345 + y="305.61404" 254.346 + style="font-family:Courier"><tspan 254.347 + style="font-weight:bold" 254.348 + id="tspan2901">4</tspan>: REV4</tspan></text> 254.349 + <path 254.350 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 254.351 + d="M 417.85701,478.4929 L 417.85701,454.33218" 254.352 + id="path2903" 254.353 + inkscape:connector-type="polyline" /> 254.354 + <path 254.355 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 254.356 + d="M 417.85701,431.6179 L 417.85701,407.45718" 254.357 + id="path2905" 254.358 + inkscape:connector-type="polyline" /> 254.359 + <path 254.360 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 254.361 + d="M 417.85701,384.7429 L 417.85701,360.58221" 254.362 + id="path2907" 254.363 + inkscape:connector-type="polyline" /> 254.364 + <path 254.365 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 254.366 + d="M 417.85701,337.86793 L 417.85701,313.70718" 254.367 + id="path2909" 254.368 + inkscape:connector-type="polyline" /> 254.369 + <rect 254.370 + style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.371 + id="rect2911" 254.372 + width="94.285995" 254.373 + height="20.714283" 254.374 + x="370.71414" 254.375 + y="245.17511" /> 254.376 + <text 254.377 + xml:space="preserve" 254.378 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 254.379 + x="394.81274" 254.380 + y="258.79678" 254.381 + id="text2913" 254.382 + transform="scale(1.000002,0.999998)"><tspan 254.383 + sodipodi:role="line" 254.384 + id="tspan2915" 254.385 + x="394.81274" 254.386 + y="258.79678" 254.387 + style="font-family:Courier"><tspan 254.388 + style="font-weight:bold" 254.389 + id="tspan2917">5</tspan>: REV_my_new_hello</tspan></text> 254.390 + <path 254.391 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 254.392 + d="M 417.85715,291.05004 L 417.85715,266.88929" 254.393 + id="path2919" 254.394 + inkscape:connector-type="polyline" /> 254.395 + <text 254.396 + xml:space="preserve" 254.397 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 254.398 + x="369.61453" 254.399 + y="232.25546" 254.400 + id="text2925"><tspan 254.401 + sodipodi:role="line" 254.402 + id="tspan2927" 254.403 + x="369.61453" 254.404 + y="232.25546">my-new-hello</tspan></text> 254.405 + <text 254.406 + xml:space="preserve" 254.407 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 254.408 + x="300.54352" 254.409 + y="252.12723" 254.410 + id="text2933"><tspan 254.411 + sodipodi:role="line" 254.412 + id="tspan2935" 254.413 + x="300.54352" 254.414 + y="252.12723" 254.415 + style="text-align:center;text-anchor:middle">newest changes</tspan><tspan 254.416 + sodipodi:role="line" 254.417 + x="300.54352" 254.418 + y="267.12723" 254.419 + style="text-align:center;text-anchor:middle" 254.420 + id="tspan3132">differ</tspan></text> 254.421 + <text 254.422 + xml:space="preserve" 254.423 + style="font-size:12px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 254.424 + x="262.15436" 254.425 + y="398.37112" 254.426 + id="text2929"><tspan 254.427 + sodipodi:role="line" 254.428 + x="262.15436" 254.429 + y="398.37112" 254.430 + id="tspan3013" 254.431 + style="text-align:start;text-anchor:start">common history</tspan></text> 254.432 + <g 254.433 + id="g3107" 254.434 + transform="translate(0,0.855744)"> 254.435 + <path 254.436 + id="path3101" 254.437 + d="M 300.35713,381.29075 L 300.35713,304.50504" 254.438 + style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" /> 254.439 + <path 254.440 + id="path3105" 254.441 + d="M 291.07142,301.64789 L 309.28571,301.64789" 254.442 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:0.60000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> 254.443 + </g> 254.444 + <path 254.445 + style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" 254.446 + d="M 300.53571,486.38926 L 300.53571,409.60355" 254.447 + id="path3113" /> 254.448 + <path 254.449 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:0.60000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 254.450 + d="M 291.25,488.49641 L 309.46429,488.49641" 254.451 + id="path3115" /> 254.452 + <text 254.453 + xml:space="preserve" 254.454 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 254.455 + x="480.71429" 254.456 + y="250.91507" 254.457 + id="text1949"><tspan 254.458 + sodipodi:role="line" 254.459 + id="tspan1951" 254.460 + x="480.71429" 254.461 + y="250.91507" 254.462 + style="text-align:start;text-anchor:start">head revision</tspan><tspan 254.463 + sodipodi:role="line" 254.464 + x="480.71429" 254.465 + y="265.91507" 254.466 + id="tspan1953" 254.467 + style="text-align:start;text-anchor:start">(has no children)</tspan></text> 254.468 + </g> 254.469 +</svg>
255.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 255.2 +++ b/en/figs/undo-manual-merge.dot Mon Mar 30 16:23:33 2009 +0800 255.3 @@ -0,0 +1,8 @@ 255.4 +digraph undo_manual { 255.5 + "first change" -> "second change"; 255.6 + "second change" -> "third change"; 255.7 + backout [label="back out\nsecond change", shape=box]; 255.8 + "second change" -> backout; 255.9 + "third change" -> "manual\nmerge"; 255.10 + backout -> "manual\nmerge"; 255.11 +}
256.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 256.2 +++ b/en/figs/undo-manual.dot Mon Mar 30 16:23:33 2009 +0800 256.3 @@ -0,0 +1,6 @@ 256.4 +digraph undo_manual { 256.5 + "first change" -> "second change"; 256.6 + "second change" -> "third change"; 256.7 + backout [label="back out\nsecond change", shape=box]; 256.8 + "second change" -> backout; 256.9 +}
257.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 257.2 +++ b/en/figs/undo-non-tip.dot Mon Mar 30 16:23:33 2009 +0800 257.3 @@ -0,0 +1,9 @@ 257.4 +digraph undo_non_tip { 257.5 + "first change" -> "second change"; 257.6 + "second change" -> "third change"; 257.7 + backout [label="back out\nsecond change", shape=box]; 257.8 + "second change" -> backout; 257.9 + merge [label="automated\nmerge", shape=box]; 257.10 + "third change" -> merge; 257.11 + backout -> merge; 257.12 +}
258.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 258.2 +++ b/en/figs/undo-simple.dot Mon Mar 30 16:23:33 2009 +0800 258.3 @@ -0,0 +1,4 @@ 258.4 +digraph undo_simple { 258.5 + "first change" -> "second change"; 258.6 + "second change" -> "back out\nsecond change"; 258.7 +}
259.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 259.2 +++ b/en/figs/wdir-after-commit.svg Mon Mar 30 16:23:33 2009 +0800 259.3 @@ -0,0 +1,394 @@ 259.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 259.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 259.6 +<svg 259.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 259.8 + xmlns:cc="http://web.resource.org/cc/" 259.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 259.10 + xmlns:svg="http://www.w3.org/2000/svg" 259.11 + xmlns="http://www.w3.org/2000/svg" 259.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 259.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 259.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 259.15 + width="744.09448819" 259.16 + height="1052.3622047" 259.17 + id="svg5971" 259.18 + sodipodi:version="0.32" 259.19 + inkscape:version="0.44.1" 259.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 259.21 + sodipodi:docname="wdir-after-commit.svg"> 259.22 + <defs 259.23 + id="defs5973"> 259.24 + <linearGradient 259.25 + inkscape:collect="always" 259.26 + xlink:href="#linearGradient6049" 259.27 + id="linearGradient6445" 259.28 + gradientUnits="userSpaceOnUse" 259.29 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 259.30 + x1="333.91171" 259.31 + y1="488.79077" 259.32 + x2="508.94543" 259.33 + y2="263.79077" /> 259.34 + <marker 259.35 + inkscape:stockid="Arrow1Mstart" 259.36 + orient="auto" 259.37 + refY="0.0" 259.38 + refX="0.0" 259.39 + id="Arrow1Mstart" 259.40 + style="overflow:visible"> 259.41 + <path 259.42 + id="path4855" 259.43 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 259.44 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 259.45 + transform="scale(0.4) translate(10,0)" /> 259.46 + </marker> 259.47 + <linearGradient 259.48 + id="linearGradient6049"> 259.49 + <stop 259.50 + style="stop-color:#686868;stop-opacity:1;" 259.51 + offset="0" 259.52 + id="stop6051" /> 259.53 + <stop 259.54 + style="stop-color:#f0f0f0;stop-opacity:1;" 259.55 + offset="1" 259.56 + id="stop6053" /> 259.57 + </linearGradient> 259.58 + <marker 259.59 + inkscape:stockid="Arrow1Mend" 259.60 + orient="auto" 259.61 + refY="0.0" 259.62 + refX="0.0" 259.63 + id="Arrow1Mend" 259.64 + style="overflow:visible;"> 259.65 + <path 259.66 + id="path4852" 259.67 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 259.68 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 259.69 + transform="scale(0.4) rotate(180) translate(10,0)" /> 259.70 + </marker> 259.71 + <linearGradient 259.72 + inkscape:collect="always" 259.73 + xlink:href="#linearGradient6049" 259.74 + id="linearGradient6083" 259.75 + gradientUnits="userSpaceOnUse" 259.76 + gradientTransform="translate(-240.0462,-8.633237e-6)" 259.77 + x1="333.91171" 259.78 + y1="488.79077" 259.79 + x2="508.94543" 259.80 + y2="263.79077" /> 259.81 + <linearGradient 259.82 + inkscape:collect="always" 259.83 + xlink:href="#linearGradient6049" 259.84 + id="linearGradient6142" 259.85 + gradientUnits="userSpaceOnUse" 259.86 + gradientTransform="translate(-42.00893,-30.49544)" 259.87 + x1="333.91171" 259.88 + y1="488.79077" 259.89 + x2="508.94543" 259.90 + y2="263.79077" /> 259.91 + <linearGradient 259.92 + inkscape:collect="always" 259.93 + xlink:href="#linearGradient6049" 259.94 + id="linearGradient6193" 259.95 + gradientUnits="userSpaceOnUse" 259.96 + gradientTransform="translate(-240.0462,-8.633237e-6)" 259.97 + x1="333.91171" 259.98 + y1="488.79077" 259.99 + x2="508.94543" 259.100 + y2="263.79077" /> 259.101 + <linearGradient 259.102 + inkscape:collect="always" 259.103 + xlink:href="#linearGradient6049" 259.104 + id="linearGradient6216" 259.105 + gradientUnits="userSpaceOnUse" 259.106 + gradientTransform="translate(-6.0462,-0.664361)" 259.107 + x1="333.91171" 259.108 + y1="488.79077" 259.109 + x2="508.94543" 259.110 + y2="263.79077" /> 259.111 + <linearGradient 259.112 + inkscape:collect="always" 259.113 + xlink:href="#linearGradient6049" 259.114 + id="linearGradient6232" 259.115 + gradientUnits="userSpaceOnUse" 259.116 + gradientTransform="matrix(1.000474,0,0,0.790947,222.8399,50.85693)" 259.117 + x1="333.91171" 259.118 + y1="488.79077" 259.119 + x2="508.94543" 259.120 + y2="263.79077" /> 259.121 + <linearGradient 259.122 + inkscape:collect="always" 259.123 + xlink:href="#linearGradient6049" 259.124 + id="linearGradient6772" 259.125 + gradientUnits="userSpaceOnUse" 259.126 + gradientTransform="matrix(1.000474,0,0,0.790947,222.8399,50.85693)" 259.127 + x1="333.91171" 259.128 + y1="488.79077" 259.129 + x2="508.94543" 259.130 + y2="263.79077" /> 259.131 + </defs> 259.132 + <sodipodi:namedview 259.133 + id="base" 259.134 + pagecolor="#ffffff" 259.135 + bordercolor="#666666" 259.136 + borderopacity="1.0" 259.137 + gridtolerance="10000" 259.138 + guidetolerance="10" 259.139 + objecttolerance="10" 259.140 + inkscape:pageopacity="0.0" 259.141 + inkscape:pageshadow="2" 259.142 + inkscape:zoom="0.90509668" 259.143 + inkscape:cx="390.0539" 259.144 + inkscape:cy="690.49342" 259.145 + inkscape:document-units="px" 259.146 + inkscape:current-layer="layer1" 259.147 + showguides="true" 259.148 + inkscape:guide-bbox="true" 259.149 + inkscape:window-width="906" 259.150 + inkscape:window-height="620" 259.151 + inkscape:window-x="0" 259.152 + inkscape:window-y="25"> 259.153 + <sodipodi:guide 259.154 + orientation="vertical" 259.155 + position="-1.4285714" 259.156 + id="guide6022" /> 259.157 + </sodipodi:namedview> 259.158 + <metadata 259.159 + id="metadata5976"> 259.160 + <rdf:RDF> 259.161 + <cc:Work 259.162 + rdf:about=""> 259.163 + <dc:format>image/svg+xml</dc:format> 259.164 + <dc:type 259.165 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 259.166 + </cc:Work> 259.167 + </rdf:RDF> 259.168 + </metadata> 259.169 + <g 259.170 + inkscape:label="Layer 1" 259.171 + inkscape:groupmode="layer" 259.172 + id="layer1"> 259.173 + <rect 259.174 + y="245.98355" 259.175 + x="328.23956" 259.176 + height="258.57144" 259.177 + width="174.28572" 259.178 + id="rect6047" 259.179 + style="fill:url(#linearGradient6216);fill-opacity:1;stroke:#686868;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 259.180 + <g 259.181 + id="g6261" 259.182 + transform="translate(234,0)"> 259.183 + <rect 259.184 + y="258.7149" 259.185 + x="114.11369" 259.186 + height="44.537449" 259.187 + width="134.53746" 259.188 + id="rect5983" 259.189 + style="fill:#b1b1b1;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 259.190 + <text 259.191 + id="text5985" 259.192 + y="284.47562" 259.193 + x="138.7962" 259.194 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 259.195 + xml:space="preserve"><tspan 259.196 + style="font-family:Courier" 259.197 + y="284.47562" 259.198 + x="138.7962" 259.199 + id="tspan5987" 259.200 + sodipodi:role="line">dfbbb33f3fa3</tspan></text> 259.201 + </g> 259.202 + <rect 259.203 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 259.204 + id="rect5996" 259.205 + width="134.53746" 259.206 + height="44.537449" 259.207 + x="348.11371" 259.208 + y="320.38159" /> 259.209 + <text 259.210 + xml:space="preserve" 259.211 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 259.212 + x="372.7962" 259.213 + y="346.1423" 259.214 + id="text5998"><tspan 259.215 + sodipodi:role="line" 259.216 + id="tspan6000" 259.217 + x="372.7962" 259.218 + y="346.1423" 259.219 + style="font-family:Courier">e7639888bb2f</tspan></text> 259.220 + <rect 259.221 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 259.222 + id="rect6004" 259.223 + width="134.53746" 259.224 + height="44.537449" 259.225 + x="348.11371" 259.226 + y="382.04825" /> 259.227 + <text 259.228 + xml:space="preserve" 259.229 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 259.230 + x="370.65421" 259.231 + y="407.80896" 259.232 + id="text6006"><tspan 259.233 + sodipodi:role="line" 259.234 + id="tspan6008" 259.235 + x="370.65421" 259.236 + y="407.80896" 259.237 + style="font-family:Courier">7b064d8bac5e</tspan></text> 259.238 + <path 259.239 + inkscape:connector-type="polyline" 259.240 + id="path6018" 259.241 + d="M 415.38242,303.62646 L 415.38242,320.00744" 259.242 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 259.243 + <path 259.244 + inkscape:connection-end="#rect6004" 259.245 + inkscape:connector-type="polyline" 259.246 + id="path6020" 259.247 + d="M 415.38242,365.29315 L 415.38243,381.67412" 259.248 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 259.249 + <rect 259.250 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 259.251 + id="rect6039" 259.252 + width="134.53746" 259.253 + height="44.537449" 259.254 + x="348.11359" 259.255 + y="443.71487" /> 259.256 + <text 259.257 + xml:space="preserve" 259.258 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 259.259 + x="372.79706" 259.260 + y="469.47556" 259.261 + id="text6041"><tspan 259.262 + sodipodi:role="line" 259.263 + id="tspan6043" 259.264 + x="372.79706" 259.265 + y="469.47556" 259.266 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 259.267 + <path 259.268 + inkscape:connection-end="#rect6039" 259.269 + inkscape:connector-type="polyline" 259.270 + id="path6045" 259.271 + d="M 415.38238,426.95981 L 415.38235,443.34087" 259.272 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 259.273 + <text 259.274 + xml:space="preserve" 259.275 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 259.276 + x="327.66046" 259.277 + y="231.36218" 259.278 + id="text6102"><tspan 259.279 + sodipodi:role="line" 259.280 + id="tspan6104" 259.281 + x="327.66046" 259.282 + y="231.36218">History in repository</tspan></text> 259.283 + <rect 259.284 + y="245.94225" 259.285 + x="557.28418" 259.286 + height="204.51619" 259.287 + width="174.36833" 259.288 + id="rect6140" 259.289 + style="fill:url(#linearGradient6232);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 259.290 + <g 259.291 + id="g6130" 259.292 + transform="translate(262.3254,24.38544)"> 259.293 + <rect 259.294 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 259.295 + id="rect6106" 259.296 + width="134.53746" 259.297 + height="44.537449" 259.298 + x="314.87415" 259.299 + y="257.95059" /> 259.300 + <text 259.301 + xml:space="preserve" 259.302 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 259.303 + x="339.55664" 259.304 + y="283.7113" 259.305 + id="text6108"><tspan 259.306 + sodipodi:role="line" 259.307 + id="tspan6110" 259.308 + x="339.55664" 259.309 + y="283.7113" 259.310 + style="font-family:Courier">dfbbb33f3fa3</tspan></text> 259.311 + </g> 259.312 + <g 259.313 + id="g6135" 259.314 + transform="translate(263.0396,49.83106)"> 259.315 + <rect 259.316 + inkscape:transform-center-y="102.85714" 259.317 + inkscape:transform-center-x="129.28571" 259.318 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 259.319 + id="rect6112" 259.320 + width="134.53746" 259.321 + height="44.537449" 259.322 + x="314.15985" 259.323 + y="326.52203" /> 259.324 + <text 259.325 + inkscape:transform-center-y="102.7311" 259.326 + inkscape:transform-center-x="128.69672" 259.327 + xml:space="preserve" 259.328 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 259.329 + x="338.84335" 259.330 + y="352.28271" 259.331 + id="text6114"><tspan 259.332 + sodipodi:role="line" 259.333 + id="tspan6116" 259.334 + x="338.84335" 259.335 + y="352.28271" 259.336 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 259.337 + </g> 259.338 + <text 259.339 + xml:space="preserve" 259.340 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 259.341 + x="576.63208" 259.342 + y="270.479" 259.343 + id="text6118"><tspan 259.344 + sodipodi:role="line" 259.345 + id="tspan6120" 259.346 + x="576.63208" 259.347 + y="270.479">First parent</tspan></text> 259.348 + <text 259.349 + xml:space="preserve" 259.350 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 259.351 + x="576.07544" 259.352 + y="364.49615" 259.353 + id="text6122"><tspan 259.354 + sodipodi:role="line" 259.355 + id="tspan6124" 259.356 + x="576.07544" 259.357 + y="364.49615">Second parent</tspan></text> 259.358 + <text 259.359 + xml:space="preserve" 259.360 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 259.361 + x="556.61743" 259.362 + y="231.36218" 259.363 + id="text6195"><tspan 259.364 + sodipodi:role="line" 259.365 + id="tspan6197" 259.366 + x="556.61743" 259.367 + y="231.36218">Parents of working directory</tspan></text> 259.368 + <path 259.369 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 259.370 + d="M 576.82542,297.63008 L 483.02528,287.95831" 259.371 + id="path6266" 259.372 + inkscape:connector-type="polyline" 259.373 + inkscape:connection-start="#g6130" 259.374 + inkscape:connection-end="#g6261" /> 259.375 + <path 259.376 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 259.377 + d="M 665.12232,418.17579 L 665.12232,418.17579" 259.378 + id="path6270" 259.379 + inkscape:connector-type="polyline" /> 259.380 + <text 259.381 + xml:space="preserve" 259.382 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 259.383 + x="316.86407" 259.384 + y="275.6496" 259.385 + id="text6573"><tspan 259.386 + sodipodi:role="line" 259.387 + id="tspan6575" 259.388 + x="316.86407" 259.389 + y="275.6496" 259.390 + style="text-align:end;text-anchor:end">New</tspan><tspan 259.391 + sodipodi:role="line" 259.392 + x="316.86407" 259.393 + y="290.6496" 259.394 + id="tspan6577" 259.395 + style="text-align:end;text-anchor:end">changeset</tspan></text> 259.396 + </g> 259.397 +</svg>
260.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 260.2 +++ b/en/figs/wdir-branch.svg Mon Mar 30 16:23:33 2009 +0800 260.3 @@ -0,0 +1,418 @@ 260.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 260.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 260.6 +<svg 260.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 260.8 + xmlns:cc="http://web.resource.org/cc/" 260.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 260.10 + xmlns:svg="http://www.w3.org/2000/svg" 260.11 + xmlns="http://www.w3.org/2000/svg" 260.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 260.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 260.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 260.15 + width="744.09448819" 260.16 + height="1052.3622047" 260.17 + id="svg5971" 260.18 + sodipodi:version="0.32" 260.19 + inkscape:version="0.44.1" 260.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 260.21 + sodipodi:docname="wdir-branch.svg"> 260.22 + <defs 260.23 + id="defs5973"> 260.24 + <marker 260.25 + inkscape:stockid="Arrow1Mstart" 260.26 + orient="auto" 260.27 + refY="0.0" 260.28 + refX="0.0" 260.29 + id="Arrow1Mstart" 260.30 + style="overflow:visible"> 260.31 + <path 260.32 + id="path4855" 260.33 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 260.34 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 260.35 + transform="scale(0.4) translate(10,0)" /> 260.36 + </marker> 260.37 + <linearGradient 260.38 + id="linearGradient6049"> 260.39 + <stop 260.40 + style="stop-color:#686868;stop-opacity:1;" 260.41 + offset="0" 260.42 + id="stop6051" /> 260.43 + <stop 260.44 + style="stop-color:#f0f0f0;stop-opacity:1;" 260.45 + offset="1" 260.46 + id="stop6053" /> 260.47 + </linearGradient> 260.48 + <marker 260.49 + inkscape:stockid="Arrow1Mend" 260.50 + orient="auto" 260.51 + refY="0.0" 260.52 + refX="0.0" 260.53 + id="Arrow1Mend" 260.54 + style="overflow:visible;"> 260.55 + <path 260.56 + id="path4852" 260.57 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 260.58 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 260.59 + transform="scale(0.4) rotate(180) translate(10,0)" /> 260.60 + </marker> 260.61 + <linearGradient 260.62 + inkscape:collect="always" 260.63 + xlink:href="#linearGradient6049" 260.64 + id="linearGradient6083" 260.65 + gradientUnits="userSpaceOnUse" 260.66 + gradientTransform="translate(-240.0462,-8.633237e-6)" 260.67 + x1="333.91171" 260.68 + y1="488.79077" 260.69 + x2="508.94543" 260.70 + y2="263.79077" /> 260.71 + <linearGradient 260.72 + inkscape:collect="always" 260.73 + xlink:href="#linearGradient6049" 260.74 + id="linearGradient6142" 260.75 + gradientUnits="userSpaceOnUse" 260.76 + gradientTransform="translate(-42.00893,-30.49544)" 260.77 + x1="333.91171" 260.78 + y1="488.79077" 260.79 + x2="508.94543" 260.80 + y2="263.79077" /> 260.81 + <linearGradient 260.82 + inkscape:collect="always" 260.83 + xlink:href="#linearGradient6049" 260.84 + id="linearGradient6193" 260.85 + gradientUnits="userSpaceOnUse" 260.86 + gradientTransform="translate(-240.0462,-8.633237e-6)" 260.87 + x1="333.91171" 260.88 + y1="488.79077" 260.89 + x2="508.94543" 260.90 + y2="263.79077" /> 260.91 + <linearGradient 260.92 + inkscape:collect="always" 260.93 + xlink:href="#linearGradient6049" 260.94 + id="linearGradient6216" 260.95 + gradientUnits="userSpaceOnUse" 260.96 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 260.97 + x1="333.91171" 260.98 + y1="488.79077" 260.99 + x2="508.94543" 260.100 + y2="263.79077" /> 260.101 + <linearGradient 260.102 + inkscape:collect="always" 260.103 + xlink:href="#linearGradient6049" 260.104 + id="linearGradient6232" 260.105 + gradientUnits="userSpaceOnUse" 260.106 + gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 260.107 + x1="333.91171" 260.108 + y1="488.79077" 260.109 + x2="508.94543" 260.110 + y2="263.79077" /> 260.111 + <linearGradient 260.112 + inkscape:collect="always" 260.113 + xlink:href="#linearGradient6049" 260.114 + id="linearGradient6445" 260.115 + gradientUnits="userSpaceOnUse" 260.116 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 260.117 + x1="333.91171" 260.118 + y1="488.79077" 260.119 + x2="508.94543" 260.120 + y2="263.79077" /> 260.121 + <linearGradient 260.122 + inkscape:collect="always" 260.123 + xlink:href="#linearGradient6049" 260.124 + id="linearGradient6974" 260.125 + gradientUnits="userSpaceOnUse" 260.126 + gradientTransform="matrix(1.911882,0,0,0.789965,-574.7896,51.22599)" 260.127 + x1="333.91171" 260.128 + y1="488.79077" 260.129 + x2="508.94543" 260.130 + y2="263.79077" /> 260.131 + <linearGradient 260.132 + inkscape:collect="always" 260.133 + xlink:href="#linearGradient6049" 260.134 + id="linearGradient6996" 260.135 + gradientUnits="userSpaceOnUse" 260.136 + gradientTransform="matrix(1.000473,0,0,0.790947,112.8399,50.85693)" 260.137 + x1="333.91171" 260.138 + y1="488.79077" 260.139 + x2="508.94543" 260.140 + y2="263.79077" /> 260.141 + </defs> 260.142 + <sodipodi:namedview 260.143 + id="base" 260.144 + pagecolor="#ffffff" 260.145 + bordercolor="#666666" 260.146 + borderopacity="1.0" 260.147 + gridtolerance="10000" 260.148 + guidetolerance="10" 260.149 + objecttolerance="10" 260.150 + inkscape:pageopacity="0.0" 260.151 + inkscape:pageshadow="2" 260.152 + inkscape:zoom="0.90509668" 260.153 + inkscape:cx="345.85973" 260.154 + inkscape:cy="690.49342" 260.155 + inkscape:document-units="px" 260.156 + inkscape:current-layer="layer1" 260.157 + showguides="true" 260.158 + inkscape:guide-bbox="true" 260.159 + inkscape:window-width="906" 260.160 + inkscape:window-height="620" 260.161 + inkscape:window-x="0" 260.162 + inkscape:window-y="25"> 260.163 + <sodipodi:guide 260.164 + orientation="vertical" 260.165 + position="-1.4285714" 260.166 + id="guide6022" /> 260.167 + </sodipodi:namedview> 260.168 + <metadata 260.169 + id="metadata5976"> 260.170 + <rdf:RDF> 260.171 + <cc:Work 260.172 + rdf:about=""> 260.173 + <dc:format>image/svg+xml</dc:format> 260.174 + <dc:type 260.175 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 260.176 + </cc:Work> 260.177 + </rdf:RDF> 260.178 + </metadata> 260.179 + <g 260.180 + inkscape:label="Layer 1" 260.181 + inkscape:groupmode="layer" 260.182 + id="layer1"> 260.183 + <rect 260.184 + y="246.06918" 260.185 + x="64.325172" 260.186 + height="204.26233" 260.187 + width="333.2135" 260.188 + id="rect6047" 260.189 + style="fill:url(#linearGradient6974);fill-opacity:1;stroke:#686868;stroke-width:0.91925466;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 260.190 + <g 260.191 + id="g1935"> 260.192 + <rect 260.193 + y="266.24374" 260.194 + x="84.113708" 260.195 + height="44.537449" 260.196 + width="134.53746" 260.197 + id="rect5996" 260.198 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 260.199 + <text 260.200 + id="text5998" 260.201 + y="292.00446" 260.202 + x="108.7962" 260.203 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 260.204 + xml:space="preserve"><tspan 260.205 + style="font-family:Courier" 260.206 + y="292.00446" 260.207 + x="108.7962" 260.208 + id="tspan6000" 260.209 + sodipodi:role="line">e7639888bb2f</tspan></text> 260.210 + </g> 260.211 + <g 260.212 + id="g6976" 260.213 + transform="translate(70,0)"> 260.214 + <rect 260.215 + y="327.9104" 260.216 + x="40.113693" 260.217 + height="44.537449" 260.218 + width="134.53746" 260.219 + id="rect6004" 260.220 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 260.221 + <text 260.222 + id="text6006" 260.223 + y="353.67111" 260.224 + x="62.654205" 260.225 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 260.226 + xml:space="preserve"><tspan 260.227 + style="font-family:Courier" 260.228 + y="353.67111" 260.229 + x="62.654205" 260.230 + id="tspan6008" 260.231 + sodipodi:role="line">7b064d8bac5e</tspan></text> 260.232 + </g> 260.233 + <path 260.234 + inkscape:connector-type="polyline" 260.235 + id="path6020" 260.236 + d="M 160.92915,311.15532 L 167.83571,327.53627" 260.237 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 260.238 + inkscape:connection-end="#g6976" 260.239 + inkscape:connection-start="#g1935" /> 260.240 + <rect 260.241 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 260.242 + id="rect6039" 260.243 + width="134.53746" 260.244 + height="44.537449" 260.245 + x="110.11359" 260.246 + y="389.57703" /> 260.247 + <text 260.248 + xml:space="preserve" 260.249 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 260.250 + x="134.79706" 260.251 + y="415.33771" 260.252 + id="text6041"><tspan 260.253 + sodipodi:role="line" 260.254 + id="tspan6043" 260.255 + x="134.79706" 260.256 + y="415.33771" 260.257 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 260.258 + <path 260.259 + inkscape:connection-end="#rect6039" 260.260 + inkscape:connector-type="polyline" 260.261 + id="path6045" 260.262 + d="M 177.38238,372.82195 L 177.38235,389.20303" 260.263 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 260.264 + <rect 260.265 + y="245.94225" 260.266 + x="447.28412" 260.267 + height="204.51619" 260.268 + width="174.36833" 260.269 + id="rect6140" 260.270 + style="fill:url(#linearGradient6996);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 260.271 + <g 260.272 + id="g6130" 260.273 + transform="translate(152.3254,24.38544)"> 260.274 + <rect 260.275 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 260.276 + id="rect6106" 260.277 + width="134.53746" 260.278 + height="44.537449" 260.279 + x="314.87415" 260.280 + y="257.95059" /> 260.281 + <text 260.282 + xml:space="preserve" 260.283 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 260.284 + x="339.55664" 260.285 + y="283.7113" 260.286 + id="text6108"><tspan 260.287 + sodipodi:role="line" 260.288 + id="tspan6110" 260.289 + x="339.55664" 260.290 + y="283.7113" 260.291 + style="font-family:Courier">ffb20e1701ea</tspan></text> 260.292 + </g> 260.293 + <g 260.294 + id="g6135" 260.295 + transform="translate(153.0396,49.83106)"> 260.296 + <rect 260.297 + inkscape:transform-center-y="102.85714" 260.298 + inkscape:transform-center-x="129.28571" 260.299 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 260.300 + id="rect6112" 260.301 + width="134.53746" 260.302 + height="44.537449" 260.303 + x="314.15985" 260.304 + y="326.52203" /> 260.305 + <text 260.306 + inkscape:transform-center-y="102.7311" 260.307 + inkscape:transform-center-x="128.69672" 260.308 + xml:space="preserve" 260.309 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 260.310 + x="338.84335" 260.311 + y="352.28271" 260.312 + id="text6114"><tspan 260.313 + sodipodi:role="line" 260.314 + id="tspan6116" 260.315 + x="338.84335" 260.316 + y="352.28271" 260.317 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 260.318 + </g> 260.319 + <text 260.320 + xml:space="preserve" 260.321 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 260.322 + x="466.63208" 260.323 + y="270.479" 260.324 + id="text6118"><tspan 260.325 + sodipodi:role="line" 260.326 + id="tspan6120" 260.327 + x="466.63208" 260.328 + y="270.479">First parent</tspan></text> 260.329 + <text 260.330 + xml:space="preserve" 260.331 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 260.332 + x="466.07544" 260.333 + y="364.49615" 260.334 + id="text6122"><tspan 260.335 + sodipodi:role="line" 260.336 + id="tspan6124" 260.337 + x="466.07544" 260.338 + y="364.49615">Second parent</tspan></text> 260.339 + <text 260.340 + xml:space="preserve" 260.341 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 260.342 + x="446.61743" 260.343 + y="231.36218" 260.344 + id="text6195"><tspan 260.345 + sodipodi:role="line" 260.346 + id="tspan6197" 260.347 + x="446.61743" 260.348 + y="231.36218">Parents of working directory</tspan></text> 260.349 + <path 260.350 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 260.351 + d="M 466.82542,300.21999 L 377.00207,294.39744" 260.352 + id="path6266" 260.353 + inkscape:connector-type="polyline" 260.354 + inkscape:connection-start="#g6130" 260.355 + inkscape:connection-end="#rect1925" /> 260.356 + <path 260.357 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 260.358 + d="M 665.12232,418.17579 L 665.12232,418.17579" 260.359 + id="path6270" 260.360 + inkscape:connector-type="polyline" /> 260.361 + <g 260.362 + id="g2845"> 260.363 + <rect 260.364 + y="266.24374" 260.365 + x="242.09048" 260.366 + height="44.537449" 260.367 + width="134.53746" 260.368 + id="rect1925" 260.369 + style="fill:#9f9f9f;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 260.370 + <text 260.371 + id="text1927" 260.372 + y="292.00446" 260.373 + x="266.77298" 260.374 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 260.375 + xml:space="preserve"><tspan 260.376 + style="font-family:Courier" 260.377 + y="292.00446" 260.378 + x="266.77298" 260.379 + id="tspan1929" 260.380 + sodipodi:role="line">ffb20e1701ea</tspan></text> 260.381 + </g> 260.382 + <path 260.383 + inkscape:connector-type="polyline" 260.384 + id="path1933" 260.385 + d="M 260.89978,311.15532 L 225.84185,327.53627" 260.386 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 260.387 + inkscape:connection-end="#g6976" /> 260.388 + <text 260.389 + xml:space="preserve" 260.390 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 260.391 + x="109.45568" 260.392 + y="231.4554" 260.393 + id="text2837"><tspan 260.394 + sodipodi:role="line" 260.395 + id="tspan2839" 260.396 + x="109.45568" 260.397 + y="231.4554">Pre-existing head</tspan></text> 260.398 + <text 260.399 + xml:space="preserve" 260.400 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 260.401 + x="237.54184" 260.402 + y="231.4554" 260.403 + id="text2841"><tspan 260.404 + sodipodi:role="line" 260.405 + id="tspan2843" 260.406 + x="237.54184" 260.407 + y="231.4554">Newly created head (and tip)</tspan></text> 260.408 + <path 260.409 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 260.410 + d="M 148.05048,235.87482 L 149.94915,265.86962" 260.411 + id="path2850" 260.412 + inkscape:connector-type="polyline" 260.413 + inkscape:connection-end="#g1935" /> 260.414 + <path 260.415 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 260.416 + d="M 303.83495,238.08453 L 306.87874,265.86962" 260.417 + id="path2852" 260.418 + inkscape:connector-type="polyline" 260.419 + inkscape:connection-end="#g2845" /> 260.420 + </g> 260.421 +</svg>
261.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 261.2 +++ b/en/figs/wdir-merge.svg Mon Mar 30 16:23:33 2009 +0800 261.3 @@ -0,0 +1,425 @@ 261.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 261.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 261.6 +<svg 261.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 261.8 + xmlns:cc="http://web.resource.org/cc/" 261.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 261.10 + xmlns:svg="http://www.w3.org/2000/svg" 261.11 + xmlns="http://www.w3.org/2000/svg" 261.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 261.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 261.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 261.15 + width="744.09448819" 261.16 + height="1052.3622047" 261.17 + id="svg5971" 261.18 + sodipodi:version="0.32" 261.19 + inkscape:version="0.44.1" 261.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 261.21 + sodipodi:docname="wdir-merge.svg"> 261.22 + <defs 261.23 + id="defs5973"> 261.24 + <marker 261.25 + inkscape:stockid="Arrow1Mstart" 261.26 + orient="auto" 261.27 + refY="0.0" 261.28 + refX="0.0" 261.29 + id="Arrow1Mstart" 261.30 + style="overflow:visible"> 261.31 + <path 261.32 + id="path4855" 261.33 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 261.34 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 261.35 + transform="scale(0.4) translate(10,0)" /> 261.36 + </marker> 261.37 + <linearGradient 261.38 + id="linearGradient6049"> 261.39 + <stop 261.40 + style="stop-color:#686868;stop-opacity:1;" 261.41 + offset="0" 261.42 + id="stop6051" /> 261.43 + <stop 261.44 + style="stop-color:#f0f0f0;stop-opacity:1;" 261.45 + offset="1" 261.46 + id="stop6053" /> 261.47 + </linearGradient> 261.48 + <marker 261.49 + inkscape:stockid="Arrow1Mend" 261.50 + orient="auto" 261.51 + refY="0.0" 261.52 + refX="0.0" 261.53 + id="Arrow1Mend" 261.54 + style="overflow:visible;"> 261.55 + <path 261.56 + id="path4852" 261.57 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 261.58 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 261.59 + transform="scale(0.4) rotate(180) translate(10,0)" /> 261.60 + </marker> 261.61 + <linearGradient 261.62 + inkscape:collect="always" 261.63 + xlink:href="#linearGradient6049" 261.64 + id="linearGradient6083" 261.65 + gradientUnits="userSpaceOnUse" 261.66 + gradientTransform="translate(-240.0462,-8.633237e-6)" 261.67 + x1="333.91171" 261.68 + y1="488.79077" 261.69 + x2="508.94543" 261.70 + y2="263.79077" /> 261.71 + <linearGradient 261.72 + inkscape:collect="always" 261.73 + xlink:href="#linearGradient6049" 261.74 + id="linearGradient6142" 261.75 + gradientUnits="userSpaceOnUse" 261.76 + gradientTransform="translate(-42.00893,-30.49544)" 261.77 + x1="333.91171" 261.78 + y1="488.79077" 261.79 + x2="508.94543" 261.80 + y2="263.79077" /> 261.81 + <linearGradient 261.82 + inkscape:collect="always" 261.83 + xlink:href="#linearGradient6049" 261.84 + id="linearGradient6193" 261.85 + gradientUnits="userSpaceOnUse" 261.86 + gradientTransform="translate(-240.0462,-8.633237e-6)" 261.87 + x1="333.91171" 261.88 + y1="488.79077" 261.89 + x2="508.94543" 261.90 + y2="263.79077" /> 261.91 + <linearGradient 261.92 + inkscape:collect="always" 261.93 + xlink:href="#linearGradient6049" 261.94 + id="linearGradient6216" 261.95 + gradientUnits="userSpaceOnUse" 261.96 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 261.97 + x1="333.91171" 261.98 + y1="488.79077" 261.99 + x2="508.94543" 261.100 + y2="263.79077" /> 261.101 + <linearGradient 261.102 + inkscape:collect="always" 261.103 + xlink:href="#linearGradient6049" 261.104 + id="linearGradient6232" 261.105 + gradientUnits="userSpaceOnUse" 261.106 + gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 261.107 + x1="333.91171" 261.108 + y1="488.79077" 261.109 + x2="508.94543" 261.110 + y2="263.79077" /> 261.111 + <linearGradient 261.112 + inkscape:collect="always" 261.113 + xlink:href="#linearGradient6049" 261.114 + id="linearGradient6445" 261.115 + gradientUnits="userSpaceOnUse" 261.116 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 261.117 + x1="333.91171" 261.118 + y1="488.79077" 261.119 + x2="508.94543" 261.120 + y2="263.79077" /> 261.121 + <linearGradient 261.122 + inkscape:collect="always" 261.123 + xlink:href="#linearGradient6049" 261.124 + id="linearGradient6974" 261.125 + gradientUnits="userSpaceOnUse" 261.126 + gradientTransform="matrix(1.911882,0,0,0.789965,-574.7896,51.22599)" 261.127 + x1="333.91171" 261.128 + y1="488.79077" 261.129 + x2="508.94543" 261.130 + y2="263.79077" /> 261.131 + <linearGradient 261.132 + inkscape:collect="always" 261.133 + xlink:href="#linearGradient6049" 261.134 + id="linearGradient6996" 261.135 + gradientUnits="userSpaceOnUse" 261.136 + gradientTransform="matrix(1.000473,0,0,0.790947,112.8399,50.85693)" 261.137 + x1="333.91171" 261.138 + y1="488.79077" 261.139 + x2="508.94543" 261.140 + y2="263.79077" /> 261.141 + </defs> 261.142 + <sodipodi:namedview 261.143 + id="base" 261.144 + pagecolor="#ffffff" 261.145 + bordercolor="#666666" 261.146 + borderopacity="1.0" 261.147 + gridtolerance="10000" 261.148 + guidetolerance="10" 261.149 + objecttolerance="10" 261.150 + inkscape:pageopacity="0.0" 261.151 + inkscape:pageshadow="2" 261.152 + inkscape:zoom="1.28" 261.153 + inkscape:cx="345.85973" 261.154 + inkscape:cy="690.49342" 261.155 + inkscape:document-units="px" 261.156 + inkscape:current-layer="layer1" 261.157 + showguides="true" 261.158 + inkscape:guide-bbox="true" 261.159 + inkscape:window-width="906" 261.160 + inkscape:window-height="620" 261.161 + inkscape:window-x="0" 261.162 + inkscape:window-y="25"> 261.163 + <sodipodi:guide 261.164 + orientation="vertical" 261.165 + position="-1.4285714" 261.166 + id="guide6022" /> 261.167 + </sodipodi:namedview> 261.168 + <metadata 261.169 + id="metadata5976"> 261.170 + <rdf:RDF> 261.171 + <cc:Work 261.172 + rdf:about=""> 261.173 + <dc:format>image/svg+xml</dc:format> 261.174 + <dc:type 261.175 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 261.176 + </cc:Work> 261.177 + </rdf:RDF> 261.178 + </metadata> 261.179 + <g 261.180 + inkscape:label="Layer 1" 261.181 + inkscape:groupmode="layer" 261.182 + id="layer1"> 261.183 + <rect 261.184 + y="246.06918" 261.185 + x="64.325172" 261.186 + height="204.26233" 261.187 + width="333.2135" 261.188 + id="rect6047" 261.189 + style="fill:url(#linearGradient6974);fill-opacity:1;stroke:#686868;stroke-width:0.91925466;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 261.190 + <g 261.191 + id="g6976" 261.192 + transform="translate(70,0)"> 261.193 + <rect 261.194 + y="327.9104" 261.195 + x="40.113693" 261.196 + height="44.537449" 261.197 + width="134.53746" 261.198 + id="rect6004" 261.199 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 261.200 + <text 261.201 + id="text6006" 261.202 + y="353.67111" 261.203 + x="62.654205" 261.204 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 261.205 + xml:space="preserve"><tspan 261.206 + style="font-family:Courier" 261.207 + y="353.67111" 261.208 + x="62.654205" 261.209 + id="tspan6008" 261.210 + sodipodi:role="line">7b064d8bac5e</tspan></text> 261.211 + </g> 261.212 + <path 261.213 + inkscape:connector-type="polyline" 261.214 + id="path6020" 261.215 + d="M 160.92915,311.15532 L 167.83571,327.53627" 261.216 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 261.217 + inkscape:connection-end="#g6976" 261.218 + inkscape:connection-start="#g1935" /> 261.219 + <rect 261.220 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 261.221 + id="rect6039" 261.222 + width="134.53746" 261.223 + height="44.537449" 261.224 + x="110.11359" 261.225 + y="389.57703" /> 261.226 + <text 261.227 + xml:space="preserve" 261.228 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 261.229 + x="134.79706" 261.230 + y="415.33771" 261.231 + id="text6041"><tspan 261.232 + sodipodi:role="line" 261.233 + id="tspan6043" 261.234 + x="134.79706" 261.235 + y="415.33771" 261.236 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 261.237 + <path 261.238 + inkscape:connection-end="#rect6039" 261.239 + inkscape:connector-type="polyline" 261.240 + id="path6045" 261.241 + d="M 177.38238,372.82195 L 177.38235,389.20303" 261.242 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 261.243 + <rect 261.244 + y="245.94225" 261.245 + x="447.28412" 261.246 + height="204.51619" 261.247 + width="174.36833" 261.248 + id="rect6140" 261.249 + style="fill:url(#linearGradient6996);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 261.250 + <g 261.251 + id="g6130" 261.252 + transform="translate(152.3254,24.38544)"> 261.253 + <rect 261.254 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 261.255 + id="rect6106" 261.256 + width="134.53746" 261.257 + height="44.537449" 261.258 + x="314.87415" 261.259 + y="257.95059" /> 261.260 + <text 261.261 + xml:space="preserve" 261.262 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 261.263 + x="339.55664" 261.264 + y="283.7113" 261.265 + id="text6108"><tspan 261.266 + sodipodi:role="line" 261.267 + id="tspan6110" 261.268 + x="339.55664" 261.269 + y="283.7113" 261.270 + style="font-family:Courier">ffb20e1701ea</tspan></text> 261.271 + </g> 261.272 + <g 261.273 + id="g6135" 261.274 + transform="translate(153.0396,49.83106)"> 261.275 + <rect 261.276 + inkscape:transform-center-y="102.85714" 261.277 + inkscape:transform-center-x="129.28571" 261.278 + style="fill:#d4d4d4;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 261.279 + id="rect6112" 261.280 + width="134.53746" 261.281 + height="44.537449" 261.282 + x="314.15985" 261.283 + y="326.52203" /> 261.284 + <text 261.285 + inkscape:transform-center-y="102.7311" 261.286 + inkscape:transform-center-x="128.69672" 261.287 + xml:space="preserve" 261.288 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 261.289 + x="338.84335" 261.290 + y="352.28271" 261.291 + id="text6114"><tspan 261.292 + sodipodi:role="line" 261.293 + id="tspan6116" 261.294 + x="338.84335" 261.295 + y="352.28271" 261.296 + style="fill:black;fill-opacity:1;font-family:Courier">e7639888bb2f</tspan></text> 261.297 + </g> 261.298 + <text 261.299 + xml:space="preserve" 261.300 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 261.301 + x="466.63208" 261.302 + y="270.479" 261.303 + id="text6118"><tspan 261.304 + sodipodi:role="line" 261.305 + id="tspan6120" 261.306 + x="466.63208" 261.307 + y="270.479">First parent (unchanged)</tspan></text> 261.308 + <text 261.309 + xml:space="preserve" 261.310 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 261.311 + x="466.07544" 261.312 + y="364.49615" 261.313 + id="text6122"><tspan 261.314 + sodipodi:role="line" 261.315 + id="tspan6124" 261.316 + x="466.07544" 261.317 + y="364.49615">Second parent</tspan></text> 261.318 + <text 261.319 + xml:space="preserve" 261.320 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 261.321 + x="446.61743" 261.322 + y="231.36218" 261.323 + id="text6195"><tspan 261.324 + sodipodi:role="line" 261.325 + id="tspan6197" 261.326 + x="446.61743" 261.327 + y="231.36218">Parents of working directory</tspan></text> 261.328 + <path 261.329 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 261.330 + d="M 466.82542,300.21999 L 377.00207,294.39744" 261.331 + id="path6266" 261.332 + inkscape:connector-type="polyline" 261.333 + inkscape:connection-start="#g6130" 261.334 + inkscape:connection-end="#rect1925" /> 261.335 + <path 261.336 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 261.337 + d="M 665.12232,418.17579 L 665.12232,418.17579" 261.338 + id="path6270" 261.339 + inkscape:connector-type="polyline" /> 261.340 + <g 261.341 + id="g2845"> 261.342 + <rect 261.343 + y="266.24374" 261.344 + x="242.09048" 261.345 + height="44.537449" 261.346 + width="134.53746" 261.347 + id="rect1925" 261.348 + style="fill:#9f9f9f;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 261.349 + <text 261.350 + id="text1927" 261.351 + y="292.00446" 261.352 + x="266.77298" 261.353 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 261.354 + xml:space="preserve"><tspan 261.355 + style="font-family:Courier" 261.356 + y="292.00446" 261.357 + x="266.77298" 261.358 + id="tspan1929" 261.359 + sodipodi:role="line">ffb20e1701ea</tspan></text> 261.360 + </g> 261.361 + <path 261.362 + inkscape:connector-type="polyline" 261.363 + id="path1933" 261.364 + d="M 260.89978,311.15532 L 225.84185,327.53627" 261.365 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 261.366 + inkscape:connection-end="#g6976" /> 261.367 + <text 261.368 + xml:space="preserve" 261.369 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 261.370 + x="109.45568" 261.371 + y="231.4554" 261.372 + id="text2837"><tspan 261.373 + sodipodi:role="line" 261.374 + id="tspan2839" 261.375 + x="109.45568" 261.376 + y="231.4554">Pre-existing head</tspan></text> 261.377 + <text 261.378 + xml:space="preserve" 261.379 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 261.380 + x="237.54184" 261.381 + y="231.4554" 261.382 + id="text2841"><tspan 261.383 + sodipodi:role="line" 261.384 + id="tspan2843" 261.385 + x="237.54184" 261.386 + y="231.4554">Newly created head (and tip)</tspan></text> 261.387 + <path 261.388 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 261.389 + d="M 148.05048,235.87482 L 149.94915,265.86962" 261.390 + id="path2850" 261.391 + inkscape:connector-type="polyline" 261.392 + inkscape:connection-end="#g1935" /> 261.393 + <path 261.394 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 261.395 + d="M 303.83495,238.08453 L 306.87874,265.86962" 261.396 + id="path2852" 261.397 + inkscape:connector-type="polyline" 261.398 + inkscape:connection-end="#g2845" /> 261.399 + <path 261.400 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 261.401 + d="M 466.82545,379.17944 L 219.0253,307.95488" 261.402 + id="path3016" 261.403 + inkscape:connector-type="polyline" 261.404 + inkscape:connection-start="#g6135" 261.405 + inkscape:connection-end="#g1935" /> 261.406 + <g 261.407 + id="g1935"> 261.408 + <rect 261.409 + y="266.24374" 261.410 + x="84.113708" 261.411 + height="44.537449" 261.412 + width="134.53746" 261.413 + id="rect5996" 261.414 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 261.415 + <text 261.416 + id="text5998" 261.417 + y="292.00446" 261.418 + x="108.7962" 261.419 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 261.420 + xml:space="preserve"><tspan 261.421 + style="font-family:Courier" 261.422 + y="292.00446" 261.423 + x="108.7962" 261.424 + id="tspan6000" 261.425 + sodipodi:role="line">e7639888bb2f</tspan></text> 261.426 + </g> 261.427 + </g> 261.428 +</svg>
262.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 262.2 +++ b/en/figs/wdir-pre-branch.svg Mon Mar 30 16:23:33 2009 +0800 262.3 @@ -0,0 +1,364 @@ 262.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 262.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 262.6 +<svg 262.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 262.8 + xmlns:cc="http://web.resource.org/cc/" 262.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 262.10 + xmlns:svg="http://www.w3.org/2000/svg" 262.11 + xmlns="http://www.w3.org/2000/svg" 262.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 262.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 262.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 262.15 + width="744.09448819" 262.16 + height="1052.3622047" 262.17 + id="svg5971" 262.18 + sodipodi:version="0.32" 262.19 + inkscape:version="0.44.1" 262.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 262.21 + sodipodi:docname="wdir-branch.svg"> 262.22 + <defs 262.23 + id="defs5973"> 262.24 + <marker 262.25 + inkscape:stockid="Arrow1Mstart" 262.26 + orient="auto" 262.27 + refY="0.0" 262.28 + refX="0.0" 262.29 + id="Arrow1Mstart" 262.30 + style="overflow:visible"> 262.31 + <path 262.32 + id="path4855" 262.33 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 262.34 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 262.35 + transform="scale(0.4) translate(10,0)" /> 262.36 + </marker> 262.37 + <linearGradient 262.38 + id="linearGradient6049"> 262.39 + <stop 262.40 + style="stop-color:#686868;stop-opacity:1;" 262.41 + offset="0" 262.42 + id="stop6051" /> 262.43 + <stop 262.44 + style="stop-color:#f0f0f0;stop-opacity:1;" 262.45 + offset="1" 262.46 + id="stop6053" /> 262.47 + </linearGradient> 262.48 + <marker 262.49 + inkscape:stockid="Arrow1Mend" 262.50 + orient="auto" 262.51 + refY="0.0" 262.52 + refX="0.0" 262.53 + id="Arrow1Mend" 262.54 + style="overflow:visible;"> 262.55 + <path 262.56 + id="path4852" 262.57 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 262.58 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 262.59 + transform="scale(0.4) rotate(180) translate(10,0)" /> 262.60 + </marker> 262.61 + <linearGradient 262.62 + inkscape:collect="always" 262.63 + xlink:href="#linearGradient6049" 262.64 + id="linearGradient6083" 262.65 + gradientUnits="userSpaceOnUse" 262.66 + gradientTransform="translate(-240.0462,-8.633237e-6)" 262.67 + x1="333.91171" 262.68 + y1="488.79077" 262.69 + x2="508.94543" 262.70 + y2="263.79077" /> 262.71 + <linearGradient 262.72 + inkscape:collect="always" 262.73 + xlink:href="#linearGradient6049" 262.74 + id="linearGradient6142" 262.75 + gradientUnits="userSpaceOnUse" 262.76 + gradientTransform="translate(-42.00893,-30.49544)" 262.77 + x1="333.91171" 262.78 + y1="488.79077" 262.79 + x2="508.94543" 262.80 + y2="263.79077" /> 262.81 + <linearGradient 262.82 + inkscape:collect="always" 262.83 + xlink:href="#linearGradient6049" 262.84 + id="linearGradient6193" 262.85 + gradientUnits="userSpaceOnUse" 262.86 + gradientTransform="translate(-240.0462,-8.633237e-6)" 262.87 + x1="333.91171" 262.88 + y1="488.79077" 262.89 + x2="508.94543" 262.90 + y2="263.79077" /> 262.91 + <linearGradient 262.92 + inkscape:collect="always" 262.93 + xlink:href="#linearGradient6049" 262.94 + id="linearGradient6216" 262.95 + gradientUnits="userSpaceOnUse" 262.96 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 262.97 + x1="333.91171" 262.98 + y1="488.79077" 262.99 + x2="508.94543" 262.100 + y2="263.79077" /> 262.101 + <linearGradient 262.102 + inkscape:collect="always" 262.103 + xlink:href="#linearGradient6049" 262.104 + id="linearGradient6232" 262.105 + gradientUnits="userSpaceOnUse" 262.106 + gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 262.107 + x1="333.91171" 262.108 + y1="488.79077" 262.109 + x2="508.94543" 262.110 + y2="263.79077" /> 262.111 + <linearGradient 262.112 + inkscape:collect="always" 262.113 + xlink:href="#linearGradient6049" 262.114 + id="linearGradient6445" 262.115 + gradientUnits="userSpaceOnUse" 262.116 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 262.117 + x1="333.91171" 262.118 + y1="488.79077" 262.119 + x2="508.94543" 262.120 + y2="263.79077" /> 262.121 + <linearGradient 262.122 + inkscape:collect="always" 262.123 + xlink:href="#linearGradient6049" 262.124 + id="linearGradient6974" 262.125 + gradientUnits="userSpaceOnUse" 262.126 + gradientTransform="matrix(1.000474,0,0,0.790947,-314.246,50.85694)" 262.127 + x1="333.91171" 262.128 + y1="488.79077" 262.129 + x2="508.94543" 262.130 + y2="263.79077" /> 262.131 + <linearGradient 262.132 + inkscape:collect="always" 262.133 + xlink:href="#linearGradient6049" 262.134 + id="linearGradient6996" 262.135 + gradientUnits="userSpaceOnUse" 262.136 + gradientTransform="matrix(1.000473,0,0,0.790947,-85.16012,50.85693)" 262.137 + x1="333.91171" 262.138 + y1="488.79077" 262.139 + x2="508.94543" 262.140 + y2="263.79077" /> 262.141 + </defs> 262.142 + <sodipodi:namedview 262.143 + id="base" 262.144 + pagecolor="#ffffff" 262.145 + bordercolor="#666666" 262.146 + borderopacity="1.0" 262.147 + gridtolerance="10000" 262.148 + guidetolerance="10" 262.149 + objecttolerance="10" 262.150 + inkscape:pageopacity="0.0" 262.151 + inkscape:pageshadow="2" 262.152 + inkscape:zoom="0.90509668" 262.153 + inkscape:cx="390.0539" 262.154 + inkscape:cy="690.49342" 262.155 + inkscape:document-units="px" 262.156 + inkscape:current-layer="layer1" 262.157 + showguides="true" 262.158 + inkscape:guide-bbox="true" 262.159 + inkscape:window-width="906" 262.160 + inkscape:window-height="620" 262.161 + inkscape:window-x="0" 262.162 + inkscape:window-y="25"> 262.163 + <sodipodi:guide 262.164 + orientation="vertical" 262.165 + position="-1.4285714" 262.166 + id="guide6022" /> 262.167 + </sodipodi:namedview> 262.168 + <metadata 262.169 + id="metadata5976"> 262.170 + <rdf:RDF> 262.171 + <cc:Work 262.172 + rdf:about=""> 262.173 + <dc:format>image/svg+xml</dc:format> 262.174 + <dc:type 262.175 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 262.176 + </cc:Work> 262.177 + </rdf:RDF> 262.178 + </metadata> 262.179 + <g 262.180 + inkscape:label="Layer 1" 262.181 + inkscape:groupmode="layer" 262.182 + id="layer1"> 262.183 + <rect 262.184 + y="245.94225" 262.185 + x="20.198257" 262.186 + height="204.51619" 262.187 + width="174.36833" 262.188 + id="rect6047" 262.189 + style="fill:url(#linearGradient6974);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 262.190 + <rect 262.191 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 262.192 + id="rect5996" 262.193 + width="134.53746" 262.194 + height="44.537449" 262.195 + x="40.113693" 262.196 + y="266.24374" /> 262.197 + <text 262.198 + xml:space="preserve" 262.199 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 262.200 + x="64.796204" 262.201 + y="292.00446" 262.202 + id="text5998"><tspan 262.203 + sodipodi:role="line" 262.204 + id="tspan6000" 262.205 + x="64.796204" 262.206 + y="292.00446" 262.207 + style="font-family:Courier">e7639888bb2f</tspan></text> 262.208 + <g 262.209 + id="g6976"> 262.210 + <rect 262.211 + y="327.9104" 262.212 + x="40.113693" 262.213 + height="44.537449" 262.214 + width="134.53746" 262.215 + id="rect6004" 262.216 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 262.217 + <text 262.218 + id="text6006" 262.219 + y="353.67111" 262.220 + x="62.654205" 262.221 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 262.222 + xml:space="preserve"><tspan 262.223 + style="font-family:Courier" 262.224 + y="353.67111" 262.225 + x="62.654205" 262.226 + id="tspan6008" 262.227 + sodipodi:role="line">7b064d8bac5e</tspan></text> 262.228 + </g> 262.229 + <path 262.230 + inkscape:connection-end="#rect6004" 262.231 + inkscape:connector-type="polyline" 262.232 + id="path6020" 262.233 + d="M 107.38242,311.15529 L 107.38242,327.53626" 262.234 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 262.235 + <rect 262.236 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 262.237 + id="rect6039" 262.238 + width="134.53746" 262.239 + height="44.537449" 262.240 + x="40.113571" 262.241 + y="389.57703" /> 262.242 + <text 262.243 + xml:space="preserve" 262.244 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 262.245 + x="64.797073" 262.246 + y="415.33771" 262.247 + id="text6041"><tspan 262.248 + sodipodi:role="line" 262.249 + id="tspan6043" 262.250 + x="64.797073" 262.251 + y="415.33771" 262.252 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 262.253 + <path 262.254 + inkscape:connection-end="#rect6039" 262.255 + inkscape:connector-type="polyline" 262.256 + id="path6045" 262.257 + d="M 107.38238,372.82195 L 107.38235,389.20301" 262.258 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 262.259 + <text 262.260 + xml:space="preserve" 262.261 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 262.262 + x="19.660461" 262.263 + y="231.36218" 262.264 + id="text6102"><tspan 262.265 + sodipodi:role="line" 262.266 + id="tspan6104" 262.267 + x="19.660461" 262.268 + y="231.36218">History in repository</tspan></text> 262.269 + <rect 262.270 + y="245.94225" 262.271 + x="249.28412" 262.272 + height="204.51619" 262.273 + width="174.36833" 262.274 + id="rect6140" 262.275 + style="fill:url(#linearGradient6996);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 262.276 + <g 262.277 + id="g6130" 262.278 + transform="translate(-45.67459,24.38544)"> 262.279 + <rect 262.280 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 262.281 + id="rect6106" 262.282 + width="134.53746" 262.283 + height="44.537449" 262.284 + x="314.87415" 262.285 + y="257.95059" /> 262.286 + <text 262.287 + xml:space="preserve" 262.288 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 262.289 + x="339.55664" 262.290 + y="283.7113" 262.291 + id="text6108"><tspan 262.292 + sodipodi:role="line" 262.293 + id="tspan6110" 262.294 + x="339.55664" 262.295 + y="283.7113" 262.296 + style="font-family:Courier">7b064d8bac5e</tspan></text> 262.297 + </g> 262.298 + <g 262.299 + id="g6135" 262.300 + transform="translate(-44.96042,49.83106)"> 262.301 + <rect 262.302 + inkscape:transform-center-y="102.85714" 262.303 + inkscape:transform-center-x="129.28571" 262.304 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 262.305 + id="rect6112" 262.306 + width="134.53746" 262.307 + height="44.537449" 262.308 + x="314.15985" 262.309 + y="326.52203" /> 262.310 + <text 262.311 + inkscape:transform-center-y="102.7311" 262.312 + inkscape:transform-center-x="128.69672" 262.313 + xml:space="preserve" 262.314 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 262.315 + x="338.84335" 262.316 + y="352.28271" 262.317 + id="text6114"><tspan 262.318 + sodipodi:role="line" 262.319 + id="tspan6116" 262.320 + x="338.84335" 262.321 + y="352.28271" 262.322 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 262.323 + </g> 262.324 + <text 262.325 + xml:space="preserve" 262.326 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 262.327 + x="268.63208" 262.328 + y="270.479" 262.329 + id="text6118"><tspan 262.330 + sodipodi:role="line" 262.331 + id="tspan6120" 262.332 + x="268.63208" 262.333 + y="270.479">First parent</tspan></text> 262.334 + <text 262.335 + xml:space="preserve" 262.336 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 262.337 + x="268.07544" 262.338 + y="364.49615" 262.339 + id="text6122"><tspan 262.340 + sodipodi:role="line" 262.341 + id="tspan6124" 262.342 + x="268.07544" 262.343 + y="364.49615">Second parent</tspan></text> 262.344 + <text 262.345 + xml:space="preserve" 262.346 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 262.347 + x="248.61746" 262.348 + y="231.36218" 262.349 + id="text6195"><tspan 262.350 + sodipodi:role="line" 262.351 + id="tspan6197" 262.352 + x="248.61746" 262.353 + y="231.36218">Parents of working directory</tspan></text> 262.354 + <path 262.355 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 262.356 + d="M 268.82543,318.06163 L 175.02528,336.72225" 262.357 + id="path6266" 262.358 + inkscape:connector-type="polyline" 262.359 + inkscape:connection-end="#g6976" 262.360 + inkscape:connection-start="#g6130" /> 262.361 + <path 262.362 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 262.363 + d="M 665.12232,418.17579 L 665.12232,418.17579" 262.364 + id="path6270" 262.365 + inkscape:connector-type="polyline" /> 262.366 + </g> 262.367 +</svg>
263.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 263.2 +++ b/en/figs/wdir.svg Mon Mar 30 16:23:33 2009 +0800 263.3 @@ -0,0 +1,348 @@ 263.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 263.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 263.6 +<svg 263.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 263.8 + xmlns:cc="http://web.resource.org/cc/" 263.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 263.10 + xmlns:svg="http://www.w3.org/2000/svg" 263.11 + xmlns="http://www.w3.org/2000/svg" 263.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 263.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 263.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 263.15 + width="744.09448819" 263.16 + height="1052.3622047" 263.17 + id="svg5971" 263.18 + sodipodi:version="0.32" 263.19 + inkscape:version="0.44.1" 263.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 263.21 + sodipodi:docname="wdir.svg"> 263.22 + <defs 263.23 + id="defs5973"> 263.24 + <marker 263.25 + inkscape:stockid="Arrow1Mstart" 263.26 + orient="auto" 263.27 + refY="0.0" 263.28 + refX="0.0" 263.29 + id="Arrow1Mstart" 263.30 + style="overflow:visible"> 263.31 + <path 263.32 + id="path4855" 263.33 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 263.34 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 263.35 + transform="scale(0.4) translate(10,0)" /> 263.36 + </marker> 263.37 + <linearGradient 263.38 + id="linearGradient6049"> 263.39 + <stop 263.40 + style="stop-color:#686868;stop-opacity:1;" 263.41 + offset="0" 263.42 + id="stop6051" /> 263.43 + <stop 263.44 + style="stop-color:#f0f0f0;stop-opacity:1;" 263.45 + offset="1" 263.46 + id="stop6053" /> 263.47 + </linearGradient> 263.48 + <marker 263.49 + inkscape:stockid="Arrow1Mend" 263.50 + orient="auto" 263.51 + refY="0.0" 263.52 + refX="0.0" 263.53 + id="Arrow1Mend" 263.54 + style="overflow:visible;"> 263.55 + <path 263.56 + id="path4852" 263.57 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 263.58 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 263.59 + transform="scale(0.4) rotate(180) translate(10,0)" /> 263.60 + </marker> 263.61 + <linearGradient 263.62 + inkscape:collect="always" 263.63 + xlink:href="#linearGradient6049" 263.64 + id="linearGradient6083" 263.65 + gradientUnits="userSpaceOnUse" 263.66 + gradientTransform="translate(-240.0462,-8.633237e-6)" 263.67 + x1="333.91171" 263.68 + y1="488.79077" 263.69 + x2="508.94543" 263.70 + y2="263.79077" /> 263.71 + <linearGradient 263.72 + inkscape:collect="always" 263.73 + xlink:href="#linearGradient6049" 263.74 + id="linearGradient6142" 263.75 + gradientUnits="userSpaceOnUse" 263.76 + gradientTransform="translate(-42.00893,-30.49544)" 263.77 + x1="333.91171" 263.78 + y1="488.79077" 263.79 + x2="508.94543" 263.80 + y2="263.79077" /> 263.81 + <linearGradient 263.82 + inkscape:collect="always" 263.83 + xlink:href="#linearGradient6049" 263.84 + id="linearGradient6193" 263.85 + gradientUnits="userSpaceOnUse" 263.86 + gradientTransform="translate(-240.0462,-8.633237e-6)" 263.87 + x1="333.91171" 263.88 + y1="488.79077" 263.89 + x2="508.94543" 263.90 + y2="263.79077" /> 263.91 + <linearGradient 263.92 + inkscape:collect="always" 263.93 + xlink:href="#linearGradient6049" 263.94 + id="linearGradient6216" 263.95 + gradientUnits="userSpaceOnUse" 263.96 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 263.97 + x1="333.91171" 263.98 + y1="488.79077" 263.99 + x2="508.94543" 263.100 + y2="263.79077" /> 263.101 + <linearGradient 263.102 + inkscape:collect="always" 263.103 + xlink:href="#linearGradient6049" 263.104 + id="linearGradient6232" 263.105 + gradientUnits="userSpaceOnUse" 263.106 + gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 263.107 + x1="333.91171" 263.108 + y1="488.79077" 263.109 + x2="508.94543" 263.110 + y2="263.79077" /> 263.111 + <linearGradient 263.112 + inkscape:collect="always" 263.113 + xlink:href="#linearGradient6049" 263.114 + id="linearGradient6445" 263.115 + gradientUnits="userSpaceOnUse" 263.116 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 263.117 + x1="333.91171" 263.118 + y1="488.79077" 263.119 + x2="508.94543" 263.120 + y2="263.79077" /> 263.121 + </defs> 263.122 + <sodipodi:namedview 263.123 + id="base" 263.124 + pagecolor="#ffffff" 263.125 + bordercolor="#666666" 263.126 + borderopacity="1.0" 263.127 + gridtolerance="10000" 263.128 + guidetolerance="10" 263.129 + objecttolerance="10" 263.130 + inkscape:pageopacity="0.0" 263.131 + inkscape:pageshadow="2" 263.132 + inkscape:zoom="0.90509668" 263.133 + inkscape:cx="390.0539" 263.134 + inkscape:cy="690.49342" 263.135 + inkscape:document-units="px" 263.136 + inkscape:current-layer="layer1" 263.137 + showguides="true" 263.138 + inkscape:guide-bbox="true" 263.139 + inkscape:window-width="906" 263.140 + inkscape:window-height="620" 263.141 + inkscape:window-x="0" 263.142 + inkscape:window-y="25"> 263.143 + <sodipodi:guide 263.144 + orientation="vertical" 263.145 + position="-1.4285714" 263.146 + id="guide6022" /> 263.147 + </sodipodi:namedview> 263.148 + <metadata 263.149 + id="metadata5976"> 263.150 + <rdf:RDF> 263.151 + <cc:Work 263.152 + rdf:about=""> 263.153 + <dc:format>image/svg+xml</dc:format> 263.154 + <dc:type 263.155 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 263.156 + </cc:Work> 263.157 + </rdf:RDF> 263.158 + </metadata> 263.159 + <g 263.160 + inkscape:label="Layer 1" 263.161 + inkscape:groupmode="layer" 263.162 + id="layer1"> 263.163 + <g 263.164 + id="g6431" 263.165 + transform="translate(0,-0.137863)"> 263.166 + <rect 263.167 + style="fill:url(#linearGradient6445);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 263.168 + id="rect6047" 263.169 + width="174.36833" 263.170 + height="204.51619" 263.171 + x="94.198257" 263.172 + y="246.08011" /> 263.173 + <rect 263.174 + y="266.38159" 263.175 + x="114.11369" 263.176 + height="44.537449" 263.177 + width="134.53746" 263.178 + id="rect5996" 263.179 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 263.180 + <text 263.181 + id="text5998" 263.182 + y="292.1423" 263.183 + x="138.7962" 263.184 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 263.185 + xml:space="preserve"><tspan 263.186 + style="font-family:Courier" 263.187 + y="292.1423" 263.188 + x="138.7962" 263.189 + id="tspan6000" 263.190 + sodipodi:role="line">e7639888bb2f</tspan></text> 263.191 + <rect 263.192 + y="328.04825" 263.193 + x="114.11369" 263.194 + height="44.537449" 263.195 + width="134.53746" 263.196 + id="rect6004" 263.197 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 263.198 + <text 263.199 + id="text6006" 263.200 + y="353.80896" 263.201 + x="136.65421" 263.202 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 263.203 + xml:space="preserve"><tspan 263.204 + style="font-family:Courier" 263.205 + y="353.80896" 263.206 + x="136.65421" 263.207 + id="tspan6008" 263.208 + sodipodi:role="line">7b064d8bac5e</tspan></text> 263.209 + <path 263.210 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 263.211 + d="M 181.38242,311.29315 L 181.38242,327.67412" 263.212 + id="path6020" 263.213 + inkscape:connector-type="polyline" 263.214 + inkscape:connection-end="#rect6004" /> 263.215 + <rect 263.216 + y="389.71487" 263.217 + x="114.11357" 263.218 + height="44.537449" 263.219 + width="134.53746" 263.220 + id="rect6039" 263.221 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 263.222 + <text 263.223 + id="text6041" 263.224 + y="415.47556" 263.225 + x="138.79707" 263.226 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 263.227 + xml:space="preserve"><tspan 263.228 + style="fill:#979797;fill-opacity:1;font-family:Courier" 263.229 + y="415.47556" 263.230 + x="138.79707" 263.231 + id="tspan6043" 263.232 + sodipodi:role="line">000000000000</tspan></text> 263.233 + <path 263.234 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 263.235 + d="M 181.38238,372.95981 L 181.38235,389.34087" 263.236 + id="path6045" 263.237 + inkscape:connector-type="polyline" 263.238 + inkscape:connection-end="#rect6039" /> 263.239 + </g> 263.240 + <text 263.241 + xml:space="preserve" 263.242 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 263.243 + x="93.660484" 263.244 + y="231.36218" 263.245 + id="text6102"><tspan 263.246 + sodipodi:role="line" 263.247 + id="tspan6104" 263.248 + x="93.660484" 263.249 + y="231.36218">History in repository</tspan></text> 263.250 + <g 263.251 + id="g6416"> 263.252 + <rect 263.253 + style="fill:url(#linearGradient6232);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 263.254 + id="rect6140" 263.255 + width="174.36833" 263.256 + height="204.51619" 263.257 + x="323.28412" 263.258 + y="245.94225" /> 263.259 + <g 263.260 + transform="translate(28.32541,24.38544)" 263.261 + id="g6130"> 263.262 + <rect 263.263 + y="257.95059" 263.264 + x="314.87415" 263.265 + height="44.537449" 263.266 + width="134.53746" 263.267 + id="rect6106" 263.268 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 263.269 + <text 263.270 + id="text6108" 263.271 + y="283.7113" 263.272 + x="339.55664" 263.273 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 263.274 + xml:space="preserve"><tspan 263.275 + style="font-family:Courier" 263.276 + y="283.7113" 263.277 + x="339.55664" 263.278 + id="tspan6110" 263.279 + sodipodi:role="line">e7639888bb2f</tspan></text> 263.280 + </g> 263.281 + <g 263.282 + transform="translate(29.03958,49.83106)" 263.283 + id="g6135"> 263.284 + <rect 263.285 + y="326.52203" 263.286 + x="314.15985" 263.287 + height="44.537449" 263.288 + width="134.53746" 263.289 + id="rect6112" 263.290 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 263.291 + inkscape:transform-center-x="129.28571" 263.292 + inkscape:transform-center-y="102.85714" /> 263.293 + <text 263.294 + id="text6114" 263.295 + y="352.28271" 263.296 + x="338.84335" 263.297 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 263.298 + xml:space="preserve" 263.299 + inkscape:transform-center-x="128.69672" 263.300 + inkscape:transform-center-y="102.7311"><tspan 263.301 + style="fill:#979797;fill-opacity:1;font-family:Courier" 263.302 + y="352.28271" 263.303 + x="338.84335" 263.304 + id="tspan6116" 263.305 + sodipodi:role="line">000000000000</tspan></text> 263.306 + </g> 263.307 + <text 263.308 + id="text6118" 263.309 + y="270.479" 263.310 + x="342.63208" 263.311 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 263.312 + xml:space="preserve"><tspan 263.313 + y="270.479" 263.314 + x="342.63208" 263.315 + id="tspan6120" 263.316 + sodipodi:role="line">First parent</tspan></text> 263.317 + <text 263.318 + id="text6122" 263.319 + y="364.49615" 263.320 + x="342.07544" 263.321 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 263.322 + xml:space="preserve"><tspan 263.323 + y="364.49615" 263.324 + x="342.07544" 263.325 + id="tspan6124" 263.326 + sodipodi:role="line">Second parent</tspan></text> 263.327 + </g> 263.328 + <text 263.329 + xml:space="preserve" 263.330 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 263.331 + x="322.61746" 263.332 + y="231.36218" 263.333 + id="text6195"><tspan 263.334 + sodipodi:role="line" 263.335 + id="tspan6197" 263.336 + x="322.61746" 263.337 + y="231.36218">Parents of working directory</tspan></text> 263.338 + <path 263.339 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 263.340 + d="M 342.82543,299.89384 L 249.02528,293.36123" 263.341 + id="path6266" 263.342 + inkscape:connector-type="polyline" 263.343 + inkscape:connection-start="#g6130" 263.344 + inkscape:connection-end="#rect5996" /> 263.345 + <path 263.346 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 263.347 + d="M 665.12232,418.17579 L 665.12232,418.17579" 263.348 + id="path6270" 263.349 + inkscape:connector-type="polyline" /> 263.350 + </g> 263.351 +</svg>
264.1 --- a/en/images/feature-branches.dot Fri Mar 20 17:17:55 2009 +0800 264.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 264.3 @@ -1,8 +0,0 @@ 264.4 -digraph feature_branches { 264.5 - master -> crypto; 264.6 - master -> filesystems; 264.7 - master -> ipc; 264.8 - master -> memory; 264.9 - master -> network; 264.10 - master -> security; 264.11 -}
265.1 --- a/en/images/filelog.svg Fri Mar 20 17:17:55 2009 +0800 265.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 265.3 @@ -1,373 +0,0 @@ 265.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 265.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 265.6 -<svg 265.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 265.8 - xmlns:cc="http://web.resource.org/cc/" 265.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 265.10 - xmlns:svg="http://www.w3.org/2000/svg" 265.11 - xmlns="http://www.w3.org/2000/svg" 265.12 - xmlns:xlink="http://www.w3.org/1999/xlink" 265.13 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 265.14 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 265.15 - width="744.09448819" 265.16 - height="1052.3622047" 265.17 - id="svg2" 265.18 - sodipodi:version="0.32" 265.19 - inkscape:version="0.45.1" 265.20 - sodipodi:docname="filelog.svg" 265.21 - sodipodi:docbase="/home/arun/hgbook/en" 265.22 - inkscape:output_extension="org.inkscape.output.svg.inkscape"> 265.23 - <defs 265.24 - id="defs4"> 265.25 - <marker 265.26 - inkscape:stockid="Arrow1Mend" 265.27 - orient="auto" 265.28 - refY="0.0" 265.29 - refX="0.0" 265.30 - id="Arrow1Mend" 265.31 - style="overflow:visible;"> 265.32 - <path 265.33 - id="path3128" 265.34 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 265.35 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 265.36 - transform="scale(0.4) rotate(180) translate(10,0)" /> 265.37 - </marker> 265.38 - <linearGradient 265.39 - id="linearGradient2887"> 265.40 - <stop 265.41 - style="stop-color:#91cfcf;stop-opacity:1;" 265.42 - offset="0" 265.43 - id="stop2889" /> 265.44 - <stop 265.45 - style="stop-color:aqua;stop-opacity:0;" 265.46 - offset="1" 265.47 - id="stop2891" /> 265.48 - </linearGradient> 265.49 - <linearGradient 265.50 - id="linearGradient2795"> 265.51 - <stop 265.52 - style="stop-color:#ccc;stop-opacity:1;" 265.53 - offset="0" 265.54 - id="stop2797" /> 265.55 - <stop 265.56 - style="stop-color:#ccc;stop-opacity:0;" 265.57 - offset="1" 265.58 - id="stop2799" /> 265.59 - </linearGradient> 265.60 - <linearGradient 265.61 - inkscape:collect="always" 265.62 - xlink:href="#linearGradient2795" 265.63 - id="linearGradient3170" 265.64 - gradientUnits="userSpaceOnUse" 265.65 - gradientTransform="translate(121.2183,94.95434)" 265.66 - x1="81.322357" 265.67 - y1="404.34424" 265.68 - x2="201.52036" 265.69 - y2="373.03967" /> 265.70 - <linearGradient 265.71 - inkscape:collect="always" 265.72 - xlink:href="#linearGradient2887" 265.73 - id="linearGradient3172" 265.74 - gradientUnits="userSpaceOnUse" 265.75 - gradientTransform="translate(0,12)" 265.76 - x1="62.634491" 265.77 - y1="503.3392" 265.78 - x2="248.49242" 265.79 - y2="462.94327" /> 265.80 - <linearGradient 265.81 - inkscape:collect="always" 265.82 - xlink:href="#linearGradient2795" 265.83 - id="linearGradient3174" 265.84 - gradientUnits="userSpaceOnUse" 265.85 - gradientTransform="matrix(1.001035,0,0,0.653159,236.7075,153.0415)" 265.86 - x1="81.322357" 265.87 - y1="404.34424" 265.88 - x2="201.52036" 265.89 - y2="373.03967" /> 265.90 - <linearGradient 265.91 - inkscape:collect="always" 265.92 - xlink:href="#linearGradient2887" 265.93 - id="linearGradient3176" 265.94 - gradientUnits="userSpaceOnUse" 265.95 - gradientTransform="translate(0,12)" 265.96 - x1="62.634491" 265.97 - y1="503.3392" 265.98 - x2="248.49242" 265.99 - y2="462.94327" /> 265.100 - <linearGradient 265.101 - inkscape:collect="always" 265.102 - xlink:href="#linearGradient2795" 265.103 - id="linearGradient3208" 265.104 - gradientUnits="userSpaceOnUse" 265.105 - gradientTransform="matrix(1.001035,0,0,0.653159,236.7075,153.0415)" 265.106 - x1="81.322357" 265.107 - y1="404.34424" 265.108 - x2="201.52036" 265.109 - y2="373.03967" /> 265.110 - <linearGradient 265.111 - inkscape:collect="always" 265.112 - xlink:href="#linearGradient2887" 265.113 - id="linearGradient3210" 265.114 - gradientUnits="userSpaceOnUse" 265.115 - gradientTransform="translate(0,12)" 265.116 - x1="62.634491" 265.117 - y1="503.3392" 265.118 - x2="248.49242" 265.119 - y2="462.94327" /> 265.120 - <linearGradient 265.121 - inkscape:collect="always" 265.122 - xlink:href="#linearGradient2795" 265.123 - id="linearGradient3212" 265.124 - gradientUnits="userSpaceOnUse" 265.125 - gradientTransform="translate(121.2183,94.95434)" 265.126 - x1="81.322357" 265.127 - y1="404.34424" 265.128 - x2="201.52036" 265.129 - y2="373.03967" /> 265.130 - <linearGradient 265.131 - inkscape:collect="always" 265.132 - xlink:href="#linearGradient2887" 265.133 - id="linearGradient3214" 265.134 - gradientUnits="userSpaceOnUse" 265.135 - gradientTransform="translate(0,12)" 265.136 - x1="62.634491" 265.137 - y1="503.3392" 265.138 - x2="248.49242" 265.139 - y2="462.94327" /> 265.140 - <linearGradient 265.141 - inkscape:collect="always" 265.142 - xlink:href="#linearGradient2795" 265.143 - id="linearGradient3256" 265.144 - gradientUnits="userSpaceOnUse" 265.145 - gradientTransform="matrix(1.2343775,0,0,0.9981848,103.25588,95.681888)" 265.146 - x1="74.301666" 265.147 - y1="431.67441" 265.148 - x2="260.05884" 265.149 - y2="369.95322" /> 265.150 - <linearGradient 265.151 - inkscape:collect="always" 265.152 - xlink:href="#linearGradient2887" 265.153 - id="linearGradient3258" 265.154 - gradientUnits="userSpaceOnUse" 265.155 - gradientTransform="matrix(1.228929,0,0,0.9972824,-62.037003,13.312997)" 265.156 - x1="62.634491" 265.157 - y1="503.3392" 265.158 - x2="248.49242" 265.159 - y2="462.94327" /> 265.160 - <linearGradient 265.161 - inkscape:collect="always" 265.162 - xlink:href="#linearGradient2795" 265.163 - id="linearGradient3260" 265.164 - gradientUnits="userSpaceOnUse" 265.165 - gradientTransform="matrix(1.2300738,0,0,0.6517275,219.97511,153.61527)" 265.166 - x1="74.387527" 265.167 - y1="431.80576" 265.168 - x2="259.97339" 265.169 - y2="369.82224" /> 265.170 - <linearGradient 265.171 - inkscape:collect="always" 265.172 - xlink:href="#linearGradient2887" 265.173 - id="linearGradient3262" 265.174 - gradientUnits="userSpaceOnUse" 265.175 - gradientTransform="matrix(1.2289272,0,0,0.9972824,-62.036756,13.312985)" 265.176 - x1="62.634491" 265.177 - y1="503.3392" 265.178 - x2="248.49242" 265.179 - y2="462.94327" /> 265.180 - </defs> 265.181 - <sodipodi:namedview 265.182 - id="base" 265.183 - pagecolor="#ffffff" 265.184 - bordercolor="#666666" 265.185 - borderopacity="1.0" 265.186 - gridtolerance="10000" 265.187 - guidetolerance="10" 265.188 - objecttolerance="10" 265.189 - inkscape:pageopacity="0.0" 265.190 - inkscape:pageshadow="2" 265.191 - inkscape:zoom="1.4" 265.192 - inkscape:cx="455.8122" 265.193 - inkscape:cy="520" 265.194 - inkscape:document-units="px" 265.195 - inkscape:current-layer="layer1" 265.196 - inkscape:window-width="1680" 265.197 - inkscape:window-height="970" 265.198 - inkscape:window-x="0" 265.199 - inkscape:window-y="54" /> 265.200 - <metadata 265.201 - id="metadata7"> 265.202 - <rdf:RDF> 265.203 - <cc:Work 265.204 - rdf:about=""> 265.205 - <dc:format>image/svg+xml</dc:format> 265.206 - <dc:type 265.207 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 265.208 - </cc:Work> 265.209 - </rdf:RDF> 265.210 - </metadata> 265.211 - <g 265.212 - inkscape:label="Layer 1" 265.213 - inkscape:groupmode="layer" 265.214 - id="layer1"> 265.215 - <rect 265.216 - style="opacity:1;fill:#abadf8;fill-opacity:1;stroke:#595959;stroke-width:0.93760371;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 265.217 - id="rect3180" 265.218 - width="273.81375" 265.219 - height="199.06245" 265.220 - x="369.1796" 265.221 - y="351.79019" /> 265.222 - <rect 265.223 - style="opacity:1;fill:#a2f69c;fill-opacity:1;stroke:#595959;stroke-width:0.93760341;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 265.224 - id="rect3178" 265.225 - width="273.81339" 265.226 - height="199.06233" 265.227 - x="72.699799" 265.228 - y="351.78983" /> 265.229 - <g 265.230 - id="g3144" 265.231 - transform="translate(80.467048,0.71578)"> 265.232 - <g 265.233 - id="g2940"> 265.234 - <rect 265.235 - style="fill:url(#linearGradient3260);fill-opacity:1;stroke:#000000;stroke-width:0.89536202;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 265.236 - id="rect2914" 265.237 - width="227.38896" 265.238 - height="39.500999" 265.239 - x="311.92496" 265.240 - y="395.08627" /> 265.241 - <text 265.242 - xml:space="preserve" 265.243 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 265.244 - x="323.72824" 265.245 - y="416.7626" 265.246 - id="text2918"><tspan 265.247 - sodipodi:role="line" 265.248 - id="tspan2920" 265.249 - x="323.72824" 265.250 - y="416.7626" 265.251 - style="font-family:Courier">.hg/store/data/README.i</tspan></text> 265.252 - </g> 265.253 - <g 265.254 - transform="translate(3.79093e-5,-80.1853)" 265.255 - id="g2945"> 265.256 - <g 265.257 - id="g2955"> 265.258 - <rect 265.259 - y="475.4968" 265.260 - x="15.550935" 265.261 - height="39.500999" 265.262 - width="227.17694" 265.263 - id="rect2947" 265.264 - style="fill:url(#linearGradient3262);fill-opacity:1;stroke:#000000;stroke-width:1.10706258;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 265.265 - <text 265.266 - id="text2949" 265.267 - y="498.35123" 265.268 - x="31.230644" 265.269 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 265.270 - xml:space="preserve"><tspan 265.271 - style="font-family:Courier" 265.272 - y="498.35123" 265.273 - x="31.230644" 265.274 - id="tspan2951" 265.275 - sodipodi:role="line">README</tspan></text> 265.276 - </g> 265.277 - </g> 265.278 - <path 265.279 - inkscape:connector-type="polyline" 265.280 - id="path2960" 265.281 - d="M 242.94685,414.91115 C 242.94685,414.91115 293.61127,415.26754 310.16269,415.38633" 265.282 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.02046943px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 265.283 - sodipodi:nodetypes="cz" /> 265.284 - </g> 265.285 - <g 265.286 - id="g3156" 265.287 - transform="translate(80.467048,0.71578)"> 265.288 - <g 265.289 - transform="translate(116,0)" 265.290 - id="g2831"> 265.291 - <rect 265.292 - style="fill:url(#linearGradient3256);fill-opacity:1;stroke:#000000;stroke-width:1.11001658;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 265.293 - id="rect1906" 265.294 - width="228.18446" 265.295 - height="60.499123" 265.296 - x="195.52719" 265.297 - y="465.51859" /> 265.298 - <g 265.299 - id="g2803" 265.300 - transform="translate(-0.893671,1.833581)"> 265.301 - <text 265.302 - id="text1884" 265.303 - y="483.92801" 265.304 - x="208.95944" 265.305 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 265.306 - xml:space="preserve"><tspan 265.307 - style="font-family:Courier" 265.308 - y="483.92801" 265.309 - x="208.95944" 265.310 - id="tspan1886" 265.311 - sodipodi:role="line">.hg/store/data/src/hello.c.d</tspan></text> 265.312 - <text 265.313 - id="text1888" 265.314 - y="507.79309" 265.315 - x="208.95944" 265.316 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 265.317 - xml:space="preserve"><tspan 265.318 - style="font-family:Courier" 265.319 - y="507.79309" 265.320 - x="208.95944" 265.321 - id="tspan1890" 265.322 - sodipodi:role="line">.hg/store/data/src/hello.c.i</tspan></text> 265.323 - </g> 265.324 - </g> 265.325 - <g 265.326 - id="g2907"> 265.327 - <rect 265.328 - style="fill:url(#linearGradient3258);fill-opacity:1;stroke:#000000;stroke-width:1.10706329;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 265.329 - id="rect2843" 265.330 - width="227.17728" 265.331 - height="39.500999" 265.332 - x="15.550805" 265.333 - y="475.4968" /> 265.334 - <text 265.335 - xml:space="preserve" 265.336 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 265.337 - x="31.230644" 265.338 - y="498.35123" 265.339 - id="text2847"><tspan 265.340 - sodipodi:role="line" 265.341 - id="tspan2849" 265.342 - x="31.230644" 265.343 - y="498.35123" 265.344 - style="font-family:Courier">src/hello.c</tspan></text> 265.345 - </g> 265.346 - <path 265.347 - inkscape:connection-end="#g2831" 265.348 - inkscape:connection-start="#g2907" 265.349 - inkscape:connector-type="polyline" 265.350 - id="path2962" 265.351 - d="M 242.4315,495.88043 C 242.4315,495.88043 292.8861,495.99942 310.04102,496.03909" 265.352 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 265.353 - sodipodi:nodetypes="cs" /> 265.354 - </g> 265.355 - <text 265.356 - xml:space="preserve" 265.357 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 265.358 - x="98.496666" 265.359 - y="373.96353" 265.360 - id="text3216"><tspan 265.361 - sodipodi:role="line" 265.362 - id="tspan3218" 265.363 - x="98.496666" 265.364 - y="373.96353">Working directory</tspan></text> 265.365 - <text 265.366 - xml:space="preserve" 265.367 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 265.368 - x="391.39197" 265.369 - y="373.96353" 265.370 - id="text3228"><tspan 265.371 - sodipodi:role="line" 265.372 - id="tspan3230" 265.373 - x="391.39197" 265.374 - y="373.96353">Repository</tspan></text> 265.375 - </g> 265.376 -</svg>
266.1 Binary file en/images/kdiff3.png has changed
267.1 --- a/en/images/metadata.svg Fri Mar 20 17:17:55 2009 +0800 267.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 267.3 @@ -1,328 +0,0 @@ 267.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 267.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 267.6 -<svg 267.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 267.8 - xmlns:cc="http://web.resource.org/cc/" 267.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 267.10 - xmlns:svg="http://www.w3.org/2000/svg" 267.11 - xmlns="http://www.w3.org/2000/svg" 267.12 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 267.13 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 267.14 - width="744.09448819" 267.15 - height="1052.3622047" 267.16 - id="svg2" 267.17 - sodipodi:version="0.32" 267.18 - inkscape:version="0.44.1" 267.19 - sodipodi:docname="metadata.svg" 267.20 - sodipodi:docbase="/home/bos/hg/hgbook/en"> 267.21 - <defs 267.22 - id="defs4"> 267.23 - <marker 267.24 - inkscape:stockid="Arrow1Mend" 267.25 - orient="auto" 267.26 - refY="0.0" 267.27 - refX="0.0" 267.28 - id="Arrow1Mend" 267.29 - style="overflow:visible;"> 267.30 - <path 267.31 - id="path2944" 267.32 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 267.33 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 267.34 - transform="scale(0.4) rotate(180) translate(10,0)" /> 267.35 - </marker> 267.36 - </defs> 267.37 - <sodipodi:namedview 267.38 - id="base" 267.39 - pagecolor="#ffffff" 267.40 - bordercolor="#666666" 267.41 - borderopacity="1.0" 267.42 - gridtolerance="10000" 267.43 - guidetolerance="10" 267.44 - objecttolerance="10" 267.45 - inkscape:pageopacity="0.0" 267.46 - inkscape:pageshadow="2" 267.47 - inkscape:zoom="1.4" 267.48 - inkscape:cx="232.14286" 267.49 - inkscape:cy="490.68696" 267.50 - inkscape:document-units="px" 267.51 - inkscape:current-layer="layer1" 267.52 - inkscape:window-width="906" 267.53 - inkscape:window-height="620" 267.54 - inkscape:window-x="181" 267.55 - inkscape:window-y="58" /> 267.56 - <metadata 267.57 - id="metadata7"> 267.58 - <rdf:RDF> 267.59 - <cc:Work 267.60 - rdf:about=""> 267.61 - <dc:format>image/svg+xml</dc:format> 267.62 - <dc:type 267.63 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 267.64 - </cc:Work> 267.65 - </rdf:RDF> 267.66 - </metadata> 267.67 - <g 267.68 - inkscape:label="Layer 1" 267.69 - inkscape:groupmode="layer" 267.70 - id="layer1"> 267.71 - <path 267.72 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1;display:inline" 267.73 - d="M 326.94646,467.18359 L 326.94646,510.98123" 267.74 - id="path1910" 267.75 - inkscape:connector-type="polyline" 267.76 - inkscape:connection-end="#rect2962" 267.77 - inkscape:connection-start="#rect2764" /> 267.78 - <path 267.79 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1;display:inline" 267.80 - d="M 326.94646,531.98123 L 326.94646,591.77887" 267.81 - id="path1912" 267.82 - inkscape:connector-type="polyline" 267.83 - inkscape:connection-start="#rect2962" 267.84 - inkscape:connection-end="#rect3000" /> 267.85 - <path 267.86 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1;display:inline" 267.87 - d="M 316.1622,531.98123 L 192.30212,652.57648" 267.88 - id="path1916" 267.89 - inkscape:connector-type="polyline" 267.90 - inkscape:connection-end="#rect3038" 267.91 - inkscape:connection-start="#rect2962" /> 267.92 - <path 267.93 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#484848;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1" 267.94 - d="M 254.23217,467.18359 L 254.23216,510.98123" 267.95 - id="path3088" 267.96 - inkscape:connector-type="polyline" 267.97 - inkscape:connection-start="#rect1872" 267.98 - inkscape:connection-end="#rect2960" /> 267.99 - <path 267.100 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#484848;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1" 267.101 - d="M 254.23215,531.98123 L 254.23215,591.77887" 267.102 - id="path3090" 267.103 - inkscape:connector-type="polyline" 267.104 - inkscape:connection-start="#rect2960" 267.105 - inkscape:connection-end="#rect2998" /> 267.106 - <path 267.107 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#484848;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1" 267.108 - d="M 248.84002,531.98123 L 186.90999,652.57648" 267.109 - id="path3092" 267.110 - inkscape:connector-type="polyline" 267.111 - inkscape:connection-start="#rect2960" 267.112 - inkscape:connection-end="#rect3038" /> 267.113 - <rect 267.114 - style="fill:#7b7df5;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.115 - id="rect1872" 267.116 - width="51.42857" 267.117 - height="20" 267.118 - x="228.51788" 267.119 - y="446.68359" /> 267.120 - <rect 267.121 - style="fill:#cacbfb;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.122 - id="rect2764" 267.123 - width="51.42857" 267.124 - height="20" 267.125 - x="301.23218" 267.126 - y="446.68359" /> 267.127 - <rect 267.128 - style="fill:#cacbfb;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.129 - id="rect2766" 267.130 - width="51.42857" 267.131 - height="20" 267.132 - x="155.80359" 267.133 - y="446.68359" /> 267.134 - <rect 267.135 - style="fill:#cacbfb;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.136 - id="rect2768" 267.137 - width="51.42857" 267.138 - height="20" 267.139 - x="83.089294" 267.140 - y="446.68359" /> 267.141 - <path 267.142 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 267.143 - d="M 135.01786,456.68359 L 155.30359,456.68359" 267.144 - id="path2770" 267.145 - inkscape:connector-type="polyline" 267.146 - inkscape:connection-start="#rect2768" 267.147 - inkscape:connection-end="#rect2766" /> 267.148 - <path 267.149 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 267.150 - d="M 207.73216,456.68359 L 228.01788,456.68359" 267.151 - id="path2772" 267.152 - inkscape:connector-type="polyline" 267.153 - inkscape:connection-start="#rect2766" 267.154 - inkscape:connection-end="#rect1872" /> 267.155 - <path 267.156 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 267.157 - d="M 280.44645,456.68359 L 300.73218,456.68359" 267.158 - id="path2774" 267.159 - inkscape:connector-type="polyline" 267.160 - inkscape:connection-start="#rect1872" 267.161 - inkscape:connection-end="#rect2764" /> 267.162 - <path 267.163 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 267.164 - d="M 62.303571,456.68359 L 82.589294,456.68359" 267.165 - id="path2778" 267.166 - inkscape:connector-type="polyline" 267.167 - inkscape:connection-end="#rect2768" /> 267.168 - <rect 267.169 - style="fill:#84f57b;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.170 - id="rect2960" 267.171 - width="51.42857" 267.172 - height="20" 267.173 - x="228.51787" 267.174 - y="511.48123" /> 267.175 - <rect 267.176 - style="fill:#cefbca;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.177 - id="rect2962" 267.178 - width="51.42857" 267.179 - height="20" 267.180 - x="301.23218" 267.181 - y="511.48123" /> 267.182 - <rect 267.183 - style="fill:#cefbca;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.184 - id="rect2964" 267.185 - width="51.42857" 267.186 - height="20" 267.187 - x="155.80357" 267.188 - y="511.48123" /> 267.189 - <rect 267.190 - style="fill:#cefbca;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.191 - id="rect2966" 267.192 - width="51.42857" 267.193 - height="20" 267.194 - x="83.089287" 267.195 - y="511.48123" /> 267.196 - <path 267.197 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 267.198 - d="M 135.01786,521.48121 L 155.30359,521.48121" 267.199 - id="path2968" 267.200 - inkscape:connector-type="polyline" /> 267.201 - <path 267.202 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 267.203 - d="M 207.73216,521.48121 L 228.01788,521.48121" 267.204 - id="path2970" 267.205 - inkscape:connector-type="polyline" /> 267.206 - <path 267.207 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 267.208 - d="M 280.44645,521.48121 L 300.73218,521.48121" 267.209 - id="path2972" 267.210 - inkscape:connector-type="polyline" /> 267.211 - <path 267.212 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 267.213 - d="M 62.30358,521.48121 L 82.5893,521.48121" 267.214 - id="path2974" 267.215 - inkscape:connector-type="polyline" /> 267.216 - <rect 267.217 - style="fill:#f57b8f;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.218 - id="rect2998" 267.219 - width="51.42857" 267.220 - height="20" 267.221 - x="228.51787" 267.222 - y="592.27887" /> 267.223 - <rect 267.224 - style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.225 - id="rect3000" 267.226 - width="51.42857" 267.227 - height="20" 267.228 - x="301.23218" 267.229 - y="592.27887" /> 267.230 - <rect 267.231 - style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.232 - id="rect3002" 267.233 - width="51.42857" 267.234 - height="20" 267.235 - x="155.80357" 267.236 - y="592.27887" /> 267.237 - <rect 267.238 - style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.239 - id="rect3004" 267.240 - width="51.42857" 267.241 - height="20" 267.242 - x="83.089287" 267.243 - y="592.27887" /> 267.244 - <path 267.245 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 267.246 - d="M 135.01786,602.27884 L 155.30359,602.27884" 267.247 - id="path3006" 267.248 - inkscape:connector-type="polyline" /> 267.249 - <path 267.250 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 267.251 - d="M 207.73216,602.27884 L 228.01788,602.27884" 267.252 - id="path3008" 267.253 - inkscape:connector-type="polyline" /> 267.254 - <path 267.255 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 267.256 - d="M 280.44645,602.27884 L 300.73218,602.27884" 267.257 - id="path3010" 267.258 - inkscape:connector-type="polyline" /> 267.259 - <path 267.260 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 267.261 - d="M 62.30358,602.27884 L 82.5893,602.27884" 267.262 - id="path3012" 267.263 - inkscape:connector-type="polyline" /> 267.264 - <rect 267.265 - style="fill:#ffced6;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.266 - id="rect3034" 267.267 - width="51.42857" 267.268 - height="20" 267.269 - x="228.51787" 267.270 - y="653.07648" /> 267.271 - <rect 267.272 - style="fill:#f57b8f;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.273 - id="rect3038" 267.274 - width="51.42857" 267.275 - height="20" 267.276 - x="155.80357" 267.277 - y="653.07648" /> 267.278 - <rect 267.279 - style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 267.280 - id="rect3040" 267.281 - width="51.42857" 267.282 - height="20" 267.283 - x="83.089287" 267.284 - y="653.07648" /> 267.285 - <path 267.286 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 267.287 - d="M 135.01786,663.07646 L 155.30359,663.07646" 267.288 - id="path3042" 267.289 - inkscape:connector-type="polyline" /> 267.290 - <path 267.291 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 267.292 - d="M 207.73216,663.07646 L 228.01788,663.07646" 267.293 - id="path3044" 267.294 - inkscape:connector-type="polyline" /> 267.295 - <path 267.296 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 267.297 - d="M 62.30358,663.07646 L 82.5893,663.07646" 267.298 - id="path3048" 267.299 - inkscape:connector-type="polyline" /> 267.300 - <text 267.301 - xml:space="preserve" 267.302 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 267.303 - x="82.072548" 267.304 - y="432.64789" 267.305 - id="text3094"><tspan 267.306 - sodipodi:role="line" 267.307 - id="tspan3096" 267.308 - x="82.072548" 267.309 - y="432.64789">Changelog</tspan></text> 267.310 - <text 267.311 - xml:space="preserve" 267.312 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 267.313 - x="82.306923" 267.314 - y="498.97327" 267.315 - id="text3098"><tspan 267.316 - sodipodi:role="line" 267.317 - id="tspan3100" 267.318 - x="82.306923" 267.319 - y="498.97327">Manifest</tspan></text> 267.320 - <text 267.321 - xml:space="preserve" 267.322 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 267.323 - x="82.14286" 267.324 - y="580.08569" 267.325 - id="text3102"><tspan 267.326 - sodipodi:role="line" 267.327 - id="tspan3104" 267.328 - x="82.14286" 267.329 - y="580.08569">Filelogs</tspan></text> 267.330 - </g> 267.331 -</svg>
268.1 --- a/en/images/mq-stack.svg Fri Mar 20 17:17:55 2009 +0800 268.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 268.3 @@ -1,270 +0,0 @@ 268.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 268.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 268.6 -<svg 268.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 268.8 - xmlns:cc="http://web.resource.org/cc/" 268.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 268.10 - xmlns:svg="http://www.w3.org/2000/svg" 268.11 - xmlns="http://www.w3.org/2000/svg" 268.12 - xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" 268.13 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 268.14 - width="744.09448819" 268.15 - height="1052.3622047" 268.16 - id="svg2" 268.17 - sodipodi:version="0.32" 268.18 - inkscape:version="0.43" 268.19 - sodipodi:docname="mq-stack.svg" 268.20 - sodipodi:docbase="/home/bos/hg/hgbook/en"> 268.21 - <defs 268.22 - id="defs4" /> 268.23 - <sodipodi:namedview 268.24 - id="base" 268.25 - pagecolor="#ffffff" 268.26 - bordercolor="#666666" 268.27 - borderopacity="1.0" 268.28 - inkscape:pageopacity="0.0" 268.29 - inkscape:pageshadow="2" 268.30 - inkscape:zoom="1.4142136" 268.31 - inkscape:cx="299.33323" 268.32 - inkscape:cy="815.646" 268.33 - inkscape:document-units="px" 268.34 - inkscape:current-layer="layer1" 268.35 - inkscape:window-width="1014" 268.36 - inkscape:window-height="689" 268.37 - inkscape:window-x="0" 268.38 - inkscape:window-y="25" /> 268.39 - <metadata 268.40 - id="metadata7"> 268.41 - <rdf:RDF> 268.42 - <cc:Work 268.43 - rdf:about=""> 268.44 - <dc:format>image/svg+xml</dc:format> 268.45 - <dc:type 268.46 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 268.47 - </cc:Work> 268.48 - </rdf:RDF> 268.49 - </metadata> 268.50 - <g 268.51 - inkscape:label="Layer 1" 268.52 - inkscape:groupmode="layer" 268.53 - id="layer1"> 268.54 - <rect 268.55 - style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 268.56 - id="rect1307" 268.57 - width="202.93683" 268.58 - height="24.243662" 268.59 - x="230.01944" 268.60 - y="221.70146" /> 268.61 - <text 268.62 - xml:space="preserve" 268.63 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.64 - x="237.89606" 268.65 - y="237.13383" 268.66 - id="text1309"><tspan 268.67 - sodipodi:role="line" 268.68 - id="tspan1311" 268.69 - x="237.89606" 268.70 - y="237.13383">prevent-compiler-reorder.patch</tspan></text> 268.71 - <rect 268.72 - style="fill:#7979ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 268.73 - id="rect1320" 268.74 - width="202.93683" 268.75 - height="24.243662" 268.76 - x="230.01936" 268.77 - y="251.34325" /> 268.78 - <text 268.79 - xml:space="preserve" 268.80 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.81 - x="237.89598" 268.82 - y="266.77563" 268.83 - id="text1322"><tspan 268.84 - sodipodi:role="line" 268.85 - id="tspan1324" 268.86 - x="237.89598" 268.87 - y="266.77563">namespace-cleanup.patch</tspan></text> 268.88 - <rect 268.89 - style="fill:#7979ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 268.90 - id="rect2217" 268.91 - width="202.93683" 268.92 - height="24.243662" 268.93 - x="230.01936" 268.94 - y="280.98505" /> 268.95 - <text 268.96 - xml:space="preserve" 268.97 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.98 - x="237.89598" 268.99 - y="296.41742" 268.100 - id="text2219"><tspan 268.101 - sodipodi:role="line" 268.102 - id="tspan2221" 268.103 - x="237.89598" 268.104 - y="296.41742">powerpc-port-fixes.patch</tspan></text> 268.105 - <rect 268.106 - style="fill:#7979ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 268.107 - id="rect3114" 268.108 - width="202.93683" 268.109 - height="24.243662" 268.110 - x="230.01936" 268.111 - y="310.6268" /> 268.112 - <text 268.113 - xml:space="preserve" 268.114 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.115 - x="237.89598" 268.116 - y="326.05917" 268.117 - id="text3116"><tspan 268.118 - sodipodi:role="line" 268.119 - id="tspan3118" 268.120 - x="237.89598" 268.121 - y="326.05917">report-devinfo-correctly.patch</tspan></text> 268.122 - <text 268.123 - xml:space="preserve" 268.124 - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.125 - x="200.01021" 268.126 - y="191.68094" 268.127 - id="text3170" 268.128 - sodipodi:linespacing="125%"><tspan 268.129 - sodipodi:role="line" 268.130 - id="tspan3172" 268.131 - x="200.01021" 268.132 - y="191.68094" 268.133 - style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">{</tspan></text> 268.134 - <text 268.135 - xml:space="preserve" 268.136 - style="font-size:15.25329685px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.137 - x="255.26627" 268.138 - y="248.79449" 268.139 - id="text3190" 268.140 - sodipodi:linespacing="125%" 268.141 - transform="scale(0.786716,1.271107)"><tspan 268.142 - sodipodi:role="line" 268.143 - id="tspan3192" 268.144 - x="255.26627" 268.145 - y="248.79449" 268.146 - style="font-size:61.01318741px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">{</tspan></text> 268.147 - <text 268.148 - xml:space="preserve" 268.149 - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.150 - x="195.86807" 268.151 - y="173.17117" 268.152 - id="text4085" 268.153 - sodipodi:linespacing="125%"><tspan 268.154 - sodipodi:role="line" 268.155 - id="tspan4087" 268.156 - x="195.86807" 268.157 - y="173.17117" 268.158 - style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">present in series,</tspan><tspan 268.159 - sodipodi:role="line" 268.160 - x="195.86807" 268.161 - y="188.17117" 268.162 - id="tspan4089" 268.163 - style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">but not applied</tspan></text> 268.164 - <text 268.165 - xml:space="preserve" 268.166 - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.167 - x="195.0712" 268.168 - y="288.91745" 268.169 - id="text4091" 268.170 - sodipodi:linespacing="125%"><tspan 268.171 - sodipodi:role="line" 268.172 - id="tspan4093" 268.173 - x="195.0712" 268.174 - y="288.91745" 268.175 - style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">patches applied,</tspan><tspan 268.176 - sodipodi:role="line" 268.177 - x="195.0712" 268.178 - y="303.91745" 268.179 - id="tspan4111" 268.180 - style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">changesets present</tspan></text> 268.181 - <text 268.182 - xml:space="preserve" 268.183 - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.184 - x="195.0712" 268.185 - y="229.28813" 268.186 - id="text4095" 268.187 - sodipodi:linespacing="125%"><tspan 268.188 - sodipodi:role="line" 268.189 - id="tspan4097" 268.190 - x="195.0712" 268.191 - y="229.28813" 268.192 - style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">topmost</tspan><tspan 268.193 - sodipodi:role="line" 268.194 - x="195.0712" 268.195 - y="244.28813" 268.196 - id="tspan4109" 268.197 - style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">applied patch</tspan></text> 268.198 - <text 268.199 - xml:space="preserve" 268.200 - style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#666666;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.201 - x="450.4975" 268.202 - y="238.29692" 268.203 - id="text4137"><tspan 268.204 - sodipodi:role="line" 268.205 - id="tspan4139" 268.206 - x="450.4975" 268.207 - y="238.29692">201ad3209902</tspan></text> 268.208 - <text 268.209 - xml:space="preserve" 268.210 - style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#989898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.211 - x="450.05804" 268.212 - y="267.93872" 268.213 - id="text4141"><tspan 268.214 - sodipodi:role="line" 268.215 - id="tspan4143" 268.216 - x="450.05804" 268.217 - y="267.93872">126b84e593ae</tspan></text> 268.218 - <text 268.219 - xml:space="preserve" 268.220 - style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#989898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.221 - x="450.6557" 268.222 - y="297.58051" 268.223 - id="text4145"><tspan 268.224 - sodipodi:role="line" 268.225 - id="tspan4147" 268.226 - x="450.6557" 268.227 - y="297.58051">a655daf15409</tspan></text> 268.228 - <text 268.229 - xml:space="preserve" 268.230 - style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#989898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.231 - x="450.71429" 268.232 - y="327.22226" 268.233 - id="text4149"><tspan 268.234 - sodipodi:role="line" 268.235 - id="tspan4151" 268.236 - x="450.71429" 268.237 - y="327.22226">e50d59aaea3a</tspan></text> 268.238 - <rect 268.239 - style="fill:#d7d7ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#a6a6a6;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 268.240 - id="rect3106" 268.241 - width="202.93683" 268.242 - height="24.243662" 268.243 - x="230.01936" 268.244 - y="150.41792" /> 268.245 - <text 268.246 - xml:space="preserve" 268.247 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.248 - x="237.89598" 268.249 - y="165.8503" 268.250 - id="text3108"><tspan 268.251 - sodipodi:role="line" 268.252 - id="tspan3110" 268.253 - x="237.89598" 268.254 - y="165.8503">forbid-illegal-params.patch</tspan></text> 268.255 - <rect 268.256 - style="fill:#d7d7ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#a6a6a6;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 268.257 - id="rect2241" 268.258 - width="202.93683" 268.259 - height="24.243662" 268.260 - x="230.16466" 268.261 - y="180.05968" /> 268.262 - <text 268.263 - xml:space="preserve" 268.264 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 268.265 - x="238.04128" 268.266 - y="195.49205" 268.267 - id="text2243"><tspan 268.268 - sodipodi:role="line" 268.269 - id="tspan2245" 268.270 - x="238.04128" 268.271 - y="195.49205">fix-memory-leak.patch</tspan></text> 268.272 - </g> 268.273 -</svg>
269.1 Binary file en/images/note.png has changed
270.1 --- a/en/images/revlog.svg Fri Mar 20 17:17:55 2009 +0800 270.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 270.3 @@ -1,1155 +0,0 @@ 270.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 270.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 270.6 -<svg 270.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 270.8 - xmlns:cc="http://web.resource.org/cc/" 270.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 270.10 - xmlns:svg="http://www.w3.org/2000/svg" 270.11 - xmlns="http://www.w3.org/2000/svg" 270.12 - xmlns:xlink="http://www.w3.org/1999/xlink" 270.13 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 270.14 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 270.15 - width="744.09448819" 270.16 - height="1052.3622047" 270.17 - id="svg2" 270.18 - sodipodi:version="0.32" 270.19 - inkscape:version="0.44.1" 270.20 - sodipodi:docbase="/home/bos/hg/hgbook/en" 270.21 - sodipodi:docname="revlog.svg"> 270.22 - <defs 270.23 - id="defs4"> 270.24 - <marker 270.25 - inkscape:stockid="Arrow1Mend" 270.26 - orient="auto" 270.27 - refY="0.0" 270.28 - refX="0.0" 270.29 - id="Arrow1Mend" 270.30 - style="overflow:visible;"> 270.31 - <path 270.32 - id="path4852" 270.33 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 270.34 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 270.35 - transform="scale(0.4) rotate(180) translate(10,0)" /> 270.36 - </marker> 270.37 - <linearGradient 270.38 - id="linearGradient3092"> 270.39 - <stop 270.40 - style="stop-color:#44436f;stop-opacity:1;" 270.41 - offset="0" 270.42 - id="stop3094" /> 270.43 - <stop 270.44 - style="stop-color:#abade5;stop-opacity:1;" 270.45 - offset="1" 270.46 - id="stop3096" /> 270.47 - </linearGradient> 270.48 - <linearGradient 270.49 - inkscape:collect="always" 270.50 - xlink:href="#linearGradient3092" 270.51 - id="linearGradient3118" 270.52 - gradientUnits="userSpaceOnUse" 270.53 - x1="176.16635" 270.54 - y1="405.21934" 270.55 - x2="417.11935" 270.56 - y2="405.21934" /> 270.57 - <linearGradient 270.58 - inkscape:collect="always" 270.59 - xlink:href="#linearGradient3092" 270.60 - id="linearGradient3120" 270.61 - gradientUnits="userSpaceOnUse" 270.62 - x1="176.16635" 270.63 - y1="405.21934" 270.64 - x2="417.11935" 270.65 - y2="405.21934" /> 270.66 - <linearGradient 270.67 - inkscape:collect="always" 270.68 - xlink:href="#linearGradient3092" 270.69 - id="linearGradient3129" 270.70 - gradientUnits="userSpaceOnUse" 270.71 - x1="176.16635" 270.72 - y1="405.21934" 270.73 - x2="417.11935" 270.74 - y2="405.21934" 270.75 - gradientTransform="translate(-0.928574,-1.428574)" /> 270.76 - <linearGradient 270.77 - inkscape:collect="always" 270.78 - xlink:href="#linearGradient3092" 270.79 - id="linearGradient3133" 270.80 - gradientUnits="userSpaceOnUse" 270.81 - x1="176.16635" 270.82 - y1="405.21934" 270.83 - x2="417.11935" 270.84 - y2="405.21934" 270.85 - gradientTransform="translate(-0.928574,-1.428574)" /> 270.86 - <linearGradient 270.87 - inkscape:collect="always" 270.88 - xlink:href="#linearGradient3092" 270.89 - id="linearGradient3708" 270.90 - gradientUnits="userSpaceOnUse" 270.91 - gradientTransform="matrix(0.423343,0,0,0.423343,138.874,-67.01732)" 270.92 - x1="175.23776" 270.93 - y1="509.98154" 270.94 - x2="416.29077" 270.95 - y2="297.49997" /> 270.96 - <linearGradient 270.97 - inkscape:collect="always" 270.98 - xlink:href="#linearGradient3092" 270.99 - id="linearGradient5164" 270.100 - gradientUnits="userSpaceOnUse" 270.101 - gradientTransform="matrix(0.423343,0,0,0.423343,198.249,247.4358)" 270.102 - x1="175.23776" 270.103 - y1="509.98154" 270.104 - x2="416.29077" 270.105 - y2="297.49997" /> 270.106 - <linearGradient 270.107 - inkscape:collect="always" 270.108 - xlink:href="#linearGradient3092" 270.109 - id="linearGradient5584" 270.110 - gradientUnits="userSpaceOnUse" 270.111 - gradientTransform="matrix(0.423343,0,0,0.423343,143.9081,371.2915)" 270.112 - x1="175.23776" 270.113 - y1="509.98154" 270.114 - x2="416.29077" 270.115 - y2="297.49997" /> 270.116 - <linearGradient 270.117 - inkscape:collect="always" 270.118 - xlink:href="#linearGradient3092" 270.119 - id="linearGradient5784" 270.120 - gradientUnits="userSpaceOnUse" 270.121 - gradientTransform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 270.122 - x1="175.23776" 270.123 - y1="509.98154" 270.124 - x2="416.29077" 270.125 - y2="297.49997" /> 270.126 - <linearGradient 270.127 - inkscape:collect="always" 270.128 - xlink:href="#linearGradient3092" 270.129 - id="linearGradient5786" 270.130 - gradientUnits="userSpaceOnUse" 270.131 - gradientTransform="matrix(0.423343,0,0,0.423343,198.249,152.137)" 270.132 - x1="175.23776" 270.133 - y1="509.98154" 270.134 - x2="416.29077" 270.135 - y2="297.49997" /> 270.136 - <linearGradient 270.137 - inkscape:collect="always" 270.138 - xlink:href="#linearGradient3092" 270.139 - id="linearGradient5895" 270.140 - gradientUnits="userSpaceOnUse" 270.141 - gradientTransform="matrix(0.423343,0,0,0.423343,198.0215,261.7142)" 270.142 - x1="175.23776" 270.143 - y1="509.98154" 270.144 - x2="416.29077" 270.145 - y2="297.49997" /> 270.146 - <linearGradient 270.147 - inkscape:collect="always" 270.148 - xlink:href="#linearGradient3092" 270.149 - id="linearGradient5958" 270.150 - gradientUnits="userSpaceOnUse" 270.151 - gradientTransform="matrix(0.423343,0,0,0.423343,137.1978,42.55987)" 270.152 - x1="175.23776" 270.153 - y1="509.98154" 270.154 - x2="416.29077" 270.155 - y2="297.49997" /> 270.156 - </defs> 270.157 - <sodipodi:namedview 270.158 - id="base" 270.159 - pagecolor="#ffffff" 270.160 - bordercolor="#666666" 270.161 - borderopacity="1.0" 270.162 - gridtolerance="10000" 270.163 - guidetolerance="10" 270.164 - objecttolerance="10" 270.165 - inkscape:pageopacity="0.0" 270.166 - inkscape:pageshadow="2" 270.167 - inkscape:zoom="0.64" 270.168 - inkscape:cx="566.02368" 270.169 - inkscape:cy="688.16826" 270.170 - inkscape:document-units="px" 270.171 - inkscape:current-layer="layer1" 270.172 - inkscape:window-width="906" 270.173 - inkscape:window-height="620" 270.174 - inkscape:window-x="29" 270.175 - inkscape:window-y="79" 270.176 - inkscape:connector-spacing="11" /> 270.177 - <metadata 270.178 - id="metadata7"> 270.179 - <rdf:RDF> 270.180 - <cc:Work 270.181 - rdf:about=""> 270.182 - <dc:format>image/svg+xml</dc:format> 270.183 - <dc:type 270.184 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 270.185 - </cc:Work> 270.186 - </rdf:RDF> 270.187 - </metadata> 270.188 - <g 270.189 - inkscape:label="Layer 1" 270.190 - inkscape:groupmode="layer" 270.191 - id="layer1"> 270.192 - <rect 270.193 - y="168.74846" 270.194 - x="211.58516" 270.195 - height="89.506805" 270.196 - width="101.60232" 270.197 - id="rect3068" 270.198 - style="fill:url(#linearGradient5958);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 270.199 - <g 270.200 - id="g3215" 270.201 - transform="matrix(0.423343,0,0,0.423343,137.1977,42.55985)"> 270.202 - <rect 270.203 - y="447.71451" 270.204 - x="299.67859" 270.205 - height="48.571426" 270.206 - width="103.14286" 270.207 - id="rect2899" 270.208 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 270.209 - <text 270.210 - id="text2903" 270.211 - y="464.8139" 270.212 - x="308.89639" 270.213 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.214 - xml:space="preserve"><tspan 270.215 - y="464.8139" 270.216 - x="308.89639" 270.217 - sodipodi:role="line" 270.218 - id="tspan2905">Second parent</tspan></text> 270.219 - <text 270.220 - id="text2907" 270.221 - y="485.50256" 270.222 - x="308.20175" 270.223 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.224 - xml:space="preserve"><tspan 270.225 - style="font-family:Courier" 270.226 - y="485.50256" 270.227 - x="308.20175" 270.228 - id="tspan2909" 270.229 - sodipodi:role="line">32bf9a5f22c0</tspan></text> 270.230 - </g> 270.231 - <g 270.232 - id="g3250" 270.233 - transform="matrix(0.423343,0,0,0.423343,137.1977,42.55986)"> 270.234 - <rect 270.235 - y="311.28598" 270.236 - x="188.6071" 270.237 - height="48.571426" 270.238 - width="103.14286" 270.239 - id="rect2936" 270.240 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 270.241 - <text 270.242 - id="text2940" 270.243 - y="328.38538" 270.244 - x="197.82495" 270.245 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.246 - xml:space="preserve"><tspan 270.247 - y="328.38538" 270.248 - x="197.82495" 270.249 - sodipodi:role="line" 270.250 - id="tspan2942">Revision hash</tspan></text> 270.251 - <text 270.252 - id="text2944" 270.253 - y="349.07404" 270.254 - x="197.13031" 270.255 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.256 - xml:space="preserve"><tspan 270.257 - style="font-family:Courier" 270.258 - y="349.07404" 270.259 - x="197.13031" 270.260 - id="tspan2946" 270.261 - sodipodi:role="line">34b8b7a15ea1</tspan></text> 270.262 - </g> 270.263 - <g 270.264 - id="g3243" 270.265 - transform="matrix(0.423343,0,0,0.423343,137.6664,43.91853)"> 270.266 - <rect 270.267 - y="363.07654" 270.268 - x="187.5" 270.269 - height="75" 270.270 - width="213.85715" 270.271 - id="rect2950" 270.272 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 270.273 - <text 270.274 - id="text2958" 270.275 - y="400.86459" 270.276 - x="196.02321" 270.277 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.278 - xml:space="preserve"><tspan 270.279 - style="fill:black;fill-opacity:1;font-family:Courier" 270.280 - y="400.86459" 270.281 - x="196.02321" 270.282 - id="tspan2960" 270.283 - sodipodi:role="line">...</tspan></text> 270.284 - <text 270.285 - id="text2954" 270.286 - y="380.17593" 270.287 - x="196.71785" 270.288 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.289 - xml:space="preserve"><tspan 270.290 - y="380.17593" 270.291 - x="196.71785" 270.292 - sodipodi:role="line" 270.293 - id="tspan2956" 270.294 - style="fill:black;fill-opacity:1">Revision data (delta or snapshot)</tspan></text> 270.295 - </g> 270.296 - <g 270.297 - id="g5529" 270.298 - transform="translate(-6.710312,-8.165836e-6)"> 270.299 - <rect 270.300 - style="fill:url(#linearGradient5584);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.301 - id="rect3509" 270.302 - width="101.60232" 270.303 - height="89.506805" 270.304 - x="218.29547" 270.305 - y="497.4801" /> 270.306 - <g 270.307 - transform="matrix(0.423343,0,0,0.423343,143.908,371.2915)" 270.308 - id="g3513"> 270.309 - <g 270.310 - id="g3515"> 270.311 - <rect 270.312 - y="447.72418" 270.313 - x="188.6071" 270.314 - height="48.571426" 270.315 - width="103.14286" 270.316 - id="rect3517" 270.317 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 270.318 - <text 270.319 - id="text3519" 270.320 - y="464.82358" 270.321 - x="197.82495" 270.322 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.323 - xml:space="preserve"><tspan 270.324 - y="464.82358" 270.325 - x="197.82495" 270.326 - sodipodi:role="line" 270.327 - id="tspan3521">First parent</tspan></text> 270.328 - <text 270.329 - id="text3523" 270.330 - y="485.51224" 270.331 - x="197.13031" 270.332 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.333 - xml:space="preserve"><tspan 270.334 - style="font-family:Courier" 270.335 - y="485.51224" 270.336 - x="197.13031" 270.337 - id="tspan3525" 270.338 - sodipodi:role="line">000000000000</tspan></text> 270.339 - </g> 270.340 - <g 270.341 - id="g3527"> 270.342 - <rect 270.343 - y="447.71451" 270.344 - x="299.67859" 270.345 - height="48.571426" 270.346 - width="103.14286" 270.347 - id="rect3529" 270.348 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 270.349 - <text 270.350 - id="text3531" 270.351 - y="464.8139" 270.352 - x="308.89639" 270.353 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.354 - xml:space="preserve"><tspan 270.355 - y="464.8139" 270.356 - x="308.89639" 270.357 - sodipodi:role="line" 270.358 - id="tspan3533">Second parent</tspan></text> 270.359 - <text 270.360 - id="text3535" 270.361 - y="485.50256" 270.362 - x="308.20175" 270.363 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.364 - xml:space="preserve"><tspan 270.365 - style="font-family:Courier" 270.366 - y="485.50256" 270.367 - x="308.20175" 270.368 - id="tspan3537" 270.369 - sodipodi:role="line">000000000000</tspan></text> 270.370 - </g> 270.371 - </g> 270.372 - <g 270.373 - transform="matrix(0.423343,0,0,0.423343,143.908,371.2915)" 270.374 - id="g3539"> 270.375 - <rect 270.376 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.377 - id="rect3541" 270.378 - width="103.14286" 270.379 - height="48.571426" 270.380 - x="188.6071" 270.381 - y="311.28598" /> 270.382 - <text 270.383 - xml:space="preserve" 270.384 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.385 - x="197.82495" 270.386 - y="328.38538" 270.387 - id="text3543"><tspan 270.388 - id="tspan3545" 270.389 - sodipodi:role="line" 270.390 - x="197.82495" 270.391 - y="328.38538">Revision hash</tspan></text> 270.392 - <text 270.393 - xml:space="preserve" 270.394 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.395 - x="197.13031" 270.396 - y="349.07404" 270.397 - id="text3547"><tspan 270.398 - sodipodi:role="line" 270.399 - id="tspan3549" 270.400 - x="197.13031" 270.401 - y="349.07404" 270.402 - style="font-family:Courier">ff9dc8bc2a8b</tspan></text> 270.403 - </g> 270.404 - <g 270.405 - transform="matrix(0.423343,0,0,0.423343,144.3767,372.6502)" 270.406 - id="g3551"> 270.407 - <rect 270.408 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.409 - id="rect3553" 270.410 - width="213.85715" 270.411 - height="75" 270.412 - x="187.5" 270.413 - y="363.07654" /> 270.414 - <text 270.415 - xml:space="preserve" 270.416 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.417 - x="196.02321" 270.418 - y="400.86459" 270.419 - id="text3555"><tspan 270.420 - sodipodi:role="line" 270.421 - id="tspan3557" 270.422 - x="196.02321" 270.423 - y="400.86459" 270.424 - style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 270.425 - <text 270.426 - xml:space="preserve" 270.427 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.428 - x="196.71785" 270.429 - y="380.17593" 270.430 - id="text3559"><tspan 270.431 - style="fill:black;fill-opacity:1" 270.432 - id="tspan3561" 270.433 - sodipodi:role="line" 270.434 - x="196.71785" 270.435 - y="380.17593">Revision data (delta or snapshot)</tspan></text> 270.436 - </g> 270.437 - </g> 270.438 - <g 270.439 - id="g4868" 270.440 - transform="translate(-1.676208,-2.342463e-5)"> 270.441 - <rect 270.442 - style="fill:url(#linearGradient3708);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.443 - id="rect3567" 270.444 - width="101.60232" 270.445 - height="89.506805" 270.446 - x="213.26137" 270.447 - y="59.171272" /> 270.448 - <g 270.449 - transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01734)" 270.450 - id="g3573"> 270.451 - <rect 270.452 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.453 - id="rect3575" 270.454 - width="103.14286" 270.455 - height="48.571426" 270.456 - x="188.6071" 270.457 - y="447.72418" /> 270.458 - <text 270.459 - xml:space="preserve" 270.460 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.461 - x="197.82495" 270.462 - y="464.82358" 270.463 - id="text3577"><tspan 270.464 - id="tspan3579" 270.465 - sodipodi:role="line" 270.466 - x="197.82495" 270.467 - y="464.82358">First parent</tspan></text> 270.468 - <text 270.469 - xml:space="preserve" 270.470 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.471 - x="197.13031" 270.472 - y="485.51224" 270.473 - id="text3581"><tspan 270.474 - sodipodi:role="line" 270.475 - id="tspan3583" 270.476 - x="197.13031" 270.477 - y="485.51224" 270.478 - style="font-family:Courier">34b8b7a15ea1</tspan></text> 270.479 - </g> 270.480 - <g 270.481 - transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01734)" 270.482 - id="g3585"> 270.483 - <rect 270.484 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.485 - id="rect3587" 270.486 - width="103.14286" 270.487 - height="48.571426" 270.488 - x="299.67859" 270.489 - y="447.71451" /> 270.490 - <text 270.491 - xml:space="preserve" 270.492 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.493 - x="308.89639" 270.494 - y="464.8139" 270.495 - id="text3589"><tspan 270.496 - id="tspan3591" 270.497 - sodipodi:role="line" 270.498 - x="308.89639" 270.499 - y="464.8139">Second parent</tspan></text> 270.500 - <text 270.501 - xml:space="preserve" 270.502 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.503 - x="308.20175" 270.504 - y="485.50256" 270.505 - id="text3593"><tspan 270.506 - sodipodi:role="line" 270.507 - id="tspan3595" 270.508 - x="308.20175" 270.509 - y="485.50256" 270.510 - style="font-family:Courier">000000000000</tspan></text> 270.511 - </g> 270.512 - <g 270.513 - transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01733)" 270.514 - id="g3597"> 270.515 - <rect 270.516 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.517 - id="rect3599" 270.518 - width="103.14286" 270.519 - height="48.571426" 270.520 - x="188.6071" 270.521 - y="311.28598" /> 270.522 - <text 270.523 - xml:space="preserve" 270.524 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.525 - x="197.82495" 270.526 - y="328.38538" 270.527 - id="text3601"><tspan 270.528 - id="tspan3603" 270.529 - sodipodi:role="line" 270.530 - x="197.82495" 270.531 - y="328.38538">Revision hash</tspan></text> 270.532 - <text 270.533 - xml:space="preserve" 270.534 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.535 - x="197.13031" 270.536 - y="349.07404" 270.537 - id="text3605"><tspan 270.538 - sodipodi:role="line" 270.539 - id="tspan3607" 270.540 - x="197.13031" 270.541 - y="349.07404" 270.542 - style="font-family:Courier">1b67dc96f27a</tspan></text> 270.543 - </g> 270.544 - <g 270.545 - transform="matrix(0.423343,0,0,0.423343,139.3426,-65.65866)" 270.546 - id="g3609"> 270.547 - <rect 270.548 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.549 - id="rect3611" 270.550 - width="213.85715" 270.551 - height="75" 270.552 - x="187.5" 270.553 - y="363.07654" /> 270.554 - <text 270.555 - xml:space="preserve" 270.556 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.557 - x="196.02321" 270.558 - y="400.86459" 270.559 - id="text3613"><tspan 270.560 - sodipodi:role="line" 270.561 - id="tspan3615" 270.562 - x="196.02321" 270.563 - y="400.86459" 270.564 - style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 270.565 - <text 270.566 - xml:space="preserve" 270.567 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.568 - x="196.71785" 270.569 - y="380.17593" 270.570 - id="text3617"><tspan 270.571 - style="fill:black;fill-opacity:1" 270.572 - id="tspan3619" 270.573 - sodipodi:role="line" 270.574 - x="196.71785" 270.575 - y="380.17593">Revision data (delta or snapshot)</tspan></text> 270.576 - </g> 270.577 - </g> 270.578 - <path 270.579 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)" 270.580 - d="M 240.78255,143.08593 L 241.42595,171.75349" 270.581 - id="path3801" 270.582 - inkscape:connector-type="polyline" 270.583 - inkscape:connection-start="#g3573" 270.584 - inkscape:connection-end="#g3250" /> 270.585 - <g 270.586 - id="g5677"> 270.587 - <rect 270.588 - style="fill:url(#linearGradient5784);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.589 - id="rect3393" 270.590 - width="101.60232" 270.591 - height="89.506805" 270.592 - x="150.76137" 270.593 - y="278.32565" /> 270.594 - <g 270.595 - transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 270.596 - id="g3399"> 270.597 - <rect 270.598 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.599 - id="rect3401" 270.600 - width="103.14286" 270.601 - height="48.571426" 270.602 - x="188.6071" 270.603 - y="447.72418" /> 270.604 - <text 270.605 - xml:space="preserve" 270.606 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.607 - x="197.82495" 270.608 - y="464.82358" 270.609 - id="text3403"><tspan 270.610 - id="tspan3405" 270.611 - sodipodi:role="line" 270.612 - x="197.82495" 270.613 - y="464.82358">First parent</tspan></text> 270.614 - <text 270.615 - xml:space="preserve" 270.616 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.617 - x="197.13031" 270.618 - y="485.51224" 270.619 - id="text3407"><tspan 270.620 - sodipodi:role="line" 270.621 - id="tspan3409" 270.622 - x="197.13031" 270.623 - y="485.51224" 270.624 - style="font-family:Courier">ff9dc8bc2a8b</tspan></text> 270.625 - </g> 270.626 - <g 270.627 - transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 270.628 - id="g3411"> 270.629 - <rect 270.630 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.631 - id="rect3413" 270.632 - width="103.14286" 270.633 - height="48.571426" 270.634 - x="299.67859" 270.635 - y="447.71451" /> 270.636 - <text 270.637 - xml:space="preserve" 270.638 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.639 - x="308.89639" 270.640 - y="464.8139" 270.641 - id="text3415"><tspan 270.642 - id="tspan3417" 270.643 - sodipodi:role="line" 270.644 - x="308.89639" 270.645 - y="464.8139">Second parent</tspan></text> 270.646 - <text 270.647 - xml:space="preserve" 270.648 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.649 - x="308.20175" 270.650 - y="485.50256" 270.651 - id="text3419"><tspan 270.652 - sodipodi:role="line" 270.653 - id="tspan3421" 270.654 - x="308.20175" 270.655 - y="485.50256" 270.656 - style="font-family:Courier">000000000000</tspan></text> 270.657 - </g> 270.658 - <g 270.659 - transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 270.660 - id="g3423"> 270.661 - <rect 270.662 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.663 - id="rect3425" 270.664 - width="103.14286" 270.665 - height="48.571426" 270.666 - x="188.6071" 270.667 - y="311.28598" /> 270.668 - <text 270.669 - xml:space="preserve" 270.670 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.671 - x="197.82495" 270.672 - y="328.38538" 270.673 - id="text3427"><tspan 270.674 - id="tspan3429" 270.675 - sodipodi:role="line" 270.676 - x="197.82495" 270.677 - y="328.38538">Revision hash</tspan></text> 270.678 - <text 270.679 - xml:space="preserve" 270.680 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.681 - x="197.13031" 270.682 - y="349.07404" 270.683 - id="text3431"><tspan 270.684 - sodipodi:role="line" 270.685 - id="tspan3433" 270.686 - x="197.13031" 270.687 - y="349.07404" 270.688 - style="font-family:Courier">5b80c922ebdd</tspan></text> 270.689 - </g> 270.690 - <g 270.691 - transform="matrix(0.423343,0,0,0.423343,76.84265,153.4957)" 270.692 - id="g3435"> 270.693 - <rect 270.694 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.695 - id="rect3437" 270.696 - width="213.85715" 270.697 - height="75" 270.698 - x="187.5" 270.699 - y="363.07654" /> 270.700 - <text 270.701 - xml:space="preserve" 270.702 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.703 - x="196.02321" 270.704 - y="400.86459" 270.705 - id="text3439"><tspan 270.706 - sodipodi:role="line" 270.707 - id="tspan3441" 270.708 - x="196.02321" 270.709 - y="400.86459" 270.710 - style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 270.711 - <text 270.712 - xml:space="preserve" 270.713 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.714 - x="196.71785" 270.715 - y="380.17593" 270.716 - id="text3443"><tspan 270.717 - style="fill:black;fill-opacity:1" 270.718 - id="tspan3445" 270.719 - sodipodi:role="line" 270.720 - x="196.71785" 270.721 - y="380.17593">Revision data (delta or snapshot)</tspan></text> 270.722 - </g> 270.723 - </g> 270.724 - <g 270.725 - id="g5646" 270.726 - transform="translate(-0.227432,0)"> 270.727 - <rect 270.728 - style="fill:url(#linearGradient5786);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.729 - id="rect3451" 270.730 - width="101.60232" 270.731 - height="89.506805" 270.732 - x="272.63638" 270.733 - y="278.32565" /> 270.734 - <g 270.735 - transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)" 270.736 - id="g3457"> 270.737 - <rect 270.738 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.739 - id="rect3459" 270.740 - width="103.14286" 270.741 - height="48.571426" 270.742 - x="188.6071" 270.743 - y="447.72418" /> 270.744 - <text 270.745 - xml:space="preserve" 270.746 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.747 - x="197.82495" 270.748 - y="464.82358" 270.749 - id="text3461"><tspan 270.750 - id="tspan3463" 270.751 - sodipodi:role="line" 270.752 - x="197.82495" 270.753 - y="464.82358">First parent</tspan></text> 270.754 - <text 270.755 - xml:space="preserve" 270.756 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.757 - x="197.13031" 270.758 - y="485.51224" 270.759 - id="text3465"><tspan 270.760 - sodipodi:role="line" 270.761 - id="tspan3467" 270.762 - x="197.13031" 270.763 - y="485.51224" 270.764 - style="font-family:Courier">ecacb6b4c9fd</tspan></text> 270.765 - </g> 270.766 - <g 270.767 - transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)" 270.768 - id="g3469"> 270.769 - <rect 270.770 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.771 - id="rect3471" 270.772 - width="103.14286" 270.773 - height="48.571426" 270.774 - x="299.67859" 270.775 - y="447.71451" /> 270.776 - <text 270.777 - xml:space="preserve" 270.778 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.779 - x="308.89639" 270.780 - y="464.8139" 270.781 - id="text3473"><tspan 270.782 - id="tspan3475" 270.783 - sodipodi:role="line" 270.784 - x="308.89639" 270.785 - y="464.8139">Second parent</tspan></text> 270.786 - <text 270.787 - xml:space="preserve" 270.788 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.789 - x="308.20175" 270.790 - y="485.50256" 270.791 - id="text3477"><tspan 270.792 - sodipodi:role="line" 270.793 - id="tspan3479" 270.794 - x="308.20175" 270.795 - y="485.50256" 270.796 - style="font-family:Courier">000000000000</tspan></text> 270.797 - </g> 270.798 - <g 270.799 - transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)" 270.800 - id="g3481"> 270.801 - <rect 270.802 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.803 - id="rect3483" 270.804 - width="103.14286" 270.805 - height="48.571426" 270.806 - x="188.6071" 270.807 - y="311.28598" /> 270.808 - <text 270.809 - xml:space="preserve" 270.810 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.811 - x="197.82495" 270.812 - y="328.38538" 270.813 - id="text3485"><tspan 270.814 - id="tspan3487" 270.815 - sodipodi:role="line" 270.816 - x="197.82495" 270.817 - y="328.38538">Revision hash</tspan></text> 270.818 - <text 270.819 - xml:space="preserve" 270.820 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.821 - x="197.13031" 270.822 - y="349.07404" 270.823 - id="text3489"><tspan 270.824 - sodipodi:role="line" 270.825 - id="tspan3491" 270.826 - x="197.13031" 270.827 - y="349.07404" 270.828 - style="font-family:Courier">32bf9a5f22c0</tspan></text> 270.829 - </g> 270.830 - <g 270.831 - transform="matrix(0.423343,0,0,0.423343,198.7176,153.4957)" 270.832 - id="g3493"> 270.833 - <rect 270.834 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.835 - id="rect3495" 270.836 - width="213.85715" 270.837 - height="75" 270.838 - x="187.5" 270.839 - y="363.07654" /> 270.840 - <text 270.841 - xml:space="preserve" 270.842 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.843 - x="196.02321" 270.844 - y="400.86459" 270.845 - id="text3497"><tspan 270.846 - sodipodi:role="line" 270.847 - id="tspan3499" 270.848 - x="196.02321" 270.849 - y="400.86459" 270.850 - style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 270.851 - <text 270.852 - xml:space="preserve" 270.853 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.854 - x="196.71785" 270.855 - y="380.17593" 270.856 - id="text3501"><tspan 270.857 - style="fill:black;fill-opacity:1" 270.858 - id="tspan3503" 270.859 - sodipodi:role="line" 270.860 - x="196.71785" 270.861 - y="380.17593">Revision data (delta or snapshot)</tspan></text> 270.862 - </g> 270.863 - </g> 270.864 - <rect 270.865 - y="387.90286" 270.866 - x="272.40894" 270.867 - height="89.506805" 270.868 - width="101.60232" 270.869 - id="rect5081" 270.870 - style="fill:url(#linearGradient5895);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 270.871 - <g 270.872 - id="g5087" 270.873 - transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)"> 270.874 - <rect 270.875 - y="447.72418" 270.876 - x="188.6071" 270.877 - height="48.571426" 270.878 - width="103.14286" 270.879 - id="rect5089" 270.880 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 270.881 - <text 270.882 - id="text5091" 270.883 - y="464.82358" 270.884 - x="197.82495" 270.885 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.886 - xml:space="preserve"><tspan 270.887 - y="464.82358" 270.888 - x="197.82495" 270.889 - sodipodi:role="line" 270.890 - id="tspan5093">First parent</tspan></text> 270.891 - <text 270.892 - id="text5095" 270.893 - y="485.51224" 270.894 - x="197.13031" 270.895 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.896 - xml:space="preserve"><tspan 270.897 - style="font-family:Courier" 270.898 - y="485.51224" 270.899 - x="197.13031" 270.900 - id="tspan5097" 270.901 - sodipodi:role="line">ff9dc8bc2a8b</tspan></text> 270.902 - </g> 270.903 - <g 270.904 - id="g5099" 270.905 - transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)"> 270.906 - <rect 270.907 - y="447.71451" 270.908 - x="299.67859" 270.909 - height="48.571426" 270.910 - width="103.14286" 270.911 - id="rect5101" 270.912 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 270.913 - <text 270.914 - id="text5103" 270.915 - y="464.8139" 270.916 - x="308.89639" 270.917 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.918 - xml:space="preserve"><tspan 270.919 - y="464.8139" 270.920 - x="308.89639" 270.921 - sodipodi:role="line" 270.922 - id="tspan5105">Second parent</tspan></text> 270.923 - <text 270.924 - id="text5107" 270.925 - y="485.50256" 270.926 - x="308.20175" 270.927 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.928 - xml:space="preserve"><tspan 270.929 - style="font-family:Courier" 270.930 - y="485.50256" 270.931 - x="308.20175" 270.932 - id="tspan5109" 270.933 - sodipodi:role="line">000000000000</tspan></text> 270.934 - </g> 270.935 - <g 270.936 - id="g5111" 270.937 - transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)"> 270.938 - <rect 270.939 - y="311.28598" 270.940 - x="188.6071" 270.941 - height="48.571426" 270.942 - width="103.14286" 270.943 - id="rect5113" 270.944 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 270.945 - <text 270.946 - id="text5115" 270.947 - y="328.38538" 270.948 - x="197.82495" 270.949 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.950 - xml:space="preserve"><tspan 270.951 - y="328.38538" 270.952 - x="197.82495" 270.953 - sodipodi:role="line" 270.954 - id="tspan5117">Revision hash</tspan></text> 270.955 - <text 270.956 - id="text5119" 270.957 - y="349.07404" 270.958 - x="197.13031" 270.959 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.960 - xml:space="preserve"><tspan 270.961 - style="font-family:Courier" 270.962 - y="349.07404" 270.963 - x="197.13031" 270.964 - id="tspan5121" 270.965 - sodipodi:role="line">ecacb6b4c9fd</tspan></text> 270.966 - </g> 270.967 - <g 270.968 - id="g5123" 270.969 - transform="matrix(0.423343,0,0,0.423343,198.4901,263.0729)"> 270.970 - <rect 270.971 - y="363.07654" 270.972 - x="187.5" 270.973 - height="75" 270.974 - width="213.85715" 270.975 - id="rect5125" 270.976 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 270.977 - <text 270.978 - id="text5127" 270.979 - y="400.86459" 270.980 - x="196.02321" 270.981 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.982 - xml:space="preserve"><tspan 270.983 - style="fill:black;fill-opacity:1;font-family:Courier" 270.984 - y="400.86459" 270.985 - x="196.02321" 270.986 - id="tspan5129" 270.987 - sodipodi:role="line">...</tspan></text> 270.988 - <text 270.989 - id="text5131" 270.990 - y="380.17593" 270.991 - x="196.71785" 270.992 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.993 - xml:space="preserve"><tspan 270.994 - y="380.17593" 270.995 - x="196.71785" 270.996 - sodipodi:role="line" 270.997 - id="tspan5133" 270.998 - style="fill:black;fill-opacity:1">Revision data (delta or snapshot)</tspan></text> 270.999 - </g> 270.1000 - <path 270.1001 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 270.1002 - d="M 299.69935,362.24027 L 299.69931,393.49494" 270.1003 - id="path5203" 270.1004 - inkscape:connector-type="polyline" 270.1005 - inkscape:connection-start="#g3457" 270.1006 - inkscape:connection-end="#g5111" /> 270.1007 - <path 270.1008 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 270.1009 - d="M 182.35357,362.22647 L 241.2842,503.07224" 270.1010 - id="path5271" 270.1011 - inkscape:connector-type="polyline" 270.1012 - inkscape:connection-start="#g3399" 270.1013 - inkscape:connection-end="#g3539" /> 270.1014 - <path 270.1015 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 270.1016 - d="M 287.63109,471.81747 L 250.9438,503.07223" 270.1017 - id="path5285" 270.1018 - inkscape:connector-type="polyline" 270.1019 - inkscape:connection-start="#g5087" 270.1020 - inkscape:connection-end="#g3539" /> 270.1021 - <path 270.1022 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 270.1023 - d="M 290.80419,250.07192 L 297.80065,283.90394" 270.1024 - id="path5077" 270.1025 - inkscape:connector-type="polyline" 270.1026 - inkscape:connection-start="#g3215" 270.1027 - inkscape:connection-end="#g3481" /> 270.1028 - <path 270.1029 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 270.1030 - d="M 229.63373,250.07601 L 190.07484,283.90394" 270.1031 - id="path5075" 270.1032 - inkscape:connector-type="polyline" 270.1033 - inkscape:connection-end="#g3423" /> 270.1034 - <text 270.1035 - xml:space="preserve" 270.1036 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.1037 - x="131.5625" 270.1038 - y="100.79968" 270.1039 - id="text5897"><tspan 270.1040 - sodipodi:role="line" 270.1041 - id="tspan5899" 270.1042 - x="131.5625" 270.1043 - y="100.79968" 270.1044 - style="text-align:end;text-anchor:end">Head revision</tspan><tspan 270.1045 - sodipodi:role="line" 270.1046 - x="131.5625" 270.1047 - y="115.79968" 270.1048 - id="tspan5901" 270.1049 - style="text-align:end;text-anchor:end">(no children)</tspan></text> 270.1050 - <text 270.1051 - xml:space="preserve" 270.1052 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.1053 - x="131.5625" 270.1054 - y="207.04968" 270.1055 - id="text5903"><tspan 270.1056 - sodipodi:role="line" 270.1057 - id="tspan5905" 270.1058 - x="131.5625" 270.1059 - y="207.04968" 270.1060 - style="text-align:end;text-anchor:end">Merge revision</tspan><tspan 270.1061 - sodipodi:role="line" 270.1062 - x="131.5625" 270.1063 - y="222.04968" 270.1064 - id="tspan5907" 270.1065 - style="text-align:end;text-anchor:end">(two parents)</tspan></text> 270.1066 - <text 270.1067 - xml:space="preserve" 270.1068 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.1069 - x="131.92578" 270.1070 - y="451.58093" 270.1071 - id="text5909"><tspan 270.1072 - sodipodi:role="line" 270.1073 - id="tspan5911" 270.1074 - x="131.92578" 270.1075 - y="451.58093" 270.1076 - style="text-align:end;text-anchor:end">Branches</tspan><tspan 270.1077 - sodipodi:role="line" 270.1078 - x="131.92578" 270.1079 - y="466.58093" 270.1080 - id="tspan5913" 270.1081 - style="text-align:end;text-anchor:end">(two revisions,</tspan><tspan 270.1082 - sodipodi:role="line" 270.1083 - x="131.92578" 270.1084 - y="481.58093" 270.1085 - id="tspan5915" 270.1086 - style="text-align:end;text-anchor:end">same parent)</tspan></text> 270.1087 - <path 270.1088 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 270.1089 - d="M 111.71875,433.61218 L 154.7268,368.52294" 270.1090 - id="path5917" 270.1091 - inkscape:connector-type="polyline" /> 270.1092 - <path 270.1093 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 270.1094 - d="M 134.375,464.86218 L 277.86691,440.37816" 270.1095 - id="path5919" 270.1096 - inkscape:connector-type="polyline" 270.1097 - inkscape:connection-end="#g5123" /> 270.1098 - <text 270.1099 - xml:space="preserve" 270.1100 - style="font-size:12px;font-style:normal;font-weight:normal;text-align:end;text-anchor:end;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.1101 - x="131.5625" 270.1102 - y="536.73718" 270.1103 - id="text5927"><tspan 270.1104 - sodipodi:role="line" 270.1105 - id="tspan5929" 270.1106 - x="131.5625" 270.1107 - y="536.73718">First revision</tspan><tspan 270.1108 - sodipodi:role="line" 270.1109 - x="131.5625" 270.1110 - y="551.73718" 270.1111 - id="tspan5931">(both parents null)</tspan></text> 270.1112 - <rect 270.1113 - style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 270.1114 - id="rect2830" 270.1115 - width="43.664806" 270.1116 - height="20.562374" 270.1117 - x="217.0432" 270.1118 - y="232.10075" /> 270.1119 - <text 270.1120 - xml:space="preserve" 270.1121 - style="font-size:5.0801158px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.1122 - x="220.94551" 270.1123 - y="239.33966" 270.1124 - id="text2832"><tspan 270.1125 - id="tspan2836" 270.1126 - sodipodi:role="line" 270.1127 - x="220.94551" 270.1128 - y="239.33966">First parent</tspan></text> 270.1129 - <text 270.1130 - xml:space="preserve" 270.1131 - style="font-size:5.0801158px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 270.1132 - x="220.65144" 270.1133 - y="248.09805" 270.1134 - id="text2879"><tspan 270.1135 - sodipodi:role="line" 270.1136 - id="tspan2881" 270.1137 - x="220.65144" 270.1138 - y="248.09805" 270.1139 - style="font-family:Courier">5b80c922ebdd</tspan></text> 270.1140 - <path 270.1141 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 270.1142 - d="M 139.84375,107.83093 L 210.15625,107.83093" 270.1143 - id="path5965" 270.1144 - inkscape:connector-type="polyline" /> 270.1145 - <path 270.1146 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 270.1147 - d="M 137.5,213.29968 L 210.49036,214.09055" 270.1148 - id="path5967" 270.1149 - inkscape:connector-type="polyline" /> 270.1150 - <path 270.1151 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 270.1152 - d="M 136.34375,544.54968 L 206.65625,544.54968" 270.1153 - id="path5969" 270.1154 - inkscape:connector-type="polyline" 270.1155 - inkscape:transform-center-y="-171.09375" 270.1156 - inkscape:transform-center-x="53.90625" /> 270.1157 - </g> 270.1158 -</svg>
271.1 --- a/en/images/snapshot.svg Fri Mar 20 17:17:55 2009 +0800 271.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 271.3 @@ -1,202 +0,0 @@ 271.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 271.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 271.6 -<svg 271.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 271.8 - xmlns:cc="http://web.resource.org/cc/" 271.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 271.10 - xmlns:svg="http://www.w3.org/2000/svg" 271.11 - xmlns="http://www.w3.org/2000/svg" 271.12 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 271.13 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 271.14 - width="744.09448819" 271.15 - height="1052.3622047" 271.16 - id="svg2807" 271.17 - sodipodi:version="0.32" 271.18 - inkscape:version="0.44.1" 271.19 - sodipodi:docbase="/home/bos/hg/hgbook/en" 271.20 - sodipodi:docname="snapshots.svg"> 271.21 - <defs 271.22 - id="defs2809" /> 271.23 - <sodipodi:namedview 271.24 - id="base" 271.25 - pagecolor="#ffffff" 271.26 - bordercolor="#666666" 271.27 - borderopacity="1.0" 271.28 - gridtolerance="10000" 271.29 - guidetolerance="10" 271.30 - objecttolerance="10" 271.31 - inkscape:pageopacity="0.0" 271.32 - inkscape:pageshadow="2" 271.33 - inkscape:zoom="1.4" 271.34 - inkscape:cx="252.04111" 271.35 - inkscape:cy="605.75448" 271.36 - inkscape:document-units="px" 271.37 - inkscape:current-layer="layer1" 271.38 - inkscape:window-width="906" 271.39 - inkscape:window-height="721" 271.40 - inkscape:window-x="0" 271.41 - inkscape:window-y="25" /> 271.42 - <metadata 271.43 - id="metadata2812"> 271.44 - <rdf:RDF> 271.45 - <cc:Work 271.46 - rdf:about=""> 271.47 - <dc:format>image/svg+xml</dc:format> 271.48 - <dc:type 271.49 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 271.50 - </cc:Work> 271.51 - </rdf:RDF> 271.52 - </metadata> 271.53 - <g 271.54 - inkscape:label="Layer 1" 271.55 - inkscape:groupmode="layer" 271.56 - id="layer1"> 271.57 - <rect 271.58 - style="opacity:1;fill:#d3ceff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.88795626;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 271.59 - id="rect2817" 271.60 - width="118.18347" 271.61 - height="245.32632" 271.62 - x="243.05112" 271.63 - y="315.4133" 271.64 - inkscape:transform-center-x="136.84403" 271.65 - inkscape:transform-center-y="-66.529183" /> 271.66 - <rect 271.67 - y="315.04153" 271.68 - x="46.965065" 271.69 - height="97.803009" 271.70 - width="108.92702" 271.71 - id="rect2815" 271.72 - style="fill:#ffced6;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.14441991;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 271.73 - <g 271.74 - id="g3814"> 271.75 - <rect 271.76 - y="348.94302" 271.77 - x="59.285713" 271.78 - height="30" 271.79 - width="84.285713" 271.80 - id="rect2819" 271.81 - style="fill:#ff6e86;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 271.82 - ry="0" /> 271.83 - <text 271.84 - id="text2821" 271.85 - y="368.02701" 271.86 - x="72.717636" 271.87 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 271.88 - xml:space="preserve"><tspan 271.89 - y="368.02701" 271.90 - x="72.717636" 271.91 - id="tspan2823" 271.92 - sodipodi:role="line">Index, rev 7</tspan></text> 271.93 - </g> 271.94 - <text 271.95 - id="text3722" 271.96 - y="301.29074" 271.97 - x="46.187778" 271.98 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 271.99 - xml:space="preserve"><tspan 271.100 - y="301.29074" 271.101 - x="46.187778" 271.102 - id="tspan3724" 271.103 - sodipodi:role="line">Revlog index (.i file)</tspan></text> 271.104 - <text 271.105 - id="text3726" 271.106 - y="301.29074" 271.107 - x="241.90207" 271.108 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 271.109 - xml:space="preserve"><tspan 271.110 - y="301.29074" 271.111 - x="241.90207" 271.112 - id="tspan3728" 271.113 - sodipodi:role="line">Revlog data (.d file)</tspan></text> 271.114 - <path 271.115 - style="fill:#c695ff;fill-opacity:0.60109288;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 271.116 - d="M 143.57143,348.07647 L 255,368.07646 L 255.71429,544.50504 L 142.85714,379.50504 L 143.57143,348.07647 z " 271.117 - id="path3839" 271.118 - sodipodi:nodetypes="ccccc" /> 271.119 - <rect 271.120 - style="fill:#4733ff;fill-opacity:1;stroke:#a7a7a7;stroke-width:2.35124183;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 271.121 - id="rect3752" 271.122 - width="92.720184" 271.123 - height="67.005905" 271.124 - x="255.42564" 271.125 - y="368.64264" /> 271.126 - <text 271.127 - xml:space="preserve" 271.128 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 271.129 - x="264.45859" 271.130 - y="387.30099" 271.131 - id="text3754"><tspan 271.132 - sodipodi:role="line" 271.133 - id="tspan3756" 271.134 - x="264.45859" 271.135 - y="387.30099">Snapshot, rev 4</tspan></text> 271.136 - <rect 271.137 - style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 271.138 - id="rect3761" 271.139 - width="93.49366" 271.140 - height="29.922237" 271.141 - x="255.03891" 271.142 - y="442.04395" /> 271.143 - <text 271.144 - xml:space="preserve" 271.145 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 271.146 - x="263.2662" 271.147 - y="460.17206" 271.148 - id="text3763"><tspan 271.149 - sodipodi:role="line" 271.150 - id="tspan3765" 271.151 - x="263.2662" 271.152 - y="460.17206">Delta, rev 4 to 5</tspan></text> 271.153 - <rect 271.154 - style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 271.155 - id="rect3774" 271.156 - width="93.49366" 271.157 - height="29.922237" 271.158 - x="255.03891" 271.159 - y="477.97485" /> 271.160 - <text 271.161 - xml:space="preserve" 271.162 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 271.163 - x="263.2662" 271.164 - y="496.10297" 271.165 - id="text3776"><tspan 271.166 - sodipodi:role="line" 271.167 - id="tspan3778" 271.168 - x="263.2662" 271.169 - y="496.10297">Delta, rev 5 to 6</tspan></text> 271.170 - <rect 271.171 - style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 271.172 - id="rect3782" 271.173 - width="93.49366" 271.174 - height="29.922237" 271.175 - x="255.03891" 271.176 - y="513.90576" /> 271.177 - <text 271.178 - xml:space="preserve" 271.179 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 271.180 - x="263.2662" 271.181 - y="532.03387" 271.182 - id="text3784"><tspan 271.183 - sodipodi:role="line" 271.184 - id="tspan3786" 271.185 - x="263.2662" 271.186 - y="532.03387">Delta, rev 6 to 7</tspan></text> 271.187 - <rect 271.188 - style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 271.189 - id="rect3889" 271.190 - width="93.49366" 271.191 - height="29.922237" 271.192 - x="255.03891" 271.193 - y="332.32489" /> 271.194 - <text 271.195 - xml:space="preserve" 271.196 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 271.197 - x="263.2662" 271.198 - y="350.453" 271.199 - id="text3891"><tspan 271.200 - sodipodi:role="line" 271.201 - id="tspan3893" 271.202 - x="263.2662" 271.203 - y="350.453">Delta, rev 2 to 3</tspan></text> 271.204 - </g> 271.205 -</svg>
272.1 --- a/en/images/tour-history.svg Fri Mar 20 17:17:55 2009 +0800 272.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 272.3 @@ -1,289 +0,0 @@ 272.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 272.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 272.6 -<svg 272.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 272.8 - xmlns:cc="http://web.resource.org/cc/" 272.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 272.10 - xmlns:svg="http://www.w3.org/2000/svg" 272.11 - xmlns="http://www.w3.org/2000/svg" 272.12 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 272.13 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 272.14 - width="744.09448819" 272.15 - height="1052.3622047" 272.16 - id="svg2" 272.17 - sodipodi:version="0.32" 272.18 - inkscape:version="0.44.1" 272.19 - sodipodi:docname="tour-history.svg"> 272.20 - <defs 272.21 - id="defs4"> 272.22 - <marker 272.23 - inkscape:stockid="Arrow1Mstart" 272.24 - orient="auto" 272.25 - refY="0.0" 272.26 - refX="0.0" 272.27 - id="Arrow1Mstart" 272.28 - style="overflow:visible"> 272.29 - <path 272.30 - id="path2973" 272.31 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 272.32 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 272.33 - transform="scale(0.4) translate(10,0)" /> 272.34 - </marker> 272.35 - <marker 272.36 - inkscape:stockid="Arrow1Mend" 272.37 - orient="auto" 272.38 - refY="0.0" 272.39 - refX="0.0" 272.40 - id="Arrow1Mend" 272.41 - style="overflow:visible;"> 272.42 - <path 272.43 - id="path3066" 272.44 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 272.45 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 272.46 - transform="scale(0.4) rotate(180) translate(10,0)" /> 272.47 - </marker> 272.48 - </defs> 272.49 - <sodipodi:namedview 272.50 - id="base" 272.51 - pagecolor="#ffffff" 272.52 - bordercolor="#666666" 272.53 - borderopacity="1.0" 272.54 - gridtolerance="10000" 272.55 - guidetolerance="10" 272.56 - objecttolerance="10" 272.57 - inkscape:pageopacity="0.0" 272.58 - inkscape:pageshadow="2" 272.59 - inkscape:zoom="1.4" 272.60 - inkscape:cx="232.14286" 272.61 - inkscape:cy="672.75296" 272.62 - inkscape:document-units="px" 272.63 - inkscape:current-layer="layer1" 272.64 - inkscape:window-width="906" 272.65 - inkscape:window-height="620" 272.66 - inkscape:window-x="5" 272.67 - inkscape:window-y="49" /> 272.68 - <metadata 272.69 - id="metadata7"> 272.70 - <rdf:RDF> 272.71 - <cc:Work 272.72 - rdf:about=""> 272.73 - <dc:format>image/svg+xml</dc:format> 272.74 - <dc:type 272.75 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 272.76 - </cc:Work> 272.77 - </rdf:RDF> 272.78 - </metadata> 272.79 - <g 272.80 - inkscape:label="Layer 1" 272.81 - inkscape:groupmode="layer" 272.82 - id="layer1"> 272.83 - <rect 272.84 - style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 272.85 - id="rect1878" 272.86 - width="94.285713" 272.87 - height="20.714285" 272.88 - x="138" 272.89 - y="479.50504" /> 272.90 - <text 272.91 - xml:space="preserve" 272.92 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 272.93 - x="162.09892" 272.94 - y="493.12619" 272.95 - id="text1872"><tspan 272.96 - sodipodi:role="line" 272.97 - id="tspan1874" 272.98 - x="162.09892" 272.99 - y="493.12619" 272.100 - style="font-family:Courier"><tspan 272.101 - style="font-weight:bold" 272.102 - id="tspan1876">0</tspan>: REV0</tspan></text> 272.103 - <rect 272.104 - style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 272.105 - id="rect2800" 272.106 - width="94.285713" 272.107 - height="20.714285" 272.108 - x="138" 272.109 - y="432.63004" /> 272.110 - <text 272.111 - xml:space="preserve" 272.112 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 272.113 - x="162.09892" 272.114 - y="446.25119" 272.115 - id="text2794"><tspan 272.116 - sodipodi:role="line" 272.117 - id="tspan2796" 272.118 - x="162.09892" 272.119 - y="446.25119" 272.120 - style="font-family:Courier"><tspan 272.121 - id="tspan2868" 272.122 - style="font-weight:bold">1</tspan>: REV1</tspan></text> 272.123 - <rect 272.124 - style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 272.125 - id="rect2810" 272.126 - width="94.285713" 272.127 - height="20.714285" 272.128 - x="138" 272.129 - y="385.75504" /> 272.130 - <text 272.131 - xml:space="preserve" 272.132 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 272.133 - x="162.09892" 272.134 - y="399.37619" 272.135 - id="text2804"><tspan 272.136 - sodipodi:role="line" 272.137 - id="tspan2806" 272.138 - x="162.09892" 272.139 - y="399.37619" 272.140 - style="font-family:Courier"><tspan 272.141 - style="font-weight:bold" 272.142 - id="tspan2866">2</tspan>: REV2</tspan></text> 272.143 - <rect 272.144 - style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 272.145 - id="rect2820" 272.146 - width="94.285713" 272.147 - height="20.714285" 272.148 - x="138" 272.149 - y="338.88007" /> 272.150 - <text 272.151 - xml:space="preserve" 272.152 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 272.153 - x="162.09892" 272.154 - y="352.50122" 272.155 - id="text2814"><tspan 272.156 - sodipodi:role="line" 272.157 - id="tspan2816" 272.158 - x="162.09892" 272.159 - y="352.50122" 272.160 - style="font-family:Courier"><tspan 272.161 - style="font-weight:bold" 272.162 - id="tspan2864">3</tspan>: REV3</tspan></text> 272.163 - <rect 272.164 - style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 272.165 - id="rect2830" 272.166 - width="94.285713" 272.167 - height="20.714285" 272.168 - x="138" 272.169 - y="292.00504" /> 272.170 - <text 272.171 - xml:space="preserve" 272.172 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 272.173 - x="162.09892" 272.174 - y="305.62619" 272.175 - id="text2824"><tspan 272.176 - sodipodi:role="line" 272.177 - id="tspan2826" 272.178 - x="162.09892" 272.179 - y="305.62619" 272.180 - style="font-family:Courier"><tspan 272.181 - style="font-weight:bold" 272.182 - id="tspan2862">4</tspan>: REV4</tspan></text> 272.183 - <text 272.184 - xml:space="preserve" 272.185 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 272.186 - x="173.57143" 272.187 - y="443.79074" 272.188 - id="text2832"><tspan 272.189 - sodipodi:role="line" 272.190 - id="tspan2834" 272.191 - x="173.57143" 272.192 - y="443.79074" /></text> 272.193 - <path 272.194 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 272.195 - d="M 185.14286,478.50504 L 185.14286,454.34432" 272.196 - id="path2894" 272.197 - inkscape:connector-type="polyline" /> 272.198 - <path 272.199 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 272.200 - d="M 185.14286,431.63004 L 185.14286,407.46932" 272.201 - id="path2896" 272.202 - inkscape:connector-type="polyline" /> 272.203 - <path 272.204 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 272.205 - d="M 185.14286,384.75504 L 185.14286,360.59435" 272.206 - id="path2898" 272.207 - inkscape:connector-type="polyline" /> 272.208 - <path 272.209 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 272.210 - d="M 185.14286,337.88007 L 185.14286,313.71932" 272.211 - id="path2900" 272.212 - inkscape:connector-type="polyline" /> 272.213 - <text 272.214 - xml:space="preserve" 272.215 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 272.216 - x="244.60992" 272.217 - y="305.245" 272.218 - id="text1902"><tspan 272.219 - sodipodi:role="line" 272.220 - id="tspan1904" 272.221 - x="244.60992" 272.222 - y="305.245">(newest)</tspan></text> 272.223 - <text 272.224 - xml:space="preserve" 272.225 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 272.226 - x="244.60992" 272.227 - y="492.745" 272.228 - id="text1906"><tspan 272.229 - sodipodi:role="line" 272.230 - id="tspan1908" 272.231 - x="244.60992" 272.232 - y="492.745">(oldest)</tspan></text> 272.233 - <rect 272.234 - style="opacity:1;fill:#d2e1e4;fill-opacity:1;stroke:#b1cbd0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 272.235 - id="rect1907" 272.236 - width="94.285713" 272.237 - height="20.714285" 272.238 - x="309.28571" 272.239 - y="324.86218" /> 272.240 - <text 272.241 - xml:space="preserve" 272.242 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 272.243 - x="333.38464" 272.244 - y="338.48334" 272.245 - id="text1909"><tspan 272.246 - sodipodi:role="line" 272.247 - id="tspan1911" 272.248 - x="333.38464" 272.249 - y="338.48334" 272.250 - style="font-family:Courier"><tspan 272.251 - style="font-weight:bold" 272.252 - id="tspan1913">4</tspan>: REV4</tspan></text> 272.253 - <path 272.254 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 272.255 - d="M 332.14286,375.21932 L 335.71429,347.36218" 272.256 - id="path2802" /> 272.257 - <path 272.258 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 272.259 - d="M 372.69968,375.21932 L 369.12825,347.36218" 272.260 - id="path2986" /> 272.261 - <text 272.262 - xml:space="preserve" 272.263 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 272.264 - x="335.14285" 272.265 - y="387.21933" 272.266 - id="text2988"><tspan 272.267 - sodipodi:role="line" 272.268 - x="335.14285" 272.269 - y="387.21933" 272.270 - id="tspan3020" 272.271 - style="text-align:end;text-anchor:end">revision</tspan><tspan 272.272 - sodipodi:role="line" 272.273 - x="335.14285" 272.274 - y="402.21933" 272.275 - id="tspan3014" 272.276 - style="text-align:end;text-anchor:end">number</tspan></text> 272.277 - <text 272.278 - xml:space="preserve" 272.279 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 272.280 - x="368.71429" 272.281 - y="387.21933" 272.282 - id="text2994"><tspan 272.283 - sodipodi:role="line" 272.284 - id="tspan2996" 272.285 - x="368.71429" 272.286 - y="387.21933">changeset</tspan><tspan 272.287 - sodipodi:role="line" 272.288 - x="368.71429" 272.289 - y="402.21933" 272.290 - id="tspan2998">identifier</tspan></text> 272.291 - </g> 272.292 -</svg>
273.1 --- a/en/images/tour-merge-conflict.svg Fri Mar 20 17:17:55 2009 +0800 273.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 273.3 @@ -1,210 +0,0 @@ 273.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 273.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 273.6 -<svg 273.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 273.8 - xmlns:cc="http://web.resource.org/cc/" 273.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 273.10 - xmlns:svg="http://www.w3.org/2000/svg" 273.11 - xmlns="http://www.w3.org/2000/svg" 273.12 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 273.13 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 273.14 - width="744.09448819" 273.15 - height="1052.3622047" 273.16 - id="svg2" 273.17 - sodipodi:version="0.32" 273.18 - inkscape:version="0.44.1" 273.19 - sodipodi:docname="tour-merge-conflict.svg"> 273.20 - <defs 273.21 - id="defs4"> 273.22 - <marker 273.23 - inkscape:stockid="Arrow1Mend" 273.24 - orient="auto" 273.25 - refY="0.0" 273.26 - refX="0.0" 273.27 - id="Arrow1Mend" 273.28 - style="overflow:visible;"> 273.29 - <path 273.30 - id="path3053" 273.31 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 273.32 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 273.33 - transform="scale(0.4) rotate(180) translate(10,0)" /> 273.34 - </marker> 273.35 - </defs> 273.36 - <sodipodi:namedview 273.37 - id="base" 273.38 - pagecolor="#ffffff" 273.39 - bordercolor="#666666" 273.40 - borderopacity="1.0" 273.41 - gridtolerance="10000" 273.42 - guidetolerance="10" 273.43 - objecttolerance="10" 273.44 - inkscape:pageopacity="0.0" 273.45 - inkscape:pageshadow="2" 273.46 - inkscape:zoom="1.4" 273.47 - inkscape:cx="164.78349" 273.48 - inkscape:cy="590.07679" 273.49 - inkscape:document-units="px" 273.50 - inkscape:current-layer="layer1" 273.51 - inkscape:window-width="906" 273.52 - inkscape:window-height="620" 273.53 - inkscape:window-x="5" 273.54 - inkscape:window-y="49" /> 273.55 - <metadata 273.56 - id="metadata7"> 273.57 - <rdf:RDF> 273.58 - <cc:Work 273.59 - rdf:about=""> 273.60 - <dc:format>image/svg+xml</dc:format> 273.61 - <dc:type 273.62 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 273.63 - </cc:Work> 273.64 - </rdf:RDF> 273.65 - </metadata> 273.66 - <g 273.67 - inkscape:label="Layer 1" 273.68 - inkscape:groupmode="layer" 273.69 - id="layer1"> 273.70 - <g 273.71 - id="g1988" 273.72 - transform="translate(84.85711,0)"> 273.73 - <g 273.74 - id="g1876"> 273.75 - <path 273.76 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 273.77 - d="M 118.57143,458.21933 L 118.57143,563.79075 L 191.42857,563.79075 L 204.28571,550.93361 L 203.57142,459.6479 L 118.57143,458.21933 z " 273.78 - id="path1872" 273.79 - sodipodi:nodetypes="cccccc" /> 273.80 - <path 273.81 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 273.82 - d="M 191.55484,563.36862 L 191.6923,560.98794 L 192.69126,552.44884 L 203.80416,551.31242" 273.83 - id="path1874" 273.84 - sodipodi:nodetypes="cccc" /> 273.85 - </g> 273.86 - <flowRoot 273.87 - style="font-size:8px;font-family:Times New Roman" 273.88 - id="flowRoot1898" 273.89 - xml:space="preserve"><flowRegion 273.90 - id="flowRegion1900"><rect 273.91 - style="font-size:8px;font-family:Times New Roman" 273.92 - y="464.50504" 273.93 - x="122.85714" 273.94 - height="93.571426" 273.95 - width="76.428574" 273.96 - id="rect1902" /></flowRegion><flowPara 273.97 - id="flowPara1904">Greetings!</flowPara><flowPara 273.98 - id="flowPara1906" /><flowPara 273.99 - id="flowPara1908">I am Mariam Abacha, the wife of former Nigerian dictator Sani Abacha. I am contacting you in confidence, and as a means of developing</flowPara></flowRoot> </g> 273.100 - <g 273.101 - id="g1966" 273.102 - transform="translate(82,0.35715)"> 273.103 - <g 273.104 - transform="translate(-77.85718,-140.0714)" 273.105 - id="g1910"> 273.106 - <path 273.107 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 273.108 - d="M 118.57143,458.21933 L 118.57143,563.79075 L 191.42857,563.79075 L 204.28571,550.93361 L 203.57142,459.6479 L 118.57143,458.21933 z " 273.109 - id="path1912" 273.110 - sodipodi:nodetypes="cccccc" /> 273.111 - <path 273.112 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 273.113 - d="M 191.55484,563.36862 L 191.6923,560.98794 L 192.69126,552.44884 L 203.80416,551.31242" 273.114 - id="path1914" 273.115 - sodipodi:nodetypes="cccc" /> 273.116 - </g> 273.117 - <flowRoot 273.118 - transform="translate(-77.85718,-140.0714)" 273.119 - style="font-size:8px;font-family:Times New Roman" 273.120 - id="flowRoot1916" 273.121 - xml:space="preserve"><flowRegion 273.122 - id="flowRegion1918"><rect 273.123 - style="font-size:8px;font-family:Times New Roman" 273.124 - y="464.50504" 273.125 - x="122.85714" 273.126 - height="93.571426" 273.127 - width="76.428574" 273.128 - id="rect1920" /></flowRegion><flowPara 273.129 - id="flowPara1922">Greetings!</flowPara><flowPara 273.130 - id="flowPara1924" /><flowPara 273.131 - id="flowPara1926">I am <flowSpan 273.132 - style="font-style:italic;fill:red" 273.133 - id="flowSpan3094">Shehu Musa Abacha, cousin to</flowSpan> the former Nigerian dictator Sani Abacha. I am contacting you in confidence, and as a means of developing</flowPara></flowRoot> </g> 273.134 - <g 273.135 - id="g1977" 273.136 - transform="translate(81.99999,-0.35715)"> 273.137 - <g 273.138 - transform="translate(83.57141,-139.3571)" 273.139 - id="g1932"> 273.140 - <path 273.141 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 273.142 - d="M 118.57143,458.21933 L 118.57143,563.79075 L 191.42857,563.79075 L 204.28571,550.93361 L 203.57142,459.6479 L 118.57143,458.21933 z " 273.143 - id="path1934" 273.144 - sodipodi:nodetypes="cccccc" /> 273.145 - <path 273.146 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 273.147 - d="M 191.55484,563.36862 L 191.6923,560.98794 L 192.69126,552.44884 L 203.80416,551.31242" 273.148 - id="path1936" 273.149 - sodipodi:nodetypes="cccc" /> 273.150 - </g> 273.151 - <flowRoot 273.152 - transform="translate(83.57141,-139.3571)" 273.153 - style="font-size:8px;font-family:Times New Roman" 273.154 - id="flowRoot1938" 273.155 - xml:space="preserve"><flowRegion 273.156 - id="flowRegion1940"><rect 273.157 - style="font-size:8px;font-family:Times New Roman" 273.158 - y="464.50504" 273.159 - x="122.85714" 273.160 - height="93.571426" 273.161 - width="76.428574" 273.162 - id="rect1942" /></flowRegion><flowPara 273.163 - id="flowPara1944">Greetings!</flowPara><flowPara 273.164 - id="flowPara1946" /><flowPara 273.165 - id="flowPara1948">I am <flowSpan 273.166 - style="font-style:italic;fill:red" 273.167 - id="flowSpan3096">Alhaji Abba Abacha, son of</flowSpan> the former Nigerian dictator Sani Abacha. I am contacting you in confidence, and as a means of developing</flowPara></flowRoot> </g> 273.168 - <path 273.169 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 273.170 - d="M 215.502,457.71933 L 196.35507,424.5765" 273.171 - id="path1999" 273.172 - inkscape:connector-type="polyline" 273.173 - inkscape:connection-start="#g1988" 273.174 - inkscape:connection-end="#g1966" /> 273.175 - <path 273.176 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 273.177 - d="M 277.06936,457.71933 L 296.21629,424.5765" 273.178 - id="path2001" 273.179 - inkscape:connector-type="polyline" 273.180 - inkscape:connection-start="#g1988" 273.181 - inkscape:connection-end="#g1977" /> 273.182 - <text 273.183 - xml:space="preserve" 273.184 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 273.185 - x="302.42859" 273.186 - y="515.08905" 273.187 - id="text1905"><tspan 273.188 - sodipodi:role="line" 273.189 - id="tspan1907" 273.190 - x="302.42859" 273.191 - y="515.08905">Base version</tspan></text> 273.192 - <text 273.193 - xml:space="preserve" 273.194 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 273.195 - x="45.57143" 273.196 - y="374.1619" 273.197 - id="text1917"><tspan 273.198 - sodipodi:role="line" 273.199 - id="tspan1919" 273.200 - x="45.57143" 273.201 - y="374.1619">Our changes</tspan></text> 273.202 - <text 273.203 - xml:space="preserve" 273.204 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 273.205 - x="385.71429" 273.206 - y="374.1619" 273.207 - id="text1921"><tspan 273.208 - sodipodi:role="line" 273.209 - id="tspan1923" 273.210 - x="385.71429" 273.211 - y="374.1619">Their changes</tspan></text> 273.212 - </g> 273.213 -</svg>
274.1 --- a/en/images/tour-merge-merge.svg Fri Mar 20 17:17:55 2009 +0800 274.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 274.3 @@ -1,380 +0,0 @@ 274.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 274.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 274.6 -<svg 274.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 274.8 - xmlns:cc="http://web.resource.org/cc/" 274.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 274.10 - xmlns:svg="http://www.w3.org/2000/svg" 274.11 - xmlns="http://www.w3.org/2000/svg" 274.12 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 274.13 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 274.14 - width="744.09448819" 274.15 - height="1052.3622047" 274.16 - id="svg2" 274.17 - sodipodi:version="0.32" 274.18 - inkscape:version="0.44.1" 274.19 - sodipodi:docname="tour-merge-merge.svg"> 274.20 - <defs 274.21 - id="defs4"> 274.22 - <marker 274.23 - inkscape:stockid="Arrow1Mstart" 274.24 - orient="auto" 274.25 - refY="0.0" 274.26 - refX="0.0" 274.27 - id="Arrow1Mstart" 274.28 - style="overflow:visible"> 274.29 - <path 274.30 - id="path2973" 274.31 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 274.32 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 274.33 - transform="scale(0.4) translate(10,0)" /> 274.34 - </marker> 274.35 - <marker 274.36 - inkscape:stockid="Arrow1Mend" 274.37 - orient="auto" 274.38 - refY="0.0" 274.39 - refX="0.0" 274.40 - id="Arrow1Mend" 274.41 - style="overflow:visible;"> 274.42 - <path 274.43 - id="path3066" 274.44 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 274.45 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 274.46 - transform="scale(0.4) rotate(180) translate(10,0)" /> 274.47 - </marker> 274.48 - </defs> 274.49 - <sodipodi:namedview 274.50 - id="base" 274.51 - pagecolor="#ffffff" 274.52 - bordercolor="#666666" 274.53 - borderopacity="1.0" 274.54 - gridtolerance="10000" 274.55 - guidetolerance="10" 274.56 - objecttolerance="10" 274.57 - inkscape:pageopacity="0.0" 274.58 - inkscape:pageshadow="2" 274.59 - inkscape:zoom="1.4" 274.60 - inkscape:cx="247.53795" 274.61 - inkscape:cy="871.05738" 274.62 - inkscape:document-units="px" 274.63 - inkscape:current-layer="layer1" 274.64 - inkscape:window-width="906" 274.65 - inkscape:window-height="620" 274.66 - inkscape:window-x="38" 274.67 - inkscape:window-y="95" /> 274.68 - <metadata 274.69 - id="metadata7"> 274.70 - <rdf:RDF> 274.71 - <cc:Work 274.72 - rdf:about=""> 274.73 - <dc:format>image/svg+xml</dc:format> 274.74 - <dc:type 274.75 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 274.76 - </cc:Work> 274.77 - </rdf:RDF> 274.78 - </metadata> 274.79 - <g 274.80 - inkscape:label="Layer 1" 274.81 - inkscape:groupmode="layer" 274.82 - id="layer1"> 274.83 - <rect 274.84 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 274.85 - id="rect2995" 274.86 - width="94.285713" 274.87 - height="20.714285" 274.88 - x="532.85718" 274.89 - y="203.0479" /> 274.90 - <text 274.91 - xml:space="preserve" 274.92 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 274.93 - x="173.57143" 274.94 - y="443.79074" 274.95 - id="text2832"><tspan 274.96 - sodipodi:role="line" 274.97 - id="tspan2834" 274.98 - x="173.57143" 274.99 - y="443.79074" /></text> 274.100 - <rect 274.101 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 274.102 - id="rect2830" 274.103 - width="94.285713" 274.104 - height="20.714285" 274.105 - x="138" 274.106 - y="297.76227" /> 274.107 - <text 274.108 - xml:space="preserve" 274.109 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 274.110 - x="162.09892" 274.111 - y="311.38342" 274.112 - id="text2824"><tspan 274.113 - sodipodi:role="line" 274.114 - id="tspan2826" 274.115 - x="162.09892" 274.116 - y="311.38342" 274.117 - style="font-family:Courier"><tspan 274.118 - style="font-weight:bold" 274.119 - id="tspan2862">4</tspan>: REV4</tspan></text> 274.120 - <path 274.121 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 274.122 - d="M 185.14286,343.63731 L 185.14286,319.47656" 274.123 - id="path2900" 274.124 - inkscape:connector-type="polyline" /> 274.125 - <rect 274.126 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 274.127 - id="rect2863" 274.128 - width="94.285713" 274.129 - height="20.714285" 274.130 - x="91.428574" 274.131 - y="250.47656" /> 274.132 - <text 274.133 - xml:space="preserve" 274.134 - style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 274.135 - x="116.09886" 274.136 - y="264.56592" 274.137 - id="text1965" 274.138 - transform="scale(1.000002,0.999998)"><tspan 274.139 - sodipodi:role="line" 274.140 - id="tspan1967" 274.141 - x="116.09886" 274.142 - y="264.56592" 274.143 - style="font-family:Courier"><tspan 274.144 - style="font-weight:bold" 274.145 - id="tspan1973">5</tspan>: REV_my_new_hello</tspan></text> 274.146 - <path 274.147 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 274.148 - d="M 173.95727,296.76228 L 149.75702,272.19085" 274.149 - id="path1971" 274.150 - inkscape:connector-type="polyline" 274.151 - inkscape:connection-end="#rect2863" 274.152 - inkscape:connection-start="#rect2830" /> 274.153 - <rect 274.154 - style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 274.155 - id="rect2911" 274.156 - width="94.285995" 274.157 - height="20.714283" 274.158 - x="186.71414" 274.159 - y="204.40514" /> 274.160 - <text 274.161 - xml:space="preserve" 274.162 - style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 274.163 - x="210.81311" 274.164 - y="218.02673" 274.165 - id="text2913" 274.166 - transform="scale(1.000002,0.999998)"><tspan 274.167 - sodipodi:role="line" 274.168 - id="tspan2915" 274.169 - x="210.81311" 274.170 - y="218.02673" 274.171 - style="font-family:Courier"><tspan 274.172 - id="tspan1966" 274.173 - style="font-weight:bold">6</tspan>: REV6_my_new_hello</tspan></text> 274.174 - <path 274.175 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 274.176 - d="M 191.06908,296.76228 L 227.93092,226.11942" 274.177 - id="path2919" 274.178 - inkscape:connector-type="polyline" 274.179 - inkscape:connection-start="#rect2830" /> 274.180 - <text 274.181 - xml:space="preserve" 274.182 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 274.183 - x="295.28571" 274.184 - y="217.56711" 274.185 - id="text2871"><tspan 274.186 - sodipodi:role="line" 274.187 - id="tspan2873" 274.188 - x="295.28571" 274.189 - y="217.56711">tip (and head)</tspan></text> 274.190 - <text 274.191 - xml:space="preserve" 274.192 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 274.193 - x="76" 274.194 - y="264.91769" 274.195 - id="text2875"><tspan 274.196 - sodipodi:role="line" 274.197 - id="tspan2877" 274.198 - x="76" 274.199 - y="264.91769" 274.200 - style="text-align:end;text-anchor:end">head</tspan></text> 274.201 - <rect 274.202 - style="fill:#c8aaa5;fill-opacity:1;stroke:#a07163;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0;stroke-opacity:1" 274.203 - id="rect1913" 274.204 - width="94.285713" 274.205 - height="20.714285" 274.206 - x="138" 274.207 - y="156.90514" /> 274.208 - <path 274.209 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1" 274.210 - d="M 144.22399,249.47657 L 179.49029,178.61943" 274.211 - id="path1915" 274.212 - inkscape:connector-type="polyline" 274.213 - inkscape:connection-start="#rect2863" 274.214 - inkscape:connection-end="#rect1913" /> 274.215 - <path 274.216 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1" 274.217 - d="M 222.20966,203.40514 L 196.79033,178.61943" 274.218 - id="path1917" 274.219 - inkscape:connector-type="polyline" 274.220 - inkscape:connection-start="#rect2911" 274.221 - inkscape:connection-end="#rect1913" /> 274.222 - <text 274.223 - xml:space="preserve" 274.224 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 274.225 - x="166.16823" 274.226 - y="168.52228" 274.227 - id="text2806"><tspan 274.228 - sodipodi:role="line" 274.229 - id="tspan2808" 274.230 - x="166.16823" 274.231 - y="168.52228" 274.232 - style="font-family:Courier">merge</tspan></text> 274.233 - <text 274.234 - xml:space="preserve" 274.235 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 274.236 - x="246" 274.237 - y="162.63338" 274.238 - id="text2810"><tspan 274.239 - sodipodi:role="line" 274.240 - id="tspan2812" 274.241 - x="246" 274.242 - y="162.63338">working directory</tspan><tspan 274.243 - sodipodi:role="line" 274.244 - x="246" 274.245 - y="177.63338" 274.246 - id="tspan2814">during merge</tspan></text> 274.247 - <rect 274.248 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 274.249 - id="rect2816" 274.250 - width="94.285713" 274.251 - height="20.714285" 274.252 - x="483.14636" 274.253 - y="297.76227" /> 274.254 - <text 274.255 - xml:space="preserve" 274.256 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 274.257 - x="507.24527" 274.258 - y="311.38342" 274.259 - id="text2818"><tspan 274.260 - sodipodi:role="line" 274.261 - id="tspan2820" 274.262 - x="507.24527" 274.263 - y="311.38342" 274.264 - style="font-family:Courier"><tspan 274.265 - style="font-weight:bold" 274.266 - id="tspan2822">4</tspan>: REV4</tspan></text> 274.267 - <path 274.268 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 274.269 - d="M 530.28921,343.6373 L 530.28921,319.47655" 274.270 - id="path2824" 274.271 - inkscape:connector-type="polyline" /> 274.272 - <rect 274.273 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 274.274 - id="rect2826" 274.275 - width="94.285713" 274.276 - height="20.714285" 274.277 - x="436.57492" 274.278 - y="250.47656" /> 274.279 - <text 274.280 - xml:space="preserve" 274.281 - style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 274.282 - x="461.24484" 274.283 - y="264.56613" 274.284 - id="text2828" 274.285 - transform="scale(1.000002,0.999998)"><tspan 274.286 - sodipodi:role="line" 274.287 - id="tspan2830" 274.288 - x="461.24484" 274.289 - y="264.56613" 274.290 - style="font-family:Courier"><tspan 274.291 - style="font-weight:bold" 274.292 - id="tspan2832">5</tspan>: REV_my_new_hello</tspan></text> 274.293 - <path 274.294 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 274.295 - d="M 519.10362,296.76227 L 494.90337,272.19084" 274.296 - id="path2834" 274.297 - inkscape:connector-type="polyline" /> 274.298 - <rect 274.299 - style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 274.300 - id="rect2836" 274.301 - width="94.285995" 274.302 - height="20.714283" 274.303 - x="483.14001" 274.304 - y="156.548" /> 274.305 - <text 274.306 - xml:space="preserve" 274.307 - style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 274.308 - x="555.95911" 274.309 - y="218.02698" 274.310 - id="text2838" 274.311 - transform="scale(1.000002,0.999998)"><tspan 274.312 - sodipodi:role="line" 274.313 - id="tspan2840" 274.314 - x="555.95911" 274.315 - y="218.02698" 274.316 - style="font-family:Courier"><tspan 274.317 - id="tspan2842" 274.318 - style="font-weight:bold">6</tspan>: REV6_my_new_hello</tspan></text> 274.319 - <path 274.320 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 274.321 - d="M 536.21543,296.76227 L 574.03453,224.76218" 274.322 - id="path2844" 274.323 - inkscape:connector-type="polyline" /> 274.324 - <text 274.325 - xml:space="preserve" 274.326 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 274.327 - x="594.43207" 274.328 - y="169.78796" 274.329 - id="text2846"><tspan 274.330 - sodipodi:role="line" 274.331 - id="tspan2848" 274.332 - x="594.43207" 274.333 - y="169.78796">tip</tspan></text> 274.334 - <path 274.335 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" 274.336 - d="M 489.37034,249.47656 L 524.65575,178.26229" 274.337 - id="path2856" 274.338 - inkscape:connector-type="polyline" 274.339 - inkscape:connection-end="#rect2836" /> 274.340 - <path 274.341 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" 274.342 - d="M 567.85714,202.0479 L 542.42591,178.26229" 274.343 - id="path2858" 274.344 - inkscape:connector-type="polyline" 274.345 - inkscape:connection-end="#rect2836" 274.346 - inkscape:connection-start="#rect2995" /> 274.347 - <text 274.348 - xml:space="preserve" 274.349 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 274.350 - x="504.54507" 274.351 - y="170.39714" 274.352 - id="text2860"><tspan 274.353 - sodipodi:role="line" 274.354 - id="tspan2863" 274.355 - x="504.54507" 274.356 - y="170.39714" 274.357 - style="font-family:Courier"><tspan 274.358 - style="font-weight:bold" 274.359 - id="tspan2997">7</tspan>: REV7_my_new_hello</tspan></text> 274.360 - <text 274.361 - xml:space="preserve" 274.362 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 274.363 - x="90.323105" 274.364 - y="120.21933" 274.365 - id="text2929"><tspan 274.366 - sodipodi:role="line" 274.367 - id="tspan2931" 274.368 - x="90.323105" 274.369 - y="120.21933" 274.370 - style="font-weight:bold">Working directory during merge</tspan></text> 274.371 - <text 274.372 - xml:space="preserve" 274.373 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 274.374 - x="435.35226" 274.375 - y="120.21933" 274.376 - id="text2937"><tspan 274.377 - sodipodi:role="line" 274.378 - id="tspan2939" 274.379 - x="435.35226" 274.380 - y="120.21933" 274.381 - style="font-weight:bold">Repository after merge committed</tspan></text> 274.382 - </g> 274.383 -</svg>
275.1 --- a/en/images/tour-merge-pull.svg Fri Mar 20 17:17:55 2009 +0800 275.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 275.3 @@ -1,288 +0,0 @@ 275.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 275.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 275.6 -<svg 275.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 275.8 - xmlns:cc="http://web.resource.org/cc/" 275.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 275.10 - xmlns:svg="http://www.w3.org/2000/svg" 275.11 - xmlns="http://www.w3.org/2000/svg" 275.12 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 275.13 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 275.14 - width="744.09448819" 275.15 - height="1052.3622047" 275.16 - id="svg2" 275.17 - sodipodi:version="0.32" 275.18 - inkscape:version="0.44.1" 275.19 - sodipodi:docname="tour-merge-pull.svg" 275.20 - sodipodi:docbase="/home/bos/hg/hgbook/en"> 275.21 - <defs 275.22 - id="defs4"> 275.23 - <marker 275.24 - inkscape:stockid="Arrow1Mstart" 275.25 - orient="auto" 275.26 - refY="0.0" 275.27 - refX="0.0" 275.28 - id="Arrow1Mstart" 275.29 - style="overflow:visible"> 275.30 - <path 275.31 - id="path2973" 275.32 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 275.33 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 275.34 - transform="scale(0.4) translate(10,0)" /> 275.35 - </marker> 275.36 - <marker 275.37 - inkscape:stockid="Arrow1Mend" 275.38 - orient="auto" 275.39 - refY="0.0" 275.40 - refX="0.0" 275.41 - id="Arrow1Mend" 275.42 - style="overflow:visible;"> 275.43 - <path 275.44 - id="path3066" 275.45 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 275.46 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 275.47 - transform="scale(0.4) rotate(180) translate(10,0)" /> 275.48 - </marker> 275.49 - </defs> 275.50 - <sodipodi:namedview 275.51 - id="base" 275.52 - pagecolor="#ffffff" 275.53 - bordercolor="#666666" 275.54 - borderopacity="1.0" 275.55 - gridtolerance="10000" 275.56 - guidetolerance="10" 275.57 - objecttolerance="10" 275.58 - inkscape:pageopacity="0.0" 275.59 - inkscape:pageshadow="2" 275.60 - inkscape:zoom="1.4" 275.61 - inkscape:cx="233.63208" 275.62 - inkscape:cy="832.54381" 275.63 - inkscape:document-units="px" 275.64 - inkscape:current-layer="layer1" 275.65 - inkscape:window-width="906" 275.66 - inkscape:window-height="620" 275.67 - inkscape:window-x="237" 275.68 - inkscape:window-y="103" /> 275.69 - <metadata 275.70 - id="metadata7"> 275.71 - <rdf:RDF> 275.72 - <cc:Work 275.73 - rdf:about=""> 275.74 - <dc:format>image/svg+xml</dc:format> 275.75 - <dc:type 275.76 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 275.77 - </cc:Work> 275.78 - </rdf:RDF> 275.79 - </metadata> 275.80 - <g 275.81 - inkscape:label="Layer 1" 275.82 - inkscape:groupmode="layer" 275.83 - id="layer1"> 275.84 - <text 275.85 - xml:space="preserve" 275.86 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 275.87 - x="173.57143" 275.88 - y="443.79074" 275.89 - id="text2832"><tspan 275.90 - sodipodi:role="line" 275.91 - id="tspan2834" 275.92 - x="173.57143" 275.93 - y="443.79074" /></text> 275.94 - <rect 275.95 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 275.96 - id="rect1878" 275.97 - width="94.285713" 275.98 - height="20.714285" 275.99 - x="138" 275.100 - y="479.50504" /> 275.101 - <text 275.102 - xml:space="preserve" 275.103 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 275.104 - x="162.09892" 275.105 - y="493.12619" 275.106 - id="text1872"><tspan 275.107 - sodipodi:role="line" 275.108 - id="tspan1874" 275.109 - x="162.09892" 275.110 - y="493.12619" 275.111 - style="font-family:Courier"><tspan 275.112 - style="font-weight:bold" 275.113 - id="tspan1876">0</tspan>: REV0</tspan></text> 275.114 - <rect 275.115 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 275.116 - id="rect2800" 275.117 - width="94.285713" 275.118 - height="20.714285" 275.119 - x="138" 275.120 - y="432.63004" /> 275.121 - <text 275.122 - xml:space="preserve" 275.123 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 275.124 - x="162.09892" 275.125 - y="446.25119" 275.126 - id="text2794"><tspan 275.127 - sodipodi:role="line" 275.128 - id="tspan2796" 275.129 - x="162.09892" 275.130 - y="446.25119" 275.131 - style="font-family:Courier"><tspan 275.132 - id="tspan2868" 275.133 - style="font-weight:bold">1</tspan>: REV1</tspan></text> 275.134 - <rect 275.135 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 275.136 - id="rect2810" 275.137 - width="94.285713" 275.138 - height="20.714285" 275.139 - x="138" 275.140 - y="385.75504" /> 275.141 - <text 275.142 - xml:space="preserve" 275.143 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 275.144 - x="162.09892" 275.145 - y="399.37619" 275.146 - id="text2804"><tspan 275.147 - sodipodi:role="line" 275.148 - id="tspan2806" 275.149 - x="162.09892" 275.150 - y="399.37619" 275.151 - style="font-family:Courier"><tspan 275.152 - style="font-weight:bold" 275.153 - id="tspan2866">2</tspan>: REV2</tspan></text> 275.154 - <rect 275.155 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 275.156 - id="rect2820" 275.157 - width="94.285713" 275.158 - height="20.714285" 275.159 - x="138" 275.160 - y="338.88007" /> 275.161 - <text 275.162 - xml:space="preserve" 275.163 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 275.164 - x="162.09892" 275.165 - y="352.50122" 275.166 - id="text2814"><tspan 275.167 - sodipodi:role="line" 275.168 - id="tspan2816" 275.169 - x="162.09892" 275.170 - y="352.50122" 275.171 - style="font-family:Courier"><tspan 275.172 - style="font-weight:bold" 275.173 - id="tspan2864">3</tspan>: REV3</tspan></text> 275.174 - <rect 275.175 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 275.176 - id="rect2830" 275.177 - width="94.285713" 275.178 - height="20.714285" 275.179 - x="138" 275.180 - y="292.00504" /> 275.181 - <text 275.182 - xml:space="preserve" 275.183 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 275.184 - x="162.09892" 275.185 - y="305.62619" 275.186 - id="text2824"><tspan 275.187 - sodipodi:role="line" 275.188 - id="tspan2826" 275.189 - x="162.09892" 275.190 - y="305.62619" 275.191 - style="font-family:Courier"><tspan 275.192 - style="font-weight:bold" 275.193 - id="tspan2862">4</tspan>: REV4</tspan></text> 275.194 - <path 275.195 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 275.196 - d="M 185.14286,478.50504 L 185.14286,454.34432" 275.197 - id="path2894" 275.198 - inkscape:connector-type="polyline" /> 275.199 - <path 275.200 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 275.201 - d="M 185.14286,431.63004 L 185.14286,407.46932" 275.202 - id="path2896" 275.203 - inkscape:connector-type="polyline" /> 275.204 - <path 275.205 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 275.206 - d="M 185.14286,384.75504 L 185.14286,360.59435" 275.207 - id="path2898" 275.208 - inkscape:connector-type="polyline" /> 275.209 - <path 275.210 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 275.211 - d="M 185.14286,337.88007 L 185.14286,313.71932" 275.212 - id="path2900" 275.213 - inkscape:connector-type="polyline" /> 275.214 - <rect 275.215 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 275.216 - id="rect2863" 275.217 - width="94.285713" 275.218 - height="20.714285" 275.219 - x="91.428574" 275.220 - y="244.71933" /> 275.221 - <text 275.222 - xml:space="preserve" 275.223 - style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 275.224 - x="116.09886" 275.225 - y="258.80865" 275.226 - id="text1965" 275.227 - transform="scale(1.000002,0.999998)"><tspan 275.228 - sodipodi:role="line" 275.229 - id="tspan1967" 275.230 - x="116.09886" 275.231 - y="258.80865" 275.232 - style="font-family:Courier"><tspan 275.233 - style="font-weight:bold" 275.234 - id="tspan1973">5</tspan>: REV_my_new_hello</tspan></text> 275.235 - <path 275.236 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 275.237 - d="M 173.95727,291.00504 L 149.75702,266.43361" 275.238 - id="path1971" 275.239 - inkscape:connector-type="polyline" 275.240 - inkscape:connection-end="#rect2863" 275.241 - inkscape:connection-start="#rect2830" /> 275.242 - <rect 275.243 - style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 275.244 - id="rect2911" 275.245 - width="94.285995" 275.246 - height="20.714283" 275.247 - x="186.71414" 275.248 - y="198.6479" /> 275.249 - <text 275.250 - xml:space="preserve" 275.251 - style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 275.252 - x="210.81311" 275.253 - y="212.26949" 275.254 - id="text2913" 275.255 - transform="scale(1.000002,0.999998)"><tspan 275.256 - sodipodi:role="line" 275.257 - id="tspan2915" 275.258 - x="210.81311" 275.259 - y="212.26949" 275.260 - style="font-family:Courier"><tspan 275.261 - id="tspan1966" 275.262 - style="font-weight:bold">6</tspan>: REV6_my_new_hello</tspan></text> 275.263 - <path 275.264 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 275.265 - d="M 191.06908,291.00504 L 227.93092,220.36218" 275.266 - id="path2919" 275.267 - inkscape:connector-type="polyline" 275.268 - inkscape:connection-start="#rect2830" /> 275.269 - <text 275.270 - xml:space="preserve" 275.271 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 275.272 - x="295.28571" 275.273 - y="211.80988" 275.274 - id="text2871"><tspan 275.275 - sodipodi:role="line" 275.276 - id="tspan2873" 275.277 - x="295.28571" 275.278 - y="211.80988">tip (and head)</tspan></text> 275.279 - <text 275.280 - xml:space="preserve" 275.281 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 275.282 - x="76" 275.283 - y="259.16046" 275.284 - id="text2875"><tspan 275.285 - sodipodi:role="line" 275.286 - id="tspan2877" 275.287 - x="76" 275.288 - y="259.16046" 275.289 - style="text-align:end;text-anchor:end">head</tspan></text> 275.290 - </g> 275.291 -</svg>
276.1 --- a/en/images/tour-merge-sep-repos.svg Fri Mar 20 17:17:55 2009 +0800 276.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 276.3 @@ -1,466 +0,0 @@ 276.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 276.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 276.6 -<svg 276.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 276.8 - xmlns:cc="http://web.resource.org/cc/" 276.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 276.10 - xmlns:svg="http://www.w3.org/2000/svg" 276.11 - xmlns="http://www.w3.org/2000/svg" 276.12 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 276.13 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 276.14 - width="744.09448819" 276.15 - height="1052.3622047" 276.16 - id="svg2" 276.17 - sodipodi:version="0.32" 276.18 - inkscape:version="0.44.1" 276.19 - sodipodi:docname="tour-merge-sep-repos.svg"> 276.20 - <defs 276.21 - id="defs4"> 276.22 - <marker 276.23 - inkscape:stockid="Arrow1Mstart" 276.24 - orient="auto" 276.25 - refY="0.0" 276.26 - refX="0.0" 276.27 - id="Arrow1Mstart" 276.28 - style="overflow:visible"> 276.29 - <path 276.30 - id="path2973" 276.31 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 276.32 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 276.33 - transform="scale(0.4) translate(10,0)" /> 276.34 - </marker> 276.35 - <marker 276.36 - inkscape:stockid="Arrow1Mend" 276.37 - orient="auto" 276.38 - refY="0.0" 276.39 - refX="0.0" 276.40 - id="Arrow1Mend" 276.41 - style="overflow:visible;"> 276.42 - <path 276.43 - id="path3066" 276.44 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 276.45 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 276.46 - transform="scale(0.4) rotate(180) translate(10,0)" /> 276.47 - </marker> 276.48 - </defs> 276.49 - <sodipodi:namedview 276.50 - id="base" 276.51 - pagecolor="#ffffff" 276.52 - bordercolor="#666666" 276.53 - borderopacity="1.0" 276.54 - gridtolerance="10000" 276.55 - guidetolerance="10" 276.56 - objecttolerance="10" 276.57 - inkscape:pageopacity="0.0" 276.58 - inkscape:pageshadow="2" 276.59 - inkscape:zoom="1.4" 276.60 - inkscape:cx="307.20351" 276.61 - inkscape:cy="716.87911" 276.62 - inkscape:document-units="px" 276.63 - inkscape:current-layer="layer1" 276.64 - inkscape:window-width="906" 276.65 - inkscape:window-height="620" 276.66 - inkscape:window-x="5" 276.67 - inkscape:window-y="49" /> 276.68 - <metadata 276.69 - id="metadata7"> 276.70 - <rdf:RDF> 276.71 - <cc:Work 276.72 - rdf:about=""> 276.73 - <dc:format>image/svg+xml</dc:format> 276.74 - <dc:type 276.75 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 276.76 - </cc:Work> 276.77 - </rdf:RDF> 276.78 - </metadata> 276.79 - <g 276.80 - inkscape:label="Layer 1" 276.81 - inkscape:groupmode="layer" 276.82 - id="layer1"> 276.83 - <text 276.84 - xml:space="preserve" 276.85 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.86 - x="173.57143" 276.87 - y="443.79074" 276.88 - id="text2832"><tspan 276.89 - sodipodi:role="line" 276.90 - id="tspan2834" 276.91 - x="173.57143" 276.92 - y="443.79074" /></text> 276.93 - <rect 276.94 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.95 - id="rect1878" 276.96 - width="94.285713" 276.97 - height="20.714285" 276.98 - x="138" 276.99 - y="479.50504" /> 276.100 - <text 276.101 - xml:space="preserve" 276.102 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.103 - x="162.09892" 276.104 - y="493.12619" 276.105 - id="text1872"><tspan 276.106 - sodipodi:role="line" 276.107 - id="tspan1874" 276.108 - x="162.09892" 276.109 - y="493.12619" 276.110 - style="font-family:Courier"><tspan 276.111 - style="font-weight:bold" 276.112 - id="tspan1876">0</tspan>: REV0</tspan></text> 276.113 - <rect 276.114 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.115 - id="rect2800" 276.116 - width="94.285713" 276.117 - height="20.714285" 276.118 - x="138" 276.119 - y="432.63004" /> 276.120 - <text 276.121 - xml:space="preserve" 276.122 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.123 - x="162.09892" 276.124 - y="446.25119" 276.125 - id="text2794"><tspan 276.126 - sodipodi:role="line" 276.127 - id="tspan2796" 276.128 - x="162.09892" 276.129 - y="446.25119" 276.130 - style="font-family:Courier"><tspan 276.131 - id="tspan2868" 276.132 - style="font-weight:bold">1</tspan>: REV1</tspan></text> 276.133 - <rect 276.134 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.135 - id="rect2810" 276.136 - width="94.285713" 276.137 - height="20.714285" 276.138 - x="138" 276.139 - y="385.75504" /> 276.140 - <text 276.141 - xml:space="preserve" 276.142 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.143 - x="162.09892" 276.144 - y="399.37619" 276.145 - id="text2804"><tspan 276.146 - sodipodi:role="line" 276.147 - id="tspan2806" 276.148 - x="162.09892" 276.149 - y="399.37619" 276.150 - style="font-family:Courier"><tspan 276.151 - style="font-weight:bold" 276.152 - id="tspan2866">2</tspan>: REV2</tspan></text> 276.153 - <rect 276.154 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.155 - id="rect2820" 276.156 - width="94.285713" 276.157 - height="20.714285" 276.158 - x="138" 276.159 - y="338.88007" /> 276.160 - <text 276.161 - xml:space="preserve" 276.162 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.163 - x="162.09892" 276.164 - y="352.50122" 276.165 - id="text2814"><tspan 276.166 - sodipodi:role="line" 276.167 - id="tspan2816" 276.168 - x="162.09892" 276.169 - y="352.50122" 276.170 - style="font-family:Courier"><tspan 276.171 - style="font-weight:bold" 276.172 - id="tspan2864">3</tspan>: REV3</tspan></text> 276.173 - <rect 276.174 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.175 - id="rect2830" 276.176 - width="94.285713" 276.177 - height="20.714285" 276.178 - x="138" 276.179 - y="292.00504" /> 276.180 - <text 276.181 - xml:space="preserve" 276.182 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.183 - x="162.09892" 276.184 - y="305.62619" 276.185 - id="text2824"><tspan 276.186 - sodipodi:role="line" 276.187 - id="tspan2826" 276.188 - x="162.09892" 276.189 - y="305.62619" 276.190 - style="font-family:Courier"><tspan 276.191 - style="font-weight:bold" 276.192 - id="tspan2862">4</tspan>: REV4</tspan></text> 276.193 - <path 276.194 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 276.195 - d="M 185.14286,478.50504 L 185.14286,454.34432" 276.196 - id="path2894" 276.197 - inkscape:connector-type="polyline" /> 276.198 - <path 276.199 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 276.200 - d="M 185.14286,431.63004 L 185.14286,407.46932" 276.201 - id="path2896" 276.202 - inkscape:connector-type="polyline" /> 276.203 - <path 276.204 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 276.205 - d="M 185.14286,384.75504 L 185.14286,360.59435" 276.206 - id="path2898" 276.207 - inkscape:connector-type="polyline" /> 276.208 - <path 276.209 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 276.210 - d="M 185.14286,337.88007 L 185.14286,313.71932" 276.211 - id="path2900" 276.212 - inkscape:connector-type="polyline" /> 276.213 - <rect 276.214 - style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.215 - id="rect1963" 276.216 - width="94.285995" 276.217 - height="20.714283" 276.218 - x="138" 276.219 - y="245.18723" /> 276.220 - <text 276.221 - xml:space="preserve" 276.222 - style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.223 - x="162.09877" 276.224 - y="258.80865" 276.225 - id="text1965" 276.226 - transform="scale(1.000002,0.999998)"><tspan 276.227 - sodipodi:role="line" 276.228 - id="tspan1967" 276.229 - x="162.09877" 276.230 - y="258.80865" 276.231 - style="font-family:Courier"><tspan 276.232 - style="font-weight:bold" 276.233 - id="tspan1973">5</tspan>: REV_my_hello</tspan></text> 276.234 - <path 276.235 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 276.236 - d="M 185.143,291.06218 L 185.143,266.90143" 276.237 - id="path1971" 276.238 - inkscape:connector-type="polyline" /> 276.239 - <text 276.240 - xml:space="preserve" 276.241 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 276.242 - x="136.90039" 276.243 - y="232.25546" 276.244 - id="text2921"><tspan 276.245 - sodipodi:role="line" 276.246 - id="tspan2923" 276.247 - x="136.90039" 276.248 - y="232.25546">my-hello</tspan></text> 276.249 - <rect 276.250 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.251 - id="rect2863" 276.252 - width="94.285713" 276.253 - height="20.714285" 276.254 - x="370.71414" 276.255 - y="479.49289" /> 276.256 - <text 276.257 - xml:space="preserve" 276.258 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.259 - x="394.81305" 276.260 - y="493.11404" 276.261 - id="text2865"><tspan 276.262 - sodipodi:role="line" 276.263 - id="tspan2867" 276.264 - x="394.81305" 276.265 - y="493.11404" 276.266 - style="font-family:Courier"><tspan 276.267 - style="font-weight:bold" 276.268 - id="tspan2869">0</tspan>: REV0</tspan></text> 276.269 - <rect 276.270 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.271 - id="rect2871" 276.272 - width="94.285713" 276.273 - height="20.714285" 276.274 - x="370.71414" 276.275 - y="432.61789" /> 276.276 - <text 276.277 - xml:space="preserve" 276.278 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.279 - x="394.81305" 276.280 - y="446.23904" 276.281 - id="text2873"><tspan 276.282 - sodipodi:role="line" 276.283 - id="tspan2875" 276.284 - x="394.81305" 276.285 - y="446.23904" 276.286 - style="font-family:Courier"><tspan 276.287 - id="tspan2877" 276.288 - style="font-weight:bold">1</tspan>: REV1</tspan></text> 276.289 - <rect 276.290 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.291 - id="rect2879" 276.292 - width="94.285713" 276.293 - height="20.714285" 276.294 - x="370.71414" 276.295 - y="385.74289" /> 276.296 - <text 276.297 - xml:space="preserve" 276.298 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.299 - x="394.81305" 276.300 - y="399.36404" 276.301 - id="text2881"><tspan 276.302 - sodipodi:role="line" 276.303 - id="tspan2883" 276.304 - x="394.81305" 276.305 - y="399.36404" 276.306 - style="font-family:Courier"><tspan 276.307 - style="font-weight:bold" 276.308 - id="tspan2885">2</tspan>: REV2</tspan></text> 276.309 - <rect 276.310 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.311 - id="rect2887" 276.312 - width="94.285713" 276.313 - height="20.714285" 276.314 - x="370.71414" 276.315 - y="338.86792" /> 276.316 - <text 276.317 - xml:space="preserve" 276.318 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.319 - x="394.81305" 276.320 - y="352.48907" 276.321 - id="text2889"><tspan 276.322 - sodipodi:role="line" 276.323 - id="tspan2891" 276.324 - x="394.81305" 276.325 - y="352.48907" 276.326 - style="font-family:Courier"><tspan 276.327 - style="font-weight:bold" 276.328 - id="tspan2893">3</tspan>: REV3</tspan></text> 276.329 - <rect 276.330 - style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.331 - id="rect2895" 276.332 - width="94.285713" 276.333 - height="20.714285" 276.334 - x="370.71414" 276.335 - y="291.99289" /> 276.336 - <text 276.337 - xml:space="preserve" 276.338 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.339 - x="394.81305" 276.340 - y="305.61404" 276.341 - id="text2897"><tspan 276.342 - sodipodi:role="line" 276.343 - id="tspan2899" 276.344 - x="394.81305" 276.345 - y="305.61404" 276.346 - style="font-family:Courier"><tspan 276.347 - style="font-weight:bold" 276.348 - id="tspan2901">4</tspan>: REV4</tspan></text> 276.349 - <path 276.350 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 276.351 - d="M 417.85701,478.4929 L 417.85701,454.33218" 276.352 - id="path2903" 276.353 - inkscape:connector-type="polyline" /> 276.354 - <path 276.355 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 276.356 - d="M 417.85701,431.6179 L 417.85701,407.45718" 276.357 - id="path2905" 276.358 - inkscape:connector-type="polyline" /> 276.359 - <path 276.360 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 276.361 - d="M 417.85701,384.7429 L 417.85701,360.58221" 276.362 - id="path2907" 276.363 - inkscape:connector-type="polyline" /> 276.364 - <path 276.365 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 276.366 - d="M 417.85701,337.86793 L 417.85701,313.70718" 276.367 - id="path2909" 276.368 - inkscape:connector-type="polyline" /> 276.369 - <rect 276.370 - style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.371 - id="rect2911" 276.372 - width="94.285995" 276.373 - height="20.714283" 276.374 - x="370.71414" 276.375 - y="245.17511" /> 276.376 - <text 276.377 - xml:space="preserve" 276.378 - style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 276.379 - x="394.81274" 276.380 - y="258.79678" 276.381 - id="text2913" 276.382 - transform="scale(1.000002,0.999998)"><tspan 276.383 - sodipodi:role="line" 276.384 - id="tspan2915" 276.385 - x="394.81274" 276.386 - y="258.79678" 276.387 - style="font-family:Courier"><tspan 276.388 - style="font-weight:bold" 276.389 - id="tspan2917">5</tspan>: REV_my_new_hello</tspan></text> 276.390 - <path 276.391 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 276.392 - d="M 417.85715,291.05004 L 417.85715,266.88929" 276.393 - id="path2919" 276.394 - inkscape:connector-type="polyline" /> 276.395 - <text 276.396 - xml:space="preserve" 276.397 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 276.398 - x="369.61453" 276.399 - y="232.25546" 276.400 - id="text2925"><tspan 276.401 - sodipodi:role="line" 276.402 - id="tspan2927" 276.403 - x="369.61453" 276.404 - y="232.25546">my-new-hello</tspan></text> 276.405 - <text 276.406 - xml:space="preserve" 276.407 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 276.408 - x="300.54352" 276.409 - y="252.12723" 276.410 - id="text2933"><tspan 276.411 - sodipodi:role="line" 276.412 - id="tspan2935" 276.413 - x="300.54352" 276.414 - y="252.12723" 276.415 - style="text-align:center;text-anchor:middle">newest changes</tspan><tspan 276.416 - sodipodi:role="line" 276.417 - x="300.54352" 276.418 - y="267.12723" 276.419 - style="text-align:center;text-anchor:middle" 276.420 - id="tspan3132">differ</tspan></text> 276.421 - <text 276.422 - xml:space="preserve" 276.423 - style="font-size:12px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 276.424 - x="262.15436" 276.425 - y="398.37112" 276.426 - id="text2929"><tspan 276.427 - sodipodi:role="line" 276.428 - x="262.15436" 276.429 - y="398.37112" 276.430 - id="tspan3013" 276.431 - style="text-align:start;text-anchor:start">common history</tspan></text> 276.432 - <g 276.433 - id="g3107" 276.434 - transform="translate(0,0.855744)"> 276.435 - <path 276.436 - id="path3101" 276.437 - d="M 300.35713,381.29075 L 300.35713,304.50504" 276.438 - style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" /> 276.439 - <path 276.440 - id="path3105" 276.441 - d="M 291.07142,301.64789 L 309.28571,301.64789" 276.442 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:0.60000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> 276.443 - </g> 276.444 - <path 276.445 - style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" 276.446 - d="M 300.53571,486.38926 L 300.53571,409.60355" 276.447 - id="path3113" /> 276.448 - <path 276.449 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:0.60000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 276.450 - d="M 291.25,488.49641 L 309.46429,488.49641" 276.451 - id="path3115" /> 276.452 - <text 276.453 - xml:space="preserve" 276.454 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 276.455 - x="480.71429" 276.456 - y="250.91507" 276.457 - id="text1949"><tspan 276.458 - sodipodi:role="line" 276.459 - id="tspan1951" 276.460 - x="480.71429" 276.461 - y="250.91507" 276.462 - style="text-align:start;text-anchor:start">head revision</tspan><tspan 276.463 - sodipodi:role="line" 276.464 - x="480.71429" 276.465 - y="265.91507" 276.466 - id="tspan1953" 276.467 - style="text-align:start;text-anchor:start">(has no children)</tspan></text> 276.468 - </g> 276.469 -</svg>
277.1 --- a/en/images/undo-manual-merge.dot Fri Mar 20 17:17:55 2009 +0800 277.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 277.3 @@ -1,8 +0,0 @@ 277.4 -digraph undo_manual { 277.5 - "first change" -> "second change"; 277.6 - "second change" -> "third change"; 277.7 - backout [label="back out\nsecond change", shape=box]; 277.8 - "second change" -> backout; 277.9 - "third change" -> "manual\nmerge"; 277.10 - backout -> "manual\nmerge"; 277.11 -}
278.1 --- a/en/images/undo-manual.dot Fri Mar 20 17:17:55 2009 +0800 278.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 278.3 @@ -1,6 +0,0 @@ 278.4 -digraph undo_manual { 278.5 - "first change" -> "second change"; 278.6 - "second change" -> "third change"; 278.7 - backout [label="back out\nsecond change", shape=box]; 278.8 - "second change" -> backout; 278.9 -}
279.1 --- a/en/images/undo-non-tip.dot Fri Mar 20 17:17:55 2009 +0800 279.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 279.3 @@ -1,9 +0,0 @@ 279.4 -digraph undo_non_tip { 279.5 - "first change" -> "second change"; 279.6 - "second change" -> "third change"; 279.7 - backout [label="back out\nsecond change", shape=box]; 279.8 - "second change" -> backout; 279.9 - merge [label="automated\nmerge", shape=box]; 279.10 - "third change" -> merge; 279.11 - backout -> merge; 279.12 -}
280.1 --- a/en/images/undo-simple.dot Fri Mar 20 17:17:55 2009 +0800 280.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 280.3 @@ -1,4 +0,0 @@ 280.4 -digraph undo_simple { 280.5 - "first change" -> "second change"; 280.6 - "second change" -> "back out\nsecond change"; 280.7 -}
281.1 --- a/en/images/wdir-after-commit.svg Fri Mar 20 17:17:55 2009 +0800 281.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 281.3 @@ -1,394 +0,0 @@ 281.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 281.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 281.6 -<svg 281.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 281.8 - xmlns:cc="http://web.resource.org/cc/" 281.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 281.10 - xmlns:svg="http://www.w3.org/2000/svg" 281.11 - xmlns="http://www.w3.org/2000/svg" 281.12 - xmlns:xlink="http://www.w3.org/1999/xlink" 281.13 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 281.14 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 281.15 - width="744.09448819" 281.16 - height="1052.3622047" 281.17 - id="svg5971" 281.18 - sodipodi:version="0.32" 281.19 - inkscape:version="0.44.1" 281.20 - sodipodi:docbase="/home/bos/hg/hgbook/en" 281.21 - sodipodi:docname="wdir-after-commit.svg"> 281.22 - <defs 281.23 - id="defs5973"> 281.24 - <linearGradient 281.25 - inkscape:collect="always" 281.26 - xlink:href="#linearGradient6049" 281.27 - id="linearGradient6445" 281.28 - gradientUnits="userSpaceOnUse" 281.29 - gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 281.30 - x1="333.91171" 281.31 - y1="488.79077" 281.32 - x2="508.94543" 281.33 - y2="263.79077" /> 281.34 - <marker 281.35 - inkscape:stockid="Arrow1Mstart" 281.36 - orient="auto" 281.37 - refY="0.0" 281.38 - refX="0.0" 281.39 - id="Arrow1Mstart" 281.40 - style="overflow:visible"> 281.41 - <path 281.42 - id="path4855" 281.43 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 281.44 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 281.45 - transform="scale(0.4) translate(10,0)" /> 281.46 - </marker> 281.47 - <linearGradient 281.48 - id="linearGradient6049"> 281.49 - <stop 281.50 - style="stop-color:#686868;stop-opacity:1;" 281.51 - offset="0" 281.52 - id="stop6051" /> 281.53 - <stop 281.54 - style="stop-color:#f0f0f0;stop-opacity:1;" 281.55 - offset="1" 281.56 - id="stop6053" /> 281.57 - </linearGradient> 281.58 - <marker 281.59 - inkscape:stockid="Arrow1Mend" 281.60 - orient="auto" 281.61 - refY="0.0" 281.62 - refX="0.0" 281.63 - id="Arrow1Mend" 281.64 - style="overflow:visible;"> 281.65 - <path 281.66 - id="path4852" 281.67 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 281.68 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 281.69 - transform="scale(0.4) rotate(180) translate(10,0)" /> 281.70 - </marker> 281.71 - <linearGradient 281.72 - inkscape:collect="always" 281.73 - xlink:href="#linearGradient6049" 281.74 - id="linearGradient6083" 281.75 - gradientUnits="userSpaceOnUse" 281.76 - gradientTransform="translate(-240.0462,-8.633237e-6)" 281.77 - x1="333.91171" 281.78 - y1="488.79077" 281.79 - x2="508.94543" 281.80 - y2="263.79077" /> 281.81 - <linearGradient 281.82 - inkscape:collect="always" 281.83 - xlink:href="#linearGradient6049" 281.84 - id="linearGradient6142" 281.85 - gradientUnits="userSpaceOnUse" 281.86 - gradientTransform="translate(-42.00893,-30.49544)" 281.87 - x1="333.91171" 281.88 - y1="488.79077" 281.89 - x2="508.94543" 281.90 - y2="263.79077" /> 281.91 - <linearGradient 281.92 - inkscape:collect="always" 281.93 - xlink:href="#linearGradient6049" 281.94 - id="linearGradient6193" 281.95 - gradientUnits="userSpaceOnUse" 281.96 - gradientTransform="translate(-240.0462,-8.633237e-6)" 281.97 - x1="333.91171" 281.98 - y1="488.79077" 281.99 - x2="508.94543" 281.100 - y2="263.79077" /> 281.101 - <linearGradient 281.102 - inkscape:collect="always" 281.103 - xlink:href="#linearGradient6049" 281.104 - id="linearGradient6216" 281.105 - gradientUnits="userSpaceOnUse" 281.106 - gradientTransform="translate(-6.0462,-0.664361)" 281.107 - x1="333.91171" 281.108 - y1="488.79077" 281.109 - x2="508.94543" 281.110 - y2="263.79077" /> 281.111 - <linearGradient 281.112 - inkscape:collect="always" 281.113 - xlink:href="#linearGradient6049" 281.114 - id="linearGradient6232" 281.115 - gradientUnits="userSpaceOnUse" 281.116 - gradientTransform="matrix(1.000474,0,0,0.790947,222.8399,50.85693)" 281.117 - x1="333.91171" 281.118 - y1="488.79077" 281.119 - x2="508.94543" 281.120 - y2="263.79077" /> 281.121 - <linearGradient 281.122 - inkscape:collect="always" 281.123 - xlink:href="#linearGradient6049" 281.124 - id="linearGradient6772" 281.125 - gradientUnits="userSpaceOnUse" 281.126 - gradientTransform="matrix(1.000474,0,0,0.790947,222.8399,50.85693)" 281.127 - x1="333.91171" 281.128 - y1="488.79077" 281.129 - x2="508.94543" 281.130 - y2="263.79077" /> 281.131 - </defs> 281.132 - <sodipodi:namedview 281.133 - id="base" 281.134 - pagecolor="#ffffff" 281.135 - bordercolor="#666666" 281.136 - borderopacity="1.0" 281.137 - gridtolerance="10000" 281.138 - guidetolerance="10" 281.139 - objecttolerance="10" 281.140 - inkscape:pageopacity="0.0" 281.141 - inkscape:pageshadow="2" 281.142 - inkscape:zoom="0.90509668" 281.143 - inkscape:cx="390.0539" 281.144 - inkscape:cy="690.49342" 281.145 - inkscape:document-units="px" 281.146 - inkscape:current-layer="layer1" 281.147 - showguides="true" 281.148 - inkscape:guide-bbox="true" 281.149 - inkscape:window-width="906" 281.150 - inkscape:window-height="620" 281.151 - inkscape:window-x="0" 281.152 - inkscape:window-y="25"> 281.153 - <sodipodi:guide 281.154 - orientation="vertical" 281.155 - position="-1.4285714" 281.156 - id="guide6022" /> 281.157 - </sodipodi:namedview> 281.158 - <metadata 281.159 - id="metadata5976"> 281.160 - <rdf:RDF> 281.161 - <cc:Work 281.162 - rdf:about=""> 281.163 - <dc:format>image/svg+xml</dc:format> 281.164 - <dc:type 281.165 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 281.166 - </cc:Work> 281.167 - </rdf:RDF> 281.168 - </metadata> 281.169 - <g 281.170 - inkscape:label="Layer 1" 281.171 - inkscape:groupmode="layer" 281.172 - id="layer1"> 281.173 - <rect 281.174 - y="245.98355" 281.175 - x="328.23956" 281.176 - height="258.57144" 281.177 - width="174.28572" 281.178 - id="rect6047" 281.179 - style="fill:url(#linearGradient6216);fill-opacity:1;stroke:#686868;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 281.180 - <g 281.181 - id="g6261" 281.182 - transform="translate(234,0)"> 281.183 - <rect 281.184 - y="258.7149" 281.185 - x="114.11369" 281.186 - height="44.537449" 281.187 - width="134.53746" 281.188 - id="rect5983" 281.189 - style="fill:#b1b1b1;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 281.190 - <text 281.191 - id="text5985" 281.192 - y="284.47562" 281.193 - x="138.7962" 281.194 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 281.195 - xml:space="preserve"><tspan 281.196 - style="font-family:Courier" 281.197 - y="284.47562" 281.198 - x="138.7962" 281.199 - id="tspan5987" 281.200 - sodipodi:role="line">dfbbb33f3fa3</tspan></text> 281.201 - </g> 281.202 - <rect 281.203 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 281.204 - id="rect5996" 281.205 - width="134.53746" 281.206 - height="44.537449" 281.207 - x="348.11371" 281.208 - y="320.38159" /> 281.209 - <text 281.210 - xml:space="preserve" 281.211 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 281.212 - x="372.7962" 281.213 - y="346.1423" 281.214 - id="text5998"><tspan 281.215 - sodipodi:role="line" 281.216 - id="tspan6000" 281.217 - x="372.7962" 281.218 - y="346.1423" 281.219 - style="font-family:Courier">e7639888bb2f</tspan></text> 281.220 - <rect 281.221 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 281.222 - id="rect6004" 281.223 - width="134.53746" 281.224 - height="44.537449" 281.225 - x="348.11371" 281.226 - y="382.04825" /> 281.227 - <text 281.228 - xml:space="preserve" 281.229 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 281.230 - x="370.65421" 281.231 - y="407.80896" 281.232 - id="text6006"><tspan 281.233 - sodipodi:role="line" 281.234 - id="tspan6008" 281.235 - x="370.65421" 281.236 - y="407.80896" 281.237 - style="font-family:Courier">7b064d8bac5e</tspan></text> 281.238 - <path 281.239 - inkscape:connector-type="polyline" 281.240 - id="path6018" 281.241 - d="M 415.38242,303.62646 L 415.38242,320.00744" 281.242 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 281.243 - <path 281.244 - inkscape:connection-end="#rect6004" 281.245 - inkscape:connector-type="polyline" 281.246 - id="path6020" 281.247 - d="M 415.38242,365.29315 L 415.38243,381.67412" 281.248 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 281.249 - <rect 281.250 - style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 281.251 - id="rect6039" 281.252 - width="134.53746" 281.253 - height="44.537449" 281.254 - x="348.11359" 281.255 - y="443.71487" /> 281.256 - <text 281.257 - xml:space="preserve" 281.258 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 281.259 - x="372.79706" 281.260 - y="469.47556" 281.261 - id="text6041"><tspan 281.262 - sodipodi:role="line" 281.263 - id="tspan6043" 281.264 - x="372.79706" 281.265 - y="469.47556" 281.266 - style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 281.267 - <path 281.268 - inkscape:connection-end="#rect6039" 281.269 - inkscape:connector-type="polyline" 281.270 - id="path6045" 281.271 - d="M 415.38238,426.95981 L 415.38235,443.34087" 281.272 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 281.273 - <text 281.274 - xml:space="preserve" 281.275 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 281.276 - x="327.66046" 281.277 - y="231.36218" 281.278 - id="text6102"><tspan 281.279 - sodipodi:role="line" 281.280 - id="tspan6104" 281.281 - x="327.66046" 281.282 - y="231.36218">History in repository</tspan></text> 281.283 - <rect 281.284 - y="245.94225" 281.285 - x="557.28418" 281.286 - height="204.51619" 281.287 - width="174.36833" 281.288 - id="rect6140" 281.289 - style="fill:url(#linearGradient6232);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 281.290 - <g 281.291 - id="g6130" 281.292 - transform="translate(262.3254,24.38544)"> 281.293 - <rect 281.294 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 281.295 - id="rect6106" 281.296 - width="134.53746" 281.297 - height="44.537449" 281.298 - x="314.87415" 281.299 - y="257.95059" /> 281.300 - <text 281.301 - xml:space="preserve" 281.302 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 281.303 - x="339.55664" 281.304 - y="283.7113" 281.305 - id="text6108"><tspan 281.306 - sodipodi:role="line" 281.307 - id="tspan6110" 281.308 - x="339.55664" 281.309 - y="283.7113" 281.310 - style="font-family:Courier">dfbbb33f3fa3</tspan></text> 281.311 - </g> 281.312 - <g 281.313 - id="g6135" 281.314 - transform="translate(263.0396,49.83106)"> 281.315 - <rect 281.316 - inkscape:transform-center-y="102.85714" 281.317 - inkscape:transform-center-x="129.28571" 281.318 - style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 281.319 - id="rect6112" 281.320 - width="134.53746" 281.321 - height="44.537449" 281.322 - x="314.15985" 281.323 - y="326.52203" /> 281.324 - <text 281.325 - inkscape:transform-center-y="102.7311" 281.326 - inkscape:transform-center-x="128.69672" 281.327 - xml:space="preserve" 281.328 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 281.329 - x="338.84335" 281.330 - y="352.28271" 281.331 - id="text6114"><tspan 281.332 - sodipodi:role="line" 281.333 - id="tspan6116" 281.334 - x="338.84335" 281.335 - y="352.28271" 281.336 - style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 281.337 - </g> 281.338 - <text 281.339 - xml:space="preserve" 281.340 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 281.341 - x="576.63208" 281.342 - y="270.479" 281.343 - id="text6118"><tspan 281.344 - sodipodi:role="line" 281.345 - id="tspan6120" 281.346 - x="576.63208" 281.347 - y="270.479">First parent</tspan></text> 281.348 - <text 281.349 - xml:space="preserve" 281.350 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 281.351 - x="576.07544" 281.352 - y="364.49615" 281.353 - id="text6122"><tspan 281.354 - sodipodi:role="line" 281.355 - id="tspan6124" 281.356 - x="576.07544" 281.357 - y="364.49615">Second parent</tspan></text> 281.358 - <text 281.359 - xml:space="preserve" 281.360 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 281.361 - x="556.61743" 281.362 - y="231.36218" 281.363 - id="text6195"><tspan 281.364 - sodipodi:role="line" 281.365 - id="tspan6197" 281.366 - x="556.61743" 281.367 - y="231.36218">Parents of working directory</tspan></text> 281.368 - <path 281.369 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 281.370 - d="M 576.82542,297.63008 L 483.02528,287.95831" 281.371 - id="path6266" 281.372 - inkscape:connector-type="polyline" 281.373 - inkscape:connection-start="#g6130" 281.374 - inkscape:connection-end="#g6261" /> 281.375 - <path 281.376 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 281.377 - d="M 665.12232,418.17579 L 665.12232,418.17579" 281.378 - id="path6270" 281.379 - inkscape:connector-type="polyline" /> 281.380 - <text 281.381 - xml:space="preserve" 281.382 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 281.383 - x="316.86407" 281.384 - y="275.6496" 281.385 - id="text6573"><tspan 281.386 - sodipodi:role="line" 281.387 - id="tspan6575" 281.388 - x="316.86407" 281.389 - y="275.6496" 281.390 - style="text-align:end;text-anchor:end">New</tspan><tspan 281.391 - sodipodi:role="line" 281.392 - x="316.86407" 281.393 - y="290.6496" 281.394 - id="tspan6577" 281.395 - style="text-align:end;text-anchor:end">changeset</tspan></text> 281.396 - </g> 281.397 -</svg>
282.1 --- a/en/images/wdir-branch.svg Fri Mar 20 17:17:55 2009 +0800 282.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 282.3 @@ -1,418 +0,0 @@ 282.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 282.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 282.6 -<svg 282.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 282.8 - xmlns:cc="http://web.resource.org/cc/" 282.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 282.10 - xmlns:svg="http://www.w3.org/2000/svg" 282.11 - xmlns="http://www.w3.org/2000/svg" 282.12 - xmlns:xlink="http://www.w3.org/1999/xlink" 282.13 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 282.14 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 282.15 - width="744.09448819" 282.16 - height="1052.3622047" 282.17 - id="svg5971" 282.18 - sodipodi:version="0.32" 282.19 - inkscape:version="0.44.1" 282.20 - sodipodi:docbase="/home/bos/hg/hgbook/en" 282.21 - sodipodi:docname="wdir-branch.svg"> 282.22 - <defs 282.23 - id="defs5973"> 282.24 - <marker 282.25 - inkscape:stockid="Arrow1Mstart" 282.26 - orient="auto" 282.27 - refY="0.0" 282.28 - refX="0.0" 282.29 - id="Arrow1Mstart" 282.30 - style="overflow:visible"> 282.31 - <path 282.32 - id="path4855" 282.33 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 282.34 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 282.35 - transform="scale(0.4) translate(10,0)" /> 282.36 - </marker> 282.37 - <linearGradient 282.38 - id="linearGradient6049"> 282.39 - <stop 282.40 - style="stop-color:#686868;stop-opacity:1;" 282.41 - offset="0" 282.42 - id="stop6051" /> 282.43 - <stop 282.44 - style="stop-color:#f0f0f0;stop-opacity:1;" 282.45 - offset="1" 282.46 - id="stop6053" /> 282.47 - </linearGradient> 282.48 - <marker 282.49 - inkscape:stockid="Arrow1Mend" 282.50 - orient="auto" 282.51 - refY="0.0" 282.52 - refX="0.0" 282.53 - id="Arrow1Mend" 282.54 - style="overflow:visible;"> 282.55 - <path 282.56 - id="path4852" 282.57 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 282.58 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 282.59 - transform="scale(0.4) rotate(180) translate(10,0)" /> 282.60 - </marker> 282.61 - <linearGradient 282.62 - inkscape:collect="always" 282.63 - xlink:href="#linearGradient6049" 282.64 - id="linearGradient6083" 282.65 - gradientUnits="userSpaceOnUse" 282.66 - gradientTransform="translate(-240.0462,-8.633237e-6)" 282.67 - x1="333.91171" 282.68 - y1="488.79077" 282.69 - x2="508.94543" 282.70 - y2="263.79077" /> 282.71 - <linearGradient 282.72 - inkscape:collect="always" 282.73 - xlink:href="#linearGradient6049" 282.74 - id="linearGradient6142" 282.75 - gradientUnits="userSpaceOnUse" 282.76 - gradientTransform="translate(-42.00893,-30.49544)" 282.77 - x1="333.91171" 282.78 - y1="488.79077" 282.79 - x2="508.94543" 282.80 - y2="263.79077" /> 282.81 - <linearGradient 282.82 - inkscape:collect="always" 282.83 - xlink:href="#linearGradient6049" 282.84 - id="linearGradient6193" 282.85 - gradientUnits="userSpaceOnUse" 282.86 - gradientTransform="translate(-240.0462,-8.633237e-6)" 282.87 - x1="333.91171" 282.88 - y1="488.79077" 282.89 - x2="508.94543" 282.90 - y2="263.79077" /> 282.91 - <linearGradient 282.92 - inkscape:collect="always" 282.93 - xlink:href="#linearGradient6049" 282.94 - id="linearGradient6216" 282.95 - gradientUnits="userSpaceOnUse" 282.96 - gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 282.97 - x1="333.91171" 282.98 - y1="488.79077" 282.99 - x2="508.94543" 282.100 - y2="263.79077" /> 282.101 - <linearGradient 282.102 - inkscape:collect="always" 282.103 - xlink:href="#linearGradient6049" 282.104 - id="linearGradient6232" 282.105 - gradientUnits="userSpaceOnUse" 282.106 - gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 282.107 - x1="333.91171" 282.108 - y1="488.79077" 282.109 - x2="508.94543" 282.110 - y2="263.79077" /> 282.111 - <linearGradient 282.112 - inkscape:collect="always" 282.113 - xlink:href="#linearGradient6049" 282.114 - id="linearGradient6445" 282.115 - gradientUnits="userSpaceOnUse" 282.116 - gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 282.117 - x1="333.91171" 282.118 - y1="488.79077" 282.119 - x2="508.94543" 282.120 - y2="263.79077" /> 282.121 - <linearGradient 282.122 - inkscape:collect="always" 282.123 - xlink:href="#linearGradient6049" 282.124 - id="linearGradient6974" 282.125 - gradientUnits="userSpaceOnUse" 282.126 - gradientTransform="matrix(1.911882,0,0,0.789965,-574.7896,51.22599)" 282.127 - x1="333.91171" 282.128 - y1="488.79077" 282.129 - x2="508.94543" 282.130 - y2="263.79077" /> 282.131 - <linearGradient 282.132 - inkscape:collect="always" 282.133 - xlink:href="#linearGradient6049" 282.134 - id="linearGradient6996" 282.135 - gradientUnits="userSpaceOnUse" 282.136 - gradientTransform="matrix(1.000473,0,0,0.790947,112.8399,50.85693)" 282.137 - x1="333.91171" 282.138 - y1="488.79077" 282.139 - x2="508.94543" 282.140 - y2="263.79077" /> 282.141 - </defs> 282.142 - <sodipodi:namedview 282.143 - id="base" 282.144 - pagecolor="#ffffff" 282.145 - bordercolor="#666666" 282.146 - borderopacity="1.0" 282.147 - gridtolerance="10000" 282.148 - guidetolerance="10" 282.149 - objecttolerance="10" 282.150 - inkscape:pageopacity="0.0" 282.151 - inkscape:pageshadow="2" 282.152 - inkscape:zoom="0.90509668" 282.153 - inkscape:cx="345.85973" 282.154 - inkscape:cy="690.49342" 282.155 - inkscape:document-units="px" 282.156 - inkscape:current-layer="layer1" 282.157 - showguides="true" 282.158 - inkscape:guide-bbox="true" 282.159 - inkscape:window-width="906" 282.160 - inkscape:window-height="620" 282.161 - inkscape:window-x="0" 282.162 - inkscape:window-y="25"> 282.163 - <sodipodi:guide 282.164 - orientation="vertical" 282.165 - position="-1.4285714" 282.166 - id="guide6022" /> 282.167 - </sodipodi:namedview> 282.168 - <metadata 282.169 - id="metadata5976"> 282.170 - <rdf:RDF> 282.171 - <cc:Work 282.172 - rdf:about=""> 282.173 - <dc:format>image/svg+xml</dc:format> 282.174 - <dc:type 282.175 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 282.176 - </cc:Work> 282.177 - </rdf:RDF> 282.178 - </metadata> 282.179 - <g 282.180 - inkscape:label="Layer 1" 282.181 - inkscape:groupmode="layer" 282.182 - id="layer1"> 282.183 - <rect 282.184 - y="246.06918" 282.185 - x="64.325172" 282.186 - height="204.26233" 282.187 - width="333.2135" 282.188 - id="rect6047" 282.189 - style="fill:url(#linearGradient6974);fill-opacity:1;stroke:#686868;stroke-width:0.91925466;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 282.190 - <g 282.191 - id="g1935"> 282.192 - <rect 282.193 - y="266.24374" 282.194 - x="84.113708" 282.195 - height="44.537449" 282.196 - width="134.53746" 282.197 - id="rect5996" 282.198 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 282.199 - <text 282.200 - id="text5998" 282.201 - y="292.00446" 282.202 - x="108.7962" 282.203 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 282.204 - xml:space="preserve"><tspan 282.205 - style="font-family:Courier" 282.206 - y="292.00446" 282.207 - x="108.7962" 282.208 - id="tspan6000" 282.209 - sodipodi:role="line">e7639888bb2f</tspan></text> 282.210 - </g> 282.211 - <g 282.212 - id="g6976" 282.213 - transform="translate(70,0)"> 282.214 - <rect 282.215 - y="327.9104" 282.216 - x="40.113693" 282.217 - height="44.537449" 282.218 - width="134.53746" 282.219 - id="rect6004" 282.220 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 282.221 - <text 282.222 - id="text6006" 282.223 - y="353.67111" 282.224 - x="62.654205" 282.225 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 282.226 - xml:space="preserve"><tspan 282.227 - style="font-family:Courier" 282.228 - y="353.67111" 282.229 - x="62.654205" 282.230 - id="tspan6008" 282.231 - sodipodi:role="line">7b064d8bac5e</tspan></text> 282.232 - </g> 282.233 - <path 282.234 - inkscape:connector-type="polyline" 282.235 - id="path6020" 282.236 - d="M 160.92915,311.15532 L 167.83571,327.53627" 282.237 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 282.238 - inkscape:connection-end="#g6976" 282.239 - inkscape:connection-start="#g1935" /> 282.240 - <rect 282.241 - style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 282.242 - id="rect6039" 282.243 - width="134.53746" 282.244 - height="44.537449" 282.245 - x="110.11359" 282.246 - y="389.57703" /> 282.247 - <text 282.248 - xml:space="preserve" 282.249 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 282.250 - x="134.79706" 282.251 - y="415.33771" 282.252 - id="text6041"><tspan 282.253 - sodipodi:role="line" 282.254 - id="tspan6043" 282.255 - x="134.79706" 282.256 - y="415.33771" 282.257 - style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 282.258 - <path 282.259 - inkscape:connection-end="#rect6039" 282.260 - inkscape:connector-type="polyline" 282.261 - id="path6045" 282.262 - d="M 177.38238,372.82195 L 177.38235,389.20303" 282.263 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 282.264 - <rect 282.265 - y="245.94225" 282.266 - x="447.28412" 282.267 - height="204.51619" 282.268 - width="174.36833" 282.269 - id="rect6140" 282.270 - style="fill:url(#linearGradient6996);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 282.271 - <g 282.272 - id="g6130" 282.273 - transform="translate(152.3254,24.38544)"> 282.274 - <rect 282.275 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 282.276 - id="rect6106" 282.277 - width="134.53746" 282.278 - height="44.537449" 282.279 - x="314.87415" 282.280 - y="257.95059" /> 282.281 - <text 282.282 - xml:space="preserve" 282.283 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 282.284 - x="339.55664" 282.285 - y="283.7113" 282.286 - id="text6108"><tspan 282.287 - sodipodi:role="line" 282.288 - id="tspan6110" 282.289 - x="339.55664" 282.290 - y="283.7113" 282.291 - style="font-family:Courier">ffb20e1701ea</tspan></text> 282.292 - </g> 282.293 - <g 282.294 - id="g6135" 282.295 - transform="translate(153.0396,49.83106)"> 282.296 - <rect 282.297 - inkscape:transform-center-y="102.85714" 282.298 - inkscape:transform-center-x="129.28571" 282.299 - style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 282.300 - id="rect6112" 282.301 - width="134.53746" 282.302 - height="44.537449" 282.303 - x="314.15985" 282.304 - y="326.52203" /> 282.305 - <text 282.306 - inkscape:transform-center-y="102.7311" 282.307 - inkscape:transform-center-x="128.69672" 282.308 - xml:space="preserve" 282.309 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 282.310 - x="338.84335" 282.311 - y="352.28271" 282.312 - id="text6114"><tspan 282.313 - sodipodi:role="line" 282.314 - id="tspan6116" 282.315 - x="338.84335" 282.316 - y="352.28271" 282.317 - style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 282.318 - </g> 282.319 - <text 282.320 - xml:space="preserve" 282.321 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 282.322 - x="466.63208" 282.323 - y="270.479" 282.324 - id="text6118"><tspan 282.325 - sodipodi:role="line" 282.326 - id="tspan6120" 282.327 - x="466.63208" 282.328 - y="270.479">First parent</tspan></text> 282.329 - <text 282.330 - xml:space="preserve" 282.331 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 282.332 - x="466.07544" 282.333 - y="364.49615" 282.334 - id="text6122"><tspan 282.335 - sodipodi:role="line" 282.336 - id="tspan6124" 282.337 - x="466.07544" 282.338 - y="364.49615">Second parent</tspan></text> 282.339 - <text 282.340 - xml:space="preserve" 282.341 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 282.342 - x="446.61743" 282.343 - y="231.36218" 282.344 - id="text6195"><tspan 282.345 - sodipodi:role="line" 282.346 - id="tspan6197" 282.347 - x="446.61743" 282.348 - y="231.36218">Parents of working directory</tspan></text> 282.349 - <path 282.350 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 282.351 - d="M 466.82542,300.21999 L 377.00207,294.39744" 282.352 - id="path6266" 282.353 - inkscape:connector-type="polyline" 282.354 - inkscape:connection-start="#g6130" 282.355 - inkscape:connection-end="#rect1925" /> 282.356 - <path 282.357 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 282.358 - d="M 665.12232,418.17579 L 665.12232,418.17579" 282.359 - id="path6270" 282.360 - inkscape:connector-type="polyline" /> 282.361 - <g 282.362 - id="g2845"> 282.363 - <rect 282.364 - y="266.24374" 282.365 - x="242.09048" 282.366 - height="44.537449" 282.367 - width="134.53746" 282.368 - id="rect1925" 282.369 - style="fill:#9f9f9f;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 282.370 - <text 282.371 - id="text1927" 282.372 - y="292.00446" 282.373 - x="266.77298" 282.374 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 282.375 - xml:space="preserve"><tspan 282.376 - style="font-family:Courier" 282.377 - y="292.00446" 282.378 - x="266.77298" 282.379 - id="tspan1929" 282.380 - sodipodi:role="line">ffb20e1701ea</tspan></text> 282.381 - </g> 282.382 - <path 282.383 - inkscape:connector-type="polyline" 282.384 - id="path1933" 282.385 - d="M 260.89978,311.15532 L 225.84185,327.53627" 282.386 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 282.387 - inkscape:connection-end="#g6976" /> 282.388 - <text 282.389 - xml:space="preserve" 282.390 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 282.391 - x="109.45568" 282.392 - y="231.4554" 282.393 - id="text2837"><tspan 282.394 - sodipodi:role="line" 282.395 - id="tspan2839" 282.396 - x="109.45568" 282.397 - y="231.4554">Pre-existing head</tspan></text> 282.398 - <text 282.399 - xml:space="preserve" 282.400 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 282.401 - x="237.54184" 282.402 - y="231.4554" 282.403 - id="text2841"><tspan 282.404 - sodipodi:role="line" 282.405 - id="tspan2843" 282.406 - x="237.54184" 282.407 - y="231.4554">Newly created head (and tip)</tspan></text> 282.408 - <path 282.409 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 282.410 - d="M 148.05048,235.87482 L 149.94915,265.86962" 282.411 - id="path2850" 282.412 - inkscape:connector-type="polyline" 282.413 - inkscape:connection-end="#g1935" /> 282.414 - <path 282.415 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 282.416 - d="M 303.83495,238.08453 L 306.87874,265.86962" 282.417 - id="path2852" 282.418 - inkscape:connector-type="polyline" 282.419 - inkscape:connection-end="#g2845" /> 282.420 - </g> 282.421 -</svg>
283.1 --- a/en/images/wdir-merge.svg Fri Mar 20 17:17:55 2009 +0800 283.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 283.3 @@ -1,425 +0,0 @@ 283.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 283.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 283.6 -<svg 283.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 283.8 - xmlns:cc="http://web.resource.org/cc/" 283.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 283.10 - xmlns:svg="http://www.w3.org/2000/svg" 283.11 - xmlns="http://www.w3.org/2000/svg" 283.12 - xmlns:xlink="http://www.w3.org/1999/xlink" 283.13 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 283.14 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 283.15 - width="744.09448819" 283.16 - height="1052.3622047" 283.17 - id="svg5971" 283.18 - sodipodi:version="0.32" 283.19 - inkscape:version="0.44.1" 283.20 - sodipodi:docbase="/home/bos/hg/hgbook/en" 283.21 - sodipodi:docname="wdir-merge.svg"> 283.22 - <defs 283.23 - id="defs5973"> 283.24 - <marker 283.25 - inkscape:stockid="Arrow1Mstart" 283.26 - orient="auto" 283.27 - refY="0.0" 283.28 - refX="0.0" 283.29 - id="Arrow1Mstart" 283.30 - style="overflow:visible"> 283.31 - <path 283.32 - id="path4855" 283.33 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 283.34 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 283.35 - transform="scale(0.4) translate(10,0)" /> 283.36 - </marker> 283.37 - <linearGradient 283.38 - id="linearGradient6049"> 283.39 - <stop 283.40 - style="stop-color:#686868;stop-opacity:1;" 283.41 - offset="0" 283.42 - id="stop6051" /> 283.43 - <stop 283.44 - style="stop-color:#f0f0f0;stop-opacity:1;" 283.45 - offset="1" 283.46 - id="stop6053" /> 283.47 - </linearGradient> 283.48 - <marker 283.49 - inkscape:stockid="Arrow1Mend" 283.50 - orient="auto" 283.51 - refY="0.0" 283.52 - refX="0.0" 283.53 - id="Arrow1Mend" 283.54 - style="overflow:visible;"> 283.55 - <path 283.56 - id="path4852" 283.57 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 283.58 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 283.59 - transform="scale(0.4) rotate(180) translate(10,0)" /> 283.60 - </marker> 283.61 - <linearGradient 283.62 - inkscape:collect="always" 283.63 - xlink:href="#linearGradient6049" 283.64 - id="linearGradient6083" 283.65 - gradientUnits="userSpaceOnUse" 283.66 - gradientTransform="translate(-240.0462,-8.633237e-6)" 283.67 - x1="333.91171" 283.68 - y1="488.79077" 283.69 - x2="508.94543" 283.70 - y2="263.79077" /> 283.71 - <linearGradient 283.72 - inkscape:collect="always" 283.73 - xlink:href="#linearGradient6049" 283.74 - id="linearGradient6142" 283.75 - gradientUnits="userSpaceOnUse" 283.76 - gradientTransform="translate(-42.00893,-30.49544)" 283.77 - x1="333.91171" 283.78 - y1="488.79077" 283.79 - x2="508.94543" 283.80 - y2="263.79077" /> 283.81 - <linearGradient 283.82 - inkscape:collect="always" 283.83 - xlink:href="#linearGradient6049" 283.84 - id="linearGradient6193" 283.85 - gradientUnits="userSpaceOnUse" 283.86 - gradientTransform="translate(-240.0462,-8.633237e-6)" 283.87 - x1="333.91171" 283.88 - y1="488.79077" 283.89 - x2="508.94543" 283.90 - y2="263.79077" /> 283.91 - <linearGradient 283.92 - inkscape:collect="always" 283.93 - xlink:href="#linearGradient6049" 283.94 - id="linearGradient6216" 283.95 - gradientUnits="userSpaceOnUse" 283.96 - gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 283.97 - x1="333.91171" 283.98 - y1="488.79077" 283.99 - x2="508.94543" 283.100 - y2="263.79077" /> 283.101 - <linearGradient 283.102 - inkscape:collect="always" 283.103 - xlink:href="#linearGradient6049" 283.104 - id="linearGradient6232" 283.105 - gradientUnits="userSpaceOnUse" 283.106 - gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 283.107 - x1="333.91171" 283.108 - y1="488.79077" 283.109 - x2="508.94543" 283.110 - y2="263.79077" /> 283.111 - <linearGradient 283.112 - inkscape:collect="always" 283.113 - xlink:href="#linearGradient6049" 283.114 - id="linearGradient6445" 283.115 - gradientUnits="userSpaceOnUse" 283.116 - gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 283.117 - x1="333.91171" 283.118 - y1="488.79077" 283.119 - x2="508.94543" 283.120 - y2="263.79077" /> 283.121 - <linearGradient 283.122 - inkscape:collect="always" 283.123 - xlink:href="#linearGradient6049" 283.124 - id="linearGradient6974" 283.125 - gradientUnits="userSpaceOnUse" 283.126 - gradientTransform="matrix(1.911882,0,0,0.789965,-574.7896,51.22599)" 283.127 - x1="333.91171" 283.128 - y1="488.79077" 283.129 - x2="508.94543" 283.130 - y2="263.79077" /> 283.131 - <linearGradient 283.132 - inkscape:collect="always" 283.133 - xlink:href="#linearGradient6049" 283.134 - id="linearGradient6996" 283.135 - gradientUnits="userSpaceOnUse" 283.136 - gradientTransform="matrix(1.000473,0,0,0.790947,112.8399,50.85693)" 283.137 - x1="333.91171" 283.138 - y1="488.79077" 283.139 - x2="508.94543" 283.140 - y2="263.79077" /> 283.141 - </defs> 283.142 - <sodipodi:namedview 283.143 - id="base" 283.144 - pagecolor="#ffffff" 283.145 - bordercolor="#666666" 283.146 - borderopacity="1.0" 283.147 - gridtolerance="10000" 283.148 - guidetolerance="10" 283.149 - objecttolerance="10" 283.150 - inkscape:pageopacity="0.0" 283.151 - inkscape:pageshadow="2" 283.152 - inkscape:zoom="1.28" 283.153 - inkscape:cx="345.85973" 283.154 - inkscape:cy="690.49342" 283.155 - inkscape:document-units="px" 283.156 - inkscape:current-layer="layer1" 283.157 - showguides="true" 283.158 - inkscape:guide-bbox="true" 283.159 - inkscape:window-width="906" 283.160 - inkscape:window-height="620" 283.161 - inkscape:window-x="0" 283.162 - inkscape:window-y="25"> 283.163 - <sodipodi:guide 283.164 - orientation="vertical" 283.165 - position="-1.4285714" 283.166 - id="guide6022" /> 283.167 - </sodipodi:namedview> 283.168 - <metadata 283.169 - id="metadata5976"> 283.170 - <rdf:RDF> 283.171 - <cc:Work 283.172 - rdf:about=""> 283.173 - <dc:format>image/svg+xml</dc:format> 283.174 - <dc:type 283.175 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 283.176 - </cc:Work> 283.177 - </rdf:RDF> 283.178 - </metadata> 283.179 - <g 283.180 - inkscape:label="Layer 1" 283.181 - inkscape:groupmode="layer" 283.182 - id="layer1"> 283.183 - <rect 283.184 - y="246.06918" 283.185 - x="64.325172" 283.186 - height="204.26233" 283.187 - width="333.2135" 283.188 - id="rect6047" 283.189 - style="fill:url(#linearGradient6974);fill-opacity:1;stroke:#686868;stroke-width:0.91925466;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 283.190 - <g 283.191 - id="g6976" 283.192 - transform="translate(70,0)"> 283.193 - <rect 283.194 - y="327.9104" 283.195 - x="40.113693" 283.196 - height="44.537449" 283.197 - width="134.53746" 283.198 - id="rect6004" 283.199 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 283.200 - <text 283.201 - id="text6006" 283.202 - y="353.67111" 283.203 - x="62.654205" 283.204 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 283.205 - xml:space="preserve"><tspan 283.206 - style="font-family:Courier" 283.207 - y="353.67111" 283.208 - x="62.654205" 283.209 - id="tspan6008" 283.210 - sodipodi:role="line">7b064d8bac5e</tspan></text> 283.211 - </g> 283.212 - <path 283.213 - inkscape:connector-type="polyline" 283.214 - id="path6020" 283.215 - d="M 160.92915,311.15532 L 167.83571,327.53627" 283.216 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 283.217 - inkscape:connection-end="#g6976" 283.218 - inkscape:connection-start="#g1935" /> 283.219 - <rect 283.220 - style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 283.221 - id="rect6039" 283.222 - width="134.53746" 283.223 - height="44.537449" 283.224 - x="110.11359" 283.225 - y="389.57703" /> 283.226 - <text 283.227 - xml:space="preserve" 283.228 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 283.229 - x="134.79706" 283.230 - y="415.33771" 283.231 - id="text6041"><tspan 283.232 - sodipodi:role="line" 283.233 - id="tspan6043" 283.234 - x="134.79706" 283.235 - y="415.33771" 283.236 - style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 283.237 - <path 283.238 - inkscape:connection-end="#rect6039" 283.239 - inkscape:connector-type="polyline" 283.240 - id="path6045" 283.241 - d="M 177.38238,372.82195 L 177.38235,389.20303" 283.242 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 283.243 - <rect 283.244 - y="245.94225" 283.245 - x="447.28412" 283.246 - height="204.51619" 283.247 - width="174.36833" 283.248 - id="rect6140" 283.249 - style="fill:url(#linearGradient6996);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 283.250 - <g 283.251 - id="g6130" 283.252 - transform="translate(152.3254,24.38544)"> 283.253 - <rect 283.254 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 283.255 - id="rect6106" 283.256 - width="134.53746" 283.257 - height="44.537449" 283.258 - x="314.87415" 283.259 - y="257.95059" /> 283.260 - <text 283.261 - xml:space="preserve" 283.262 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 283.263 - x="339.55664" 283.264 - y="283.7113" 283.265 - id="text6108"><tspan 283.266 - sodipodi:role="line" 283.267 - id="tspan6110" 283.268 - x="339.55664" 283.269 - y="283.7113" 283.270 - style="font-family:Courier">ffb20e1701ea</tspan></text> 283.271 - </g> 283.272 - <g 283.273 - id="g6135" 283.274 - transform="translate(153.0396,49.83106)"> 283.275 - <rect 283.276 - inkscape:transform-center-y="102.85714" 283.277 - inkscape:transform-center-x="129.28571" 283.278 - style="fill:#d4d4d4;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 283.279 - id="rect6112" 283.280 - width="134.53746" 283.281 - height="44.537449" 283.282 - x="314.15985" 283.283 - y="326.52203" /> 283.284 - <text 283.285 - inkscape:transform-center-y="102.7311" 283.286 - inkscape:transform-center-x="128.69672" 283.287 - xml:space="preserve" 283.288 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 283.289 - x="338.84335" 283.290 - y="352.28271" 283.291 - id="text6114"><tspan 283.292 - sodipodi:role="line" 283.293 - id="tspan6116" 283.294 - x="338.84335" 283.295 - y="352.28271" 283.296 - style="fill:black;fill-opacity:1;font-family:Courier">e7639888bb2f</tspan></text> 283.297 - </g> 283.298 - <text 283.299 - xml:space="preserve" 283.300 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 283.301 - x="466.63208" 283.302 - y="270.479" 283.303 - id="text6118"><tspan 283.304 - sodipodi:role="line" 283.305 - id="tspan6120" 283.306 - x="466.63208" 283.307 - y="270.479">First parent (unchanged)</tspan></text> 283.308 - <text 283.309 - xml:space="preserve" 283.310 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 283.311 - x="466.07544" 283.312 - y="364.49615" 283.313 - id="text6122"><tspan 283.314 - sodipodi:role="line" 283.315 - id="tspan6124" 283.316 - x="466.07544" 283.317 - y="364.49615">Second parent</tspan></text> 283.318 - <text 283.319 - xml:space="preserve" 283.320 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 283.321 - x="446.61743" 283.322 - y="231.36218" 283.323 - id="text6195"><tspan 283.324 - sodipodi:role="line" 283.325 - id="tspan6197" 283.326 - x="446.61743" 283.327 - y="231.36218">Parents of working directory</tspan></text> 283.328 - <path 283.329 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 283.330 - d="M 466.82542,300.21999 L 377.00207,294.39744" 283.331 - id="path6266" 283.332 - inkscape:connector-type="polyline" 283.333 - inkscape:connection-start="#g6130" 283.334 - inkscape:connection-end="#rect1925" /> 283.335 - <path 283.336 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 283.337 - d="M 665.12232,418.17579 L 665.12232,418.17579" 283.338 - id="path6270" 283.339 - inkscape:connector-type="polyline" /> 283.340 - <g 283.341 - id="g2845"> 283.342 - <rect 283.343 - y="266.24374" 283.344 - x="242.09048" 283.345 - height="44.537449" 283.346 - width="134.53746" 283.347 - id="rect1925" 283.348 - style="fill:#9f9f9f;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 283.349 - <text 283.350 - id="text1927" 283.351 - y="292.00446" 283.352 - x="266.77298" 283.353 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 283.354 - xml:space="preserve"><tspan 283.355 - style="font-family:Courier" 283.356 - y="292.00446" 283.357 - x="266.77298" 283.358 - id="tspan1929" 283.359 - sodipodi:role="line">ffb20e1701ea</tspan></text> 283.360 - </g> 283.361 - <path 283.362 - inkscape:connector-type="polyline" 283.363 - id="path1933" 283.364 - d="M 260.89978,311.15532 L 225.84185,327.53627" 283.365 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 283.366 - inkscape:connection-end="#g6976" /> 283.367 - <text 283.368 - xml:space="preserve" 283.369 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 283.370 - x="109.45568" 283.371 - y="231.4554" 283.372 - id="text2837"><tspan 283.373 - sodipodi:role="line" 283.374 - id="tspan2839" 283.375 - x="109.45568" 283.376 - y="231.4554">Pre-existing head</tspan></text> 283.377 - <text 283.378 - xml:space="preserve" 283.379 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 283.380 - x="237.54184" 283.381 - y="231.4554" 283.382 - id="text2841"><tspan 283.383 - sodipodi:role="line" 283.384 - id="tspan2843" 283.385 - x="237.54184" 283.386 - y="231.4554">Newly created head (and tip)</tspan></text> 283.387 - <path 283.388 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 283.389 - d="M 148.05048,235.87482 L 149.94915,265.86962" 283.390 - id="path2850" 283.391 - inkscape:connector-type="polyline" 283.392 - inkscape:connection-end="#g1935" /> 283.393 - <path 283.394 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 283.395 - d="M 303.83495,238.08453 L 306.87874,265.86962" 283.396 - id="path2852" 283.397 - inkscape:connector-type="polyline" 283.398 - inkscape:connection-end="#g2845" /> 283.399 - <path 283.400 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 283.401 - d="M 466.82545,379.17944 L 219.0253,307.95488" 283.402 - id="path3016" 283.403 - inkscape:connector-type="polyline" 283.404 - inkscape:connection-start="#g6135" 283.405 - inkscape:connection-end="#g1935" /> 283.406 - <g 283.407 - id="g1935"> 283.408 - <rect 283.409 - y="266.24374" 283.410 - x="84.113708" 283.411 - height="44.537449" 283.412 - width="134.53746" 283.413 - id="rect5996" 283.414 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 283.415 - <text 283.416 - id="text5998" 283.417 - y="292.00446" 283.418 - x="108.7962" 283.419 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 283.420 - xml:space="preserve"><tspan 283.421 - style="font-family:Courier" 283.422 - y="292.00446" 283.423 - x="108.7962" 283.424 - id="tspan6000" 283.425 - sodipodi:role="line">e7639888bb2f</tspan></text> 283.426 - </g> 283.427 - </g> 283.428 -</svg>
284.1 --- a/en/images/wdir-pre-branch.svg Fri Mar 20 17:17:55 2009 +0800 284.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 284.3 @@ -1,364 +0,0 @@ 284.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 284.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 284.6 -<svg 284.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 284.8 - xmlns:cc="http://web.resource.org/cc/" 284.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 284.10 - xmlns:svg="http://www.w3.org/2000/svg" 284.11 - xmlns="http://www.w3.org/2000/svg" 284.12 - xmlns:xlink="http://www.w3.org/1999/xlink" 284.13 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 284.14 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 284.15 - width="744.09448819" 284.16 - height="1052.3622047" 284.17 - id="svg5971" 284.18 - sodipodi:version="0.32" 284.19 - inkscape:version="0.44.1" 284.20 - sodipodi:docbase="/home/bos/hg/hgbook/en" 284.21 - sodipodi:docname="wdir-branch.svg"> 284.22 - <defs 284.23 - id="defs5973"> 284.24 - <marker 284.25 - inkscape:stockid="Arrow1Mstart" 284.26 - orient="auto" 284.27 - refY="0.0" 284.28 - refX="0.0" 284.29 - id="Arrow1Mstart" 284.30 - style="overflow:visible"> 284.31 - <path 284.32 - id="path4855" 284.33 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 284.34 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 284.35 - transform="scale(0.4) translate(10,0)" /> 284.36 - </marker> 284.37 - <linearGradient 284.38 - id="linearGradient6049"> 284.39 - <stop 284.40 - style="stop-color:#686868;stop-opacity:1;" 284.41 - offset="0" 284.42 - id="stop6051" /> 284.43 - <stop 284.44 - style="stop-color:#f0f0f0;stop-opacity:1;" 284.45 - offset="1" 284.46 - id="stop6053" /> 284.47 - </linearGradient> 284.48 - <marker 284.49 - inkscape:stockid="Arrow1Mend" 284.50 - orient="auto" 284.51 - refY="0.0" 284.52 - refX="0.0" 284.53 - id="Arrow1Mend" 284.54 - style="overflow:visible;"> 284.55 - <path 284.56 - id="path4852" 284.57 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 284.58 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 284.59 - transform="scale(0.4) rotate(180) translate(10,0)" /> 284.60 - </marker> 284.61 - <linearGradient 284.62 - inkscape:collect="always" 284.63 - xlink:href="#linearGradient6049" 284.64 - id="linearGradient6083" 284.65 - gradientUnits="userSpaceOnUse" 284.66 - gradientTransform="translate(-240.0462,-8.633237e-6)" 284.67 - x1="333.91171" 284.68 - y1="488.79077" 284.69 - x2="508.94543" 284.70 - y2="263.79077" /> 284.71 - <linearGradient 284.72 - inkscape:collect="always" 284.73 - xlink:href="#linearGradient6049" 284.74 - id="linearGradient6142" 284.75 - gradientUnits="userSpaceOnUse" 284.76 - gradientTransform="translate(-42.00893,-30.49544)" 284.77 - x1="333.91171" 284.78 - y1="488.79077" 284.79 - x2="508.94543" 284.80 - y2="263.79077" /> 284.81 - <linearGradient 284.82 - inkscape:collect="always" 284.83 - xlink:href="#linearGradient6049" 284.84 - id="linearGradient6193" 284.85 - gradientUnits="userSpaceOnUse" 284.86 - gradientTransform="translate(-240.0462,-8.633237e-6)" 284.87 - x1="333.91171" 284.88 - y1="488.79077" 284.89 - x2="508.94543" 284.90 - y2="263.79077" /> 284.91 - <linearGradient 284.92 - inkscape:collect="always" 284.93 - xlink:href="#linearGradient6049" 284.94 - id="linearGradient6216" 284.95 - gradientUnits="userSpaceOnUse" 284.96 - gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 284.97 - x1="333.91171" 284.98 - y1="488.79077" 284.99 - x2="508.94543" 284.100 - y2="263.79077" /> 284.101 - <linearGradient 284.102 - inkscape:collect="always" 284.103 - xlink:href="#linearGradient6049" 284.104 - id="linearGradient6232" 284.105 - gradientUnits="userSpaceOnUse" 284.106 - gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 284.107 - x1="333.91171" 284.108 - y1="488.79077" 284.109 - x2="508.94543" 284.110 - y2="263.79077" /> 284.111 - <linearGradient 284.112 - inkscape:collect="always" 284.113 - xlink:href="#linearGradient6049" 284.114 - id="linearGradient6445" 284.115 - gradientUnits="userSpaceOnUse" 284.116 - gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 284.117 - x1="333.91171" 284.118 - y1="488.79077" 284.119 - x2="508.94543" 284.120 - y2="263.79077" /> 284.121 - <linearGradient 284.122 - inkscape:collect="always" 284.123 - xlink:href="#linearGradient6049" 284.124 - id="linearGradient6974" 284.125 - gradientUnits="userSpaceOnUse" 284.126 - gradientTransform="matrix(1.000474,0,0,0.790947,-314.246,50.85694)" 284.127 - x1="333.91171" 284.128 - y1="488.79077" 284.129 - x2="508.94543" 284.130 - y2="263.79077" /> 284.131 - <linearGradient 284.132 - inkscape:collect="always" 284.133 - xlink:href="#linearGradient6049" 284.134 - id="linearGradient6996" 284.135 - gradientUnits="userSpaceOnUse" 284.136 - gradientTransform="matrix(1.000473,0,0,0.790947,-85.16012,50.85693)" 284.137 - x1="333.91171" 284.138 - y1="488.79077" 284.139 - x2="508.94543" 284.140 - y2="263.79077" /> 284.141 - </defs> 284.142 - <sodipodi:namedview 284.143 - id="base" 284.144 - pagecolor="#ffffff" 284.145 - bordercolor="#666666" 284.146 - borderopacity="1.0" 284.147 - gridtolerance="10000" 284.148 - guidetolerance="10" 284.149 - objecttolerance="10" 284.150 - inkscape:pageopacity="0.0" 284.151 - inkscape:pageshadow="2" 284.152 - inkscape:zoom="0.90509668" 284.153 - inkscape:cx="390.0539" 284.154 - inkscape:cy="690.49342" 284.155 - inkscape:document-units="px" 284.156 - inkscape:current-layer="layer1" 284.157 - showguides="true" 284.158 - inkscape:guide-bbox="true" 284.159 - inkscape:window-width="906" 284.160 - inkscape:window-height="620" 284.161 - inkscape:window-x="0" 284.162 - inkscape:window-y="25"> 284.163 - <sodipodi:guide 284.164 - orientation="vertical" 284.165 - position="-1.4285714" 284.166 - id="guide6022" /> 284.167 - </sodipodi:namedview> 284.168 - <metadata 284.169 - id="metadata5976"> 284.170 - <rdf:RDF> 284.171 - <cc:Work 284.172 - rdf:about=""> 284.173 - <dc:format>image/svg+xml</dc:format> 284.174 - <dc:type 284.175 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 284.176 - </cc:Work> 284.177 - </rdf:RDF> 284.178 - </metadata> 284.179 - <g 284.180 - inkscape:label="Layer 1" 284.181 - inkscape:groupmode="layer" 284.182 - id="layer1"> 284.183 - <rect 284.184 - y="245.94225" 284.185 - x="20.198257" 284.186 - height="204.51619" 284.187 - width="174.36833" 284.188 - id="rect6047" 284.189 - style="fill:url(#linearGradient6974);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 284.190 - <rect 284.191 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 284.192 - id="rect5996" 284.193 - width="134.53746" 284.194 - height="44.537449" 284.195 - x="40.113693" 284.196 - y="266.24374" /> 284.197 - <text 284.198 - xml:space="preserve" 284.199 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.200 - x="64.796204" 284.201 - y="292.00446" 284.202 - id="text5998"><tspan 284.203 - sodipodi:role="line" 284.204 - id="tspan6000" 284.205 - x="64.796204" 284.206 - y="292.00446" 284.207 - style="font-family:Courier">e7639888bb2f</tspan></text> 284.208 - <g 284.209 - id="g6976"> 284.210 - <rect 284.211 - y="327.9104" 284.212 - x="40.113693" 284.213 - height="44.537449" 284.214 - width="134.53746" 284.215 - id="rect6004" 284.216 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 284.217 - <text 284.218 - id="text6006" 284.219 - y="353.67111" 284.220 - x="62.654205" 284.221 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.222 - xml:space="preserve"><tspan 284.223 - style="font-family:Courier" 284.224 - y="353.67111" 284.225 - x="62.654205" 284.226 - id="tspan6008" 284.227 - sodipodi:role="line">7b064d8bac5e</tspan></text> 284.228 - </g> 284.229 - <path 284.230 - inkscape:connection-end="#rect6004" 284.231 - inkscape:connector-type="polyline" 284.232 - id="path6020" 284.233 - d="M 107.38242,311.15529 L 107.38242,327.53626" 284.234 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 284.235 - <rect 284.236 - style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.237 - id="rect6039" 284.238 - width="134.53746" 284.239 - height="44.537449" 284.240 - x="40.113571" 284.241 - y="389.57703" /> 284.242 - <text 284.243 - xml:space="preserve" 284.244 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.245 - x="64.797073" 284.246 - y="415.33771" 284.247 - id="text6041"><tspan 284.248 - sodipodi:role="line" 284.249 - id="tspan6043" 284.250 - x="64.797073" 284.251 - y="415.33771" 284.252 - style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 284.253 - <path 284.254 - inkscape:connection-end="#rect6039" 284.255 - inkscape:connector-type="polyline" 284.256 - id="path6045" 284.257 - d="M 107.38238,372.82195 L 107.38235,389.20301" 284.258 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 284.259 - <text 284.260 - xml:space="preserve" 284.261 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.262 - x="19.660461" 284.263 - y="231.36218" 284.264 - id="text6102"><tspan 284.265 - sodipodi:role="line" 284.266 - id="tspan6104" 284.267 - x="19.660461" 284.268 - y="231.36218">History in repository</tspan></text> 284.269 - <rect 284.270 - y="245.94225" 284.271 - x="249.28412" 284.272 - height="204.51619" 284.273 - width="174.36833" 284.274 - id="rect6140" 284.275 - style="fill:url(#linearGradient6996);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 284.276 - <g 284.277 - id="g6130" 284.278 - transform="translate(-45.67459,24.38544)"> 284.279 - <rect 284.280 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 284.281 - id="rect6106" 284.282 - width="134.53746" 284.283 - height="44.537449" 284.284 - x="314.87415" 284.285 - y="257.95059" /> 284.286 - <text 284.287 - xml:space="preserve" 284.288 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.289 - x="339.55664" 284.290 - y="283.7113" 284.291 - id="text6108"><tspan 284.292 - sodipodi:role="line" 284.293 - id="tspan6110" 284.294 - x="339.55664" 284.295 - y="283.7113" 284.296 - style="font-family:Courier">7b064d8bac5e</tspan></text> 284.297 - </g> 284.298 - <g 284.299 - id="g6135" 284.300 - transform="translate(-44.96042,49.83106)"> 284.301 - <rect 284.302 - inkscape:transform-center-y="102.85714" 284.303 - inkscape:transform-center-x="129.28571" 284.304 - style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.305 - id="rect6112" 284.306 - width="134.53746" 284.307 - height="44.537449" 284.308 - x="314.15985" 284.309 - y="326.52203" /> 284.310 - <text 284.311 - inkscape:transform-center-y="102.7311" 284.312 - inkscape:transform-center-x="128.69672" 284.313 - xml:space="preserve" 284.314 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.315 - x="338.84335" 284.316 - y="352.28271" 284.317 - id="text6114"><tspan 284.318 - sodipodi:role="line" 284.319 - id="tspan6116" 284.320 - x="338.84335" 284.321 - y="352.28271" 284.322 - style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 284.323 - </g> 284.324 - <text 284.325 - xml:space="preserve" 284.326 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.327 - x="268.63208" 284.328 - y="270.479" 284.329 - id="text6118"><tspan 284.330 - sodipodi:role="line" 284.331 - id="tspan6120" 284.332 - x="268.63208" 284.333 - y="270.479">First parent</tspan></text> 284.334 - <text 284.335 - xml:space="preserve" 284.336 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.337 - x="268.07544" 284.338 - y="364.49615" 284.339 - id="text6122"><tspan 284.340 - sodipodi:role="line" 284.341 - id="tspan6124" 284.342 - x="268.07544" 284.343 - y="364.49615">Second parent</tspan></text> 284.344 - <text 284.345 - xml:space="preserve" 284.346 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.347 - x="248.61746" 284.348 - y="231.36218" 284.349 - id="text6195"><tspan 284.350 - sodipodi:role="line" 284.351 - id="tspan6197" 284.352 - x="248.61746" 284.353 - y="231.36218">Parents of working directory</tspan></text> 284.354 - <path 284.355 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 284.356 - d="M 268.82543,318.06163 L 175.02528,336.72225" 284.357 - id="path6266" 284.358 - inkscape:connector-type="polyline" 284.359 - inkscape:connection-end="#g6976" 284.360 - inkscape:connection-start="#g6130" /> 284.361 - <path 284.362 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 284.363 - d="M 665.12232,418.17579 L 665.12232,418.17579" 284.364 - id="path6270" 284.365 - inkscape:connector-type="polyline" /> 284.366 - </g> 284.367 -</svg>
285.1 --- a/en/images/wdir.svg Fri Mar 20 17:17:55 2009 +0800 285.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 285.3 @@ -1,348 +0,0 @@ 285.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 285.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 285.6 -<svg 285.7 - xmlns:dc="http://purl.org/dc/elements/1.1/" 285.8 - xmlns:cc="http://web.resource.org/cc/" 285.9 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 285.10 - xmlns:svg="http://www.w3.org/2000/svg" 285.11 - xmlns="http://www.w3.org/2000/svg" 285.12 - xmlns:xlink="http://www.w3.org/1999/xlink" 285.13 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 285.14 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 285.15 - width="744.09448819" 285.16 - height="1052.3622047" 285.17 - id="svg5971" 285.18 - sodipodi:version="0.32" 285.19 - inkscape:version="0.44.1" 285.20 - sodipodi:docbase="/home/bos/hg/hgbook/en" 285.21 - sodipodi:docname="wdir.svg"> 285.22 - <defs 285.23 - id="defs5973"> 285.24 - <marker 285.25 - inkscape:stockid="Arrow1Mstart" 285.26 - orient="auto" 285.27 - refY="0.0" 285.28 - refX="0.0" 285.29 - id="Arrow1Mstart" 285.30 - style="overflow:visible"> 285.31 - <path 285.32 - id="path4855" 285.33 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 285.34 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 285.35 - transform="scale(0.4) translate(10,0)" /> 285.36 - </marker> 285.37 - <linearGradient 285.38 - id="linearGradient6049"> 285.39 - <stop 285.40 - style="stop-color:#686868;stop-opacity:1;" 285.41 - offset="0" 285.42 - id="stop6051" /> 285.43 - <stop 285.44 - style="stop-color:#f0f0f0;stop-opacity:1;" 285.45 - offset="1" 285.46 - id="stop6053" /> 285.47 - </linearGradient> 285.48 - <marker 285.49 - inkscape:stockid="Arrow1Mend" 285.50 - orient="auto" 285.51 - refY="0.0" 285.52 - refX="0.0" 285.53 - id="Arrow1Mend" 285.54 - style="overflow:visible;"> 285.55 - <path 285.56 - id="path4852" 285.57 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 285.58 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 285.59 - transform="scale(0.4) rotate(180) translate(10,0)" /> 285.60 - </marker> 285.61 - <linearGradient 285.62 - inkscape:collect="always" 285.63 - xlink:href="#linearGradient6049" 285.64 - id="linearGradient6083" 285.65 - gradientUnits="userSpaceOnUse" 285.66 - gradientTransform="translate(-240.0462,-8.633237e-6)" 285.67 - x1="333.91171" 285.68 - y1="488.79077" 285.69 - x2="508.94543" 285.70 - y2="263.79077" /> 285.71 - <linearGradient 285.72 - inkscape:collect="always" 285.73 - xlink:href="#linearGradient6049" 285.74 - id="linearGradient6142" 285.75 - gradientUnits="userSpaceOnUse" 285.76 - gradientTransform="translate(-42.00893,-30.49544)" 285.77 - x1="333.91171" 285.78 - y1="488.79077" 285.79 - x2="508.94543" 285.80 - y2="263.79077" /> 285.81 - <linearGradient 285.82 - inkscape:collect="always" 285.83 - xlink:href="#linearGradient6049" 285.84 - id="linearGradient6193" 285.85 - gradientUnits="userSpaceOnUse" 285.86 - gradientTransform="translate(-240.0462,-8.633237e-6)" 285.87 - x1="333.91171" 285.88 - y1="488.79077" 285.89 - x2="508.94543" 285.90 - y2="263.79077" /> 285.91 - <linearGradient 285.92 - inkscape:collect="always" 285.93 - xlink:href="#linearGradient6049" 285.94 - id="linearGradient6216" 285.95 - gradientUnits="userSpaceOnUse" 285.96 - gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 285.97 - x1="333.91171" 285.98 - y1="488.79077" 285.99 - x2="508.94543" 285.100 - y2="263.79077" /> 285.101 - <linearGradient 285.102 - inkscape:collect="always" 285.103 - xlink:href="#linearGradient6049" 285.104 - id="linearGradient6232" 285.105 - gradientUnits="userSpaceOnUse" 285.106 - gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 285.107 - x1="333.91171" 285.108 - y1="488.79077" 285.109 - x2="508.94543" 285.110 - y2="263.79077" /> 285.111 - <linearGradient 285.112 - inkscape:collect="always" 285.113 - xlink:href="#linearGradient6049" 285.114 - id="linearGradient6445" 285.115 - gradientUnits="userSpaceOnUse" 285.116 - gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 285.117 - x1="333.91171" 285.118 - y1="488.79077" 285.119 - x2="508.94543" 285.120 - y2="263.79077" /> 285.121 - </defs> 285.122 - <sodipodi:namedview 285.123 - id="base" 285.124 - pagecolor="#ffffff" 285.125 - bordercolor="#666666" 285.126 - borderopacity="1.0" 285.127 - gridtolerance="10000" 285.128 - guidetolerance="10" 285.129 - objecttolerance="10" 285.130 - inkscape:pageopacity="0.0" 285.131 - inkscape:pageshadow="2" 285.132 - inkscape:zoom="0.90509668" 285.133 - inkscape:cx="390.0539" 285.134 - inkscape:cy="690.49342" 285.135 - inkscape:document-units="px" 285.136 - inkscape:current-layer="layer1" 285.137 - showguides="true" 285.138 - inkscape:guide-bbox="true" 285.139 - inkscape:window-width="906" 285.140 - inkscape:window-height="620" 285.141 - inkscape:window-x="0" 285.142 - inkscape:window-y="25"> 285.143 - <sodipodi:guide 285.144 - orientation="vertical" 285.145 - position="-1.4285714" 285.146 - id="guide6022" /> 285.147 - </sodipodi:namedview> 285.148 - <metadata 285.149 - id="metadata5976"> 285.150 - <rdf:RDF> 285.151 - <cc:Work 285.152 - rdf:about=""> 285.153 - <dc:format>image/svg+xml</dc:format> 285.154 - <dc:type 285.155 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 285.156 - </cc:Work> 285.157 - </rdf:RDF> 285.158 - </metadata> 285.159 - <g 285.160 - inkscape:label="Layer 1" 285.161 - inkscape:groupmode="layer" 285.162 - id="layer1"> 285.163 - <g 285.164 - id="g6431" 285.165 - transform="translate(0,-0.137863)"> 285.166 - <rect 285.167 - style="fill:url(#linearGradient6445);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 285.168 - id="rect6047" 285.169 - width="174.36833" 285.170 - height="204.51619" 285.171 - x="94.198257" 285.172 - y="246.08011" /> 285.173 - <rect 285.174 - y="266.38159" 285.175 - x="114.11369" 285.176 - height="44.537449" 285.177 - width="134.53746" 285.178 - id="rect5996" 285.179 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 285.180 - <text 285.181 - id="text5998" 285.182 - y="292.1423" 285.183 - x="138.7962" 285.184 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 285.185 - xml:space="preserve"><tspan 285.186 - style="font-family:Courier" 285.187 - y="292.1423" 285.188 - x="138.7962" 285.189 - id="tspan6000" 285.190 - sodipodi:role="line">e7639888bb2f</tspan></text> 285.191 - <rect 285.192 - y="328.04825" 285.193 - x="114.11369" 285.194 - height="44.537449" 285.195 - width="134.53746" 285.196 - id="rect6004" 285.197 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 285.198 - <text 285.199 - id="text6006" 285.200 - y="353.80896" 285.201 - x="136.65421" 285.202 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 285.203 - xml:space="preserve"><tspan 285.204 - style="font-family:Courier" 285.205 - y="353.80896" 285.206 - x="136.65421" 285.207 - id="tspan6008" 285.208 - sodipodi:role="line">7b064d8bac5e</tspan></text> 285.209 - <path 285.210 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 285.211 - d="M 181.38242,311.29315 L 181.38242,327.67412" 285.212 - id="path6020" 285.213 - inkscape:connector-type="polyline" 285.214 - inkscape:connection-end="#rect6004" /> 285.215 - <rect 285.216 - y="389.71487" 285.217 - x="114.11357" 285.218 - height="44.537449" 285.219 - width="134.53746" 285.220 - id="rect6039" 285.221 - style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 285.222 - <text 285.223 - id="text6041" 285.224 - y="415.47556" 285.225 - x="138.79707" 285.226 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 285.227 - xml:space="preserve"><tspan 285.228 - style="fill:#979797;fill-opacity:1;font-family:Courier" 285.229 - y="415.47556" 285.230 - x="138.79707" 285.231 - id="tspan6043" 285.232 - sodipodi:role="line">000000000000</tspan></text> 285.233 - <path 285.234 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 285.235 - d="M 181.38238,372.95981 L 181.38235,389.34087" 285.236 - id="path6045" 285.237 - inkscape:connector-type="polyline" 285.238 - inkscape:connection-end="#rect6039" /> 285.239 - </g> 285.240 - <text 285.241 - xml:space="preserve" 285.242 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 285.243 - x="93.660484" 285.244 - y="231.36218" 285.245 - id="text6102"><tspan 285.246 - sodipodi:role="line" 285.247 - id="tspan6104" 285.248 - x="93.660484" 285.249 - y="231.36218">History in repository</tspan></text> 285.250 - <g 285.251 - id="g6416"> 285.252 - <rect 285.253 - style="fill:url(#linearGradient6232);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 285.254 - id="rect6140" 285.255 - width="174.36833" 285.256 - height="204.51619" 285.257 - x="323.28412" 285.258 - y="245.94225" /> 285.259 - <g 285.260 - transform="translate(28.32541,24.38544)" 285.261 - id="g6130"> 285.262 - <rect 285.263 - y="257.95059" 285.264 - x="314.87415" 285.265 - height="44.537449" 285.266 - width="134.53746" 285.267 - id="rect6106" 285.268 - style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 285.269 - <text 285.270 - id="text6108" 285.271 - y="283.7113" 285.272 - x="339.55664" 285.273 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 285.274 - xml:space="preserve"><tspan 285.275 - style="font-family:Courier" 285.276 - y="283.7113" 285.277 - x="339.55664" 285.278 - id="tspan6110" 285.279 - sodipodi:role="line">e7639888bb2f</tspan></text> 285.280 - </g> 285.281 - <g 285.282 - transform="translate(29.03958,49.83106)" 285.283 - id="g6135"> 285.284 - <rect 285.285 - y="326.52203" 285.286 - x="314.15985" 285.287 - height="44.537449" 285.288 - width="134.53746" 285.289 - id="rect6112" 285.290 - style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 285.291 - inkscape:transform-center-x="129.28571" 285.292 - inkscape:transform-center-y="102.85714" /> 285.293 - <text 285.294 - id="text6114" 285.295 - y="352.28271" 285.296 - x="338.84335" 285.297 - style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 285.298 - xml:space="preserve" 285.299 - inkscape:transform-center-x="128.69672" 285.300 - inkscape:transform-center-y="102.7311"><tspan 285.301 - style="fill:#979797;fill-opacity:1;font-family:Courier" 285.302 - y="352.28271" 285.303 - x="338.84335" 285.304 - id="tspan6116" 285.305 - sodipodi:role="line">000000000000</tspan></text> 285.306 - </g> 285.307 - <text 285.308 - id="text6118" 285.309 - y="270.479" 285.310 - x="342.63208" 285.311 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 285.312 - xml:space="preserve"><tspan 285.313 - y="270.479" 285.314 - x="342.63208" 285.315 - id="tspan6120" 285.316 - sodipodi:role="line">First parent</tspan></text> 285.317 - <text 285.318 - id="text6122" 285.319 - y="364.49615" 285.320 - x="342.07544" 285.321 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 285.322 - xml:space="preserve"><tspan 285.323 - y="364.49615" 285.324 - x="342.07544" 285.325 - id="tspan6124" 285.326 - sodipodi:role="line">Second parent</tspan></text> 285.327 - </g> 285.328 - <text 285.329 - xml:space="preserve" 285.330 - style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 285.331 - x="322.61746" 285.332 - y="231.36218" 285.333 - id="text6195"><tspan 285.334 - sodipodi:role="line" 285.335 - id="tspan6197" 285.336 - x="322.61746" 285.337 - y="231.36218">Parents of working directory</tspan></text> 285.338 - <path 285.339 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 285.340 - d="M 342.82543,299.89384 L 249.02528,293.36123" 285.341 - id="path6266" 285.342 - inkscape:connector-type="polyline" 285.343 - inkscape:connection-start="#g6130" 285.344 - inkscape:connection-end="#rect5996" /> 285.345 - <path 285.346 - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 285.347 - d="M 665.12232,418.17579 L 665.12232,418.17579" 285.348 - id="path6270" 285.349 - inkscape:connector-type="polyline" /> 285.350 - </g> 285.351 -</svg>
286.1 --- a/stylesheets/base-html-stylesheet.xsl Fri Mar 20 17:17:55 2009 +0800 286.2 +++ b/stylesheets/base-html-stylesheet.xsl Mon Mar 30 16:23:33 2009 +0800 286.3 @@ -106,7 +106,7 @@ 286.4 </xsl:template> 286.5 286.6 <xsl:template name="user.footer.content"> 286.7 - <div class="rwhfooter"> 286.8 + <div class="hgfooter"> 286.9 <p><img src="/support/figs/rss.png"/> Want to stay up to date? Subscribe to the comment feed for <a id="chapterfeed" class="feed" href="/feeds/comments/">this chapter</a>, or the <a class="feed" href="/feeds/comments/">entire book</a>.</p> 286.10 <p>Copyright 2006, 2007, 2008, 2009 Bryan O'Sullivan. 286.11 Icons by <a href="mailto:mattahan@gmail.com">Paul Davey</a> aka <a href="http://mattahan.deviantart.com/">Mattahan</a>.</p>
287.1 --- a/web/README Fri Mar 20 17:17:55 2009 +0800 287.2 +++ b/web/README Mon Mar 30 16:23:33 2009 +0800 287.3 @@ -1,5 +1,5 @@ 287.4 This directory contains web-related files. Surprise! 287.5 287.6 javascript - files used by the comment system, based on jQuery 287.7 -rwh - Django app that acts as the comment back end 287.8 +hgbook - Django app that acts as the comment back end 287.9 styles.css - style file
288.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 288.2 +++ b/web/genindex.py Mon Mar 30 16:23:33 2009 +0800 288.3 @@ -0,0 +1,60 @@ 288.4 +#!/usr/bin/env python 288.5 + 288.6 +import glob, os, re 288.7 + 288.8 +chapter_re = re.compile(r'<(chapter|appendix|preface)\s+id="([^"]+)">') 288.9 +filename_re = re.compile(r'<\?dbhtml filename="([^"]+)"\?>') 288.10 +title_re = re.compile(r'<title>(.*)</title>') 288.11 + 288.12 +chapters = glob.glob('../en/ch*.xml') + glob.glob('../en/app*.xml') 288.13 + 288.14 +fp = open('index-read.html.in', 'w') 288.15 + 288.16 +print >> fp, '''<!-- -*- html -*- --> 288.17 +{% extends "boilerplate.html" %} 288.18 +{% block bodycontent %} 288.19 +<div class="navheader"><h1 class="booktitle">Mercurial: The Definitive Guide<div class="authors">by Bryan O'Sullivan</div></h1></div> 288.20 +<div class="book"><ul class="booktoc">''' 288.21 + 288.22 +ch = 0 288.23 +app = 0 288.24 +ab = 0 288.25 +for c in chapters: 288.26 + filename = None 288.27 + title = None 288.28 + chapid = None 288.29 + chaptype = None 288.30 + for line in open(c): 288.31 + m = chapter_re.search(line) 288.32 + if m: 288.33 + chaptype, chapid = m.groups() 288.34 + m = filename_re.search(line) 288.35 + if m: 288.36 + filename = m.group(1) 288.37 + m = title_re.search(line) 288.38 + if m: 288.39 + title = m.group(1) 288.40 + if filename and title and chapid: 288.41 + if chaptype == 'appendix': 288.42 + num = chr(ord('A') + app) 288.43 + app += 1 288.44 + else: 288.45 + num = ch 288.46 + ch += 1 288.47 + ab += 1 288.48 + date = os.popen('hg log -l1 --template "{date|isodate}" ' + c).read().split(None, 1)[0] 288.49 + args = { 288.50 + 'ab': "ab"[ab % 2], 288.51 + 'date': date, 288.52 + 'chapid': chapid, 288.53 + 'num': num, 288.54 + 'filename': filename, 288.55 + 'title': title, 288.56 + } 288.57 + print >> fp, '<li class="zebra_%(ab)s"><span class="chapinfo">%(date)s<a href="/feeds/comments/%(chapid)s/"><img src="/support/figs/rss.png"/></a></span>%(num)s. <a href="%(filename)s">%(title)s</a></li>' % args 288.58 + break 288.59 + 288.60 +print >> fp, '''</ul></div> 288.61 +{% endblock %}''' 288.62 + 288.63 +fp.close()
289.1 --- a/web/hgbook.conf Fri Mar 20 17:17:55 2009 +0800 289.2 +++ b/web/hgbook.conf Mon Mar 30 16:23:33 2009 +0800 289.3 @@ -1,7 +1,7 @@ 289.4 # -*- apache -*- 289.5 289.6 <VirtualHost *:80> 289.7 - ServerName www.hgbook.org 289.8 + ServerName hgbook.red-bean.com 289.9 ServerAdmin bos@serpentine.com 289.10 ErrorLog logs/hgbook-error_log 289.11 # Debian: 289.12 @@ -12,10 +12,33 @@ 289.13 DirectoryIndex index.html.var index.html 289.14 DocumentRoot "/home/bos/hg/hgbook/en/html" 289.15 289.16 + Redirect permanent /hgbook.html /index.html 289.17 + Redirect permanent /hgbookch1.html /read/preface.html 289.18 + Redirect permanent /hgbookch2.html /read/a-tour-of-mercurial-the-basics.html 289.19 + Redirect permanent /hgbookch3.html /read/a-tour-of-mercurial-merging-work.html 289.20 + Redirect permanent /hgbookch4.html /read/behind-the-scenes.html 289.21 + Redirect permanent /hgbookch5.html /read/mercurial-in-daily-use.html 289.22 + Redirect permanent /hgbookch6.html /read/file-names-and-pattern-matching.html 289.23 + Redirect permanent /hgbookch6.html /read/managing-releases-and-branchy-development.html 289.24 + Redirect permanent /hgbookch7.html /read/finding-and-fixing-mistakes.html 289.25 + Redirect permanent /hgbookch8.html /read/handling-repository-events-with-hooks.html 289.26 + Redirect permanent /hgbookch9.html /read/customizing-the-output-of-mercurial.html 289.27 + Redirect permanent /hgbookch10.html /read/managing-change-with-mercurial-queues.html 289.28 + Redirect permanent /hgbookch11.html /read/advanced-uses-of-mercurial-queues.html 289.29 + Redirect permanent /hgbookch12.html /read/adding-functionality-with-extensions.html 289.30 + Redirect permanent /hgbookap1.html /read/command-reference.html 289.31 + Redirect permanent /hgbookap2.html /read/mercurial-queues-reference.html 289.32 + Redirect permanent /hgbookap3.html /read/installing-mercurial-from-source.html 289.33 + Redirect permanent /hgbookap4.html /read/open-publication-license.html 289.34 + Redirect permanent /hgbookli1.html /read/index.html 289.35 + Redirect permanent /hgbookli2.html /read/index.html 289.36 + Redirect permanent /hgbookli3.html /read/index.html 289.37 + Redirect permanent /hgbookli4.html /read/index.html 289.38 + 289.39 # Actively redirect requests via a ServerAlias to the canonical hostname. 289.40 RewriteEngine On 289.41 - RewriteCond %{HTTP_HOST} !=www.hgbook.org 289.42 - RewriteRule ^(.*) http://www.hgbook.org$1 [R] 289.43 + RewriteCond %{HTTP_HOST} !=hgbook.red-bean.com 289.44 + RewriteRule ^(.*) http://hgbook.red-bean.com$1 [R] 289.45 289.46 <Location "/"> 289.47 SetHandler python-program
290.1 --- a/web/hgbook/reviewers.py Fri Mar 20 17:17:55 2009 +0800 290.2 +++ b/web/hgbook/reviewers.py Mon Mar 30 16:23:33 2009 +0800 290.3 @@ -52,7 +52,7 @@ 290.4 total = 0 290.5 for r in c.fetchall(): 290.6 r = r[0].decode('utf-8') 290.7 - if r in ("Bryan O'Sullivan", 'John Goerzen', 'Don Stewart'): 290.8 + if r in ("Bryan O'Sullivan",): 290.9 continue 290.10 total += 1 290.11 m = mappings.get(r.lower())
291.1 --- a/web/hgbook/templates/boilerplate.html Fri Mar 20 17:17:55 2009 +0800 291.2 +++ b/web/hgbook/templates/boilerplate.html Mon Mar 30 16:23:33 2009 +0800 291.3 @@ -1,7 +1,7 @@ 291.4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 291.5 <html> 291.6 <head> 291.7 - <title>{% block pagetitle %}Real World Haskell{% endblock %}</title> 291.8 + <title>{% block pagetitle %}Mercurial: The Definitive Guide{% endblock %}</title> 291.9 <link rel="stylesheet" href="/support/styles.css" type="text/css"/> 291.10 <link rel="alternate" type="application/atom+xml" title="Comments" 291.11 href="/feeds/comments/"/> 291.12 @@ -18,10 +18,8 @@ 291.13 up to date? Subscribe to comment feeds for any chapter, or 291.14 the <a class="feed" 291.15 href="/feeds/comments/">entire book</a>.</p> <p>Copyright 291.16 - 2007, 2008 Bryan O'Sullivan, Don Stewart, and John Goerzen. This 291.17 - work is licensed under a <a rel="license" href= 291.18 - "http://creativecommons.org/licenses/by-nc/3.0/">Creative 291.19 - Commons Attribution-Noncommercial 3.0 License</a>. Icons by 291.20 + 2006, 2007, 2008, 2009 Bryan O'Sullivan. 291.21 + Icons by 291.22 <a href="mailto:mattahan@gmail.com">Paul Davey</a> aka <a 291.23 href="http://mattahan.deviantart.com/">Mattahan</a>.</p> 291.24 </div>
292.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 292.2 +++ b/web/index.html.in Mon Mar 30 16:23:33 2009 +0800 292.3 @@ -0,0 +1,65 @@ 292.4 +<!-- -*- html -*- --> 292.5 +{% extends "boilerplate.html" %} 292.6 + 292.7 +{% block bodycontent %} 292.8 +<div class="navheader"><h1 class="booktitle">Mercurial: The Definitive Guide<div class="authors">by Bryan O'Sullivan</div></h1></div> 292.9 + 292.10 +<div class="book"> 292.11 + <h2>Welcome to Mercurial: The Definitive Guide</h2> 292.12 + 292.13 + <p>This is the online home of the book “Mercurial: The 292.14 + Definitive Guide”. 292.15 + It will be published in 2009 by O'Reilly Media.</p> 292.16 + 292.17 + <p>I make the content <a href="/read/">freely available 292.18 + online</a>. If you like it, please make a note to buy a copy!</p> 292.19 + 292.20 + <p>For news updates, please 292.21 + visit <a href="http://www.serpentine.com/blog/">my blog</a>.</p> 292.22 + 292.23 + <h2>You can contribute!</h2> 292.24 + 292.25 + <p>I publish the <a href="http://hgbook.red-bean.com/">source 292.26 + code</a> for this book as a Mercurial repository. Please feel 292.27 + welcome to clone it, make modifications to your copy, and send me 292.28 + changes.</p> 292.29 + 292.30 + <p>The online version of the book includes a comment system 292.31 + that you can use to send feedback involving errors, omissions, and 292.32 + suggestions.</p> 292.33 + 292.34 + <p>(If you would like to adapt the comment system for a 292.35 + publishing project of your own, the source for the web application 292.36 + is included with the book source at the link above.)</p> 292.37 + 292.38 + <h2>What is Mercurial?</h2> 292.39 + 292.40 + <p><a href="http://www.selenic.com/mercurial">Mercurial</a> is a 292.41 + fast, lightweight source control management system 292.42 + designed for easy and efficient handling of very large distributed 292.43 + projects.</p> 292.44 + 292.45 + <h2>How I help Mercurial and free software, and you can too</h2> 292.46 + 292.47 + <p>Mercurial is a member of the <a href="http://conservancy.softwarefreedom.org/">Software Freedom Conservancy</a>, a 292.48 + wonderful non-profit organisation that offers its member projects 292.49 + legal and administrative advice.</p> 292.50 + 292.51 + <p>I am donating my royalties from the sales of this book (once it is 292.52 + published) to the Software Freedom Conservancy, and I encourage 292.53 + you to support their work, too.</p> 292.54 + 292.55 + <p>The SFC can 292.56 + accept <a href="http://conservancy.softwarefreedom.org/?donate">accept 292.57 + donations</a> (tax-free under IRS 501(c)(3), within the United 292.58 + States) on behalf of its member projects. If you would like to 292.59 + support Mercurial directly, please consider making a donation to 292.60 + the SFC on its behalf.</p> 292.61 + 292.62 + <p>If you would like to help free software developers to provide 292.63 + their important public services without being impeded by legal 292.64 + issues, please consider donating to the SFC's sister organisation, 292.65 + the <a href="http://www.softwarefreedom.org/">Software Freedom Law 292.66 + Center</a>.</p> 292.67 +</div> 292.68 +{% endblock %}
293.1 --- a/web/styles.css Fri Mar 20 17:17:55 2009 +0800 293.2 +++ b/web/styles.css Mon Mar 30 16:23:33 2009 +0800 293.3 @@ -269,7 +269,7 @@ 293.4 color: darkred; 293.5 } 293.6 293.7 -.rwhfooter { 293.8 +.hgfooter { 293.9 width: 60em; 293.10 margin-left: auto; 293.11 margin-right: auto; 293.12 @@ -279,14 +279,14 @@ 293.13 color: #727272; 293.14 } 293.15 293.16 -.rwhfooter a { 293.17 +.hgfooter a { 293.18 color: #5555ff; 293.19 } 293.20 293.21 -.rwhfooter a:visited { 293.22 +.hgfooter a:visited { 293.23 opacity: 0.7; 293.24 } 293.25 293.26 -.rwhfooter img { 293.27 +.hgfooter img { 293.28 vertical-align: -45%; 293.29 }
294.1 --- a/web/texpand.py Fri Mar 20 17:17:55 2009 +0800 294.2 +++ b/web/texpand.py Mon Mar 30 16:23:33 2009 +0800 294.3 @@ -7,7 +7,7 @@ 294.4 from django.template import Context, TemplateDoesNotExist 294.5 from django.template.loader import get_template, get_template_from_string 294.6 from django.core.management import setup_environ 294.7 -import rwh.settings as settings 294.8 +import hgbook.settings as settings 294.9 import sys 294.10 294.11 setup_environ(settings)