annotate mercurial/fancyopts.py @ 5119:0751c25ea0c0

raise util.Abort again if specified revision is not an integer. This was changed to NoRepo in 462cc56d898f, because specifying non-integer revisions for e.g. the Mercurial backend caused Abort to be raised in the subversion importer. Now util.Abort is raised again, but the check is done after verifying if it really is a subversion repository.
author Thomas Arendsen Hein <thomas@intevation.de>
date Tue, 07 Aug 2007 12:24:25 +0200
parents f9567a7fa3b3
children 88803a69b24a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
667
31a9aa890016 A number of minor fixes to problems that pychecker found.
mark.williamson@cl.cam.ac.uk
parents: 608
diff changeset
1 import getopt
0
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
2
596
9a8daeff0ffa A bunch of parsing/help updates
mpm@selenic.com
parents: 560
diff changeset
3 def fancyopts(args, options, state):
1541
bf4e7ef08741 fixed some stuff pychecker shows, marked unclear/wrong stuff with XXX
twaldmann@thinkmo.de
parents: 1056
diff changeset
4 long = []
bf4e7ef08741 fixed some stuff pychecker shows, marked unclear/wrong stuff with XXX
twaldmann@thinkmo.de
parents: 1056
diff changeset
5 short = ''
bf4e7ef08741 fixed some stuff pychecker shows, marked unclear/wrong stuff with XXX
twaldmann@thinkmo.de
parents: 1056
diff changeset
6 map = {}
bf4e7ef08741 fixed some stuff pychecker shows, marked unclear/wrong stuff with XXX
twaldmann@thinkmo.de
parents: 1056
diff changeset
7 dt = {}
0
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
8
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
9 for s, l, d, c in options:
1056
34be48b4ca85 Map long option names containing dashes to ones containing underscores.
Bryan O'Sullivan <bos@serpentine.com>
parents: 981
diff changeset
10 pl = l.replace('-', '_')
34be48b4ca85 Map long option names containing dashes to ones containing underscores.
Bryan O'Sullivan <bos@serpentine.com>
parents: 981
diff changeset
11 map['-'+s] = map['--'+l] = pl
34be48b4ca85 Map long option names containing dashes to ones containing underscores.
Bryan O'Sullivan <bos@serpentine.com>
parents: 981
diff changeset
12 state[pl] = d
34be48b4ca85 Map long option names containing dashes to ones containing underscores.
Bryan O'Sullivan <bos@serpentine.com>
parents: 981
diff changeset
13 dt[pl] = type(d)
3749
f9567a7fa3b3 additional fixes for issue436
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3742
diff changeset
14 if (d is not None and d is not True and d is not False and
f9567a7fa3b3 additional fixes for issue436
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3742
diff changeset
15 not callable(d)):
959
0aaeee519c66 Fix option parsing bug for empty short options
mpm@selenic.com
parents: 667
diff changeset
16 if s: s += ':'
0aaeee519c66 Fix option parsing bug for empty short options
mpm@selenic.com
parents: 667
diff changeset
17 if l: l += '='
0
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
18 if s: short = short + s
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
19 if l: long.append(l)
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
20
293
11d64332a1cb hg help improvements
mpm@selenic.com
parents: 209
diff changeset
21 opts, args = getopt.getopt(args, short, long)
0
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
22
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
23 for opt, arg in opts:
3673
eb0b4a2d70a9 white space and line break cleanups
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1541
diff changeset
24 if dt[map[opt]] is type(fancyopts): state[map[opt]](state, map[opt], arg)
0
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
25 elif dt[map[opt]] is type(1): state[map[opt]] = int(arg)
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
26 elif dt[map[opt]] is type(''): state[map[opt]] = arg
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
27 elif dt[map[opt]] is type([]): state[map[opt]].append(arg)
3742
86c1d1d35593 Fix argument handling for hg -v pull -v x (issue 436)
Matt Mackall <mpm@selenic.com>
parents: 3673
diff changeset
28 elif dt[map[opt]] is type(None): state[map[opt]] = True
3749
f9567a7fa3b3 additional fixes for issue436
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3742
diff changeset
29 elif dt[map[opt]] is type(False): state[map[opt]] = True
209
63af1db35611 Beginning of new command parsing interface
mpm@selenic.com
parents: 164
diff changeset
30
0
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
31 return args
9117c6561b0b Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff changeset
32