Mercurial > hg > mercurial-crew-with-dirclash
annotate doc/hgmerge.1.txt @ 879:953ccddd57bd
dirstate walking optimizations
The repo walking code introduces a number of calls to dirstate.map.copy(),
significantly slowing down the walk on large trees. When a list of
files is passed to the walking code, we should only look at map entries
relevant to the file list passed in.
dirstate.filterfiles() is added to return a subset of the dirstate map.
The subset includes in files passed in, and if one of the files requested
is actually a directory, it includes any files inside that directory tree.
This brings the time for hg diff Makefile down from 1.7s to .3s on
a linux kernel repo.
Also, the diff command was unconditionally calling makewalk, leading
to an extra pass through repo.changes. This patch avoids the call
to makewalk when commands.diff isn't given a list of patterns, cutting
the time for hg diff (with no args) in half.
Index: mine/mercurial/hg.py
===================================================================
author | mason@suse.com |
---|---|
date | Fri, 12 Aug 2005 07:10:21 -0800 |
parents | c084cfbb2389 |
children | 3ab6e55ee361 |
rev | line source |
---|---|
466 | 1 HGMERGE(1) |
2 ========== | |
3 Matt Mackall <mpm@selenic.com> | |
4 v0.1, 27 May 2005 | |
5 | |
6 NAME | |
7 ---- | |
8 hgmerge - default wrapper to merge files in Mercurial SCM system | |
9 | |
10 SYNOPSIS | |
11 -------- | |
12 'hgmerge' local ancestor remote | |
13 | |
14 DESCRIPTION | |
15 ----------- | |
16 The hgmerge(1) command provides a graphical interface to merge files in the | |
17 Mercurial system. It is a simple wrapper around kdiff3, merge(1) and tkdiff(1), | |
18 or simply diff(1) and patch(1) depending on what is present on the system. | |
19 | |
20 hgmerge(1) is used by the Mercurial SCM if the environment variable HGMERGE is | |
21 not set. | |
22 | |
23 AUTHOR | |
24 ------ | |
25 Written by Vincent Danjean <Vincent.Danjean@free.fr> | |
26 | |
27 SEE ALSO | |
28 -------- | |
29 hg(1) - the command line interface to Mercurial SCM | |
30 | |
31 COPYING | |
32 ------- | |
33 Copyright (C) 2005 Matt Mackall. | |
34 Free use of this software is granted under the terms of the GNU General | |
35 Public License (GPL). |