Mercurial > public > mercurial-scm > hg
comparison hgext/graphlog.py @ 16159:ec33539b61f6
graphlog: paths arguments must be or'ed
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Thu, 23 Feb 2012 17:54:42 +0100 |
parents | e04cc21b01b2 |
children | 1bfc7ba8b404 |
comparison
equal
deleted
inserted
replaced
16158:e04cc21b01b2 | 16159:ec33539b61f6 |
---|---|
255 'removed': ('removes("*")', None), | 255 'removed': ('removes("*")', None), |
256 'date': ('date(%(val)r)', None), | 256 'date': ('date(%(val)r)', None), |
257 'branch': ('branch(%(val)r)', ' or '), | 257 'branch': ('branch(%(val)r)', ' or '), |
258 'exclude': ('not file(%(val)r)', ' and '), | 258 'exclude': ('not file(%(val)r)', ' and '), |
259 'include': ('file(%(val)r)', ' and '), | 259 'include': ('file(%(val)r)', ' and '), |
260 '_pats': ('file(%(val)r)', ' or '), | |
260 'keyword': ('keyword(%(val)r)', ' or '), | 261 'keyword': ('keyword(%(val)r)', ' or '), |
261 'prune': ('not (%(val)r or ancestors(%(val)r))', ' and '), | 262 'prune': ('not (%(val)r or ancestors(%(val)r))', ' and '), |
262 'user': ('user(%(val)r)', ' or '), | 263 'user': ('user(%(val)r)', ' or '), |
263 'rev': ('%(val)s', ' or '), | 264 'rev': ('%(val)s', ' or '), |
264 } | 265 } |
265 | 266 |
267 opts = dict(opts) | |
266 # branch and only_branch are really aliases and must be handled at | 268 # branch and only_branch are really aliases and must be handled at |
267 # the same time | 269 # the same time |
268 if 'branch' in opts and 'only_branch' in opts: | 270 if 'branch' in opts and 'only_branch' in opts: |
269 opts = dict(opts) | |
270 opts['branch'] = opts['branch'] + opts.pop('only_branch') | 271 opts['branch'] = opts['branch'] + opts.pop('only_branch') |
272 opts['_pats'] = list(pats) | |
271 | 273 |
272 revset = [] | 274 revset = [] |
273 for op, val in opts.iteritems(): | 275 for op, val in opts.iteritems(): |
274 if not val: | 276 if not val: |
275 continue | 277 continue |
283 expr = revop % {'val': val} | 285 expr = revop % {'val': val} |
284 else: | 286 else: |
285 expr = '(' + andor.join((revop % {'val': v}) for v in val) + ')' | 287 expr = '(' + andor.join((revop % {'val': v}) for v in val) + ')' |
286 revset.append(expr) | 288 revset.append(expr) |
287 | 289 |
288 for path in pats: | |
289 revset.append('file(%r)' % path) | |
290 | |
291 if revset: | 290 if revset: |
292 revset = '(' + ' and '.join(revset) + ')' | 291 revset = '(' + ' and '.join(revset) + ')' |
293 else: | 292 else: |
294 revset = 'all()' | 293 revset = 'all()' |
295 return revset | 294 return revset |