Show More
@@ -0,0 +1,27 b'' | |||||
|
1 | hgterm, | |||
|
2 | am, km, mir, msgr, xenl, | |||
|
3 | colors#8, cols#80, it#8, lines#24, pairs#64, | |||
|
4 | acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, | |||
|
5 | bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, | |||
|
6 | csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\b, | |||
|
7 | cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C, | |||
|
8 | cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, | |||
|
9 | dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, | |||
|
10 | ed=\E[J, el=\E[K, enacs=\E)0, home=\E[H, ht=\t, | |||
|
11 | hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\n, | |||
|
12 | is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, kbs=\b, | |||
|
13 | kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, | |||
|
14 | kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, | |||
|
15 | kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, | |||
|
16 | kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, | |||
|
17 | kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, | |||
|
18 | kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, | |||
|
19 | kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, | |||
|
20 | knp=\E[6~, kpp=\E[5~, kslt=\E[4~, op=\E[m, rc=\E8, | |||
|
21 | rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[2J\E[?47l\E8, | |||
|
22 | rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, | |||
|
23 | rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, sc=\E7, | |||
|
24 | setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[m, | |||
|
25 | smacs=^N, smcup=\E7\E[?47h, smir=\E[4h, | |||
|
26 | smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, | |||
|
27 | u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c, |
@@ -144,8 +144,11 b' def _terminfosetup(ui, mode):' | |||||
144 | ui.debug("no terminfo entry for %s\n" % e) |
|
144 | ui.debug("no terminfo entry for %s\n" % e) | |
145 | del _terminfo_params[key] |
|
145 | del _terminfo_params[key] | |
146 | if not curses.tigetstr('setaf') or not curses.tigetstr('setab'): |
|
146 | if not curses.tigetstr('setaf') or not curses.tigetstr('setab'): | |
147 | ui.warn(_("no terminfo entry for setab/setaf: reverting to " |
|
147 | # Only warn about missing terminfo entries if we explicitly asked for | |
148 | "ECMA-48 color\n")) |
|
148 | # terminfo mode. | |
|
149 | if mode == "terminfo": | |||
|
150 | ui.warn(_("no terminfo entry for setab/setaf: reverting to " | |||
|
151 | "ECMA-48 color\n")) | |||
149 | _terminfo_params = {} |
|
152 | _terminfo_params = {} | |
150 |
|
153 | |||
151 | def _modesetup(ui, opts): |
|
154 | def _modesetup(ui, opts): |
@@ -4184,17 +4184,22 b' def revert(ui, repo, *pats, **opts):' | |||||
4184 |
|
4184 | |||
4185 | if not pats and not opts.get('all'): |
|
4185 | if not pats and not opts.get('all'): | |
4186 | msg = _("no files or directories specified") |
|
4186 | msg = _("no files or directories specified") | |
4187 | hint = _("use --all to discard all changes") |
|
|||
4188 | if p2 != nullid: |
|
4187 | if p2 != nullid: | |
4189 | hint = _("uncommitted merge, use --all to discard all changes," |
|
4188 | hint = _("uncommitted merge, use --all to discard all changes," | |
4190 | " or 'hg update -C .' to abort the merge") |
|
4189 | " or 'hg update -C .' to abort the merge") | |
4191 | elif node != parent: |
|
4190 | raise util.Abort(msg, hint=hint) | |
4192 |
|
|
4191 | dirty = util.any(repo.status()) | |
|
4192 | if node != parent: | |||
|
4193 | if dirty: | |||
4193 | hint = _("uncommitted changes, use --all to discard all" |
|
4194 | hint = _("uncommitted changes, use --all to discard all" | |
4194 | " changes, or 'hg update %s' to update") % ctx.rev() |
|
4195 | " changes, or 'hg update %s' to update") % ctx.rev() | |
4195 | else: |
|
4196 | else: | |
4196 | hint = _("use --all to revert all files," |
|
4197 | hint = _("use --all to revert all files," | |
4197 | " or 'hg update %s' to update") % ctx.rev() |
|
4198 | " or 'hg update %s' to update") % ctx.rev() | |
|
4199 | elif dirty: | |||
|
4200 | hint = _("uncommitted changes, use --all to discard all changes") | |||
|
4201 | else: | |||
|
4202 | hint = _("use --all to revert all files") | |||
4198 | raise util.Abort(msg, hint=hint) |
|
4203 | raise util.Abort(msg, hint=hint) | |
4199 |
|
4204 | |||
4200 | mf = ctx.manifest() |
|
4205 | mf = ctx.manifest() |
@@ -143,6 +143,7 b' class server(object):' | |||||
143 | logfile = open(logpath, 'a') |
|
143 | logfile = open(logpath, 'a') | |
144 |
|
144 | |||
145 | self.repo = repo |
|
145 | self.repo = repo | |
|
146 | self.repoui = repo.ui | |||
146 |
|
147 | |||
147 | if mode == 'pipe': |
|
148 | if mode == 'pipe': | |
148 | self.cerr = channeledoutput(sys.stderr, sys.stdout, 'e') |
|
149 | self.cerr = channeledoutput(sys.stderr, sys.stdout, 'e') | |
@@ -176,8 +177,13 b' class server(object):' | |||||
176 | else: |
|
177 | else: | |
177 | args = self._read(length).split('\0') |
|
178 | args = self._read(length).split('\0') | |
178 |
|
179 | |||
179 | # copy the ui so changes to it don't persist between requests |
|
180 | # copy the uis so changes (e.g. --config or --verbose) don't | |
180 | req = dispatch.request(args, self.ui.copy(), self.repo, self.cin, |
|
181 | # persist between requests | |
|
182 | copiedui = self.ui.copy() | |||
|
183 | self.repo.baseui = copiedui | |||
|
184 | self.repo.ui = self.repo.dirstate._ui = self.repoui.copy() | |||
|
185 | ||||
|
186 | req = dispatch.request(args, copiedui, self.repo, self.cin, | |||
181 | self.cout, self.cerr) |
|
187 | self.cout, self.cerr) | |
182 |
|
188 | |||
183 | ret = dispatch.dispatch(req) or 0 # might return None |
|
189 | ret = dispatch.dispatch(req) or 0 # might return None |
@@ -398,6 +398,8 b' def _parse(ui, args):' | |||||
398 |
|
398 | |||
399 | def _parseconfig(ui, config): |
|
399 | def _parseconfig(ui, config): | |
400 | """parse the --config options from the command line""" |
|
400 | """parse the --config options from the command line""" | |
|
401 | configs = [] | |||
|
402 | ||||
401 | for cfg in config: |
|
403 | for cfg in config: | |
402 | try: |
|
404 | try: | |
403 | name, value = cfg.split('=', 1) |
|
405 | name, value = cfg.split('=', 1) | |
@@ -405,10 +407,13 b' def _parseconfig(ui, config):' | |||||
405 | if not section or not name: |
|
407 | if not section or not name: | |
406 | raise IndexError |
|
408 | raise IndexError | |
407 | ui.setconfig(section, name, value) |
|
409 | ui.setconfig(section, name, value) | |
|
410 | configs.append((section, name, value)) | |||
408 | except (IndexError, ValueError): |
|
411 | except (IndexError, ValueError): | |
409 | raise util.Abort(_('malformed --config option: %r ' |
|
412 | raise util.Abort(_('malformed --config option: %r ' | |
410 | '(use --config section.name=value)') % cfg) |
|
413 | '(use --config section.name=value)') % cfg) | |
411 |
|
414 | |||
|
415 | return configs | |||
|
416 | ||||
412 | def _earlygetopt(aliases, args): |
|
417 | def _earlygetopt(aliases, args): | |
413 | """Return list of values for an option (or aliases). |
|
418 | """Return list of values for an option (or aliases). | |
414 |
|
419 | |||
@@ -525,7 +530,7 b' def _dispatch(req):' | |||||
525 |
|
530 | |||
526 | # read --config before doing anything else |
|
531 | # read --config before doing anything else | |
527 | # (e.g. to change trust settings for reading .hg/hgrc) |
|
532 | # (e.g. to change trust settings for reading .hg/hgrc) | |
528 | _parseconfig(ui, _earlygetopt(['--config'], args)) |
|
533 | cfgs = _parseconfig(ui, _earlygetopt(['--config'], args)) | |
529 |
|
534 | |||
530 | # check for cwd |
|
535 | # check for cwd | |
531 | cwd = _earlygetopt(['--cwd'], args) |
|
536 | cwd = _earlygetopt(['--cwd'], args) | |
@@ -592,20 +597,27 b' def _dispatch(req):' | |||||
592 | (t[4]-s[4], t[0]-s[0], t[2]-s[2], t[1]-s[1], t[3]-s[3])) |
|
597 | (t[4]-s[4], t[0]-s[0], t[2]-s[2], t[1]-s[1], t[3]-s[3])) | |
593 | atexit.register(print_time) |
|
598 | atexit.register(print_time) | |
594 |
|
599 | |||
595 | if options['verbose'] or options['debug'] or options['quiet']: |
|
600 | uis = set([ui, lui]) | |
596 | for ui_ in (ui, lui): |
|
601 | ||
597 | ui_.setconfig('ui', 'verbose', str(bool(options['verbose']))) |
|
602 | if req.repo: | |
598 | ui_.setconfig('ui', 'debug', str(bool(options['debug']))) |
|
603 | uis.add(req.repo.ui) | |
599 | ui_.setconfig('ui', 'quiet', str(bool(options['quiet']))) |
|
604 | ||
600 | if options['traceback']: |
|
605 | # copy configs that were passed on the cmdline (--config) to the repo ui | |
601 |
for |
|
606 | for cfg in cfgs: | |
602 |
ui |
|
607 | req.repo.ui.setconfig(*cfg) | |
|
608 | ||||
|
609 | for opt in ('verbose', 'debug', 'quiet', 'traceback'): | |||
|
610 | val = bool(options[opt]) | |||
|
611 | if val: | |||
|
612 | for ui_ in uis: | |||
|
613 | ui_.setconfig('ui', opt, str(val)) | |||
|
614 | ||||
603 | if options['noninteractive']: |
|
615 | if options['noninteractive']: | |
604 |
for ui_ in |
|
616 | for ui_ in uis: | |
605 | ui_.setconfig('ui', 'interactive', 'off') |
|
617 | ui_.setconfig('ui', 'interactive', 'off') | |
606 |
|
618 | |||
607 | if cmdoptions.get('insecure', False): |
|
619 | if cmdoptions.get('insecure', False): | |
608 |
for ui_ in |
|
620 | for ui_ in uis: | |
609 | ui_.setconfig('web', 'cacerts', '') |
|
621 | ui_.setconfig('web', 'cacerts', '') | |
610 |
|
622 | |||
611 | if options['help']: |
|
623 | if options['help']: |
@@ -233,7 +233,8 b' def filemerge(repo, mynode, orig, fcd, f' | |||||
233 | replace = dict(local=a, base=b, other=c, output=out) |
|
233 | replace = dict(local=a, base=b, other=c, output=out) | |
234 | args = util.interpolate(r'\$', replace, args, |
|
234 | args = util.interpolate(r'\$', replace, args, | |
235 | lambda s: '"%s"' % util.localpath(s)) |
|
235 | lambda s: '"%s"' % util.localpath(s)) | |
236 |
r = util.system(toolpath + ' ' + args, cwd=repo.root, environ=env |
|
236 | r = util.system(toolpath + ' ' + args, cwd=repo.root, environ=env, | |
|
237 | out=ui.fout) | |||
237 |
|
238 | |||
238 | if not r and (_toolbool(ui, tool, "checkconflicts") or |
|
239 | if not r and (_toolbool(ui, tool, "checkconflicts") or | |
239 | 'conflicts' in _toollist(ui, tool, "check")): |
|
240 | 'conflicts' in _toollist(ui, tool, "check")): |
@@ -1773,7 +1773,7 b' class localrepository(repo.repository):' | |||||
1773 |
|
1773 | |||
1774 | # process the files |
|
1774 | # process the files | |
1775 | self.ui.status(_("adding file changes\n")) |
|
1775 | self.ui.status(_("adding file changes\n")) | |
1776 | pr.step = 'files' |
|
1776 | pr.step = _('files') | |
1777 | pr.count = 1 |
|
1777 | pr.count = 1 | |
1778 | pr.total = efiles |
|
1778 | pr.total = efiles | |
1779 | source.callback = None |
|
1779 | source.callback = None |
@@ -54,6 +54,12 b' issue1829: wrong indentation' | |||||
54 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|
54 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
55 | $ unset FAKEPATH |
|
55 | $ unset FAKEPATH | |
56 |
|
56 | |||
|
57 | make sure unspecified global ui options don't override old values | |||
|
58 | ||||
|
59 | $ hg showconfig --config ui.verbose=True --quiet | |||
|
60 | ui.verbose=True | |||
|
61 | ui.quiet=True | |||
|
62 | ||||
57 | username expansion |
|
63 | username expansion | |
58 |
|
64 | |||
59 | $ olduser=$HGUSER |
|
65 | $ olduser=$HGUSER | |
@@ -134,9 +140,7 b' plain hgrc' | |||||
134 | $ hg showconfig --config ui.traceback=True --debug |
|
140 | $ hg showconfig --config ui.traceback=True --debug | |
135 | read config from: $TESTTMP/hgrc |
|
141 | read config from: $TESTTMP/hgrc | |
136 | none: ui.traceback=True |
|
142 | none: ui.traceback=True | |
137 | none: ui.verbose=False |
|
|||
138 | none: ui.debug=True |
|
143 | none: ui.debug=True | |
139 | none: ui.quiet=False |
|
|||
140 |
|
144 | |||
141 | plain mode with exceptions |
|
145 | plain mode with exceptions | |
142 |
|
146 | |||
@@ -152,24 +156,18 b' plain mode with exceptions' | |||||
152 | read config from: $TESTTMP/hgrc |
|
156 | read config from: $TESTTMP/hgrc | |
153 | $TESTTMP/hgrc:15: extensions.plain=./plain.py |
|
157 | $TESTTMP/hgrc:15: extensions.plain=./plain.py | |
154 | none: ui.traceback=True |
|
158 | none: ui.traceback=True | |
155 | none: ui.verbose=False |
|
|||
156 | none: ui.debug=True |
|
159 | none: ui.debug=True | |
157 | none: ui.quiet=False |
|
|||
158 | $ unset HGPLAIN |
|
160 | $ unset HGPLAIN | |
159 | $ hg showconfig --config ui.traceback=True --debug |
|
161 | $ hg showconfig --config ui.traceback=True --debug | |
160 | plain: True |
|
162 | plain: True | |
161 | read config from: $TESTTMP/hgrc |
|
163 | read config from: $TESTTMP/hgrc | |
162 | $TESTTMP/hgrc:15: extensions.plain=./plain.py |
|
164 | $TESTTMP/hgrc:15: extensions.plain=./plain.py | |
163 | none: ui.traceback=True |
|
165 | none: ui.traceback=True | |
164 | none: ui.verbose=False |
|
|||
165 | none: ui.debug=True |
|
166 | none: ui.debug=True | |
166 | none: ui.quiet=False |
|
|||
167 | $ HGPLAINEXCEPT=i18n; export HGPLAINEXCEPT |
|
167 | $ HGPLAINEXCEPT=i18n; export HGPLAINEXCEPT | |
168 | $ hg showconfig --config ui.traceback=True --debug |
|
168 | $ hg showconfig --config ui.traceback=True --debug | |
169 | plain: True |
|
169 | plain: True | |
170 | read config from: $TESTTMP/hgrc |
|
170 | read config from: $TESTTMP/hgrc | |
171 | $TESTTMP/hgrc:15: extensions.plain=./plain.py |
|
171 | $TESTTMP/hgrc:15: extensions.plain=./plain.py | |
172 | none: ui.traceback=True |
|
172 | none: ui.traceback=True | |
173 | none: ui.verbose=False |
|
|||
174 | none: ui.debug=True |
|
173 | none: ui.debug=True | |
175 | none: ui.quiet=False |
|
@@ -10,7 +10,7 b' nothing changed' | |||||
10 |
|
10 | |||
11 | $ hg revert |
|
11 | $ hg revert | |
12 | abort: no files or directories specified |
|
12 | abort: no files or directories specified | |
13 |
(use --all to |
|
13 | (use --all to revert all files) | |
14 | [255] |
|
14 | [255] | |
15 |
|
15 | |||
16 | $ echo 123 > b |
|
16 | $ echo 123 > b |
@@ -167,7 +167,9 b' hg status -A:' | |||||
167 |
|
167 | |||
168 | hg status -A (with terminfo color): |
|
168 | hg status -A (with terminfo color): | |
169 |
|
169 | |||
170 | $ TERM=xterm hg status --config color.mode=terminfo --color=always -A |
|
170 | $ mkdir $TESTTMP/terminfo | |
|
171 | $ TERMINFO=$TESTTMP/terminfo tic $TESTDIR/hgterm.ti | |||
|
172 | $ TERM=hgterm TERMINFO=$TESTTMP/terminfo hg status --config color.mode=terminfo --color=always -A | |||
171 | \x1b[30m\x1b[32m\x1b[1mA added\x1b[30m (esc) |
|
173 | \x1b[30m\x1b[32m\x1b[1mA added\x1b[30m (esc) | |
172 | \x1b[30m\x1b[32m\x1b[1mA copied\x1b[30m (esc) |
|
174 | \x1b[30m\x1b[32m\x1b[1mA copied\x1b[30m (esc) | |
173 | \x1b[30m\x1b[30m modified\x1b[30m (esc) |
|
175 | \x1b[30m\x1b[30m modified\x1b[30m (esc) |
General Comments 0
You need to be logged in to leave comments.
Login now