Clone wiki

hgbook-it / BookModifications

This page contains the changes made to the original version of the book, grouped by chapter. Modifications include translation notes, code adjustments, and so on. I have also deleted parts of the book that didn't make sense or were clearly introduced by mistake; this is typically an operation that a translator is not allowed to do, so in the following list of changes they will be indicated by an exclamation mark enclosed in parentheses.


Added the link to the O'Reilly Catalog site for the English version of the book.

Chapter 1

(!) Removed the paragraph containing only the sentence Mercurial can import revision history from a CVS repository. I consider it to be a clear unwanted duplication of the first sentence in the previous paragraph (that says Mercurial can import CVS revision history).

Chapter 2

Never used the hex abbreviation to indicate the hexadecimal string used as changeset identifier.

Chapter 4

Emphasized the word branches because this is the first time that the concept appears in the book, even if it's not in the chapter devoted to the concept.

Changed names in a renaming example from a and b to foo and bar because keeping the original ones alongside the translated Mercurial messages was a bit confusing.

Chapter 5

Used export HGMERGE=false (instead of export HGMERGE=merge) in an example to have it running correctly. (Note that this change has been already applied in the DocBook source for the English book, but not on the web page for Chapter 5 online.)

Chapter 6

Added a footnote about nested repositories support in Mercurial 1.3 and above. Seemed relevant since the text talks about hgwebdir.cgi not recursively searching new repositories to publish in repositories already found.

Chapter 9

Modified item 7 in section Why hg backout works as it does to note that the results of a merge triggered by the --merge option of hg backout are not committed automatically to the repository.

Slightly modified the translated version of the mytest() shell function to make it produce a suitable output message.

Modified the end of the manual hg backout example because text and interaction were seriously broken. After doing the backout of revision 1, the author explains at length why he expects myfile to contain only the first change, and the next interaction after that paragraph seems to confirm his hypothesis. However, running the example command-by-command shows that, after calling hg backout 1, myfile still contains all three changes. I suppose that this happens because the backout changeset introduces a new head, so the contents of the working directory are not directly updated to that newly created changeset; therefore, myfile contents lie unmodified. The paragraph following the execution of cat myfile has been changed, too, because now you have to get just the first and third changes into the file, instead of all the changes that it currently contains. And the final interaction is now the correct one, successfully doing the merge between the two heads (the third change and the backout change) and showing the right contents of myfile.

Chapter 10

Substituted every occurrence of ~/.hgrc in section Hook and security with hgrc because this is what is really meant. (Propagated this to other occurences throughout the text of the chapter.)

Completely qualified class names for parameters of internal hooks implemented in Python.

Due to the translation of messages, changed the minimum commit message length from 10 to 15 bytes in the section Writing meaningful commit messages.

Corrected regular expression at line 29 of the Python whitespace hook to r'\+.*[ \t]$' so that the example really works. (Also, in the interaction, the trailing whitespace should be detected on line 1 of the file, not 2.) Similarly, corrected the subsequent Perl regular expression to 's,[ \t]+$,,'. (OK, so, what is the problem? The Python script reports a problem if a line in a file ends with trailing whitespace... including the newline in its own trailing whitespace definition! That's just wrong, of course, since the author talks about "clean code", so you have to change the regular expression used in the Python script to account for space and tabs only, as the previous example did with egrep. But why also change the Perl code? Because the Perl code behaves differently than the sed call which the author says it is equivalent to. The Perl code strips newlines, the sed call does not. Of course, you do not want to strip newlines from a source code file, so I corrected the Perl regular expression to strip just spaces and tabs, exactly like egrep and Python now do.)

Added a footnote explaining briefly what a bundle is, and suggesting to use hg help bundle or hg help unbundle to get more information.

Removed list item after code with the first processmail invocation, merged the text in the previous list item instead, preserving text position (i.e. after the code). This is because that item does not talk about a separate configuration information w.r.t. the previous item.

Completely qualified function mercurial.node.bin.

Chapter 11

Corrected the escape sequence for backslash.

Removed last item in the list explaining the components of the error message for a broken style file, merged the text in the previous list item instead. This is because that item does not talk about a separate component of the error message, but expands on the component discussed by the previous item.

Due to the translation of the Subversion message, changed the length of the message from 5 to 6 lines.

Chapter 12

Quoted patchwork quilt in the title of its own section because I have translated the name literally there.

Modified hg command hg -option occurrences to hg command -option and changed typography accordingly.

Modified the qnew -f example in the section Safety checks, and overriding them because it was missing a due call to hg add, in order to have an outstanding change in the working directory, so that qnew fails but qnew -f forces the new patch to be created.

Chapter 13

Incorporated the correction for the negative hg qguard example which is present in the DocBook source of the English book but not on the online web version of the book.

Added a footnote with the address to the hg-interdiff file on Bitbucket and changed the location accordingly to the latest content reorganization in the repository.

Chapter 14

(!) Removed the isolated list item at the end of the introductory part of the chapter. Also removed the text, which can't be sensibly incorporated in the previous paragraph.

Added a footnote about the inclusion of inotify in Mercurial as of version 1.0.

Removed the note about making snapshot lines that do not appear in the second example for the extdiff extension.

(!) Completely removed the Cherrypicking changes with the transplant extension section, which contains only some kind of to-do note about talking with someone about that extension.

Corrected a /.hgrc to ~/.hgrc in the patchbomb section.


Added a References page.