##// END OF EJS Templates
win32text: mark this extension as deprecated
Martin Geisler -
r11269:5f01fd60 default
parent child Browse files
Show More
@@ -1,133 +1,133 b''
1 ### --- User interface
1 ### --- User interface
2
2
3 [ui]
3 [ui]
4
4
5 ### show changed files and be a bit more verbose if True
5 ### show changed files and be a bit more verbose if True
6
6
7 # verbose = True
7 # verbose = True
8
8
9 ### username data to appear in comits
9 ### username data to appear in comits
10 ### it usually takes the form: Joe User <joe.user@host.com>
10 ### it usually takes the form: Joe User <joe.user@host.com>
11
11
12 # username = Joe User <j.user@example.com>
12 # username = Joe User <j.user@example.com>
13
13
14 ### --- Extensions
14 ### --- Extensions
15
15
16 [extensions]
16 [extensions]
17
17
18 ### each extension has its own 'extension_name=path' line
18 ### each extension has its own 'extension_name=path' line
19 ### the default python library path is used when path is left blank
19 ### the default python library path is used when path is left blank
20 ### the hgext dir is used when 'hgext.extension_name=' is written
20 ### the hgext dir is used when 'hgext.extension_name=' is written
21
21
22 ### acl - Access control lists
22 ### acl - Access control lists
23 ### hg help acl
23 ### hg help acl
24
24
25 # hgext.acl =
25 # hgext.acl =
26
26
27 ### bisect - binary search changesets to detect bugs
27 ### bisect - binary search changesets to detect bugs
28 ### hg help bisect
28 ### hg help bisect
29
29
30 # hgext.hbisect =
30 # hgext.hbisect =
31
31
32 ### bugzilla - update bugzilla bugs when changesets mention them
32 ### bugzilla - update bugzilla bugs when changesets mention them
33 ### hg help bugzilla
33 ### hg help bugzilla
34
34
35 # hgext.bugzilla =
35 # hgext.bugzilla =
36
36
37 ### extdiff - Use external diff application instead of builtin one
37 ### extdiff - Use external diff application instead of builtin one
38
38
39 # hgext.extdiff =
39 # hgext.extdiff =
40
40
41 ### gpg - GPG checks and signing
41 ### gpg - GPG checks and signing
42 ### hg help gpg
42 ### hg help gpg
43
43
44 # hgext.gpg =
44 # hgext.gpg =
45
45
46 ### graphlog - ASCII graph log
46 ### graphlog - ASCII graph log
47 ### hg help glog
47 ### hg help glog
48
48
49 # hgext.graphlog =
49 # hgext.graphlog =
50
50
51 ### hgk - GUI repository browser
51 ### hgk - GUI repository browser
52 ### hg help view
52 ### hg help view
53
53
54 # hgext.hgk =
54 # hgext.hgk =
55
55
56 ### mq - Mercurial patch queues
56 ### mq - Mercurial patch queues
57 ### hg help mq
57 ### hg help mq
58
58
59 # hgext.mq =
59 # hgext.mq =
60
60
61 ### notify - Template driven e-mail notifications
61 ### notify - Template driven e-mail notifications
62 ### hg help notify
62 ### hg help notify
63
63
64 # hgext.notify =
64 # hgext.notify =
65
65
66 ### patchbomb - send changesets as a series of patch emails
66 ### patchbomb - send changesets as a series of patch emails
67 ### hg help email
67 ### hg help email
68
68
69 # hgext.patchbomb =
69 # hgext.patchbomb =
70
70
71 ### churn - create a graph showing who changed the most lines
71 ### churn - create a graph showing who changed the most lines
72 ### hg help churn
72 ### hg help churn
73
73
74 # hgext.churn = /home/user/hg/hg/contrib/churn.py
74 # hgext.churn = /home/user/hg/hg/contrib/churn.py
75
75
76 ### win32text - line ending conversion filters for the Windows platform
76 ### eol - automatic management of line endings
77
77
78 # hgext.win32text =
78 # hgext.eol =
79
79
80 ### --- hgk additional configuration
80 ### --- hgk additional configuration
81
81
82 [hgk]
82 [hgk]
83
83
84 ### set executable path
84 ### set executable path
85
85
86 # path = /home/user/hg/hg/contrib/hgk
86 # path = /home/user/hg/hg/contrib/hgk
87
87
88 ### --- Hook to Mercurial actions - See hgrc man page for avaliable hooks
88 ### --- Hook to Mercurial actions - See hgrc man page for avaliable hooks
89
89
90 [hooks]
90 [hooks]
91
91
92 ### Example notify hooks (load hgext.notify extension before use)
92 ### Example notify hooks (load hgext.notify extension before use)
93
93
94 # incoming.notify = python:hgext.notify.hook
94 # incoming.notify = python:hgext.notify.hook
95 # changegroup.notify = python:hgext.notify.hook
95 # changegroup.notify = python:hgext.notify.hook
96
96
97 ### Email configuration for the notify and patchbomb extensions
97 ### Email configuration for the notify and patchbomb extensions
98
98
99 [email]
99 [email]
100
100
101 ### Your email address
101 ### Your email address
102
102
103 # from = user@example.com
103 # from = user@example.com
104
104
105 ### Method to send email - smtp or /usr/sbin/sendmail or other program name
105 ### Method to send email - smtp or /usr/sbin/sendmail or other program name
106
106
107 # method = smtp
107 # method = smtp
108
108
109 ### smtp server to send email to
109 ### smtp server to send email to
110
110
111 [smtp]
111 [smtp]
112
112
113 # host = mail
113 # host = mail
114 # port = 25
114 # port = 25
115 # tls = false
115 # tls = false
116 # username = user
116 # username = user
117 # password = blivet
117 # password = blivet
118 # local_hostname = myhost
118 # local_hostname = myhost
119
119
120 ### --- Email notification hook for server
120 ### --- Email notification hook for server
121
121
122 [notify]
122 [notify]
123 ### multiple sources can be specified as a whitespace or comma separated list
123 ### multiple sources can be specified as a whitespace or comma separated list
124
124
125 # sources = serve push pull bundle
125 # sources = serve push pull bundle
126
126
127 ### set this to False when you're ready for mail to start sending
127 ### set this to False when you're ready for mail to start sending
128
128
129 # test = True
129 # test = True
130
130
131 ### path to config file with names of subscribers
131 ### path to config file with names of subscribers
132
132
133 # config = /path/to/subscription/file
133 # config = /path/to/subscription/file
@@ -1,125 +1,95 b''
1 ; System-wide Mercurial config file.
1 ; System-wide Mercurial config file.
2 ;
2 ;
3 ; !!! Do Not Edit This File !!!
3 ; !!! Do Not Edit This File !!!
4 ;
4 ;
5 ; This file will be replaced by the installer on every upgrade.
5 ; This file will be replaced by the installer on every upgrade.
6 ; Editing this file can cause strange side effects on Vista.
6 ; Editing this file can cause strange side effects on Vista.
7 ;
7 ;
8 ; http://bitbucket.org/tortoisehg/stable/issue/135
8 ; http://bitbucket.org/tortoisehg/stable/issue/135
9 ;
9 ;
10 ; To change settings you see in this file, override (or enable) them in
10 ; To change settings you see in this file, override (or enable) them in
11 ; your user Mercurial.ini file, where USERNAME is your Windows user name:
11 ; your user Mercurial.ini file, where USERNAME is your Windows user name:
12 ;
12 ;
13 ; XP or older - C:\Documents and Settings\USERNAME\Mercurial.ini
13 ; XP or older - C:\Documents and Settings\USERNAME\Mercurial.ini
14 ; Vista or later - C:\Users\USERNAME\Mercurial.ini
14 ; Vista or later - C:\Users\USERNAME\Mercurial.ini
15
15
16
16
17 [ui]
17 [ui]
18 ; editor used to enter commit logs, etc. Most text editors will work.
18 ; editor used to enter commit logs, etc. Most text editors will work.
19 editor = notepad
19 editor = notepad
20 ; show changed files and be a bit more verbose if True
20 ; show changed files and be a bit more verbose if True
21 ; verbose = True
21 ; verbose = True
22
22
23 ; username data to appear in commits
23 ; username data to appear in commits
24 ; it usually takes the form: Joe User <joe.user@host.com>
24 ; it usually takes the form: Joe User <joe.user@host.com>
25 ; username = Joe User <j.user@example.com>
25 ; username = Joe User <j.user@example.com>
26
26
27 ; In order to push/pull over ssh you must specify an ssh tool
27 ; In order to push/pull over ssh you must specify an ssh tool
28 ;ssh = "C:\Progra~1\TortoiseSVN\bin\TortoisePlink.exe" -ssh -2
28 ;ssh = "C:\Progra~1\TortoiseSVN\bin\TortoisePlink.exe" -ssh -2
29 ;ssh = C:\cygwin\bin\ssh
29 ;ssh = C:\cygwin\bin\ssh
30
30
31 ;
31 ;
32 ; For more information about mercurial extensions, start here
32 ; For more information about mercurial extensions, start here
33 ; http://www.selenic.com/mercurial/wiki/index.cgi/UsingExtensions
33 ; http://www.selenic.com/mercurial/wiki/index.cgi/UsingExtensions
34 ;
34 ;
35 ; Extensions shipped with Mercurial
35 ; Extensions shipped with Mercurial
36 ;
36 ;
37 [extensions]
37 [extensions]
38 ;acl =
38 ;acl =
39 ;alias =
39 ;alias =
40 ;bookmarks =
40 ;bookmarks =
41 ;bugzilla =
41 ;bugzilla =
42 ;children =
42 ;children =
43 ;churn =
43 ;churn =
44 ;color =
44 ;color =
45 ;convert =
45 ;convert =
46 ;eol =
46 ;extdiff =
47 ;extdiff =
47 ;fetch =
48 ;fetch =
48 ;gpg =
49 ;gpg =
49 ;graphlog =
50 ;graphlog =
50 ;hgcia =
51 ;hgcia =
51 ;hgk =
52 ;hgk =
52 ;highlight =
53 ;highlight =
53 ;interhg =
54 ;interhg =
54 ;keyword =
55 ;keyword =
55 ;mq =
56 ;mq =
56 ;notify =
57 ;notify =
57 ;pager =
58 ;pager =
58 ;parentrevspec =
59 ;parentrevspec =
59 ;patchbomb =
60 ;patchbomb =
60 ;progress =
61 ;progress =
61 ;purge =
62 ;purge =
62 ;rebase =
63 ;rebase =
63 ;record =
64 ;record =
64 ;transplant =
65 ;transplant =
65 ;win32mbcs =
66 ;win32mbcs =
66 ;win32text =
67 ;zeroconf =
67 ;zeroconf =
68
68
69 ; To use cleverencode/cleverdecode, you must enable win32text extension
70
71 [encode]
72 ; Encode files that don't contain NUL characters.
73
74 ; ** = cleverencode:
75
76 ; Alternatively, you can explicitly specify each file extension that
77 ; you want encoded (any you omit will be left untouched), like this:
78
79 ; *.txt = dumbencode:
80
81
82 [decode]
83 ; Decode files that don't contain NUL characters.
84
85 ; ** = cleverdecode:
86
87 ; Alternatively, you can explicitly specify each file extension that
88 ; you want decoded (any you omit will be left untouched), like this:
89
90 ; **.txt = dumbdecode:
91
92 [patch]
93 ; If you enable win32text filtering, you will want to enable this
94 ; line as well to allow patching to work correctly.
95
96 ; eol = crlf
97
98
99 ;
69 ;
100 ; Define external diff commands
70 ; Define external diff commands
101 ;
71 ;
102 [extdiff]
72 [extdiff]
103 ;cmd.bc3diff = C:\Program Files\Beyond Compare 3\BCompare.exe
73 ;cmd.bc3diff = C:\Program Files\Beyond Compare 3\BCompare.exe
104 ;cmd.vdiff = C:\Progra~1\TortoiseSVN\bin\TortoiseMerge.exe
74 ;cmd.vdiff = C:\Progra~1\TortoiseSVN\bin\TortoiseMerge.exe
105 ;cmd.vimdiff = gvim.exe
75 ;cmd.vimdiff = gvim.exe
106 ;opts.vimdiff = -f '+next' '+execute "DirDiff ".argv(0)." ".argv(1)'
76 ;opts.vimdiff = -f '+next' '+execute "DirDiff ".argv(0)." ".argv(1)'
107
77
108
78
109 [hgk]
79 [hgk]
110 ; Replace the following with your path to hgk, uncomment it and
80 ; Replace the following with your path to hgk, uncomment it and
111 ; install ActiveTcl (or another win32 port like tclkit)
81 ; install ActiveTcl (or another win32 port like tclkit)
112 ; path="C:\Program Files\Mercurial\Contrib\hgk.tcl"
82 ; path="C:\Program Files\Mercurial\Contrib\hgk.tcl"
113 ; vdiff=vdiff
83 ; vdiff=vdiff
114
84
115
85
116 ;
86 ;
117 ; The git extended diff format can represent binary files, file
87 ; The git extended diff format can represent binary files, file
118 ; permission changes, and rename information that the normal patch format
88 ; permission changes, and rename information that the normal patch format
119 ; cannot describe. However it is also not compatible with tools which
89 ; cannot describe. However it is also not compatible with tools which
120 ; expect normal patches. so enable git patches at your own risk.
90 ; expect normal patches. so enable git patches at your own risk.
121 ;
91 ;
122 [diff]
92 [diff]
123 ;git = false
93 ;git = false
124 ;nodates = false
94 ;nodates = false
125
95
@@ -1,1058 +1,1043 b''
1 ======
1 ======
2 hgrc
2 hgrc
3 ======
3 ======
4
4
5 ---------------------------------
5 ---------------------------------
6 configuration files for Mercurial
6 configuration files for Mercurial
7 ---------------------------------
7 ---------------------------------
8
8
9 :Author: Bryan O'Sullivan <bos@serpentine.com>
9 :Author: Bryan O'Sullivan <bos@serpentine.com>
10 :Organization: Mercurial
10 :Organization: Mercurial
11 :Manual section: 5
11 :Manual section: 5
12 :Manual group: Mercurial Manual
12 :Manual group: Mercurial Manual
13
13
14 .. contents::
14 .. contents::
15 :backlinks: top
15 :backlinks: top
16 :class: htmlonly
16 :class: htmlonly
17
17
18
18
19 Synopsis
19 Synopsis
20 --------
20 --------
21
21
22 The Mercurial system uses a set of configuration files to control
22 The Mercurial system uses a set of configuration files to control
23 aspects of its behavior.
23 aspects of its behavior.
24
24
25 Files
25 Files
26 -----
26 -----
27
27
28 Mercurial reads configuration data from several files, if they exist.
28 Mercurial reads configuration data from several files, if they exist.
29 The names of these files depend on the system on which Mercurial is
29 The names of these files depend on the system on which Mercurial is
30 installed. ``*.rc`` files from a single directory are read in
30 installed. ``*.rc`` files from a single directory are read in
31 alphabetical order, later ones overriding earlier ones. Where multiple
31 alphabetical order, later ones overriding earlier ones. Where multiple
32 paths are given below, settings from earlier paths override later
32 paths are given below, settings from earlier paths override later
33 ones.
33 ones.
34
34
35 | (Unix, Windows) ``<repo>/.hg/hgrc``
35 | (Unix, Windows) ``<repo>/.hg/hgrc``
36
36
37 Per-repository configuration options that only apply in a
37 Per-repository configuration options that only apply in a
38 particular repository. This file is not version-controlled, and
38 particular repository. This file is not version-controlled, and
39 will not get transferred during a "clone" operation. Options in
39 will not get transferred during a "clone" operation. Options in
40 this file override options in all other configuration files. On
40 this file override options in all other configuration files. On
41 Unix, most of this file will be ignored if it doesn't belong to a
41 Unix, most of this file will be ignored if it doesn't belong to a
42 trusted user or to a trusted group. See the documentation for the
42 trusted user or to a trusted group. See the documentation for the
43 trusted_ section below for more details.
43 trusted_ section below for more details.
44
44
45 | (Unix) ``$HOME/.hgrc``
45 | (Unix) ``$HOME/.hgrc``
46 | (Windows) ``%USERPROFILE%\.hgrc``
46 | (Windows) ``%USERPROFILE%\.hgrc``
47 | (Windows) ``%USERPROFILE%\Mercurial.ini``
47 | (Windows) ``%USERPROFILE%\Mercurial.ini``
48 | (Windows) ``%HOME%\.hgrc``
48 | (Windows) ``%HOME%\.hgrc``
49 | (Windows) ``%HOME%\Mercurial.ini``
49 | (Windows) ``%HOME%\Mercurial.ini``
50
50
51 Per-user configuration file(s), for the user running Mercurial. On
51 Per-user configuration file(s), for the user running Mercurial. On
52 Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these
52 Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these
53 files apply to all Mercurial commands executed by this user in any
53 files apply to all Mercurial commands executed by this user in any
54 directory. Options in these files override per-system and per-installation
54 directory. Options in these files override per-system and per-installation
55 options.
55 options.
56
56
57 | (Unix) ``/etc/mercurial/hgrc``
57 | (Unix) ``/etc/mercurial/hgrc``
58 | (Unix) ``/etc/mercurial/hgrc.d/*.rc``
58 | (Unix) ``/etc/mercurial/hgrc.d/*.rc``
59
59
60 Per-system configuration files, for the system on which Mercurial
60 Per-system configuration files, for the system on which Mercurial
61 is running. Options in these files apply to all Mercurial commands
61 is running. Options in these files apply to all Mercurial commands
62 executed by any user in any directory. Options in these files
62 executed by any user in any directory. Options in these files
63 override per-installation options.
63 override per-installation options.
64
64
65 | (Unix) ``<install-root>/etc/mercurial/hgrc``
65 | (Unix) ``<install-root>/etc/mercurial/hgrc``
66 | (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``
66 | (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``
67
67
68 Per-installation configuration files, searched for in the
68 Per-installation configuration files, searched for in the
69 directory where Mercurial is installed. ``<install-root>`` is the
69 directory where Mercurial is installed. ``<install-root>`` is the
70 parent directory of the **hg** executable (or symlink) being run. For
70 parent directory of the **hg** executable (or symlink) being run. For
71 example, if installed in ``/shared/tools/bin/hg``, Mercurial will look
71 example, if installed in ``/shared/tools/bin/hg``, Mercurial will look
72 in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply
72 in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply
73 to all Mercurial commands executed by any user in any directory.
73 to all Mercurial commands executed by any user in any directory.
74
74
75 | (Windows) ``<install-dir>\Mercurial.ini``
75 | (Windows) ``<install-dir>\Mercurial.ini``
76 | (Windows) ``<install-dir>\hgrc.d\*.rc``
76 | (Windows) ``<install-dir>\hgrc.d\*.rc``
77 | (Windows) ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial``
77 | (Windows) ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial``
78
78
79 Per-installation/system configuration files, for the system on
79 Per-installation/system configuration files, for the system on
80 which Mercurial is running. Options in these files apply to all
80 which Mercurial is running. Options in these files apply to all
81 Mercurial commands executed by any user in any directory. Registry
81 Mercurial commands executed by any user in any directory. Registry
82 keys contain PATH-like strings, every part of which must reference
82 keys contain PATH-like strings, every part of which must reference
83 a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
83 a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
84 be read. Mercurial checks each of these locations in the specified
84 be read. Mercurial checks each of these locations in the specified
85 order until one or more configuration files are detected. If the
85 order until one or more configuration files are detected. If the
86 pywin32 extensions are not installed, Mercurial will only look for
86 pywin32 extensions are not installed, Mercurial will only look for
87 site-wide configuration in ``C:\Mercurial\Mercurial.ini``.
87 site-wide configuration in ``C:\Mercurial\Mercurial.ini``.
88
88
89 Syntax
89 Syntax
90 ------
90 ------
91
91
92 A configuration file consists of sections, led by a ``[section]`` header
92 A configuration file consists of sections, led by a ``[section]`` header
93 and followed by ``name = value`` entries (sometimes called
93 and followed by ``name = value`` entries (sometimes called
94 ``configuration keys``)::
94 ``configuration keys``)::
95
95
96 [spam]
96 [spam]
97 eggs=ham
97 eggs=ham
98 green=
98 green=
99 eggs
99 eggs
100
100
101 Each line contains one entry. If the lines that follow are indented,
101 Each line contains one entry. If the lines that follow are indented,
102 they are treated as continuations of that entry. Leading whitespace is
102 they are treated as continuations of that entry. Leading whitespace is
103 removed from values. Empty lines are skipped. Lines beginning with
103 removed from values. Empty lines are skipped. Lines beginning with
104 ``#`` or ``;`` are ignored and may be used to provide comments.
104 ``#`` or ``;`` are ignored and may be used to provide comments.
105
105
106 Configuration keys can be set multiple times, in which case mercurial
106 Configuration keys can be set multiple times, in which case mercurial
107 will use the value that was configured last. As an example::
107 will use the value that was configured last. As an example::
108
108
109 [spam]
109 [spam]
110 eggs=large
110 eggs=large
111 ham=serrano
111 ham=serrano
112 eggs=small
112 eggs=small
113
113
114 This would set the configuration key named ``eggs`` to ``small``.
114 This would set the configuration key named ``eggs`` to ``small``.
115
115
116 It is also possible to define a section multiple times. A section can
116 It is also possible to define a section multiple times. A section can
117 be redefined on the same and/or on different hgrc files. For example::
117 be redefined on the same and/or on different hgrc files. For example::
118
118
119 [foo]
119 [foo]
120 eggs=large
120 eggs=large
121 ham=serrano
121 ham=serrano
122 eggs=small
122 eggs=small
123
123
124 [bar]
124 [bar]
125 eggs=ham
125 eggs=ham
126 green=
126 green=
127 eggs
127 eggs
128
128
129 [foo]
129 [foo]
130 ham=prosciutto
130 ham=prosciutto
131 eggs=medium
131 eggs=medium
132 bread=toasted
132 bread=toasted
133
133
134 This would set the ``eggs``, ``ham``, and ``bread`` configuration keys
134 This would set the ``eggs``, ``ham``, and ``bread`` configuration keys
135 of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``,
135 of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``,
136 respectively. As you can see there only thing that matters is the last
136 respectively. As you can see there only thing that matters is the last
137 value that was set for each of the configuration keys.
137 value that was set for each of the configuration keys.
138
138
139 If a configuration key is set multiple times in different
139 If a configuration key is set multiple times in different
140 configuration files the final value will depend on the order in which
140 configuration files the final value will depend on the order in which
141 the different configuration files are read, with settings from earlier
141 the different configuration files are read, with settings from earlier
142 paths overriding later ones as described on the ``Files`` section
142 paths overriding later ones as described on the ``Files`` section
143 above.
143 above.
144
144
145 A line of the form ``%include file`` will include ``file`` into the
145 A line of the form ``%include file`` will include ``file`` into the
146 current configuration file. The inclusion is recursive, which means
146 current configuration file. The inclusion is recursive, which means
147 that included files can include other files. Filenames are relative to
147 that included files can include other files. Filenames are relative to
148 the configuration file in which the ``%include`` directive is found.
148 the configuration file in which the ``%include`` directive is found.
149 Environment variables and ``~user`` constructs are expanded in
149 Environment variables and ``~user`` constructs are expanded in
150 ``file``. This lets you do something like::
150 ``file``. This lets you do something like::
151
151
152 %include ~/.hgrc.d/$HOST.rc
152 %include ~/.hgrc.d/$HOST.rc
153
153
154 to include a different configuration file on each computer you use.
154 to include a different configuration file on each computer you use.
155
155
156 A line with ``%unset name`` will remove ``name`` from the current
156 A line with ``%unset name`` will remove ``name`` from the current
157 section, if it has been set previously.
157 section, if it has been set previously.
158
158
159 The values are either free-form text strings, lists of text strings,
159 The values are either free-form text strings, lists of text strings,
160 or Boolean values. Boolean values can be set to true using any of "1",
160 or Boolean values. Boolean values can be set to true using any of "1",
161 "yes", "true", or "on" and to false using "0", "no", "false", or "off"
161 "yes", "true", or "on" and to false using "0", "no", "false", or "off"
162 (all case insensitive).
162 (all case insensitive).
163
163
164 List values are separated by whitespace or comma, except when values are
164 List values are separated by whitespace or comma, except when values are
165 placed in double quotation marks::
165 placed in double quotation marks::
166
166
167 allow_read = "John Doe, PhD", brian, betty
167 allow_read = "John Doe, PhD", brian, betty
168
168
169 Quotation marks can be escaped by prefixing them with a backslash. Only
169 Quotation marks can be escaped by prefixing them with a backslash. Only
170 quotation marks at the beginning of a word is counted as a quotation
170 quotation marks at the beginning of a word is counted as a quotation
171 (e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``).
171 (e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``).
172
172
173 Sections
173 Sections
174 --------
174 --------
175
175
176 This section describes the different sections that may appear in a
176 This section describes the different sections that may appear in a
177 Mercurial "hgrc" file, the purpose of each section, its possible keys,
177 Mercurial "hgrc" file, the purpose of each section, its possible keys,
178 and their possible values.
178 and their possible values.
179
179
180 ``alias``
180 ``alias``
181 """""""""
181 """""""""
182 Defines command aliases.
182 Defines command aliases.
183 Aliases allow you to define your own commands in terms of other
183 Aliases allow you to define your own commands in terms of other
184 commands (or aliases), optionally including arguments.
184 commands (or aliases), optionally including arguments.
185
185
186 Alias definitions consist of lines of the form::
186 Alias definitions consist of lines of the form::
187
187
188 <alias> = <command> [<argument]...
188 <alias> = <command> [<argument]...
189
189
190 For example, this definition::
190 For example, this definition::
191
191
192 latest = log --limit 5
192 latest = log --limit 5
193
193
194 creates a new command ``latest`` that shows only the five most recent
194 creates a new command ``latest`` that shows only the five most recent
195 changesets. You can define subsequent aliases using earlier ones::
195 changesets. You can define subsequent aliases using earlier ones::
196
196
197 stable5 = latest -b stable
197 stable5 = latest -b stable
198
198
199 .. note:: It is possible to create aliases with the same names as
199 .. note:: It is possible to create aliases with the same names as
200 existing commands, which will then override the original
200 existing commands, which will then override the original
201 definitions. This is almost always a bad idea!
201 definitions. This is almost always a bad idea!
202
202
203
203
204 ``auth``
204 ``auth``
205 """"""""
205 """"""""
206 Authentication credentials for HTTP authentication. Each line has
206 Authentication credentials for HTTP authentication. Each line has
207 the following format::
207 the following format::
208
208
209 <name>.<argument> = <value>
209 <name>.<argument> = <value>
210
210
211 where ``<name>`` is used to group arguments into authentication
211 where ``<name>`` is used to group arguments into authentication
212 entries. Example::
212 entries. Example::
213
213
214 foo.prefix = hg.intevation.org/mercurial
214 foo.prefix = hg.intevation.org/mercurial
215 foo.username = foo
215 foo.username = foo
216 foo.password = bar
216 foo.password = bar
217 foo.schemes = http https
217 foo.schemes = http https
218
218
219 bar.prefix = secure.example.org
219 bar.prefix = secure.example.org
220 bar.key = path/to/file.key
220 bar.key = path/to/file.key
221 bar.cert = path/to/file.cert
221 bar.cert = path/to/file.cert
222 bar.schemes = https
222 bar.schemes = https
223
223
224 Supported arguments:
224 Supported arguments:
225
225
226 ``prefix``
226 ``prefix``
227 Either ``*`` or a URI prefix with or without the scheme part.
227 Either ``*`` or a URI prefix with or without the scheme part.
228 The authentication entry with the longest matching prefix is used
228 The authentication entry with the longest matching prefix is used
229 (where ``*`` matches everything and counts as a match of length
229 (where ``*`` matches everything and counts as a match of length
230 1). If the prefix doesn't include a scheme, the match is performed
230 1). If the prefix doesn't include a scheme, the match is performed
231 against the URI with its scheme stripped as well, and the schemes
231 against the URI with its scheme stripped as well, and the schemes
232 argument, q.v., is then subsequently consulted.
232 argument, q.v., is then subsequently consulted.
233 ``username``
233 ``username``
234 Optional. Username to authenticate with. If not given, and the
234 Optional. Username to authenticate with. If not given, and the
235 remote site requires basic or digest authentication, the user
235 remote site requires basic or digest authentication, the user
236 will be prompted for it.
236 will be prompted for it.
237 ``password``
237 ``password``
238 Optional. Password to authenticate with. If not given, and the
238 Optional. Password to authenticate with. If not given, and the
239 remote site requires basic or digest authentication, the user
239 remote site requires basic or digest authentication, the user
240 will be prompted for it.
240 will be prompted for it.
241 ``key``
241 ``key``
242 Optional. PEM encoded client certificate key file.
242 Optional. PEM encoded client certificate key file.
243 ``cert``
243 ``cert``
244 Optional. PEM encoded client certificate chain file.
244 Optional. PEM encoded client certificate chain file.
245 ``schemes``
245 ``schemes``
246 Optional. Space separated list of URI schemes to use this
246 Optional. Space separated list of URI schemes to use this
247 authentication entry with. Only used if the prefix doesn't include
247 authentication entry with. Only used if the prefix doesn't include
248 a scheme. Supported schemes are http and https. They will match
248 a scheme. Supported schemes are http and https. They will match
249 static-http and static-https respectively, as well.
249 static-http and static-https respectively, as well.
250 Default: https.
250 Default: https.
251
251
252 If no suitable authentication entry is found, the user is prompted
252 If no suitable authentication entry is found, the user is prompted
253 for credentials as usual if required by the remote.
253 for credentials as usual if required by the remote.
254
254
255
255
256 ``decode/encode``
256 ``decode/encode``
257 """""""""""""""""
257 """""""""""""""""
258 Filters for transforming files on checkout/checkin. This would
258 Filters for transforming files on checkout/checkin. This would
259 typically be used for newline processing or other
259 typically be used for newline processing or other
260 localization/canonicalization of files.
260 localization/canonicalization of files.
261
261
262 Filters consist of a filter pattern followed by a filter command.
262 Filters consist of a filter pattern followed by a filter command.
263 Filter patterns are globs by default, rooted at the repository root.
263 Filter patterns are globs by default, rooted at the repository root.
264 For example, to match any file ending in ``.txt`` in the root
264 For example, to match any file ending in ``.txt`` in the root
265 directory only, use the pattern ``*.txt``. To match any file ending
265 directory only, use the pattern ``*.txt``. To match any file ending
266 in ``.c`` anywhere in the repository, use the pattern ``**.c``.
266 in ``.c`` anywhere in the repository, use the pattern ``**.c``.
267 For each file only the first matching filter applies.
267 For each file only the first matching filter applies.
268
268
269 The filter command can start with a specifier, either ``pipe:`` or
269 The filter command can start with a specifier, either ``pipe:`` or
270 ``tempfile:``. If no specifier is given, ``pipe:`` is used by default.
270 ``tempfile:``. If no specifier is given, ``pipe:`` is used by default.
271
271
272 A ``pipe:`` command must accept data on stdin and return the transformed
272 A ``pipe:`` command must accept data on stdin and return the transformed
273 data on stdout.
273 data on stdout.
274
274
275 Pipe example::
275 Pipe example::
276
276
277 [encode]
277 [encode]
278 # uncompress gzip files on checkin to improve delta compression
278 # uncompress gzip files on checkin to improve delta compression
279 # note: not necessarily a good idea, just an example
279 # note: not necessarily a good idea, just an example
280 *.gz = pipe: gunzip
280 *.gz = pipe: gunzip
281
281
282 [decode]
282 [decode]
283 # recompress gzip files when writing them to the working dir (we
283 # recompress gzip files when writing them to the working dir (we
284 # can safely omit "pipe:", because it's the default)
284 # can safely omit "pipe:", because it's the default)
285 *.gz = gzip
285 *.gz = gzip
286
286
287 A ``tempfile:`` command is a template. The string ``INFILE`` is replaced
287 A ``tempfile:`` command is a template. The string ``INFILE`` is replaced
288 with the name of a temporary file that contains the data to be
288 with the name of a temporary file that contains the data to be
289 filtered by the command. The string ``OUTFILE`` is replaced with the name
289 filtered by the command. The string ``OUTFILE`` is replaced with the name
290 of an empty temporary file, where the filtered data must be written by
290 of an empty temporary file, where the filtered data must be written by
291 the command.
291 the command.
292
292
293 .. note:: The tempfile mechanism is recommended for Windows systems,
293 .. note:: The tempfile mechanism is recommended for Windows systems,
294 where the standard shell I/O redirection operators often have
294 where the standard shell I/O redirection operators often have
295 strange effects and may corrupt the contents of your files.
295 strange effects and may corrupt the contents of your files.
296
296
297 The most common usage is for LF <-> CRLF translation on Windows. For
297 This filter mechanism is used internally by the ``eol`` extension to
298 this, use the "smart" converters which check for binary files::
298 translate line ending characters between Windows (CRLF) and Unix (LF)
299
299 format. We suggest you use the ``eol`` extension for convenience.
300 [extensions]
301 hgext.win32text =
302 [encode]
303 ** = cleverencode:
304 [decode]
305 ** = cleverdecode:
306
307 or if you only want to translate certain files::
308
309 [extensions]
310 hgext.win32text =
311 [encode]
312 **.txt = dumbencode:
313 [decode]
314 **.txt = dumbdecode:
315
300
316
301
317 ``defaults``
302 ``defaults``
318 """"""""""""
303 """"""""""""
319
304
320 (defaults are deprecated. Don't use them. Use aliases instead)
305 (defaults are deprecated. Don't use them. Use aliases instead)
321
306
322 Use the ``[defaults]`` section to define command defaults, i.e. the
307 Use the ``[defaults]`` section to define command defaults, i.e. the
323 default options/arguments to pass to the specified commands.
308 default options/arguments to pass to the specified commands.
324
309
325 The following example makes :hg:`log` run in verbose mode, and :hg:`hg
310 The following example makes :hg:`log` run in verbose mode, and :hg:`hg
326 status` show only the modified files, by default::
311 status` show only the modified files, by default::
327
312
328 [defaults]
313 [defaults]
329 log = -v
314 log = -v
330 status = -m
315 status = -m
331
316
332 The actual commands, instead of their aliases, must be used when
317 The actual commands, instead of their aliases, must be used when
333 defining command defaults. The command defaults will also be applied
318 defining command defaults. The command defaults will also be applied
334 to the aliases of the commands defined.
319 to the aliases of the commands defined.
335
320
336
321
337 ``diff``
322 ``diff``
338 """"""""
323 """"""""
339
324
340 Settings used when displaying diffs. They are all Boolean and
325 Settings used when displaying diffs. They are all Boolean and
341 defaults to False.
326 defaults to False.
342
327
343 ``git``
328 ``git``
344 Use git extended diff format.
329 Use git extended diff format.
345 ``nodates``
330 ``nodates``
346 Don't include dates in diff headers.
331 Don't include dates in diff headers.
347 ``showfunc``
332 ``showfunc``
348 Show which function each change is in.
333 Show which function each change is in.
349 ``ignorews``
334 ``ignorews``
350 Ignore white space when comparing lines.
335 Ignore white space when comparing lines.
351 ``ignorewsamount``
336 ``ignorewsamount``
352 Ignore changes in the amount of white space.
337 Ignore changes in the amount of white space.
353 ``ignoreblanklines``
338 ``ignoreblanklines``
354 Ignore changes whose lines are all blank.
339 Ignore changes whose lines are all blank.
355
340
356 ``email``
341 ``email``
357 """""""""
342 """""""""
358 Settings for extensions that send email messages.
343 Settings for extensions that send email messages.
359
344
360 ``from``
345 ``from``
361 Optional. Email address to use in "From" header and SMTP envelope
346 Optional. Email address to use in "From" header and SMTP envelope
362 of outgoing messages.
347 of outgoing messages.
363 ``to``
348 ``to``
364 Optional. Comma-separated list of recipients' email addresses.
349 Optional. Comma-separated list of recipients' email addresses.
365 ``cc``
350 ``cc``
366 Optional. Comma-separated list of carbon copy recipients'
351 Optional. Comma-separated list of carbon copy recipients'
367 email addresses.
352 email addresses.
368 ``bcc``
353 ``bcc``
369 Optional. Comma-separated list of blind carbon copy recipients'
354 Optional. Comma-separated list of blind carbon copy recipients'
370 email addresses.
355 email addresses.
371 ``method``
356 ``method``
372 Optional. Method to use to send email messages. If value is ``smtp``
357 Optional. Method to use to send email messages. If value is ``smtp``
373 (default), use SMTP (see the SMTP_ section for configuration).
358 (default), use SMTP (see the SMTP_ section for configuration).
374 Otherwise, use as name of program to run that acts like sendmail
359 Otherwise, use as name of program to run that acts like sendmail
375 (takes ``-f`` option for sender, list of recipients on command line,
360 (takes ``-f`` option for sender, list of recipients on command line,
376 message on stdin). Normally, setting this to ``sendmail`` or
361 message on stdin). Normally, setting this to ``sendmail`` or
377 ``/usr/sbin/sendmail`` is enough to use sendmail to send messages.
362 ``/usr/sbin/sendmail`` is enough to use sendmail to send messages.
378 ``charsets``
363 ``charsets``
379 Optional. Comma-separated list of character sets considered
364 Optional. Comma-separated list of character sets considered
380 convenient for recipients. Addresses, headers, and parts not
365 convenient for recipients. Addresses, headers, and parts not
381 containing patches of outgoing messages will be encoded in the
366 containing patches of outgoing messages will be encoded in the
382 first character set to which conversion from local encoding
367 first character set to which conversion from local encoding
383 (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct
368 (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct
384 conversion fails, the text in question is sent as is. Defaults to
369 conversion fails, the text in question is sent as is. Defaults to
385 empty (explicit) list.
370 empty (explicit) list.
386
371
387 Order of outgoing email character sets:
372 Order of outgoing email character sets:
388
373
389 1. ``us-ascii``: always first, regardless of settings
374 1. ``us-ascii``: always first, regardless of settings
390 2. ``email.charsets``: in order given by user
375 2. ``email.charsets``: in order given by user
391 3. ``ui.fallbackencoding``: if not in email.charsets
376 3. ``ui.fallbackencoding``: if not in email.charsets
392 4. ``$HGENCODING``: if not in email.charsets
377 4. ``$HGENCODING``: if not in email.charsets
393 5. ``utf-8``: always last, regardless of settings
378 5. ``utf-8``: always last, regardless of settings
394
379
395 Email example::
380 Email example::
396
381
397 [email]
382 [email]
398 from = Joseph User <joe.user@example.com>
383 from = Joseph User <joe.user@example.com>
399 method = /usr/sbin/sendmail
384 method = /usr/sbin/sendmail
400 # charsets for western Europeans
385 # charsets for western Europeans
401 # us-ascii, utf-8 omitted, as they are tried first and last
386 # us-ascii, utf-8 omitted, as they are tried first and last
402 charsets = iso-8859-1, iso-8859-15, windows-1252
387 charsets = iso-8859-1, iso-8859-15, windows-1252
403
388
404
389
405 ``extensions``
390 ``extensions``
406 """"""""""""""
391 """"""""""""""
407
392
408 Mercurial has an extension mechanism for adding new features. To
393 Mercurial has an extension mechanism for adding new features. To
409 enable an extension, create an entry for it in this section.
394 enable an extension, create an entry for it in this section.
410
395
411 If you know that the extension is already in Python's search path,
396 If you know that the extension is already in Python's search path,
412 you can give the name of the module, followed by ``=``, with nothing
397 you can give the name of the module, followed by ``=``, with nothing
413 after the ``=``.
398 after the ``=``.
414
399
415 Otherwise, give a name that you choose, followed by ``=``, followed by
400 Otherwise, give a name that you choose, followed by ``=``, followed by
416 the path to the ``.py`` file (including the file name extension) that
401 the path to the ``.py`` file (including the file name extension) that
417 defines the extension.
402 defines the extension.
418
403
419 To explicitly disable an extension that is enabled in an hgrc of
404 To explicitly disable an extension that is enabled in an hgrc of
420 broader scope, prepend its path with ``!``, as in
405 broader scope, prepend its path with ``!``, as in
421 ``hgext.foo = !/ext/path`` or ``hgext.foo = !`` when path is not
406 ``hgext.foo = !/ext/path`` or ``hgext.foo = !`` when path is not
422 supplied.
407 supplied.
423
408
424 Example for ``~/.hgrc``::
409 Example for ``~/.hgrc``::
425
410
426 [extensions]
411 [extensions]
427 # (the mq extension will get loaded from Mercurial's path)
412 # (the mq extension will get loaded from Mercurial's path)
428 hgext.mq =
413 hgext.mq =
429 # (this extension will get loaded from the file specified)
414 # (this extension will get loaded from the file specified)
430 myfeature = ~/.hgext/myfeature.py
415 myfeature = ~/.hgext/myfeature.py
431
416
432
417
433 ``format``
418 ``format``
434 """"""""""
419 """"""""""
435
420
436 ``usestore``
421 ``usestore``
437 Enable or disable the "store" repository format which improves
422 Enable or disable the "store" repository format which improves
438 compatibility with systems that fold case or otherwise mangle
423 compatibility with systems that fold case or otherwise mangle
439 filenames. Enabled by default. Disabling this option will allow
424 filenames. Enabled by default. Disabling this option will allow
440 you to store longer filenames in some situations at the expense of
425 you to store longer filenames in some situations at the expense of
441 compatibility and ensures that the on-disk format of newly created
426 compatibility and ensures that the on-disk format of newly created
442 repositories will be compatible with Mercurial before version 0.9.4.
427 repositories will be compatible with Mercurial before version 0.9.4.
443
428
444 ``usefncache``
429 ``usefncache``
445 Enable or disable the "fncache" repository format which enhances
430 Enable or disable the "fncache" repository format which enhances
446 the "store" repository format (which has to be enabled to use
431 the "store" repository format (which has to be enabled to use
447 fncache) to allow longer filenames and avoids using Windows
432 fncache) to allow longer filenames and avoids using Windows
448 reserved names, e.g. "nul". Enabled by default. Disabling this
433 reserved names, e.g. "nul". Enabled by default. Disabling this
449 option ensures that the on-disk format of newly created
434 option ensures that the on-disk format of newly created
450 repositories will be compatible with Mercurial before version 1.1.
435 repositories will be compatible with Mercurial before version 1.1.
451
436
452 ``merge-patterns``
437 ``merge-patterns``
453 """"""""""""""""""
438 """"""""""""""""""
454
439
455 This section specifies merge tools to associate with particular file
440 This section specifies merge tools to associate with particular file
456 patterns. Tools matched here will take precedence over the default
441 patterns. Tools matched here will take precedence over the default
457 merge tool. Patterns are globs by default, rooted at the repository
442 merge tool. Patterns are globs by default, rooted at the repository
458 root.
443 root.
459
444
460 Example::
445 Example::
461
446
462 [merge-patterns]
447 [merge-patterns]
463 **.c = kdiff3
448 **.c = kdiff3
464 **.jpg = myimgmerge
449 **.jpg = myimgmerge
465
450
466 ``merge-tools``
451 ``merge-tools``
467 """""""""""""""
452 """""""""""""""
468
453
469 This section configures external merge tools to use for file-level
454 This section configures external merge tools to use for file-level
470 merges.
455 merges.
471
456
472 Example ``~/.hgrc``::
457 Example ``~/.hgrc``::
473
458
474 [merge-tools]
459 [merge-tools]
475 # Override stock tool location
460 # Override stock tool location
476 kdiff3.executable = ~/bin/kdiff3
461 kdiff3.executable = ~/bin/kdiff3
477 # Specify command line
462 # Specify command line
478 kdiff3.args = $base $local $other -o $output
463 kdiff3.args = $base $local $other -o $output
479 # Give higher priority
464 # Give higher priority
480 kdiff3.priority = 1
465 kdiff3.priority = 1
481
466
482 # Define new tool
467 # Define new tool
483 myHtmlTool.args = -m $local $other $base $output
468 myHtmlTool.args = -m $local $other $base $output
484 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
469 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
485 myHtmlTool.priority = 1
470 myHtmlTool.priority = 1
486
471
487 Supported arguments:
472 Supported arguments:
488
473
489 ``priority``
474 ``priority``
490 The priority in which to evaluate this tool.
475 The priority in which to evaluate this tool.
491 Default: 0.
476 Default: 0.
492 ``executable``
477 ``executable``
493 Either just the name of the executable or its pathname. On Windows,
478 Either just the name of the executable or its pathname. On Windows,
494 the path can use environment variables with ${ProgramFiles} syntax.
479 the path can use environment variables with ${ProgramFiles} syntax.
495 Default: the tool name.
480 Default: the tool name.
496 ``args``
481 ``args``
497 The arguments to pass to the tool executable. You can refer to the
482 The arguments to pass to the tool executable. You can refer to the
498 files being merged as well as the output file through these
483 files being merged as well as the output file through these
499 variables: ``$base``, ``$local``, ``$other``, ``$output``.
484 variables: ``$base``, ``$local``, ``$other``, ``$output``.
500 Default: ``$local $base $other``
485 Default: ``$local $base $other``
501 ``premerge``
486 ``premerge``
502 Attempt to run internal non-interactive 3-way merge tool before
487 Attempt to run internal non-interactive 3-way merge tool before
503 launching external tool. Options are ``true``, ``false``, or ``keep``
488 launching external tool. Options are ``true``, ``false``, or ``keep``
504 to leave markers in the file if the premerge fails.
489 to leave markers in the file if the premerge fails.
505 Default: True
490 Default: True
506 ``binary``
491 ``binary``
507 This tool can merge binary files. Defaults to False, unless tool
492 This tool can merge binary files. Defaults to False, unless tool
508 was selected by file pattern match.
493 was selected by file pattern match.
509 ``symlink``
494 ``symlink``
510 This tool can merge symlinks. Defaults to False, even if tool was
495 This tool can merge symlinks. Defaults to False, even if tool was
511 selected by file pattern match.
496 selected by file pattern match.
512 ``check``
497 ``check``
513 A list of merge success-checking options:
498 A list of merge success-checking options:
514
499
515 ``changed``
500 ``changed``
516 Ask whether merge was successful when the merged file shows no changes.
501 Ask whether merge was successful when the merged file shows no changes.
517 ``conflicts``
502 ``conflicts``
518 Check whether there are conflicts even though the tool reported success.
503 Check whether there are conflicts even though the tool reported success.
519 ``prompt``
504 ``prompt``
520 Always prompt for merge success, regardless of success reported by tool.
505 Always prompt for merge success, regardless of success reported by tool.
521
506
522 ``checkchanged``
507 ``checkchanged``
523 True is equivalent to ``check = changed``.
508 True is equivalent to ``check = changed``.
524 Default: False
509 Default: False
525 ``checkconflicts``
510 ``checkconflicts``
526 True is equivalent to ``check = conflicts``.
511 True is equivalent to ``check = conflicts``.
527 Default: False
512 Default: False
528 ``fixeol``
513 ``fixeol``
529 Attempt to fix up EOL changes caused by the merge tool.
514 Attempt to fix up EOL changes caused by the merge tool.
530 Default: False
515 Default: False
531 ``gui``
516 ``gui``
532 This tool requires a graphical interface to run. Default: False
517 This tool requires a graphical interface to run. Default: False
533 ``regkey``
518 ``regkey``
534 Windows registry key which describes install location of this
519 Windows registry key which describes install location of this
535 tool. Mercurial will search for this key first under
520 tool. Mercurial will search for this key first under
536 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
521 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
537 Default: None
522 Default: None
538 ``regname``
523 ``regname``
539 Name of value to read from specified registry key. Defaults to the
524 Name of value to read from specified registry key. Defaults to the
540 unnamed (default) value.
525 unnamed (default) value.
541 ``regappend``
526 ``regappend``
542 String to append to the value read from the registry, typically
527 String to append to the value read from the registry, typically
543 the executable name of the tool.
528 the executable name of the tool.
544 Default: None
529 Default: None
545
530
546
531
547 ``hooks``
532 ``hooks``
548 """""""""
533 """""""""
549 Commands or Python functions that get automatically executed by
534 Commands or Python functions that get automatically executed by
550 various actions such as starting or finishing a commit. Multiple
535 various actions such as starting or finishing a commit. Multiple
551 hooks can be run for the same action by appending a suffix to the
536 hooks can be run for the same action by appending a suffix to the
552 action. Overriding a site-wide hook can be done by changing its
537 action. Overriding a site-wide hook can be done by changing its
553 value or setting it to an empty string.
538 value or setting it to an empty string.
554
539
555 Example ``.hg/hgrc``::
540 Example ``.hg/hgrc``::
556
541
557 [hooks]
542 [hooks]
558 # update working directory after adding changesets
543 # update working directory after adding changesets
559 changegroup.update = hg update
544 changegroup.update = hg update
560 # do not use the site-wide hook
545 # do not use the site-wide hook
561 incoming =
546 incoming =
562 incoming.email = /my/email/hook
547 incoming.email = /my/email/hook
563 incoming.autobuild = /my/build/hook
548 incoming.autobuild = /my/build/hook
564
549
565 Most hooks are run with environment variables set that give useful
550 Most hooks are run with environment variables set that give useful
566 additional information. For each hook below, the environment
551 additional information. For each hook below, the environment
567 variables it is passed are listed with names of the form ``$HG_foo``.
552 variables it is passed are listed with names of the form ``$HG_foo``.
568
553
569 ``changegroup``
554 ``changegroup``
570 Run after a changegroup has been added via push, pull or unbundle.
555 Run after a changegroup has been added via push, pull or unbundle.
571 ID of the first new changeset is in ``$HG_NODE``. URL from which
556 ID of the first new changeset is in ``$HG_NODE``. URL from which
572 changes came is in ``$HG_URL``.
557 changes came is in ``$HG_URL``.
573 ``commit``
558 ``commit``
574 Run after a changeset has been created in the local repository. ID
559 Run after a changeset has been created in the local repository. ID
575 of the newly created changeset is in ``$HG_NODE``. Parent changeset
560 of the newly created changeset is in ``$HG_NODE``. Parent changeset
576 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
561 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
577 ``incoming``
562 ``incoming``
578 Run after a changeset has been pulled, pushed, or unbundled into
563 Run after a changeset has been pulled, pushed, or unbundled into
579 the local repository. The ID of the newly arrived changeset is in
564 the local repository. The ID of the newly arrived changeset is in
580 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
565 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
581 ``outgoing``
566 ``outgoing``
582 Run after sending changes from local repository to another. ID of
567 Run after sending changes from local repository to another. ID of
583 first changeset sent is in ``$HG_NODE``. Source of operation is in
568 first changeset sent is in ``$HG_NODE``. Source of operation is in
584 ``$HG_SOURCE``; see "preoutgoing" hook for description.
569 ``$HG_SOURCE``; see "preoutgoing" hook for description.
585 ``post-<command>``
570 ``post-<command>``
586 Run after successful invocations of the associated command. The
571 Run after successful invocations of the associated command. The
587 contents of the command line are passed as ``$HG_ARGS`` and the result
572 contents of the command line are passed as ``$HG_ARGS`` and the result
588 code in ``$HG_RESULT``. Hook failure is ignored.
573 code in ``$HG_RESULT``. Hook failure is ignored.
589 ``pre-<command>``
574 ``pre-<command>``
590 Run before executing the associated command. The contents of the
575 Run before executing the associated command. The contents of the
591 command line are passed as ``$HG_ARGS``. If the hook returns failure,
576 command line are passed as ``$HG_ARGS``. If the hook returns failure,
592 the command doesn't execute and Mercurial returns the failure
577 the command doesn't execute and Mercurial returns the failure
593 code.
578 code.
594 ``prechangegroup``
579 ``prechangegroup``
595 Run before a changegroup is added via push, pull or unbundle. Exit
580 Run before a changegroup is added via push, pull or unbundle. Exit
596 status 0 allows the changegroup to proceed. Non-zero status will
581 status 0 allows the changegroup to proceed. Non-zero status will
597 cause the push, pull or unbundle to fail. URL from which changes
582 cause the push, pull or unbundle to fail. URL from which changes
598 will come is in ``$HG_URL``.
583 will come is in ``$HG_URL``.
599 ``precommit``
584 ``precommit``
600 Run before starting a local commit. Exit status 0 allows the
585 Run before starting a local commit. Exit status 0 allows the
601 commit to proceed. Non-zero status will cause the commit to fail.
586 commit to proceed. Non-zero status will cause the commit to fail.
602 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
587 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
603 ``preoutgoing``
588 ``preoutgoing``
604 Run before collecting changes to send from the local repository to
589 Run before collecting changes to send from the local repository to
605 another. Non-zero status will cause failure. This lets you prevent
590 another. Non-zero status will cause failure. This lets you prevent
606 pull over HTTP or SSH. Also prevents against local pull, push
591 pull over HTTP or SSH. Also prevents against local pull, push
607 (outbound) or bundle commands, but not effective, since you can
592 (outbound) or bundle commands, but not effective, since you can
608 just copy files instead then. Source of operation is in
593 just copy files instead then. Source of operation is in
609 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
594 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
610 SSH or HTTP repository. If "push", "pull" or "bundle", operation
595 SSH or HTTP repository. If "push", "pull" or "bundle", operation
611 is happening on behalf of repository on same system.
596 is happening on behalf of repository on same system.
612 ``pretag``
597 ``pretag``
613 Run before creating a tag. Exit status 0 allows the tag to be
598 Run before creating a tag. Exit status 0 allows the tag to be
614 created. Non-zero status will cause the tag to fail. ID of
599 created. Non-zero status will cause the tag to fail. ID of
615 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
600 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
616 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
601 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
617 ``pretxnchangegroup``
602 ``pretxnchangegroup``
618 Run after a changegroup has been added via push, pull or unbundle,
603 Run after a changegroup has been added via push, pull or unbundle,
619 but before the transaction has been committed. Changegroup is
604 but before the transaction has been committed. Changegroup is
620 visible to hook program. This lets you validate incoming changes
605 visible to hook program. This lets you validate incoming changes
621 before accepting them. Passed the ID of the first new changeset in
606 before accepting them. Passed the ID of the first new changeset in
622 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
607 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
623 status will cause the transaction to be rolled back and the push,
608 status will cause the transaction to be rolled back and the push,
624 pull or unbundle will fail. URL that was source of changes is in
609 pull or unbundle will fail. URL that was source of changes is in
625 ``$HG_URL``.
610 ``$HG_URL``.
626 ``pretxncommit``
611 ``pretxncommit``
627 Run after a changeset has been created but the transaction not yet
612 Run after a changeset has been created but the transaction not yet
628 committed. Changeset is visible to hook program. This lets you
613 committed. Changeset is visible to hook program. This lets you
629 validate commit message and changes. Exit status 0 allows the
614 validate commit message and changes. Exit status 0 allows the
630 commit to proceed. Non-zero status will cause the transaction to
615 commit to proceed. Non-zero status will cause the transaction to
631 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
616 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
632 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
617 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
633 ``preupdate``
618 ``preupdate``
634 Run before updating the working directory. Exit status 0 allows
619 Run before updating the working directory. Exit status 0 allows
635 the update to proceed. Non-zero status will prevent the update.
620 the update to proceed. Non-zero status will prevent the update.
636 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
621 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
637 of second new parent is in ``$HG_PARENT2``.
622 of second new parent is in ``$HG_PARENT2``.
638 ``tag``
623 ``tag``
639 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
624 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
640 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
625 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
641 repository if ``$HG_LOCAL=0``.
626 repository if ``$HG_LOCAL=0``.
642 ``update``
627 ``update``
643 Run after updating the working directory. Changeset ID of first
628 Run after updating the working directory. Changeset ID of first
644 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
629 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
645 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
630 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
646 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
631 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
647
632
648 .. note:: It is generally better to use standard hooks rather than the
633 .. note:: It is generally better to use standard hooks rather than the
649 generic pre- and post- command hooks as they are guaranteed to be
634 generic pre- and post- command hooks as they are guaranteed to be
650 called in the appropriate contexts for influencing transactions.
635 called in the appropriate contexts for influencing transactions.
651 Also, hooks like "commit" will be called in all contexts that
636 Also, hooks like "commit" will be called in all contexts that
652 generate a commit (e.g. tag) and not just the commit command.
637 generate a commit (e.g. tag) and not just the commit command.
653
638
654 .. note:: Environment variables with empty values may not be passed to
639 .. note:: Environment variables with empty values may not be passed to
655 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
640 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
656 will have an empty value under Unix-like platforms for non-merge
641 will have an empty value under Unix-like platforms for non-merge
657 changesets, while it will not be available at all under Windows.
642 changesets, while it will not be available at all under Windows.
658
643
659 The syntax for Python hooks is as follows::
644 The syntax for Python hooks is as follows::
660
645
661 hookname = python:modulename.submodule.callable
646 hookname = python:modulename.submodule.callable
662 hookname = python:/path/to/python/module.py:callable
647 hookname = python:/path/to/python/module.py:callable
663
648
664 Python hooks are run within the Mercurial process. Each hook is
649 Python hooks are run within the Mercurial process. Each hook is
665 called with at least three keyword arguments: a ui object (keyword
650 called with at least three keyword arguments: a ui object (keyword
666 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
651 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
667 keyword that tells what kind of hook is used. Arguments listed as
652 keyword that tells what kind of hook is used. Arguments listed as
668 environment variables above are passed as keyword arguments, with no
653 environment variables above are passed as keyword arguments, with no
669 ``HG_`` prefix, and names in lower case.
654 ``HG_`` prefix, and names in lower case.
670
655
671 If a Python hook returns a "true" value or raises an exception, this
656 If a Python hook returns a "true" value or raises an exception, this
672 is treated as a failure.
657 is treated as a failure.
673
658
674
659
675 ``http_proxy``
660 ``http_proxy``
676 """"""""""""""
661 """"""""""""""
677 Used to access web-based Mercurial repositories through a HTTP
662 Used to access web-based Mercurial repositories through a HTTP
678 proxy.
663 proxy.
679
664
680 ``host``
665 ``host``
681 Host name and (optional) port of the proxy server, for example
666 Host name and (optional) port of the proxy server, for example
682 "myproxy:8000".
667 "myproxy:8000".
683 ``no``
668 ``no``
684 Optional. Comma-separated list of host names that should bypass
669 Optional. Comma-separated list of host names that should bypass
685 the proxy.
670 the proxy.
686 ``passwd``
671 ``passwd``
687 Optional. Password to authenticate with at the proxy server.
672 Optional. Password to authenticate with at the proxy server.
688 ``user``
673 ``user``
689 Optional. User name to authenticate with at the proxy server.
674 Optional. User name to authenticate with at the proxy server.
690 ``always``
675 ``always``
691 Optional. Always use the proxy, even for localhost and any entries
676 Optional. Always use the proxy, even for localhost and any entries
692 in ``http_proxy.no``. True or False. Default: False.
677 in ``http_proxy.no``. True or False. Default: False.
693
678
694 ``smtp``
679 ``smtp``
695 """"""""
680 """"""""
696 Configuration for extensions that need to send email messages.
681 Configuration for extensions that need to send email messages.
697
682
698 ``host``
683 ``host``
699 Host name of mail server, e.g. "mail.example.com".
684 Host name of mail server, e.g. "mail.example.com".
700 ``port``
685 ``port``
701 Optional. Port to connect to on mail server. Default: 25.
686 Optional. Port to connect to on mail server. Default: 25.
702 ``tls``
687 ``tls``
703 Optional. Whether to connect to mail server using TLS. True or
688 Optional. Whether to connect to mail server using TLS. True or
704 False. Default: False.
689 False. Default: False.
705 ``username``
690 ``username``
706 Optional. User name to authenticate to SMTP server with. If
691 Optional. User name to authenticate to SMTP server with. If
707 username is specified, password must also be specified.
692 username is specified, password must also be specified.
708 Default: none.
693 Default: none.
709 ``password``
694 ``password``
710 Optional. Password to authenticate to SMTP server with. If
695 Optional. Password to authenticate to SMTP server with. If
711 username is specified, password must also be specified.
696 username is specified, password must also be specified.
712 Default: none.
697 Default: none.
713 ``local_hostname``
698 ``local_hostname``
714 Optional. It's the hostname that the sender can use to identify
699 Optional. It's the hostname that the sender can use to identify
715 itself to the MTA.
700 itself to the MTA.
716
701
717
702
718 ``patch``
703 ``patch``
719 """""""""
704 """""""""
720 Settings used when applying patches, for instance through the 'import'
705 Settings used when applying patches, for instance through the 'import'
721 command or with Mercurial Queues extension.
706 command or with Mercurial Queues extension.
722
707
723 ``eol``
708 ``eol``
724 When set to 'strict' patch content and patched files end of lines
709 When set to 'strict' patch content and patched files end of lines
725 are preserved. When set to ``lf`` or ``crlf``, both files end of
710 are preserved. When set to ``lf`` or ``crlf``, both files end of
726 lines are ignored when patching and the result line endings are
711 lines are ignored when patching and the result line endings are
727 normalized to either LF (Unix) or CRLF (Windows). When set to
712 normalized to either LF (Unix) or CRLF (Windows). When set to
728 ``auto``, end of lines are again ignored while patching but line
713 ``auto``, end of lines are again ignored while patching but line
729 endings in patched files are normalized to their original setting
714 endings in patched files are normalized to their original setting
730 on a per-file basis. If target file does not exist or has no end
715 on a per-file basis. If target file does not exist or has no end
731 of line, patch line endings are preserved.
716 of line, patch line endings are preserved.
732 Default: strict.
717 Default: strict.
733
718
734
719
735 ``paths``
720 ``paths``
736 """""""""
721 """""""""
737 Assigns symbolic names to repositories. The left side is the
722 Assigns symbolic names to repositories. The left side is the
738 symbolic name, and the right gives the directory or URL that is the
723 symbolic name, and the right gives the directory or URL that is the
739 location of the repository. Default paths can be declared by setting
724 location of the repository. Default paths can be declared by setting
740 the following entries.
725 the following entries.
741
726
742 ``default``
727 ``default``
743 Directory or URL to use when pulling if no source is specified.
728 Directory or URL to use when pulling if no source is specified.
744 Default is set to repository from which the current repository was
729 Default is set to repository from which the current repository was
745 cloned.
730 cloned.
746 ``default-push``
731 ``default-push``
747 Optional. Directory or URL to use when pushing if no destination
732 Optional. Directory or URL to use when pushing if no destination
748 is specified.
733 is specified.
749
734
750
735
751 ``profiling``
736 ``profiling``
752 """""""""""""
737 """""""""""""
753 Specifies profiling format and file output. In this section
738 Specifies profiling format and file output. In this section
754 description, 'profiling data' stands for the raw data collected
739 description, 'profiling data' stands for the raw data collected
755 during profiling, while 'profiling report' stands for a statistical
740 during profiling, while 'profiling report' stands for a statistical
756 text report generated from the profiling data. The profiling is done
741 text report generated from the profiling data. The profiling is done
757 using lsprof.
742 using lsprof.
758
743
759 ``format``
744 ``format``
760 Profiling format.
745 Profiling format.
761 Default: text.
746 Default: text.
762
747
763 ``text``
748 ``text``
764 Generate a profiling report. When saving to a file, it should be
749 Generate a profiling report. When saving to a file, it should be
765 noted that only the report is saved, and the profiling data is
750 noted that only the report is saved, and the profiling data is
766 not kept.
751 not kept.
767 ``kcachegrind``
752 ``kcachegrind``
768 Format profiling data for kcachegrind use: when saving to a
753 Format profiling data for kcachegrind use: when saving to a
769 file, the generated file can directly be loaded into
754 file, the generated file can directly be loaded into
770 kcachegrind.
755 kcachegrind.
771 ``output``
756 ``output``
772 File path where profiling data or report should be saved. If the
757 File path where profiling data or report should be saved. If the
773 file exists, it is replaced. Default: None, data is printed on
758 file exists, it is replaced. Default: None, data is printed on
774 stderr
759 stderr
775
760
776 ``server``
761 ``server``
777 """"""""""
762 """"""""""
778 Controls generic server settings.
763 Controls generic server settings.
779
764
780 ``uncompressed``
765 ``uncompressed``
781 Whether to allow clients to clone a repository using the
766 Whether to allow clients to clone a repository using the
782 uncompressed streaming protocol. This transfers about 40% more
767 uncompressed streaming protocol. This transfers about 40% more
783 data than a regular clone, but uses less memory and CPU on both
768 data than a regular clone, but uses less memory and CPU on both
784 server and client. Over a LAN (100 Mbps or better) or a very fast
769 server and client. Over a LAN (100 Mbps or better) or a very fast
785 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
770 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
786 regular clone. Over most WAN connections (anything slower than
771 regular clone. Over most WAN connections (anything slower than
787 about 6 Mbps), uncompressed streaming is slower, because of the
772 about 6 Mbps), uncompressed streaming is slower, because of the
788 extra data transfer overhead. This mode will also temporarily hold
773 extra data transfer overhead. This mode will also temporarily hold
789 the write lock while determining what data to transfer.
774 the write lock while determining what data to transfer.
790 Default is True.
775 Default is True.
791
776
792 ``validate``
777 ``validate``
793 Whether to validate the completeness of pushed changesets by
778 Whether to validate the completeness of pushed changesets by
794 checking that all new file revisions specified in manifests are
779 checking that all new file revisions specified in manifests are
795 present. Default is False.
780 present. Default is False.
796
781
797 ``trusted``
782 ``trusted``
798 """""""""""
783 """""""""""
799 For security reasons, Mercurial will not use the settings in the
784 For security reasons, Mercurial will not use the settings in the
800 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
785 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
801 user or to a trusted group. The main exception is the web interface,
786 user or to a trusted group. The main exception is the web interface,
802 which automatically uses some safe settings, since it's common to
787 which automatically uses some safe settings, since it's common to
803 serve repositories from different users.
788 serve repositories from different users.
804
789
805 This section specifies what users and groups are trusted. The
790 This section specifies what users and groups are trusted. The
806 current user is always trusted. To trust everybody, list a user or a
791 current user is always trusted. To trust everybody, list a user or a
807 group with name ``*``.
792 group with name ``*``.
808
793
809 ``users``
794 ``users``
810 Comma-separated list of trusted users.
795 Comma-separated list of trusted users.
811 ``groups``
796 ``groups``
812 Comma-separated list of trusted groups.
797 Comma-separated list of trusted groups.
813
798
814
799
815 ``ui``
800 ``ui``
816 """"""
801 """"""
817
802
818 User interface controls.
803 User interface controls.
819
804
820 ``archivemeta``
805 ``archivemeta``
821 Whether to include the .hg_archival.txt file containing meta data
806 Whether to include the .hg_archival.txt file containing meta data
822 (hashes for the repository base and for tip) in archives created
807 (hashes for the repository base and for tip) in archives created
823 by the :hg:`archive` command or downloaded via hgweb.
808 by the :hg:`archive` command or downloaded via hgweb.
824 Default is True.
809 Default is True.
825 ``askusername``
810 ``askusername``
826 Whether to prompt for a username when committing. If True, and
811 Whether to prompt for a username when committing. If True, and
827 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
812 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
828 be prompted to enter a username. If no username is entered, the
813 be prompted to enter a username. If no username is entered, the
829 default ``USER@HOST`` is used instead.
814 default ``USER@HOST`` is used instead.
830 Default is False.
815 Default is False.
831 ``debug``
816 ``debug``
832 Print debugging information. True or False. Default is False.
817 Print debugging information. True or False. Default is False.
833 ``editor``
818 ``editor``
834 The editor to use during a commit. Default is ``$EDITOR`` or ``vi``.
819 The editor to use during a commit. Default is ``$EDITOR`` or ``vi``.
835 ``fallbackencoding``
820 ``fallbackencoding``
836 Encoding to try if it's not possible to decode the changelog using
821 Encoding to try if it's not possible to decode the changelog using
837 UTF-8. Default is ISO-8859-1.
822 UTF-8. Default is ISO-8859-1.
838 ``ignore``
823 ``ignore``
839 A file to read per-user ignore patterns from. This file should be
824 A file to read per-user ignore patterns from. This file should be
840 in the same format as a repository-wide .hgignore file. This
825 in the same format as a repository-wide .hgignore file. This
841 option supports hook syntax, so if you want to specify multiple
826 option supports hook syntax, so if you want to specify multiple
842 ignore files, you can do so by setting something like
827 ignore files, you can do so by setting something like
843 ``ignore.other = ~/.hgignore2``. For details of the ignore file
828 ``ignore.other = ~/.hgignore2``. For details of the ignore file
844 format, see the |hgignore(5)|_ man page.
829 format, see the |hgignore(5)|_ man page.
845 ``interactive``
830 ``interactive``
846 Allow to prompt the user. True or False. Default is True.
831 Allow to prompt the user. True or False. Default is True.
847 ``logtemplate``
832 ``logtemplate``
848 Template string for commands that print changesets.
833 Template string for commands that print changesets.
849 ``merge``
834 ``merge``
850 The conflict resolution program to use during a manual merge.
835 The conflict resolution program to use during a manual merge.
851 There are some internal tools available:
836 There are some internal tools available:
852
837
853 ``internal:local``
838 ``internal:local``
854 keep the local version
839 keep the local version
855 ``internal:other``
840 ``internal:other``
856 use the other version
841 use the other version
857 ``internal:merge``
842 ``internal:merge``
858 use the internal non-interactive merge tool
843 use the internal non-interactive merge tool
859 ``internal:fail``
844 ``internal:fail``
860 fail to merge
845 fail to merge
861
846
862 For more information on configuring merge tools see the
847 For more information on configuring merge tools see the
863 merge-tools_ section.
848 merge-tools_ section.
864
849
865 ``patch``
850 ``patch``
866 command to use to apply patches. Look for ``gpatch`` or ``patch`` in
851 command to use to apply patches. Look for ``gpatch`` or ``patch`` in
867 PATH if unset.
852 PATH if unset.
868 ``quiet``
853 ``quiet``
869 Reduce the amount of output printed. True or False. Default is False.
854 Reduce the amount of output printed. True or False. Default is False.
870 ``remotecmd``
855 ``remotecmd``
871 remote command to use for clone/push/pull operations. Default is ``hg``.
856 remote command to use for clone/push/pull operations. Default is ``hg``.
872 ``report_untrusted``
857 ``report_untrusted``
873 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
858 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
874 trusted user or group. True or False. Default is True.
859 trusted user or group. True or False. Default is True.
875 ``slash``
860 ``slash``
876 Display paths using a slash (``/``) as the path separator. This
861 Display paths using a slash (``/``) as the path separator. This
877 only makes a difference on systems where the default path
862 only makes a difference on systems where the default path
878 separator is not the slash character (e.g. Windows uses the
863 separator is not the slash character (e.g. Windows uses the
879 backslash character (``\``)).
864 backslash character (``\``)).
880 Default is False.
865 Default is False.
881 ``ssh``
866 ``ssh``
882 command to use for SSH connections. Default is ``ssh``.
867 command to use for SSH connections. Default is ``ssh``.
883 ``strict``
868 ``strict``
884 Require exact command names, instead of allowing unambiguous
869 Require exact command names, instead of allowing unambiguous
885 abbreviations. True or False. Default is False.
870 abbreviations. True or False. Default is False.
886 ``style``
871 ``style``
887 Name of style to use for command output.
872 Name of style to use for command output.
888 ``timeout``
873 ``timeout``
889 The timeout used when a lock is held (in seconds), a negative value
874 The timeout used when a lock is held (in seconds), a negative value
890 means no timeout. Default is 600.
875 means no timeout. Default is 600.
891 ``traceback``
876 ``traceback``
892 Mercurial always prints a traceback when an unknown exception
877 Mercurial always prints a traceback when an unknown exception
893 occurs. Setting this to True will make Mercurial print a traceback
878 occurs. Setting this to True will make Mercurial print a traceback
894 on all exceptions, even those recognized by Mercurial (such as
879 on all exceptions, even those recognized by Mercurial (such as
895 IOError or MemoryError). Default is False.
880 IOError or MemoryError). Default is False.
896 ``username``
881 ``username``
897 The committer of a changeset created when running "commit".
882 The committer of a changeset created when running "commit".
898 Typically a person's name and email address, e.g. ``Fred Widget
883 Typically a person's name and email address, e.g. ``Fred Widget
899 <fred@example.com>``. Default is ``$EMAIL`` or ``username@hostname``. If
884 <fred@example.com>``. Default is ``$EMAIL`` or ``username@hostname``. If
900 the username in hgrc is empty, it has to be specified manually or
885 the username in hgrc is empty, it has to be specified manually or
901 in a different hgrc file (e.g. ``$HOME/.hgrc``, if the admin set
886 in a different hgrc file (e.g. ``$HOME/.hgrc``, if the admin set
902 ``username =`` in the system hgrc). Environment variables in the
887 ``username =`` in the system hgrc). Environment variables in the
903 username are expanded.
888 username are expanded.
904 ``verbose``
889 ``verbose``
905 Increase the amount of output printed. True or False. Default is False.
890 Increase the amount of output printed. True or False. Default is False.
906
891
907
892
908 ``web``
893 ``web``
909 """""""
894 """""""
910 Web interface configuration.
895 Web interface configuration.
911
896
912 ``accesslog``
897 ``accesslog``
913 Where to output the access log. Default is stdout.
898 Where to output the access log. Default is stdout.
914 ``address``
899 ``address``
915 Interface address to bind to. Default is all.
900 Interface address to bind to. Default is all.
916 ``allow_archive``
901 ``allow_archive``
917 List of archive format (bz2, gz, zip) allowed for downloading.
902 List of archive format (bz2, gz, zip) allowed for downloading.
918 Default is empty.
903 Default is empty.
919 ``allowbz2``
904 ``allowbz2``
920 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
905 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
921 revisions.
906 revisions.
922 Default is False.
907 Default is False.
923 ``allowgz``
908 ``allowgz``
924 (DEPRECATED) Whether to allow .tar.gz downloading of repository
909 (DEPRECATED) Whether to allow .tar.gz downloading of repository
925 revisions.
910 revisions.
926 Default is False.
911 Default is False.
927 ``allowpull``
912 ``allowpull``
928 Whether to allow pulling from the repository. Default is True.
913 Whether to allow pulling from the repository. Default is True.
929 ``allow_push``
914 ``allow_push``
930 Whether to allow pushing to the repository. If empty or not set,
915 Whether to allow pushing to the repository. If empty or not set,
931 push is not allowed. If the special value ``*``, any remote user can
916 push is not allowed. If the special value ``*``, any remote user can
932 push, including unauthenticated users. Otherwise, the remote user
917 push, including unauthenticated users. Otherwise, the remote user
933 must have been authenticated, and the authenticated user name must
918 must have been authenticated, and the authenticated user name must
934 be present in this list. The contents of the allow_push list are
919 be present in this list. The contents of the allow_push list are
935 examined after the deny_push list.
920 examined after the deny_push list.
936 ``allow_read``
921 ``allow_read``
937 If the user has not already been denied repository access due to
922 If the user has not already been denied repository access due to
938 the contents of deny_read, this list determines whether to grant
923 the contents of deny_read, this list determines whether to grant
939 repository access to the user. If this list is not empty, and the
924 repository access to the user. If this list is not empty, and the
940 user is unauthenticated or not present in the list, then access is
925 user is unauthenticated or not present in the list, then access is
941 denied for the user. If the list is empty or not set, then access
926 denied for the user. If the list is empty or not set, then access
942 is permitted to all users by default. Setting allow_read to the
927 is permitted to all users by default. Setting allow_read to the
943 special value ``*`` is equivalent to it not being set (i.e. access
928 special value ``*`` is equivalent to it not being set (i.e. access
944 is permitted to all users). The contents of the allow_read list are
929 is permitted to all users). The contents of the allow_read list are
945 examined after the deny_read list.
930 examined after the deny_read list.
946 ``allowzip``
931 ``allowzip``
947 (DEPRECATED) Whether to allow .zip downloading of repository
932 (DEPRECATED) Whether to allow .zip downloading of repository
948 revisions. Default is False. This feature creates temporary files.
933 revisions. Default is False. This feature creates temporary files.
949 ``baseurl``
934 ``baseurl``
950 Base URL to use when publishing URLs in other locations, so
935 Base URL to use when publishing URLs in other locations, so
951 third-party tools like email notification hooks can construct
936 third-party tools like email notification hooks can construct
952 URLs. Example: ``http://hgserver/repos/``.
937 URLs. Example: ``http://hgserver/repos/``.
953 ``cacerts``
938 ``cacerts``
954 Path to file containing a list of PEM encoded certificate authorities
939 Path to file containing a list of PEM encoded certificate authorities
955 that may be used to verify an SSL server's identity. The form must be
940 that may be used to verify an SSL server's identity. The form must be
956 as follows::
941 as follows::
957
942
958 -----BEGIN CERTIFICATE-----
943 -----BEGIN CERTIFICATE-----
959 ... (certificate in base64 PEM encoding) ...
944 ... (certificate in base64 PEM encoding) ...
960 -----END CERTIFICATE-----
945 -----END CERTIFICATE-----
961 -----BEGIN CERTIFICATE-----
946 -----BEGIN CERTIFICATE-----
962 ... (certificate in base64 PEM encoding) ...
947 ... (certificate in base64 PEM encoding) ...
963 -----END CERTIFICATE-----
948 -----END CERTIFICATE-----
964
949
965 This feature is only supported when using Python 2.6. If you wish to
950 This feature is only supported when using Python 2.6. If you wish to
966 use it with earlier versions of Python, install the backported
951 use it with earlier versions of Python, install the backported
967 version of the ssl library that is available from
952 version of the ssl library that is available from
968 ``http://pypi.python.org``.
953 ``http://pypi.python.org``.
969
954
970 You can use OpenSSL's CA certificate file if your platform has one.
955 You can use OpenSSL's CA certificate file if your platform has one.
971 On most Linux systems this will be ``/etc/ssl/certs/ca-certificates.crt``.
956 On most Linux systems this will be ``/etc/ssl/certs/ca-certificates.crt``.
972 Otherwise you will have to generate this file manually.
957 Otherwise you will have to generate this file manually.
973 ``contact``
958 ``contact``
974 Name or email address of the person in charge of the repository.
959 Name or email address of the person in charge of the repository.
975 Defaults to ui.username or ``$EMAIL`` or "unknown" if unset or empty.
960 Defaults to ui.username or ``$EMAIL`` or "unknown" if unset or empty.
976 ``deny_push``
961 ``deny_push``
977 Whether to deny pushing to the repository. If empty or not set,
962 Whether to deny pushing to the repository. If empty or not set,
978 push is not denied. If the special value ``*``, all remote users are
963 push is not denied. If the special value ``*``, all remote users are
979 denied push. Otherwise, unauthenticated users are all denied, and
964 denied push. Otherwise, unauthenticated users are all denied, and
980 any authenticated user name present in this list is also denied. The
965 any authenticated user name present in this list is also denied. The
981 contents of the deny_push list are examined before the allow_push list.
966 contents of the deny_push list are examined before the allow_push list.
982 ``deny_read``
967 ``deny_read``
983 Whether to deny reading/viewing of the repository. If this list is
968 Whether to deny reading/viewing of the repository. If this list is
984 not empty, unauthenticated users are all denied, and any
969 not empty, unauthenticated users are all denied, and any
985 authenticated user name present in this list is also denied access to
970 authenticated user name present in this list is also denied access to
986 the repository. If set to the special value ``*``, all remote users
971 the repository. If set to the special value ``*``, all remote users
987 are denied access (rarely needed ;). If deny_read is empty or not set,
972 are denied access (rarely needed ;). If deny_read is empty or not set,
988 the determination of repository access depends on the presence and
973 the determination of repository access depends on the presence and
989 content of the allow_read list (see description). If both
974 content of the allow_read list (see description). If both
990 deny_read and allow_read are empty or not set, then access is
975 deny_read and allow_read are empty or not set, then access is
991 permitted to all users by default. If the repository is being
976 permitted to all users by default. If the repository is being
992 served via hgwebdir, denied users will not be able to see it in
977 served via hgwebdir, denied users will not be able to see it in
993 the list of repositories. The contents of the deny_read list have
978 the list of repositories. The contents of the deny_read list have
994 priority over (are examined before) the contents of the allow_read
979 priority over (are examined before) the contents of the allow_read
995 list.
980 list.
996 ``descend``
981 ``descend``
997 hgwebdir indexes will not descend into subdirectories. Only repositories
982 hgwebdir indexes will not descend into subdirectories. Only repositories
998 directly in the current path will be shown (other repositories are still
983 directly in the current path will be shown (other repositories are still
999 available from the index corresponding to their containing path).
984 available from the index corresponding to their containing path).
1000 ``description``
985 ``description``
1001 Textual description of the repository's purpose or contents.
986 Textual description of the repository's purpose or contents.
1002 Default is "unknown".
987 Default is "unknown".
1003 ``encoding``
988 ``encoding``
1004 Character encoding name. Default is the current locale charset.
989 Character encoding name. Default is the current locale charset.
1005 Example: "UTF-8"
990 Example: "UTF-8"
1006 ``errorlog``
991 ``errorlog``
1007 Where to output the error log. Default is stderr.
992 Where to output the error log. Default is stderr.
1008 ``hidden``
993 ``hidden``
1009 Whether to hide the repository in the hgwebdir index.
994 Whether to hide the repository in the hgwebdir index.
1010 Default is False.
995 Default is False.
1011 ``ipv6``
996 ``ipv6``
1012 Whether to use IPv6. Default is False.
997 Whether to use IPv6. Default is False.
1013 ``name``
998 ``name``
1014 Repository name to use in the web interface. Default is current
999 Repository name to use in the web interface. Default is current
1015 working directory.
1000 working directory.
1016 ``maxchanges``
1001 ``maxchanges``
1017 Maximum number of changes to list on the changelog. Default is 10.
1002 Maximum number of changes to list on the changelog. Default is 10.
1018 ``maxfiles``
1003 ``maxfiles``
1019 Maximum number of files to list per changeset. Default is 10.
1004 Maximum number of files to list per changeset. Default is 10.
1020 ``port``
1005 ``port``
1021 Port to listen on. Default is 8000.
1006 Port to listen on. Default is 8000.
1022 ``prefix``
1007 ``prefix``
1023 Prefix path to serve from. Default is '' (server root).
1008 Prefix path to serve from. Default is '' (server root).
1024 ``push_ssl``
1009 ``push_ssl``
1025 Whether to require that inbound pushes be transported over SSL to
1010 Whether to require that inbound pushes be transported over SSL to
1026 prevent password sniffing. Default is True.
1011 prevent password sniffing. Default is True.
1027 ``staticurl``
1012 ``staticurl``
1028 Base URL to use for static files. If unset, static files (e.g. the
1013 Base URL to use for static files. If unset, static files (e.g. the
1029 hgicon.png favicon) will be served by the CGI script itself. Use
1014 hgicon.png favicon) will be served by the CGI script itself. Use
1030 this setting to serve them directly with the HTTP server.
1015 this setting to serve them directly with the HTTP server.
1031 Example: ``http://hgserver/static/``.
1016 Example: ``http://hgserver/static/``.
1032 ``stripes``
1017 ``stripes``
1033 How many lines a "zebra stripe" should span in multiline output.
1018 How many lines a "zebra stripe" should span in multiline output.
1034 Default is 1; set to 0 to disable.
1019 Default is 1; set to 0 to disable.
1035 ``style``
1020 ``style``
1036 Which template map style to use.
1021 Which template map style to use.
1037 ``templates``
1022 ``templates``
1038 Where to find the HTML templates. Default is install path.
1023 Where to find the HTML templates. Default is install path.
1039
1024
1040
1025
1041 Author
1026 Author
1042 ------
1027 ------
1043 Bryan O'Sullivan <bos@serpentine.com>.
1028 Bryan O'Sullivan <bos@serpentine.com>.
1044
1029
1045 Mercurial was written by Matt Mackall <mpm@selenic.com>.
1030 Mercurial was written by Matt Mackall <mpm@selenic.com>.
1046
1031
1047 See Also
1032 See Also
1048 --------
1033 --------
1049 |hg(1)|_, |hgignore(5)|_
1034 |hg(1)|_, |hgignore(5)|_
1050
1035
1051 Copying
1036 Copying
1052 -------
1037 -------
1053 This manual page is copyright 2005 Bryan O'Sullivan.
1038 This manual page is copyright 2005 Bryan O'Sullivan.
1054 Mercurial is copyright 2005-2010 Matt Mackall.
1039 Mercurial is copyright 2005-2010 Matt Mackall.
1055 Free use of this software is granted under the terms of the GNU General
1040 Free use of this software is granted under the terms of the GNU General
1056 Public License version 2 or any later version.
1041 Public License version 2 or any later version.
1057
1042
1058 .. include:: common.txt
1043 .. include:: common.txt
@@ -1,158 +1,166 b''
1 # win32text.py - LF <-> CRLF/CR translation utilities for Windows/Mac users
1 # win32text.py - LF <-> CRLF/CR translation utilities for Windows/Mac users
2 #
2 #
3 # Copyright 2005, 2007-2009 Matt Mackall <mpm@selenic.com> and others
3 # Copyright 2005, 2007-2009 Matt Mackall <mpm@selenic.com> and others
4 #
4 #
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 '''perform automatic newline conversion
8 '''perform automatic newline conversion
9
9
10 Deprecation: The win32text extension requires each user to configure
11 the extension again and again for each clone since the configuration
12 is not copied when cloning.
13
14 We have therefore made the ``eol`` as an alternative. The ``eol``
15 uses a version controlled file for its configuration and each clone
16 will therefore use the right settings from the start.
17
10 To perform automatic newline conversion, use::
18 To perform automatic newline conversion, use::
11
19
12 [extensions]
20 [extensions]
13 win32text =
21 win32text =
14 [encode]
22 [encode]
15 ** = cleverencode:
23 ** = cleverencode:
16 # or ** = macencode:
24 # or ** = macencode:
17
25
18 [decode]
26 [decode]
19 ** = cleverdecode:
27 ** = cleverdecode:
20 # or ** = macdecode:
28 # or ** = macdecode:
21
29
22 If not doing conversion, to make sure you do not commit CRLF/CR by accident::
30 If not doing conversion, to make sure you do not commit CRLF/CR by accident::
23
31
24 [hooks]
32 [hooks]
25 pretxncommit.crlf = python:hgext.win32text.forbidcrlf
33 pretxncommit.crlf = python:hgext.win32text.forbidcrlf
26 # or pretxncommit.cr = python:hgext.win32text.forbidcr
34 # or pretxncommit.cr = python:hgext.win32text.forbidcr
27
35
28 To do the same check on a server to prevent CRLF/CR from being
36 To do the same check on a server to prevent CRLF/CR from being
29 pushed or pulled::
37 pushed or pulled::
30
38
31 [hooks]
39 [hooks]
32 pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf
40 pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf
33 # or pretxnchangegroup.cr = python:hgext.win32text.forbidcr
41 # or pretxnchangegroup.cr = python:hgext.win32text.forbidcr
34 '''
42 '''
35
43
36 from mercurial.i18n import _
44 from mercurial.i18n import _
37 from mercurial.node import short
45 from mercurial.node import short
38 from mercurial import util
46 from mercurial import util
39 import re
47 import re
40
48
41 # regexp for single LF without CR preceding.
49 # regexp for single LF without CR preceding.
42 re_single_lf = re.compile('(^|[^\r])\n', re.MULTILINE)
50 re_single_lf = re.compile('(^|[^\r])\n', re.MULTILINE)
43
51
44 newlinestr = {'\r\n': 'CRLF', '\r': 'CR'}
52 newlinestr = {'\r\n': 'CRLF', '\r': 'CR'}
45 filterstr = {'\r\n': 'clever', '\r': 'mac'}
53 filterstr = {'\r\n': 'clever', '\r': 'mac'}
46
54
47 def checknewline(s, newline, ui=None, repo=None, filename=None):
55 def checknewline(s, newline, ui=None, repo=None, filename=None):
48 # warn if already has 'newline' in repository.
56 # warn if already has 'newline' in repository.
49 # it might cause unexpected eol conversion.
57 # it might cause unexpected eol conversion.
50 # see issue 302:
58 # see issue 302:
51 # http://mercurial.selenic.com/bts/issue302
59 # http://mercurial.selenic.com/bts/issue302
52 if newline in s and ui and filename and repo:
60 if newline in s and ui and filename and repo:
53 ui.warn(_('WARNING: %s already has %s line endings\n'
61 ui.warn(_('WARNING: %s already has %s line endings\n'
54 'and does not need EOL conversion by the win32text plugin.\n'
62 'and does not need EOL conversion by the win32text plugin.\n'
55 'Before your next commit, please reconsider your '
63 'Before your next commit, please reconsider your '
56 'encode/decode settings in \nMercurial.ini or %s.\n') %
64 'encode/decode settings in \nMercurial.ini or %s.\n') %
57 (filename, newlinestr[newline], repo.join('hgrc')))
65 (filename, newlinestr[newline], repo.join('hgrc')))
58
66
59 def dumbdecode(s, cmd, **kwargs):
67 def dumbdecode(s, cmd, **kwargs):
60 checknewline(s, '\r\n', **kwargs)
68 checknewline(s, '\r\n', **kwargs)
61 # replace single LF to CRLF
69 # replace single LF to CRLF
62 return re_single_lf.sub('\\1\r\n', s)
70 return re_single_lf.sub('\\1\r\n', s)
63
71
64 def dumbencode(s, cmd):
72 def dumbencode(s, cmd):
65 return s.replace('\r\n', '\n')
73 return s.replace('\r\n', '\n')
66
74
67 def macdumbdecode(s, cmd, **kwargs):
75 def macdumbdecode(s, cmd, **kwargs):
68 checknewline(s, '\r', **kwargs)
76 checknewline(s, '\r', **kwargs)
69 return s.replace('\n', '\r')
77 return s.replace('\n', '\r')
70
78
71 def macdumbencode(s, cmd):
79 def macdumbencode(s, cmd):
72 return s.replace('\r', '\n')
80 return s.replace('\r', '\n')
73
81
74 def cleverdecode(s, cmd, **kwargs):
82 def cleverdecode(s, cmd, **kwargs):
75 if not util.binary(s):
83 if not util.binary(s):
76 return dumbdecode(s, cmd, **kwargs)
84 return dumbdecode(s, cmd, **kwargs)
77 return s
85 return s
78
86
79 def cleverencode(s, cmd):
87 def cleverencode(s, cmd):
80 if not util.binary(s):
88 if not util.binary(s):
81 return dumbencode(s, cmd)
89 return dumbencode(s, cmd)
82 return s
90 return s
83
91
84 def macdecode(s, cmd, **kwargs):
92 def macdecode(s, cmd, **kwargs):
85 if not util.binary(s):
93 if not util.binary(s):
86 return macdumbdecode(s, cmd, **kwargs)
94 return macdumbdecode(s, cmd, **kwargs)
87 return s
95 return s
88
96
89 def macencode(s, cmd):
97 def macencode(s, cmd):
90 if not util.binary(s):
98 if not util.binary(s):
91 return macdumbencode(s, cmd)
99 return macdumbencode(s, cmd)
92 return s
100 return s
93
101
94 _filters = {
102 _filters = {
95 'dumbdecode:': dumbdecode,
103 'dumbdecode:': dumbdecode,
96 'dumbencode:': dumbencode,
104 'dumbencode:': dumbencode,
97 'cleverdecode:': cleverdecode,
105 'cleverdecode:': cleverdecode,
98 'cleverencode:': cleverencode,
106 'cleverencode:': cleverencode,
99 'macdumbdecode:': macdumbdecode,
107 'macdumbdecode:': macdumbdecode,
100 'macdumbencode:': macdumbencode,
108 'macdumbencode:': macdumbencode,
101 'macdecode:': macdecode,
109 'macdecode:': macdecode,
102 'macencode:': macencode,
110 'macencode:': macencode,
103 }
111 }
104
112
105 def forbidnewline(ui, repo, hooktype, node, newline, **kwargs):
113 def forbidnewline(ui, repo, hooktype, node, newline, **kwargs):
106 halt = False
114 halt = False
107 seen = set()
115 seen = set()
108 # we try to walk changesets in reverse order from newest to
116 # we try to walk changesets in reverse order from newest to
109 # oldest, so that if we see a file multiple times, we take the
117 # oldest, so that if we see a file multiple times, we take the
110 # newest version as canonical. this prevents us from blocking a
118 # newest version as canonical. this prevents us from blocking a
111 # changegroup that contains an unacceptable commit followed later
119 # changegroup that contains an unacceptable commit followed later
112 # by a commit that fixes the problem.
120 # by a commit that fixes the problem.
113 tip = repo['tip']
121 tip = repo['tip']
114 for rev in xrange(len(repo)-1, repo[node].rev()-1, -1):
122 for rev in xrange(len(repo)-1, repo[node].rev()-1, -1):
115 c = repo[rev]
123 c = repo[rev]
116 for f in c.files():
124 for f in c.files():
117 if f in seen or f not in tip or f not in c:
125 if f in seen or f not in tip or f not in c:
118 continue
126 continue
119 seen.add(f)
127 seen.add(f)
120 data = c[f].data()
128 data = c[f].data()
121 if not util.binary(data) and newline in data:
129 if not util.binary(data) and newline in data:
122 if not halt:
130 if not halt:
123 ui.warn(_('Attempt to commit or push text file(s) '
131 ui.warn(_('Attempt to commit or push text file(s) '
124 'using %s line endings\n') %
132 'using %s line endings\n') %
125 newlinestr[newline])
133 newlinestr[newline])
126 ui.warn(_('in %s: %s\n') % (short(c.node()), f))
134 ui.warn(_('in %s: %s\n') % (short(c.node()), f))
127 halt = True
135 halt = True
128 if halt and hooktype == 'pretxnchangegroup':
136 if halt and hooktype == 'pretxnchangegroup':
129 crlf = newlinestr[newline].lower()
137 crlf = newlinestr[newline].lower()
130 filter = filterstr[newline]
138 filter = filterstr[newline]
131 ui.warn(_('\nTo prevent this mistake in your local repository,\n'
139 ui.warn(_('\nTo prevent this mistake in your local repository,\n'
132 'add to Mercurial.ini or .hg/hgrc:\n'
140 'add to Mercurial.ini or .hg/hgrc:\n'
133 '\n'
141 '\n'
134 '[hooks]\n'
142 '[hooks]\n'
135 'pretxncommit.%s = python:hgext.win32text.forbid%s\n'
143 'pretxncommit.%s = python:hgext.win32text.forbid%s\n'
136 '\n'
144 '\n'
137 'and also consider adding:\n'
145 'and also consider adding:\n'
138 '\n'
146 '\n'
139 '[extensions]\n'
147 '[extensions]\n'
140 'win32text =\n'
148 'win32text =\n'
141 '[encode]\n'
149 '[encode]\n'
142 '** = %sencode:\n'
150 '** = %sencode:\n'
143 '[decode]\n'
151 '[decode]\n'
144 '** = %sdecode:\n') % (crlf, crlf, filter, filter))
152 '** = %sdecode:\n') % (crlf, crlf, filter, filter))
145 return halt
153 return halt
146
154
147 def forbidcrlf(ui, repo, hooktype, node, **kwargs):
155 def forbidcrlf(ui, repo, hooktype, node, **kwargs):
148 return forbidnewline(ui, repo, hooktype, node, '\r\n', **kwargs)
156 return forbidnewline(ui, repo, hooktype, node, '\r\n', **kwargs)
149
157
150 def forbidcr(ui, repo, hooktype, node, **kwargs):
158 def forbidcr(ui, repo, hooktype, node, **kwargs):
151 return forbidnewline(ui, repo, hooktype, node, '\r', **kwargs)
159 return forbidnewline(ui, repo, hooktype, node, '\r', **kwargs)
152
160
153 def reposetup(ui, repo):
161 def reposetup(ui, repo):
154 if not repo.local():
162 if not repo.local():
155 return
163 return
156 for name, fn in _filters.iteritems():
164 for name, fn in _filters.iteritems():
157 repo.adddatafilter(name, fn)
165 repo.adddatafilter(name, fn)
158
166
General Comments 0
You need to be logged in to leave comments. Login now