equal
deleted
inserted
replaced
160 A foo.c |
160 A foo.c |
161 |
161 |
162 Returns 0 if all files are successfully added. |
162 Returns 0 if all files are successfully added. |
163 """ |
163 """ |
164 |
164 |
165 m = scmutil.match(repo, pats, opts) |
165 m = scmutil.match(repo[None], pats, opts) |
166 rejected = cmdutil.add(ui, repo, m, opts.get('dry_run'), |
166 rejected = cmdutil.add(ui, repo, m, opts.get('dry_run'), |
167 opts.get('subrepos'), prefix="") |
167 opts.get('subrepos'), prefix="") |
168 return rejected and 1 or 0 |
168 return rejected and 1 or 0 |
169 |
169 |
170 @command('addremove', |
170 @command('addremove', |
260 |
260 |
261 def bad(x, y): |
261 def bad(x, y): |
262 raise util.Abort("%s: %s" % (x, y)) |
262 raise util.Abort("%s: %s" % (x, y)) |
263 |
263 |
264 ctx = scmutil.revsingle(repo, opts.get('rev')) |
264 ctx = scmutil.revsingle(repo, opts.get('rev')) |
265 m = scmutil.match(repo, pats, opts) |
265 m = scmutil.match(ctx, pats, opts) |
266 m.bad = bad |
266 m.bad = bad |
267 follow = not opts.get('no_follow') |
267 follow = not opts.get('no_follow') |
268 for abs in ctx.walk(m): |
268 for abs in ctx.walk(m): |
269 fctx = ctx[abs] |
269 fctx = ctx[abs] |
270 if not opts.get('text') and util.binary(fctx.data()): |
270 if not opts.get('text') and util.binary(fctx.data()): |
340 dest = ui.fout |
340 dest = ui.fout |
341 if not prefix: |
341 if not prefix: |
342 prefix = os.path.basename(repo.root) + '-%h' |
342 prefix = os.path.basename(repo.root) + '-%h' |
343 |
343 |
344 prefix = cmdutil.makefilename(repo, prefix, node) |
344 prefix = cmdutil.makefilename(repo, prefix, node) |
345 matchfn = scmutil.match(repo, [], opts) |
345 matchfn = scmutil.match(ctx, [], opts) |
346 archival.archive(repo, dest, node, kind, not opts.get('no_decode'), |
346 archival.archive(repo, dest, node, kind, not opts.get('no_decode'), |
347 matchfn, prefix, subrepos=opts.get('subrepos')) |
347 matchfn, prefix, subrepos=opts.get('subrepos')) |
348 |
348 |
349 @command('backout', |
349 @command('backout', |
350 [('', 'merge', None, _('merge with old dirstate parent after backout')), |
350 [('', 'merge', None, _('merge with old dirstate parent after backout')), |
942 |
942 |
943 Returns 0 on success. |
943 Returns 0 on success. |
944 """ |
944 """ |
945 ctx = scmutil.revsingle(repo, opts.get('rev')) |
945 ctx = scmutil.revsingle(repo, opts.get('rev')) |
946 err = 1 |
946 err = 1 |
947 m = scmutil.match(repo, (file1,) + pats, opts) |
947 m = scmutil.match(ctx, (file1,) + pats, opts) |
948 for abs in ctx.walk(m): |
948 for abs in ctx.walk(m): |
949 fp = cmdutil.makefileobj(repo, opts.get('output'), ctx.node(), |
949 fp = cmdutil.makefileobj(repo, opts.get('output'), ctx.node(), |
950 pathname=abs) |
950 pathname=abs) |
951 data = ctx[abs].data() |
951 data = ctx[abs].data() |
952 if opts.get('decode'): |
952 if opts.get('decode'): |
1089 branch = repo[None].branch() |
1089 branch = repo[None].branch() |
1090 bheads = repo.branchheads(branch) |
1090 bheads = repo.branchheads(branch) |
1091 |
1091 |
1092 node = cmdutil.commit(ui, repo, commitfunc, pats, opts) |
1092 node = cmdutil.commit(ui, repo, commitfunc, pats, opts) |
1093 if not node: |
1093 if not node: |
1094 stat = repo.status(match=scmutil.match(repo, pats, opts)) |
1094 stat = repo.status(match=scmutil.match(repo[None], pats, opts)) |
1095 if stat[3]: |
1095 if stat[3]: |
1096 ui.status(_("nothing changed (%d missing files, see 'hg status')\n") |
1096 ui.status(_("nothing changed (%d missing files, see 'hg status')\n") |
1097 % len(stat[3])) |
1097 % len(stat[3])) |
1098 else: |
1098 else: |
1099 ui.status(_("nothing changed\n")) |
1099 ui.status(_("nothing changed\n")) |
1608 def debugfileset(ui, repo, expr): |
1608 def debugfileset(ui, repo, expr): |
1609 '''parse and apply a fileset specification''' |
1609 '''parse and apply a fileset specification''' |
1610 if ui.verbose: |
1610 if ui.verbose: |
1611 tree = fileset.parse(expr)[0] |
1611 tree = fileset.parse(expr)[0] |
1612 ui.note(tree, "\n") |
1612 ui.note(tree, "\n") |
1613 matcher = lambda x: scmutil.match(repo, x, default='glob') |
1613 matcher = lambda x: scmutil.match(repo[None], x, default='glob') |
1614 |
1614 |
1615 for f in fileset.getfileset(repo[None], matcher, expr): |
1615 for f in fileset.getfileset(repo[None], matcher, expr): |
1616 ui.write("%s\n" % f) |
1616 ui.write("%s\n" % f) |
1617 |
1617 |
1618 @command('debugfsinfo', [], _('[PATH]')) |
1618 @command('debugfsinfo', [], _('[PATH]')) |
1855 _('[-r REV] FILE')) |
1855 _('[-r REV] FILE')) |
1856 def debugrename(ui, repo, file1, *pats, **opts): |
1856 def debugrename(ui, repo, file1, *pats, **opts): |
1857 """dump rename information""" |
1857 """dump rename information""" |
1858 |
1858 |
1859 ctx = scmutil.revsingle(repo, opts.get('rev')) |
1859 ctx = scmutil.revsingle(repo, opts.get('rev')) |
1860 m = scmutil.match(repo, (file1,) + pats, opts) |
1860 m = scmutil.match(ctx, (file1,) + pats, opts) |
1861 for abs in ctx.walk(m): |
1861 for abs in ctx.walk(m): |
1862 fctx = ctx[abs] |
1862 fctx = ctx[abs] |
1863 o = fctx.filelog().renamed(fctx.filenode()) |
1863 o = fctx.filelog().renamed(fctx.filenode()) |
1864 rel = m.rel(abs) |
1864 rel = m.rel(abs) |
1865 if o: |
1865 if o: |
2104 ui.write(' revision %s\n' % v[1]) |
2104 ui.write(' revision %s\n' % v[1]) |
2105 |
2105 |
2106 @command('debugwalk', walkopts, _('[OPTION]... [FILE]...')) |
2106 @command('debugwalk', walkopts, _('[OPTION]... [FILE]...')) |
2107 def debugwalk(ui, repo, *pats, **opts): |
2107 def debugwalk(ui, repo, *pats, **opts): |
2108 """show how files match on given patterns""" |
2108 """show how files match on given patterns""" |
2109 m = scmutil.match(repo, pats, opts) |
2109 m = scmutil.match(repo[None], pats, opts) |
2110 items = list(repo.walk(m)) |
2110 items = list(repo.walk(m)) |
2111 if not items: |
2111 if not items: |
2112 return |
2112 return |
2113 fmt = 'f %%-%ds %%-%ds %%s' % ( |
2113 fmt = 'f %%-%ds %%-%ds %%s' % ( |
2114 max([len(abs) for abs in items]), |
2114 max([len(abs) for abs in items]), |
2190 |
2190 |
2191 if reverse: |
2191 if reverse: |
2192 node1, node2 = node2, node1 |
2192 node1, node2 = node2, node1 |
2193 |
2193 |
2194 diffopts = patch.diffopts(ui, opts) |
2194 diffopts = patch.diffopts(ui, opts) |
2195 m = scmutil.match(repo, pats, opts) |
2195 m = scmutil.match(repo[node2], pats, opts) |
2196 cmdutil.diffordiffstat(ui, repo, diffopts, node1, node2, m, stat=stat, |
2196 cmdutil.diffordiffstat(ui, repo, diffopts, node1, node2, m, stat=stat, |
2197 listsubrepos=opts.get('subrepos')) |
2197 listsubrepos=opts.get('subrepos')) |
2198 |
2198 |
2199 @command('^export', |
2199 @command('^export', |
2200 [('o', 'output', '', |
2200 [('o', 'output', '', |
2270 """ |
2270 """ |
2271 |
2271 |
2272 if not pats: |
2272 if not pats: |
2273 raise util.Abort(_('no files specified')) |
2273 raise util.Abort(_('no files specified')) |
2274 |
2274 |
2275 m = scmutil.match(repo, pats, opts) |
2275 m = scmutil.match(repo[None], pats, opts) |
2276 s = repo.status(match=m, clean=True) |
2276 s = repo.status(match=m, clean=True) |
2277 forget = sorted(s[0] + s[1] + s[3] + s[6]) |
2277 forget = sorted(s[0] + s[1] + s[3] + s[6]) |
2278 errs = 0 |
2278 errs = 0 |
2279 |
2279 |
2280 for f in m.files(): |
2280 for f in m.files(): |
2436 found = True |
2436 found = True |
2437 return found |
2437 return found |
2438 |
2438 |
2439 skip = {} |
2439 skip = {} |
2440 revfiles = {} |
2440 revfiles = {} |
2441 matchfn = scmutil.match(repo, pats, opts) |
2441 matchfn = scmutil.match(repo[None], pats, opts) |
2442 found = False |
2442 found = False |
2443 follow = opts.get('follow') |
2443 follow = opts.get('follow') |
2444 |
2444 |
2445 def prep(ctx, fns): |
2445 def prep(ctx, fns): |
2446 rev = ctx.rev() |
2446 rev = ctx.rev() |
3311 """ |
3311 """ |
3312 end = opts.get('print0') and '\0' or '\n' |
3312 end = opts.get('print0') and '\0' or '\n' |
3313 rev = scmutil.revsingle(repo, opts.get('rev'), None).node() |
3313 rev = scmutil.revsingle(repo, opts.get('rev'), None).node() |
3314 |
3314 |
3315 ret = 1 |
3315 ret = 1 |
3316 m = scmutil.match(repo, pats, opts, default='relglob') |
3316 m = scmutil.match(repo[rev], pats, opts, default='relglob') |
3317 m.bad = lambda x, y: False |
3317 m.bad = lambda x, y: False |
3318 for abs in repo[rev].walk(m): |
3318 for abs in repo[rev].walk(m): |
3319 if not rev and abs not in repo.dirstate: |
3319 if not rev and abs not in repo.dirstate: |
3320 continue |
3320 continue |
3321 if opts.get('fullpath'): |
3321 if opts.get('fullpath'): |
3380 will appear in files:. |
3380 will appear in files:. |
3381 |
3381 |
3382 Returns 0 on success. |
3382 Returns 0 on success. |
3383 """ |
3383 """ |
3384 |
3384 |
3385 matchfn = scmutil.match(repo, pats, opts) |
3385 matchfn = scmutil.match(repo[None], pats, opts) |
3386 limit = cmdutil.loglimit(opts) |
3386 limit = cmdutil.loglimit(opts) |
3387 count = 0 |
3387 count = 0 |
3388 |
3388 |
3389 endrev = None |
3389 endrev = None |
3390 if opts.get('copies') and opts.get('rev'): |
3390 if opts.get('copies') and opts.get('rev'): |
3435 |
3435 |
3436 revmatchfn = None |
3436 revmatchfn = None |
3437 if opts.get('patch') or opts.get('stat'): |
3437 if opts.get('patch') or opts.get('stat'): |
3438 if opts.get('follow') or opts.get('follow_first'): |
3438 if opts.get('follow') or opts.get('follow_first'): |
3439 # note: this might be wrong when following through merges |
3439 # note: this might be wrong when following through merges |
3440 revmatchfn = scmutil.match(repo, fns, default='path') |
3440 revmatchfn = scmutil.match(repo[None], fns, default='path') |
3441 else: |
3441 else: |
3442 revmatchfn = matchfn |
3442 revmatchfn = matchfn |
3443 |
3443 |
3444 displayer.show(ctx, copies=copies, matchfn=revmatchfn) |
3444 displayer.show(ctx, copies=copies, matchfn=revmatchfn) |
3445 |
3445 |
3648 """ |
3648 """ |
3649 |
3649 |
3650 ctx = scmutil.revsingle(repo, opts.get('rev'), None) |
3650 ctx = scmutil.revsingle(repo, opts.get('rev'), None) |
3651 |
3651 |
3652 if file_: |
3652 if file_: |
3653 m = scmutil.match(repo, (file_,), opts) |
3653 m = scmutil.match(ctx, (file_,), opts) |
3654 if m.anypats() or len(m.files()) != 1: |
3654 if m.anypats() or len(m.files()) != 1: |
3655 raise util.Abort(_('can only specify an explicit filename')) |
3655 raise util.Abort(_('can only specify an explicit filename')) |
3656 file_ = m.files()[0] |
3656 file_ = m.files()[0] |
3657 filenodes = [] |
3657 filenodes = [] |
3658 for cp in ctx.parents(): |
3658 for cp in ctx.parents(): |
3966 ret = 0 |
3966 ret = 0 |
3967 after, force = opts.get('after'), opts.get('force') |
3967 after, force = opts.get('after'), opts.get('force') |
3968 if not pats and not after: |
3968 if not pats and not after: |
3969 raise util.Abort(_('no files specified')) |
3969 raise util.Abort(_('no files specified')) |
3970 |
3970 |
3971 m = scmutil.match(repo, pats, opts) |
3971 m = scmutil.match(repo[None], pats, opts) |
3972 s = repo.status(match=m, clean=True) |
3972 s = repo.status(match=m, clean=True) |
3973 modified, added, deleted, clean = s[0], s[1], s[3], s[6] |
3973 modified, added, deleted, clean = s[0], s[1], s[3], s[6] |
3974 |
3974 |
3975 for f in m.files(): |
3975 for f in m.files(): |
3976 if f not in repo.dirstate and not os.path.isdir(m.rel(f)): |
3976 if f not in repo.dirstate and not os.path.isdir(m.rel(f)): |
4100 if not (all or pats or show or mark or unmark): |
4100 if not (all or pats or show or mark or unmark): |
4101 raise util.Abort(_('no files or directories specified; ' |
4101 raise util.Abort(_('no files or directories specified; ' |
4102 'use --all to remerge all files')) |
4102 'use --all to remerge all files')) |
4103 |
4103 |
4104 ms = mergemod.mergestate(repo) |
4104 ms = mergemod.mergestate(repo) |
4105 m = scmutil.match(repo, pats, opts) |
4105 m = scmutil.match(repo[None], pats, opts) |
4106 ret = 0 |
4106 ret = 0 |
4107 |
4107 |
4108 for f in ms: |
4108 for f in ms: |
4109 if m(f): |
4109 if m(f): |
4110 if show: |
4110 if show: |
4201 |
4201 |
4202 wlock = repo.wlock() |
4202 wlock = repo.wlock() |
4203 try: |
4203 try: |
4204 # walk dirstate. |
4204 # walk dirstate. |
4205 |
4205 |
4206 m = scmutil.match(repo, pats, opts) |
4206 m = scmutil.match(repo[None], pats, opts) |
4207 m.bad = lambda x, y: False |
4207 m.bad = lambda x, y: False |
4208 for abs in repo.walk(m): |
4208 for abs in repo.walk(m): |
4209 names[abs] = m.rel(abs), m.exact(abs) |
4209 names[abs] = m.rel(abs), m.exact(abs) |
4210 |
4210 |
4211 # walk target manifest. |
4211 # walk target manifest. |
4217 for f in names: |
4217 for f in names: |
4218 if f.startswith(path_): |
4218 if f.startswith(path_): |
4219 return |
4219 return |
4220 ui.warn("%s: %s\n" % (m.rel(path), msg)) |
4220 ui.warn("%s: %s\n" % (m.rel(path), msg)) |
4221 |
4221 |
4222 m = scmutil.match(repo, pats, opts) |
4222 m = scmutil.match(repo[node], pats, opts) |
4223 m.bad = badfn |
4223 m.bad = badfn |
4224 for abs in repo[node].walk(m): |
4224 for abs in repo[node].walk(m): |
4225 if abs not in names: |
4225 if abs not in names: |
4226 names[abs] = m.rel(abs), m.exact(abs) |
4226 names[abs] = m.rel(abs), m.exact(abs) |
4227 |
4227 |
4652 if opts.get('all'): |
4652 if opts.get('all'): |
4653 show += ui.quiet and (states[:4] + ['clean']) or states |
4653 show += ui.quiet and (states[:4] + ['clean']) or states |
4654 if not show: |
4654 if not show: |
4655 show = ui.quiet and states[:4] or states[:5] |
4655 show = ui.quiet and states[:4] or states[:5] |
4656 |
4656 |
4657 stat = repo.status(node1, node2, scmutil.match(repo, pats, opts), |
4657 stat = repo.status(node1, node2, scmutil.match(repo[node2], pats, opts), |
4658 'ignored' in show, 'clean' in show, 'unknown' in show, |
4658 'ignored' in show, 'clean' in show, 'unknown' in show, |
4659 opts.get('subrepos')) |
4659 opts.get('subrepos')) |
4660 changestates = zip(states, 'MAR!?IC', stat) |
4660 changestates = zip(states, 'MAR!?IC', stat) |
4661 |
4661 |
4662 if (opts.get('all') or opts.get('copies')) and not opts.get('no_status'): |
4662 if (opts.get('all') or opts.get('copies')) and not opts.get('no_status'): |