mercurial/commands.py
changeset 2661 5c10b7ed3411
parent 2639 001703ec311d
child 2662 2c5d5cf35034
equal deleted inserted replaced
2640:02b6fa7bbfbf 2661:5c10b7ed3411
  2597     httpd.serve_forever()
  2597     httpd.serve_forever()
  2598 
  2598 
  2599 def status(ui, repo, *pats, **opts):
  2599 def status(ui, repo, *pats, **opts):
  2600     """show changed files in the working directory
  2600     """show changed files in the working directory
  2601 
  2601 
  2602     Show changed files in the repository.  If names are
  2602     Show status of files in the repository.  If names are given, only
  2603     given, only files that match are shown.
  2603     files that match are shown.  Files that are clean or ignored, are
       
  2604     not listed unless -c (clean), -i (ignored) or -A is given.
  2604 
  2605 
  2605     The codes used to show the status of files are:
  2606     The codes used to show the status of files are:
  2606     M = modified
  2607     M = modified
  2607     A = added
  2608     A = added
  2608     R = removed
  2609     R = removed
       
  2610     C = clean
  2609     ! = deleted, but still tracked
  2611     ! = deleted, but still tracked
  2610     ? = not tracked
  2612     ? = not tracked
  2611     I = ignored (not shown by default)
  2613     I = ignored (not shown by default)
  2612       = the previous added file was copied from here
  2614       = the previous added file was copied from here
  2613     """
  2615     """
  2614 
  2616 
  2615     show_ignored = opts['ignored'] and True or False
  2617     all = opts['all']
       
  2618     
  2616     files, matchfn, anypats = matchpats(repo, pats, opts)
  2619     files, matchfn, anypats = matchpats(repo, pats, opts)
  2617     cwd = (pats and repo.getcwd()) or ''
  2620     cwd = (pats and repo.getcwd()) or ''
  2618     modified, added, removed, deleted, unknown, ignored = [
  2621     modified, added, removed, deleted, unknown, ignored, clean = [
  2619         [util.pathto(cwd, x) for x in n]
  2622         [util.pathto(cwd, x) for x in n]
  2620         for n in repo.changes(files=files, match=matchfn,
  2623         for n in repo.status(files=files, match=matchfn,
  2621                               show_ignored=show_ignored)]
  2624                              list_ignored=all or opts['ignored'],
  2622 
  2625                              list_clean=all or opts['clean'])]
  2623     changetypes = [('modified', 'M', modified),
  2626 
       
  2627     changetypes = (('modified', 'M', modified),
  2624                    ('added', 'A', added),
  2628                    ('added', 'A', added),
  2625                    ('removed', 'R', removed),
  2629                    ('removed', 'R', removed),
  2626                    ('deleted', '!', deleted),
  2630                    ('deleted', '!', deleted),
  2627                    ('unknown', '?', unknown),
  2631                    ('unknown', '?', unknown),
  2628                    ('ignored', 'I', ignored)]
  2632                    ('ignored', 'I', ignored))
       
  2633 
       
  2634     explicit_changetypes = changetypes + (('clean', 'C', clean),)
  2629 
  2635 
  2630     end = opts['print0'] and '\0' or '\n'
  2636     end = opts['print0'] and '\0' or '\n'
  2631 
  2637 
  2632     for opt, char, changes in ([ct for ct in changetypes if opts[ct[0]]]
  2638     for opt, char, changes in ([ct for ct in explicit_changetypes
       
  2639                                 if all or opts[ct[0]]]
  2633                                or changetypes):
  2640                                or changetypes):
  2634         if opts['no_status']:
  2641         if opts['no_status']:
  2635             format = "%%s%s" % end
  2642             format = "%%s%s" % end
  2636         else:
  2643         else:
  2637             format = "%s %%s%s" % (char, end)
  2644             format = "%s %%s%s" % (char, end)
  2638 
  2645 
  2639         for f in changes:
  2646         for f in changes:
  2640             ui.write(format % f)
  2647             ui.write(format % f)
  2641             if (opts.get('copies') and not opts.get('no_status')
  2648             if ((all or opts.get('copies')) and not opts.get('no_status')
  2642                 and opt == 'added' and repo.dirstate.copies.has_key(f)):
  2649                 and opt == 'added' and repo.dirstate.copies.has_key(f)):
  2643                 ui.write('  %s%s' % (repo.dirstate.copies[f], end))
  2650                 ui.write('  %s%s' % (repo.dirstate.copies[f], end))
  2644 
  2651 
  2645 def tag(ui, repo, name, rev_=None, **opts):
  2652 def tag(ui, repo, name, rev_=None, **opts):
  2646     """add a tag for the current tip or a given revision
  2653     """add a tag for the current tip or a given revision
  3121           ('', 'style', '', _('template style to use')),
  3128           ('', 'style', '', _('template style to use')),
  3122           ('6', 'ipv6', None, _('use IPv6 in addition to IPv4'))],
  3129           ('6', 'ipv6', None, _('use IPv6 in addition to IPv4'))],
  3123          _('hg serve [OPTION]...')),
  3130          _('hg serve [OPTION]...')),
  3124     "^status|st":
  3131     "^status|st":
  3125         (status,
  3132         (status,
  3126          [('m', 'modified', None, _('show only modified files')),
  3133          [('A', 'all', None, _('show status of all files')),
       
  3134           ('m', 'modified', None, _('show only modified files')),
  3127           ('a', 'added', None, _('show only added files')),
  3135           ('a', 'added', None, _('show only added files')),
  3128           ('r', 'removed', None, _('show only removed files')),
  3136           ('r', 'removed', None, _('show only removed files')),
  3129           ('d', 'deleted', None, _('show only deleted (but tracked) files')),
  3137           ('d', 'deleted', None, _('show only deleted (but tracked) files')),
       
  3138           ('c', 'clean', None, _('show only files without changes')),
  3130           ('u', 'unknown', None, _('show only unknown (not tracked) files')),
  3139           ('u', 'unknown', None, _('show only unknown (not tracked) files')),
  3131           ('i', 'ignored', None, _('show ignored files')),
  3140           ('i', 'ignored', None, _('show ignored files')),
  3132           ('n', 'no-status', None, _('hide status prefix')),
  3141           ('n', 'no-status', None, _('hide status prefix')),
  3133           ('C', 'copies', None, _('show source of copied files')),
  3142           ('C', 'copies', None, _('show source of copied files')),
  3134           ('0', 'print0', None,
  3143           ('0', 'print0', None,