Bryan O'Sullivan avatar Bryan O'Sullivan committed 1d277d6 Merge

Merge

Comments (0)

Files changed (7)

 \end{figure}
 
 All hooks follow the pattern in example~\ref{ex:hook:init}.  You add
-an entry to the \rcsection{hooks} section of your \hgrc\.  On the left
+an entry to the \rcsection{hooks} section of your \hgrc.  On the left
 is the name of the event to trigger on; on the right is the action to
 take.  As you can see, you can run an arbitrary shell command in a
 hook.  Mercurial passes extra information to the hook using
 learn to use the other.  Both tools are portable to all popular
 operating systems.
 
+Prior to version 1.5, Subversion had no useful support for merges.
+At the time of writing, its merge tracking capability is new, and known to be
+\href{http://svnbook.red-bean.com/nightly/en/svn.branchmerge.advanced.html#svn.branchmerge.advanced.finalword}{complicated
+  and buggy}.
+
 Mercurial has a substantial performance advantage over Subversion on
 every revision control operation I have benchmarked.  I have measured
 its advantage as ranging from a factor of two to a factor of six when
 compared with Subversion~1.4.3's \emph{ra\_local} file store, which is
-the fastest access method available).  In more realistic deployments
+the fastest access method available.  In more realistic deployments
 involving a network-based store, Subversion will be at a substantially
 larger disadvantage.  Because many Subversion commands must talk to
 the server and Subversion does not have useful replication facilities,
 
 A guard cannot start with a ``\texttt{+}'' or ``\texttt{-}''
 character.  The name of a guard must not contain white space, but most
-othter characters are acceptable.  If you try to use a guard with an
+other characters are acceptable.  If you try to use a guard with an
 invalid name, MQ will complain:
 \interaction{mq.guards.qselect.error} 
 Changing the selected guards changes the patches that are applied.
 Referring to a patch by index isn't much different.  The first patch
 printed in the output of \hgxcmd{mq}{qseries} is patch zero (yes, it's one
 of those start-at-zero counting systems); the second is patch one; and
-so on
+so on.
 
 MQ also makes it easy to work with patches when you are using normal
 Mercurial commands.  Every command that accepts a changeset ID will
 
 We could have included the text of the template file directly in the
 style file by enclosing it in quotes and replacing the newlines with
-``\texttt{\\n}'' sequences, but it would have made the style file too
+``\verb!\n!'' sequences, but it would have made the style file too
 difficult to read.  Readability is a good guide when you're trying to
 decide whether some text belongs in a style file, or in a template
 file that the style file points to.  If the style file will look too

en/tour-basic.tex

 a compatible version of Universal MacPython~\cite{web:macpython}.  This
 is easy to do; simply follow the instructions on Lee's site.
 
+It's also possible to install Mercurial using Fink or MacPorts,
+two popular free package managers for Mac OS X.  If you have Fink,
+use \command{sudo apt-get install mercurial-py25}.  If MacPorts,
+\command{sudo port install mercurial}.
+
 \subsection{Windows}
 
-Lee Cantey also publishes an installer of Mercurial for Windows at
+Lee Cantey publishes an installer of Mercurial for Windows at
 \url{http://mercurial.berkwood.com}.  This package has no external
 dependencies; it ``just works''.
 
 So remember, to revert a \hgcmd{rename}, you must provide \emph{both}
 the source and destination names.  
 
+% TODO: the output doesn't look like it will be removed!
+
 (By the way, if you rename a file, then modify the renamed-to file,
 then revert both components of the rename, when Mercurial restores the
 file that was removed as part of the rename, it will be unmodified.
 changeset.  Finally, it merges back to the previous parent of the
 working directory, and commits the result of the merge.
 
+% TODO: to me it looks like mercurial doesn't commit the second merge automatically!
+
 \begin{figure}[htb]
   \centering
   \grafix{undo-non-tip}
 Even though we had~40 changesets to search through, the \hgcmd{bisect}
 command let us find the changeset that introduced our ``bug'' with
 only five tests.  Because the number of tests that the \hgcmd{bisect}
-command grows logarithmically with the number of changesets to
+command performs grows logarithmically with the number of changesets to
 search, the advantage that it has over the ``brute force'' search
 approach increases with every changeset you add.
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.