Mercurial > hg
view doc/hg.1.txt @ 5378:8a2915f57dfc
convert: add a mode where mercurial_sink skips empty revisions.
The getchanges function of some converter_source classes can return
some false positives. I.e. they sometimes claim that a file "foo"
was changed in some revision, even though its contents are still the
same.
convert_svn is particularly bad, but I think this can also happen with
convert_cvs and, at least in theory, with mercurial_source.
For regular conversions this is not really a problem - as long as
getfile returns the right contents, we'll get a converted revision
with the right contents. But when we use --filemap, this could lead
to superfluous revisions being converted.
Instead of fixing every converter_source, I decided to change
mercurial_sink to work around this problem.
When --filemap is used, we're interested only in revisions that touch
some specific files. If a revision doesn't change any of these files,
then we're not interested in it (at least for revisions with a single
parent; merges are special).
For mercurial_sink, we abuse this property and rollback a commit if
the manifest text hasn't changed. This avoids duplicating the logic
from localrepo.filecommit to detect unchanged files.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Thu, 04 Oct 2007 23:21:37 -0300 |
parents | c8efd19e248c |
children | 1c1ef561d541 |
line wrap: on
line source
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. The reserved name "null" indicates the null revision. This is the revision of an empty repository, and the parent of revision 0. The reserved name "." indicates the working directory parent. If no working directory is checked out, it is equivalent to null. If an uncommitted merge is in progress, "." is the revision of the first parent. 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-2007 Matt Mackall. Free use of this software is granted under the terms of the GNU General Public License (GPL).