Mercurial > hg
annotate mercurial/help/hg.1.txt @ 35616:706aa203b396
fileset: add a lightweight file filtering language
This patch was inspired by one that Jun Wu authored for the fb-experimental
repo, to avoid using matcher for efficiency[1]. We want a way to specify what
files will be converted to LFS at commit time. And per discussion, we also want
to specify what files to skip, text diff, or merge in another config option.
The current `lfs.threshold` config option could not satisfy complex needs. I'm
putting it in a core package because Augie floated the idea of also using it for
narrow and sparse.
Yuya suggested farming out to fileset.parse(), which added support for more
symbols. The only fileset element not supported here is 'negate'. (List isn't
supported by filesets either.) I also changed the 'always' token to the 'all()'
predicate for consistency, and introduced 'none()' to improve readability in a
future tracked file based config. The extension operator was changed from '.'
to '**', to match how recursive path globs are specified. Finally, I changed
the path matcher from '/' to 'path:' at Yuya's suggestion, for consistency with
matcher. Unfortunately, ':' is currently reserved in filesets, so this has to
be quoted to be processed as a string instead of a symbol[2]. We should
probably revisit that, because it's seriously ugly. But it's only used by an
experimental extension, and I think using a file based config for LFS may drive
some more tweaks, so I'm settling for this for now.
I reserved all of the glob characters in fileset except '.' and '_' for the
extension test because those are likely valid extension characters.
Sample filter settings:
all() # everything
size(">20MB") # larger than 20MB
!**.txt # except for .txt files
**.zip | **.tar.gz | **.7z # some types of compressed files
"path:bin" # files under "bin" in the project root
[1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-December/109387.html
[2] https://www.mercurial-scm.org/pipermail/mercurial-devel/2018-January/109729.html
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Wed, 10 Jan 2018 22:23:34 -0500 |
parents | 75149f84eac7 |
children | 854a7315603e |
rev | line source |
---|---|
9158
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
1 ==== |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
2 hg |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
3 ==== |
177 | 4 |
9158
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
5 --------------------------------------- |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
6 Mercurial source code management system |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
7 --------------------------------------- |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
8 |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
9 :Author: Matt Mackall <mpm@selenic.com> |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
10 :Organization: Mercurial |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
11 :Manual section: 1 |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
12 :Manual group: Mercurial Manual |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
13 |
9422
ec26d6986d85
doc: add TOC to hg.1.html and hgrc.5.html
Martin Geisler <mg@lazybytes.net>
parents:
9162
diff
changeset
|
14 .. contents:: |
ec26d6986d85
doc: add TOC to hg.1.html and hgrc.5.html
Martin Geisler <mg@lazybytes.net>
parents:
9162
diff
changeset
|
15 :backlinks: top |
ec26d6986d85
doc: add TOC to hg.1.html and hgrc.5.html
Martin Geisler <mg@lazybytes.net>
parents:
9162
diff
changeset
|
16 :class: htmlonly |
12776
4f4eddee254d
gendoc: move section commands to module scope
Martin Geisler <mg@lazybytes.net>
parents:
10263
diff
changeset
|
17 :depth: 1 |
9422
ec26d6986d85
doc: add TOC to hg.1.html and hgrc.5.html
Martin Geisler <mg@lazybytes.net>
parents:
9162
diff
changeset
|
18 |
177 | 19 |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9705
diff
changeset
|
20 Synopsis |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
21 """""""" |
9158
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
22 **hg** *command* [*option*]... [*argument*]... |
177 | 23 |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9705
diff
changeset
|
24 Description |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
25 """"""""""" |
9161
e8b653a4b8da
doc: fixup font markup in man pages
Martin Geisler <mg@lazybytes.net>
parents:
9158
diff
changeset
|
26 The **hg** command provides a command line interface to the Mercurial |
8728
9d67706ee8d5
hg.1: wrap lines at 70 chars (whitespace cleanup)
Martin Geisler <mg@lazybytes.net>
parents:
7211
diff
changeset
|
27 system. |
177 | 28 |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9705
diff
changeset
|
29 Command Elements |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
30 """""""""""""""" |
177 | 31 |
9158
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
32 files... |
724
1c0c413cccdd
Get add and locate to use new repo and dirstate walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
33 indicates one or more filename or relative path filenames; see |
9702
a9d15bf7efe2
doc: add some internal links to man pages
Martin Geisler <mg@lazybytes.net>
parents:
9510
diff
changeset
|
34 `File Name Patterns`_ for information on pattern matching |
177 | 35 |
9158
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
36 path |
177 | 37 indicates a path on the local machine |
38 | |
9158
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
39 revision |
8728
9d67706ee8d5
hg.1: wrap lines at 70 chars (whitespace cleanup)
Martin Geisler <mg@lazybytes.net>
parents:
7211
diff
changeset
|
40 indicates a changeset which can be specified as a changeset |
9d67706ee8d5
hg.1: wrap lines at 70 chars (whitespace cleanup)
Martin Geisler <mg@lazybytes.net>
parents:
7211
diff
changeset
|
41 revision number, a tag, or a unique substring of the changeset |
9d67706ee8d5
hg.1: wrap lines at 70 chars (whitespace cleanup)
Martin Geisler <mg@lazybytes.net>
parents:
7211
diff
changeset
|
42 hash value |
177 | 43 |
9158
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
44 repository path |
498 | 45 either the pathname of a local repository or the URI of a remote |
7211 | 46 repository. |
438 | 47 |
9158
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
48 .. include:: hg.1.gendoc.txt |
438 | 49 |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9705
diff
changeset
|
50 Files |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
51 """"" |
9158
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8936
diff
changeset
|
52 |
9161
e8b653a4b8da
doc: fixup font markup in man pages
Martin Geisler <mg@lazybytes.net>
parents:
9158
diff
changeset
|
53 ``/etc/mercurial/hgrc``, ``$HOME/.hgrc``, ``.hg/hgrc`` |
e8b653a4b8da
doc: fixup font markup in man pages
Martin Geisler <mg@lazybytes.net>
parents:
9158
diff
changeset
|
54 This file contains defaults and configuration. Values in |
e8b653a4b8da
doc: fixup font markup in man pages
Martin Geisler <mg@lazybytes.net>
parents:
9158
diff
changeset
|
55 ``.hg/hgrc`` override those in ``$HOME/.hgrc``, and these override |
e8b653a4b8da
doc: fixup font markup in man pages
Martin Geisler <mg@lazybytes.net>
parents:
9158
diff
changeset
|
56 settings made in the global ``/etc/mercurial/hgrc`` configuration. |
9162
2399362b3bb0
doc: link man pages to one another
Martin Geisler <mg@lazybytes.net>
parents:
9161
diff
changeset
|
57 See |hgrc(5)|_ for details of the contents and format of these |
9161
e8b653a4b8da
doc: fixup font markup in man pages
Martin Geisler <mg@lazybytes.net>
parents:
9158
diff
changeset
|
58 files. |
321 | 59 |
15616
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
60 ``.hgignore`` |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
61 This file contains regular expressions (one per line) that |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
62 describe file names that should be ignored by **hg**. For details, |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
63 see |hgignore(5)|_. |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
64 |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
65 ``.hgsub`` |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
66 This file defines the locations of all subrepositories, and |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
67 tells where the subrepository checkouts came from. For details, see |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
68 :hg:`help subrepos`. |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
69 |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
70 ``.hgsubstate`` |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
71 This file is where Mercurial stores all nested repository states. *NB: This |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
72 file should not be edited manually.* |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
73 |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
74 ``.hgtags`` |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
75 This file contains changeset hash values and text tag names (one |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
76 of each separated by spaces) that correspond to tagged versions of |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
77 the repository contents. The file content is encoded using UTF-8. |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
78 |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
79 ``.hg/last-message.txt`` |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
80 This file is used by :hg:`commit` to store a backup of the commit message |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
81 in case the commit fails. |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
82 |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
83 ``.hg/localtags`` |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
84 This file can be used to define local tags which are not shared among |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
85 repositories. The file format is the same as for ``.hgtags``, but it is |
05e522d3f186
Describe all files related to the standard commands.
Olav Reinert <seroton10@gmail.com>
parents:
12776
diff
changeset
|
86 encoded using the local system encoding. |
18960
170fc0949fb6
check-code: check txt files for trailing whitespace
Mads Kiilerich <madski@unity3d.com>
parents:
17267
diff
changeset
|
87 |
9161
e8b653a4b8da
doc: fixup font markup in man pages
Martin Geisler <mg@lazybytes.net>
parents:
9158
diff
changeset
|
88 Some commands (e.g. revert) produce backup files ending in ``.orig``, |
e8b653a4b8da
doc: fixup font markup in man pages
Martin Geisler <mg@lazybytes.net>
parents:
9158
diff
changeset
|
89 if the ``.orig`` file already exists and is not tracked by Mercurial, |
e8b653a4b8da
doc: fixup font markup in man pages
Martin Geisler <mg@lazybytes.net>
parents:
9158
diff
changeset
|
90 it will be overwritten. |
3021
b9dbbcf8a488
Document the fact that revert might overwrite .orig files
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
2859
diff
changeset
|
91 |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9705
diff
changeset
|
92 Bugs |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
93 """" |
9702
a9d15bf7efe2
doc: add some internal links to man pages
Martin Geisler <mg@lazybytes.net>
parents:
9510
diff
changeset
|
94 Probably lots, please post them to the mailing list (see Resources_ |
8728
9d67706ee8d5
hg.1: wrap lines at 70 chars (whitespace cleanup)
Martin Geisler <mg@lazybytes.net>
parents:
7211
diff
changeset
|
95 below) when you find them. |
177 | 96 |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9705
diff
changeset
|
97 See Also |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
98 """""""" |
9162
2399362b3bb0
doc: link man pages to one another
Martin Geisler <mg@lazybytes.net>
parents:
9161
diff
changeset
|
99 |hgignore(5)|_, |hgrc(5)|_ |
671
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
631
diff
changeset
|
100 |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9705
diff
changeset
|
101 Author |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
102 """""" |
177 | 103 Written by Matt Mackall <mpm@selenic.com> |
104 | |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9705
diff
changeset
|
105 Resources |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
106 """"""""" |
26421
4b0fc75f9403
urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents:
24191
diff
changeset
|
107 Main Web Site: https://mercurial-scm.org/ |
177 | 108 |
30244
4e934804cafe
help: replace selenic.com by mercurial-scm.org in man pages
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
27925
diff
changeset
|
109 Source code repository: https://www.mercurial-scm.org/repo/hg |
177 | 110 |
30244
4e934804cafe
help: replace selenic.com by mercurial-scm.org in man pages
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
27925
diff
changeset
|
111 Mailing list: https://www.mercurial-scm.org/mailman/listinfo/mercurial/ |
177 | 112 |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9705
diff
changeset
|
113 Copying |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
114 """"""" |
30907
75149f84eac7
misc: update year in copyright lines
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
30244
diff
changeset
|
115 Copyright (C) 2005-2017 Matt Mackall. |
177 | 116 Free use of this software is granted under the terms of the GNU General |
10263 | 117 Public License version 2 or any later version. |
9162
2399362b3bb0
doc: link man pages to one another
Martin Geisler <mg@lazybytes.net>
parents:
9161
diff
changeset
|
118 |
2399362b3bb0
doc: link man pages to one another
Martin Geisler <mg@lazybytes.net>
parents:
9161
diff
changeset
|
119 .. include:: common.txt |