diff --git a/contrib/hbisect.py b/contrib/hbisect.py --- a/contrib/hbisect.py +++ b/contrib/hbisect.py @@ -21,7 +21,7 @@ def lookup_rev(ui, repo, rev=None): return parents.pop() def check_clean(ui, repo): - modified, added, removed, unknown = repo.changes() + modified, added, removed, deleted, unknown = repo.changes() if modified or added or removed: ui.warn("Repository is not clean, please commit or revert\n") sys.exit(1) diff --git a/contrib/hgk.py b/contrib/hgk.py --- a/contrib/hgk.py +++ b/contrib/hgk.py @@ -15,7 +15,7 @@ def dodiff(fp, ui, repo, node1, node2, f if not changes: changes = repo.changes(node1, node2, files, match=match) - modified, added, removed, unknown = changes + modified, added, removed, deleted, unknown = changes if files: modified, added, removed = map(lambda x: filterfiles(x, files), (modified, added, removed)) @@ -67,12 +67,12 @@ def difftree(ui, repo, node1=None, node2 if node2: change = repo.changelog.read(node2) mmap2 = repo.manifest.read(change[0]) - modified, added, removed, unknown = repo.changes(node1, node2) + modified, added, removed, deleted, unknown = repo.changes(node1, node2) def read(f): return repo.file(f).read(mmap2[f]) date2 = date(change) else: date2 = time.asctime() - modified, added, removed, unknown = repo.changes(node1) + modified, added, removed, deleted, unknown = repo.changes(node1) if not node1: node1 = repo.dirstate.parents()[0] def read(f): return file(os.path.join(repo.root, f)).read() diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -264,7 +264,7 @@ def dodiff(fp, ui, repo, node1, node2, f changes=None, text=False): if not changes: changes = repo.changes(node1, node2, files, match=match) - modified, added, removed, unknown = changes + modified, added, removed, deleted, unknown = changes if files: modified, added, removed = map(lambda x: filterfiles(x, files), (modified, added, removed)) @@ -785,10 +785,9 @@ def commit(ui, repo, *pats, **opts): addremove(ui, repo, *pats, **opts) fns, match, anypats, cwd = matchpats(repo, pats, opts) if pats: - modified, added, removed, unknown = ( + modified, added, removed, deleted, unknown = ( repo.changes(files=fns, match=match)) - files = (modified + added + - [fn for fn in removed if repo.dirstate.state(fn) == 'r']) + files = modified + added + removed else: files = [] try: @@ -1381,9 +1380,10 @@ def identify(ui, repo): return hexfunc = ui.verbose and hex or short - modified, added, removed, unknown = repo.changes() - output = ["%s%s" % ('+'.join([hexfunc(parent) for parent in parents]), - (modified or added or removed) and "+" or "")] + modified, added, removed, deleted, unknown = repo.changes() + output = ["%s%s" % + ('+'.join([hexfunc(parent) for parent in parents]), + (modified or added or removed or deleted) and "+" or "")] if not ui.quiet: # multiple tags for a single parent separated by '/' @@ -1412,8 +1412,8 @@ def import_(ui, repo, patch1, *patches, patches = (patch1,) + patches if not opts['force']: - modified, added, removed, unknown = repo.changes() - if modified or added or removed: + modified, added, removed, deleted, unknown = repo.changes() + if modified or added or removed or deleted: raise util.Abort(_("outstanding uncommitted changes")) d = opts["base"] @@ -1829,7 +1829,7 @@ def remove(ui, repo, pat, *pats, **opts) """ names = [] def okaytoremove(abs, rel, exact): - modified, added, removed, unknown = repo.changes(files=[abs]) + modified, added, removed, deleted, unknown = repo.changes(files=[abs]) reason = None if modified: reason = _('is modified') @@ -1893,9 +1893,9 @@ def revert(ui, repo, *pats, **opts): repo.dirstate.parents()[0] files, choose, anypats, cwd = matchpats(repo, pats, opts) - modified, added, removed, unknown = repo.changes(match=choose) + modified, added, removed, deleted, unknown = repo.changes(match=choose) repo.forget(added) - repo.undelete(removed) + repo.undelete(removed + deleted) return repo.update(node, False, True, choose, False) @@ -2022,17 +2022,19 @@ def status(ui, repo, *pats, **opts): M = modified A = added R = removed + ! = deleted, but still tracked ? = not tracked """ files, matchfn, anypats, cwd = matchpats(repo, pats, opts) - modified, added, removed, unknown = [ + modified, added, removed, deleted, unknown = [ [util.pathto(cwd, x) for x in n] for n in repo.changes(files=files, match=matchfn)] changetypes = [(_('modified'), 'M', modified), (_('added'), 'A', added), (_('removed'), 'R', removed), + (_('deleted'), '!', deleted), (_('unknown'), '?', unknown)] end = opts['print0'] and '\0' or '\n' @@ -2437,6 +2439,7 @@ table = { [('m', 'modified', None, _('show only modified files')), ('a', 'added', None, _('show only added files')), ('r', 'removed', None, _('show only removed files')), + ('d', 'deleted', None, _('show only deleted (but tracked) files')), ('u', 'unknown', None, _('show only unknown (not tracked) files')), ('n', 'no-status', None, _('hide status prefix')), ('0', 'print0', None, diff --git a/mercurial/hgweb.py b/mercurial/hgweb.py --- a/mercurial/hgweb.py +++ b/mercurial/hgweb.py @@ -265,7 +265,7 @@ class hgweb(object): date1 = util.datestr(change1[2]) date2 = util.datestr(change2[2]) - modified, added, removed, unknown = r.changes(node1, node2) + modified, added, removed, deleted, unknown = r.changes(node1, node2) if files: modified, added, removed = map(lambda x: filterfiles(x, files), (modified, added, removed)) diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -355,7 +355,7 @@ class localrepository(object): else: self.ui.warn(_("%s not tracked!\n") % f) else: - modified, added, removed, unknown = self.changes(match=match) + modified, added, removed, deleted, unknown = self.changes(match=match) commit = modified + added remove = removed @@ -544,12 +544,10 @@ class localrepository(object): removed = mf1.keys() - removed.extend(deleted) #XXX get rid of this when returning deleted - # sort and return results: - for l in modified, added, removed, unknown: + for l in modified, added, removed, deleted, unknown: l.sort() - return (modified, added, removed, unknown) + return (modified, added, removed, deleted, unknown) def add(self, list): wlock = self.wlock() @@ -1392,7 +1390,7 @@ class localrepository(object): ma = self.manifest.read(man) mfa = self.manifest.readflags(man) - modified, added, removed, unknown = self.changes() + modified, added, removed, deleted, unknown = self.changes() if allow and not forcemerge: if modified or added or removed: @@ -1434,7 +1432,7 @@ class localrepository(object): if moddirstate: wlock = self.wlock() - for f in removed: + for f in deleted: if f in mw: del mw[f]