doc/hg.1.txt
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Sat, 09 Jun 2007 01:04:28 -0300
changeset 4531 b51a8138292a
parent 3799 eb66d76c7746
child 4635 63b9d2deed48
permissions -rw-r--r--
Avoid extra filelogs entries. Right now, there are some situations in which localrepo.filecommit can create filelog entries even though they're not needed. For example: - permissions for a file have changed; - qrefresh can create a filelog entry identical to its parent (see the added test); - convert-repo creates extra filelog entries in every merge where the first parent has added files (for example, changeset ebebe9577a1a of the kernel repo added extra filelog entries to files in the arch/blackfin directory, even though the merge should only touch the drivers/ata directory). This makes "hg log file" in a converted repo less useful than it could be, since it may mention many merges that don't actually touch that specific file. They all come from the same basic problem: localrepo.commit (through filecommit) creates new filelog entries for all files passed to it (except for some cases during a merge). Patch and test case provided by Benoit. This should fix issue351.

HG(1)
=====
Matt Mackall <mpm@selenic.com>

NAME
----
hg - Mercurial source code management system

SYNOPSIS
--------
'hg' [global option]... <command> [command/global option]... [argument]...

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

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

files ...::
    indicates one or more filename or relative path filenames; see
    "FILE NAME PATTERNS" for information on pattern matching

path::
    indicates a path on the local machine

revision::
    indicates a changeset which can be specified as a changeset revision
    number, a tag, or a unique substring of the changeset hash value

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


include::hg.1.gendoc.txt[]

SPECIFYING SINGLE REVISIONS
---------------------------

    Mercurial accepts several notations for identifying individual
    revisions.

    A plain integer is treated as a revision number.  Negative
    integers are treated as offsets from the tip, with -1 denoting the
    tip.

    A 40-digit hexadecimal string is treated as a unique revision
    identifier.

    A hexadecimal string less than 40 characters long is treated as a
    unique revision identifier, and referred to as a short-form
    identifier.  A short-form identifier is only valid if it is the
    prefix of one full-length identifier.

    Any other string is treated as a tag name, which is a symbolic
    name associated with a revision identifier.  Tag names may not
    contain the ":" character.

    The reserved name "tip" is a special tag that always identifies
    the most recent revision.

SPECIFYING MULTIPLE REVISIONS
-----------------------------

    When Mercurial accepts more than one revision, they may be
    specified individually, or provided as a continuous range,
    separated by the ":" character.

    The syntax of range notation is [BEGIN]:[END], where BEGIN and END
    are revision identifiers.  Both BEGIN and END are optional.  If
    BEGIN is not specified, it defaults to revision number 0.  If END
    is not specified, it defaults to the tip.  The range ":" thus
    means "all revisions".

    If BEGIN is greater than END, revisions are treated in reverse
    order.

    A range acts as a closed interval.  This means that a range of 3:5
    gives 3, 4 and 5.  Similarly, a range of 4:2 gives 4, 3, and 2.

FILES
-----
 .hgignore::
    This file contains regular expressions (one per line) that describe file
    names that should be ignored by hg. For details, see hgignore(5).

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

 /etc/mercurial/hgrc, $HOME/.hgrc, .hg/hgrc::
    This file contains defaults and configuration. Values in .hg/hgrc
    override those in $HOME/.hgrc, and these override settings made in the
    global /etc/mercurial/hgrc configuration.  See hgrc(5) for details of
    the contents and format of these files.

Some commands (e.g. revert) produce backup files ending in .orig, if
the .orig file already exists and is not tracked by Mercurial, it
will be overwritten.

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

SEE ALSO
--------
hgignore(5), hgrc(5)

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, 2006 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License (GPL).