comparison mercurial/util.py @ 4182:01c4ea5e788c

A 'glob:foo?bar' pattern determines a root - the tree root
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Sat, 10 Mar 2007 23:00:47 -0300
parents 51ee2868a571
children ce3ecf99a18b
comparison
equal deleted inserted replaced
4181:08d31e43592a 4182:01c4ea5e788c
467 '''return the non-glob prefix of a path, e.g. foo/* -> foo''' 467 '''return the non-glob prefix of a path, e.g. foo/* -> foo'''
468 root = [] 468 root = []
469 for p in pat.split('/'): 469 for p in pat.split('/'):
470 if contains_glob(p): break 470 if contains_glob(p): break
471 root.append(p) 471 root.append(p)
472 return '/'.join(root) 472 return '/'.join(root) or '.'
473 473
474 pats = [] 474 pats = []
475 files = [] 475 files = []
476 roots = [] 476 roots = []
477 for kind, name in [patkind(p, dflt_pat) for p in names]: 477 for kind, name in [patkind(p, dflt_pat) for p in names]:
481 kind, name = 'glob', '**' 481 kind, name = 'glob', '**'
482 if kind in ('glob', 'path', 're'): 482 if kind in ('glob', 'path', 're'):
483 pats.append((kind, name)) 483 pats.append((kind, name))
484 if kind == 'glob': 484 if kind == 'glob':
485 root = globprefix(name) 485 root = globprefix(name)
486 if root: roots.append(root) 486 roots.append(root)
487 elif kind == 'relpath': 487 elif kind == 'relpath':
488 files.append((kind, name)) 488 files.append((kind, name))
489 roots.append(name) 489 roots.append(name)
490 490
491 patmatch = matchfn(pats, '$') or always 491 patmatch = matchfn(pats, '$') or always