##// END OF EJS Templates
files: add new command unifying locate and manifest functionality
Matt Mackall -
r22423:edf07a80 default
parent child Browse files
Show More
@@ -3061,6 +3061,81 b' def export(ui, repo, *changesets, **opts'
3061 switch_parent=opts.get('switch_parent'),
3061 switch_parent=opts.get('switch_parent'),
3062 opts=patch.diffopts(ui, opts))
3062 opts=patch.diffopts(ui, opts))
3063
3063
3064 @command('files',
3065 [('r', 'rev', '', _('search the repository as it is in REV'), _('REV')),
3066 ('0', 'print0', None, _('end filenames with NUL, for use with xargs')),
3067 ] + walkopts,
3068 _('[OPTION]... [PATTERN]...'))
3069 def files(ui, repo, *pats, **opts):
3070 """list tracked files
3071
3072 Print files under Mercurial control in the working directory or
3073 specified revision whose names match the given patterns (excluding
3074 removed files).
3075
3076 If no patterns are given to match, this command prints the names
3077 of all files under Mercurial control in the working copy.
3078
3079 .. container:: verbose
3080
3081 Examples:
3082
3083 - list all files under the current directory::
3084
3085 hg files .
3086
3087 - shows sizes and flags for current revision::
3088
3089 hg files -vr .
3090
3091 - list all files named README::
3092
3093 hg files -I "**/README"
3094
3095 - list all binary files::
3096
3097 hg files "set:binary()"
3098
3099 - find files containing a regular expression:
3100
3101 hg files "set:grep('bob')"
3102
3103 - search tracked file contents with xargs and grep::
3104
3105 hg files -0 | xargs -0 grep foo
3106
3107 See :hg:'help pattern' and :hg:'help revsets' for more information
3108 on specifying file patterns.
3109
3110 Returns 0 if a match is found, 1 otherwise.
3111
3112 """
3113 ctx = scmutil.revsingle(repo, opts.get('rev'), None)
3114 rev = ctx.rev()
3115 ret = 1
3116
3117 end = '\n'
3118 if opts.get('print0'):
3119 end = '\0'
3120 fm = ui.formatter('status', opts)
3121 fmt = '%s' + end
3122
3123 m = scmutil.match(ctx, pats, opts)
3124 for f in ctx.walk(m):
3125 if rev is None and repo.dirstate[f] in 'R?!':
3126 continue
3127 fm.startitem()
3128 if ui.verbose:
3129 fc = ctx[f]
3130 fm.write('size flags', '% 10d % 1s ', fc.size(), fc.flags())
3131 fm.data(abspath=f)
3132 fm.write('path', fmt, m.rel(f))
3133 ret = 0
3134
3135 fm.end()
3136
3137 return ret
3138
3064 @command('^forget', walkopts, _('[OPTION]... FILE...'), inferrepo=True)
3139 @command('^forget', walkopts, _('[OPTION]... FILE...'), inferrepo=True)
3065 def forget(ui, repo, *pats, **opts):
3140 def forget(ui, repo, *pats, **opts):
3066 """forget the specified files on the next commit
3141 """forget the specified files on the next commit
@@ -17,6 +17,7 b' Show all commands except debug commands'
17 copy
17 copy
18 diff
18 diff
19 export
19 export
20 files
20 forget
21 forget
21 graft
22 graft
22 grep
23 grep
@@ -257,6 +258,7 b' Show all commands + options'
257 debugsuccessorssets:
258 debugsuccessorssets:
258 debugwalk: include, exclude
259 debugwalk: include, exclude
259 debugwireargs: three, four, five, ssh, remotecmd, insecure
260 debugwireargs: three, four, five, ssh, remotecmd, insecure
261 files: rev, print0, include, exclude
260 graft: rev, continue, edit, log, force, currentdate, currentuser, date, user, tool, dry-run
262 graft: rev, continue, edit, log, force, currentdate, currentuser, date, user, tool, dry-run
261 grep: print0, all, text, follow, ignore-case, files-with-matches, line-number, rev, user, date, include, exclude
263 grep: print0, all, text, follow, ignore-case, files-with-matches, line-number, rev, user, date, include, exclude
262 heads: rev, topo, active, closed, style, template
264 heads: rev, topo, active, closed, style, template
@@ -301,6 +301,7 b' Testing -h/--help:'
301 copy mark files as copied for the next commit
301 copy mark files as copied for the next commit
302 diff diff repository (or selected files)
302 diff diff repository (or selected files)
303 export dump the header and diffs for one or more changesets
303 export dump the header and diffs for one or more changesets
304 files list tracked files
304 forget forget the specified files on the next commit
305 forget forget the specified files on the next commit
305 graft copy changes from other branches onto the current branch
306 graft copy changes from other branches onto the current branch
306 grep search for a pattern in specified files and revisions
307 grep search for a pattern in specified files and revisions
@@ -383,6 +384,7 b' Testing -h/--help:'
383 copy mark files as copied for the next commit
384 copy mark files as copied for the next commit
384 diff diff repository (or selected files)
385 diff diff repository (or selected files)
385 export dump the header and diffs for one or more changesets
386 export dump the header and diffs for one or more changesets
387 files list tracked files
386 forget forget the specified files on the next commit
388 forget forget the specified files on the next commit
387 graft copy changes from other branches onto the current branch
389 graft copy changes from other branches onto the current branch
388 grep search for a pattern in specified files and revisions
390 grep search for a pattern in specified files and revisions
@@ -66,6 +66,7 b' Short help:'
66 copy mark files as copied for the next commit
66 copy mark files as copied for the next commit
67 diff diff repository (or selected files)
67 diff diff repository (or selected files)
68 export dump the header and diffs for one or more changesets
68 export dump the header and diffs for one or more changesets
69 files list tracked files
69 forget forget the specified files on the next commit
70 forget forget the specified files on the next commit
70 graft copy changes from other branches onto the current branch
71 graft copy changes from other branches onto the current branch
71 grep search for a pattern in specified files and revisions
72 grep search for a pattern in specified files and revisions
@@ -142,6 +143,7 b' Short help:'
142 copy mark files as copied for the next commit
143 copy mark files as copied for the next commit
143 diff diff repository (or selected files)
144 diff diff repository (or selected files)
144 export dump the header and diffs for one or more changesets
145 export dump the header and diffs for one or more changesets
146 files list tracked files
145 forget forget the specified files on the next commit
147 forget forget the specified files on the next commit
146 graft copy changes from other branches onto the current branch
148 graft copy changes from other branches onto the current branch
147 grep search for a pattern in specified files and revisions
149 grep search for a pattern in specified files and revisions
@@ -684,6 +686,7 b' Test that default list of commands omits'
684 copy mark files as copied for the next commit
686 copy mark files as copied for the next commit
685 diff diff repository (or selected files)
687 diff diff repository (or selected files)
686 export dump the header and diffs for one or more changesets
688 export dump the header and diffs for one or more changesets
689 files list tracked files
687 forget forget the specified files on the next commit
690 forget forget the specified files on the next commit
688 graft copy changes from other branches onto the current branch
691 graft copy changes from other branches onto the current branch
689 grep search for a pattern in specified files and revisions
692 grep search for a pattern in specified files and revisions
@@ -1444,6 +1447,13 b' Dish up an empty repo; serve it cold.'
1444 mark files as copied for the next commit
1447 mark files as copied for the next commit
1445 </td></tr>
1448 </td></tr>
1446 <tr><td>
1449 <tr><td>
1450 <a href="/help/files">
1451 files
1452 </a>
1453 </td><td>
1454 list tracked files
1455 </td></tr>
1456 <tr><td>
1447 <a href="/help/graft">
1457 <a href="/help/graft">
1448 graft
1458 graft
1449 </a>
1459 </a>
@@ -92,6 +92,16 b' Issue294: hg remove --after dir fails wh'
92 t/e.h (glob)
92 t/e.h (glob)
93 t/x (glob)
93 t/x (glob)
94
94
95 $ hg files
96 b
97 dir.h/foo
98 t.h
99 t/b
100 t/e.h
101 t/x
102 $ hg files b
103 b
104
95 $ mkdir otherdir
105 $ mkdir otherdir
96 $ cd otherdir
106 $ cd otherdir
97
107
@@ -24,6 +24,14 b' The next call is expected to return noth'
24 b/a
24 b/a
25 l
25 l
26
26
27 $ hg files -vr .
28 2 a
29 2 x b/a
30 1 l l
31 $ hg files -r . -X b
32 a
33 l
34
27 $ hg manifest -v
35 $ hg manifest -v
28 644 a
36 644 a
29 755 * b/a
37 755 * b/a
General Comments 0
You need to be logged in to leave comments. Login now