doc/hg.1.txt
author mpm@selenic.com
Sun, 12 Jun 2005 22:05:08 -0800
changeset 321 73b8a8a059ec
parent 196 48827121af7e
child 330 27d08c0c2a7e
permissions -rw-r--r--
Transparent proxy support -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Transparent proxy support Originally from "Michael S. Tsirkin" <mst@mellanox.co.il> manifest hash: 74cf7456ef35ff8d4c007544f0d1a57c69d3c929 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCrSIUywK+sNU5EO8RAje1AJ41ALW8soF78Mo3UTraV1QQvJoFSQCgrqvc I9ohlI4hzdjOD+wSwRGlERQ= =Ugfi -----END PGP SIGNATURE-----

HG(1)
=====
Matt Mackall <mpm@selenic.com>
v0.5, 27 May 2005

NAME
----
hg - command line interface to the Mercurial source code management system

SYNOPSIS
--------
'hg' [-v -d -q -y] <command> [command options] [files]

DESCRIPTION
-----------
The hg(1) command provides a command line interface to the Mercurial system.

NOTE
----
Many of the hg commands are not yet subdirectory and/or working directory
aware.  This means that some commands will only work in the top level 
repository directory or will only accept paths and filenames relative to the
top level.  Merges and commits, in particular, should be done in the
top-level directory.

OPTIONS
-------
--debug, -d::
    enable debugging output

--quiet, -q::
    suppress output

--verbose, -v::
    enable additional output

--noninteractive, -y::
    do not prompt, assume 'yes' for any required answers

COMMAND ELEMENTS
----------------

files ...::
    indicates one or more filename or relative path filenames

path::
    indicates a path on the local machine

revision::
    indicates a changeset which can be specified as a changeset id (int),
    a tag, or a unique substring of the changeset hash value

repository path::
    is either the pathname of a local repository of the URI of a remote
    repository.  There are two available URI protocols, http:// which is
    fast and the old-http:// protocol which is much slower but does not 
    require python on the web host.

COMMANDS
--------
add [files ...]::
    add the given files to the repository.  Note that this just schedules the
    files for addition at the next hg commit time.

addremove::
    add all new files and remove all missing files from the repository.  new
    files are ignored if they match any of the patterns in .hgignore

annotate [-r revision -u -n -c] [files ...]::
    list the files with each line showing the revision id responsible 
    for that line.  -u will add the author to the revision id, -c will
    print the changeset hash, and -n will ...

branch <path>::
    create a new branch of the repository indicated by path in the current
    directory.  Note that there should not be a repository already initialized
    in the current directory

checkout [revision]::
    check out the indicated version of the repository into the working
    directory.  Note that currently no merge occurs with changed files 
    in the working dir.

commit::
    commit all changed files in the working dir to the repository.  This uses
    the EDITOR environment variable to bring up an editor to add a commit
    comment.

diff [-r revision] [-r revision] [files ...]::
    generate a unified diff of the indicated files.  If there are no 
    revisions specified, the working directory file is compared to 
    the tip, one revision specified indicates a comparison between the 
    working directory file and the specified revision, two revisions 
    compares the two versions specified.

dump <file> [revision]::
    print the indicated revision of the file

dumpmanifest [revision]::
    print the indicated revision of the manifest (list of version controlled
    files)

export [revision]::
    print the changeset header (author, changeset hash, parent, and commit
    comment) and the diffs for a particular revision.

history::
    print the revision history of the repository

init::
    initialize a repository in the current directory

log <file>::
    print the revision history of the specified file

merge <repository path>::
    pull any changes from the specified repository to the repository in the
    current directory.  Use the value of the HGMERGE environment variable
    as a program to resolve any merge conflicts between the two repositories.
    An implicit commit is done at the end of this process if there were any
    merge conflicts.  Note that merge does not yet merge with changed files
    in the working dir.

recover::
    rollback an interrupted transaction

remove [files ...]::
    schedule the indicated files for removal from the repository at the next
    commit

serve [-a addr -n name -p port -t templatedir]::
    this will start an http server, by default on port 8000, that will 
    allow browsing the repository using the hgweb interface and will allow 
    merging from the repository.  -a sets the interface address, -p the 
    port to listen on, -n the name of the repository and -t sets the 
    location of the template directory.

status::
    list new, changed, and missing files in the working directory

tags::
    list the current tags

undo::
    undo the last transaction

ENVIRONMENT VARIABLES
---------------------
HGMERGE::
    points to an executable to use for resolving merge conflicts, the
    program will be executed with four arguments: local file, remote
    file, ancestor file, and original filename.

HGUSER::
    this is the string used for the author value of a commit

HG_OPTS::
    this string is used for default arguments to hg

PYTHONPATH::
    this is used by Python to find imported modules and needs to be set
    appropriately based on where mercurial is installed

EMAIL::
    if HGUSER is not set, this will be used next as the author value for
    a commit

LOGNAME::
    if neither HGUSER nor EMAIL is set, LOGNAME will be used (with
    '@hostname' appended) as the author value for a commit

EDITOR::
    this is the name of the editor to use when committing

FILES
-----
 .hgignore::
    this file contains regular expressions (one per line) that describe file
    names that should be ignored by hg

 .hgtags::
    this file contains changeset hash values and text tag names (one of each
    seperated by spaces) that correspond to tagged versions of the repository
    contents.

 $HOME/.hgpaths::
    this file contains a mapping from a symbolic name to a repository path
    (which could be a local path or a remote URI), the format is 
    <symbolic name> <repository path> with each mapping on a seperate line

NON_TRANSPARENT PROXY SUPPORT
-----

    To access a mercurial repository through a proxy,
    create a file $HOME/.hgrc in the following format:

[http_proxy]
host=myproxy:8080
user=<username>
passwd=<password>
no=<localhost1>,<localhost2>,<localhost3>,...

    "user","passwd" fields are used for authenticating proxies,
    "no" is a comma-separated list of local host names
    for which proxy must be bypassed.

BUGS
----
Probably lots, please post them to the mailing list (See Resources below)
when you find them.

AUTHOR
------
Written by Matt Mackall <mpm@selenic.com>

RESOURCES
---------
http://selenic.com/mercurial[Main Web Site]

http://selenic.com/hg[Source code repository]

http://selenic.com/mailman/listinfo/mercurial[Mailing list]

COPYING
-------
Copyright (C) 2005 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License (GPL).