##// END OF EJS Templates
Fix handling of paths when run outside the repo....
Fix handling of paths when run outside the repo. The main problem was that dirstate.getcwd() returned just "", which was interpreted as "we're at the repo root". It now returns an absolute path. The util.pathto function was also changed to deal with the "cwd is an absolute path" case.

File last commit:

r3749:f9567a7f default
r4230:c93562fb default
Show More
fancyopts.py
32 lines | 968 B | text/x-python | PythonLexer
import getopt
def fancyopts(args, options, state):
long = []
short = ''
map = {}
dt = {}
for s, l, d, c in options:
pl = l.replace('-', '_')
map['-'+s] = map['--'+l] = pl
state[pl] = d
dt[pl] = type(d)
if (d is not None and d is not True and d is not False and
not callable(d)):
if s: s += ':'
if l: l += '='
if s: short = short + s
if l: long.append(l)
opts, args = getopt.getopt(args, short, long)
for opt, arg in opts:
if dt[map[opt]] is type(fancyopts): state[map[opt]](state, map[opt], arg)
elif dt[map[opt]] is type(1): state[map[opt]] = int(arg)
elif dt[map[opt]] is type(''): state[map[opt]] = arg
elif dt[map[opt]] is type([]): state[map[opt]].append(arg)
elif dt[map[opt]] is type(None): state[map[opt]] = True
elif dt[map[opt]] is type(False): state[map[opt]] = True
return args