# mkdir hg_repository
     # cd hg_repository
     # hg init
     
 
     # hg serve      ; start the small server
     # hostname
     YOUR_MACHINE_HOST_NAME
     # cd somewhere/your/project/to/checkout
     # hg clone http://${YOUR_MACHINE_HOST_NAME}:8000 clonetest
     
 hg serve is a
          simple solution. In that case, you might see the following
          error.
          
     [19]bash % hg push
     pushing to http://myhost:8000
     searching for changes
     ssl required
          
          You neee to set up ssl enabled server.  To do this, please see
          the more detailed hg documentation, here assumes just local
          use. To enable anyone local to push with 'hg serve':
          
      [web]
      push_ssl=False
      allow_push=*
          
          It seems hg serve doesn't have a path after the host (http://host:8000//path), so multiple repositories by hg serve is not simple. But hg serve is simple for one repository.
In many cases, you want to have multiple repositories. Since you may have several projects.
Mercurial (or git) uses project based repository (each project has own repository. Instead of host based repository. I came from CVS, subversion, so I didn't think about this until I started hg and git, but, a host machine is nothing about a project...)
It seems an easy way to create multiple repositories is by cloning via hg ssh protocol.
First on your server, hg init the directory.
     # hg init /your/repository/project0
     
     Then clone it.
     # hg clone ssh://${YOUR_MACHINE_HOST_NAME}:22//your/repository/project0 project0
     
     You can omit :22 if you use standard ssh port.
          [ui]
          username = My Name <name@email.de>
          
          
     
          [ui]
          ignore = ~/.hgignore
          
      
          #
          # Mercurial ignore file
          #
          syntax: regexp
          /Ubuntu9.04.*/
          ^TMakefile.priv$
          
          
          
          
     
     +------------------------------+
     |Google code repository        |
     +------------------------------+
        ^ hg push                  ^
        |                          |
        |                          |
        |                          |
        v hg pull                  v
     +---------------------+    +---------------------+
     |my local repository 0|    |my local repository 1|  ...
     +---------------------+    +---------------------+
        ^ hg commit                ^
        |                          |
        |                          |
        |                          |
        v hg update                v
     +-----------------+        +-----------------+
     |my working copy 0|        |my working copy 1|      ...
     +-----------------+        +-----------------+
     
     I have a few machines, one is desktop and ther others are
     notebooks.
hg revert fname.