Mercurial > hg
comparison mercurial/cmdutil.py @ 8614:573734e7e6d0
cmdutils: Take over glob expansion duties from util
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 24 May 2009 16:38:29 -0500 |
parents | 4fa1618bf495 |
children | b6511055d37b |
comparison
equal
deleted
inserted
replaced
8613:4dea46d4e3f8 | 8614:573734e7e6d0 |
---|---|
5 # This software may be used and distributed according to the terms of the | 5 # This software may be used and distributed according to the terms of the |
6 # GNU General Public License version 2, incorporated herein by reference. | 6 # GNU General Public License version 2, incorporated herein by reference. |
7 | 7 |
8 from node import hex, nullid, nullrev, short | 8 from node import hex, nullid, nullrev, short |
9 from i18n import _ | 9 from i18n import _ |
10 import os, sys, bisect, stat, errno, re | 10 import os, sys, bisect, stat, errno, re, glob |
11 import mdiff, bdiff, util, templater, patch, error, encoding | 11 import mdiff, bdiff, util, templater, patch, error, encoding |
12 import match as _match | 12 import match as _match |
13 | 13 |
14 revrangesep = ':' | 14 revrangesep = ':' |
15 | 15 |
233 return pat | 233 return pat |
234 return open(make_filename(repo, pat, node, total, seqno, revwidth, | 234 return open(make_filename(repo, pat, node, total, seqno, revwidth, |
235 pathname), | 235 pathname), |
236 mode) | 236 mode) |
237 | 237 |
238 def expandpats(pats): | |
239 if not util.expandglobs: | |
240 return list(pats) | |
241 ret = [] | |
242 for p in pats: | |
243 kind, name = _match._patsplit(p, None) | |
244 if kind is None: | |
245 globbed = glob.glob(name) | |
246 if globbed: | |
247 ret.extend(globbed) | |
248 continue | |
249 ret.append(p) | |
250 return ret | |
251 | |
238 def match(repo, pats=[], opts={}, globbed=False, default='relpath'): | 252 def match(repo, pats=[], opts={}, globbed=False, default='relpath'): |
239 if not globbed and default == 'relpath': | 253 if not globbed and default == 'relpath': |
240 pats = util.expand_glob(pats or []) | 254 pats = expandpats(pats or []) |
241 m = _match.match(repo.root, repo.getcwd(), pats, | 255 m = _match.match(repo.root, repo.getcwd(), pats, |
242 opts.get('include'), opts.get('exclude'), default) | 256 opts.get('include'), opts.get('exclude'), default) |
243 def badfn(f, msg): | 257 def badfn(f, msg): |
244 repo.ui.warn("%s: %s\n" % (m.rel(f), msg)) | 258 repo.ui.warn("%s: %s\n" % (m.rel(f), msg)) |
245 return False | 259 return False |
485 else: | 499 else: |
486 res = lambda p: dest | 500 res = lambda p: dest |
487 return res | 501 return res |
488 | 502 |
489 | 503 |
490 pats = util.expand_glob(pats) | 504 pats = expandpats(pats) |
491 if not pats: | 505 if not pats: |
492 raise util.Abort(_('no source or destination specified')) | 506 raise util.Abort(_('no source or destination specified')) |
493 if len(pats) == 1: | 507 if len(pats) == 1: |
494 raise util.Abort(_('no destination specified')) | 508 raise util.Abort(_('no destination specified')) |
495 dest = pats.pop() | 509 dest = pats.pop() |