Mercurial > public > mercurial-scm > hg-stable
diff mercurial/localrepo.py @ 2661:5c10b7ed3411
status: add -c (clean) and -A (all files) options
also add new localrepo.status what is more uniform than localrepo.changes.
localrepo.changes is deprecated and will go away soon.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Thu, 20 Jul 2006 16:21:07 -0700 |
parents | 5a5852a417b1 |
children | 109a22f5434a |
line wrap: on
line diff
--- a/mercurial/localrepo.py Wed Jul 19 07:56:40 2006 -0700 +++ b/mercurial/localrepo.py Thu Jul 20 16:21:07 2006 -0700 @@ -658,9 +658,9 @@ for src, fn in self.dirstate.walk(files, match, badmatch=badmatch): yield src, fn - def changes(self, node1=None, node2=None, files=[], match=util.always, - wlock=None, show_ignored=None): - """return changes between two nodes or node and working directory + def status(self, node1=None, node2=None, files=[], match=util.always, + wlock=None, list_ignored=False, list_clean=False): + """return status of files between two nodes or node and working directory If node1 is None, use the first dirstate parent instead. If node2 is None, compare node1 with working directory. @@ -679,7 +679,9 @@ del mf[fn] return mf - modified, added, removed, deleted, unknown, ignored = [],[],[],[],[],[] + modified, added, removed, deleted, unknown = [], [], [], [], [] + ignored, clean = [], [] + compareworking = False if not node1 or (not node2 and node1 == self.dirstate.parents()[0]): compareworking = True @@ -697,8 +699,9 @@ wlock = self.wlock(wait=0) except lock.LockException: wlock = None - lookup, modified, added, removed, deleted, unknown, ignored = ( - self.dirstate.changes(files, match, show_ignored)) + (lookup, modified, added, removed, deleted, unknown, + ignored, clean) = self.dirstate.status(files, match, + list_ignored, list_clean) # are we comparing working dir against its parent? if compareworking: @@ -721,12 +724,11 @@ del mf2[f] else: # we are comparing two revisions - deleted, unknown, ignored = [], [], [] mf2 = mfmatches(node2) if not compareworking: # flush lists from dirstate before comparing manifests - modified, added = [], [] + modified, added, clean = [], [], [] # make sure to sort the files so we talk to the disk in a # reasonable order @@ -736,6 +738,8 @@ if mf1.has_key(fn): if mf1[fn] != mf2[fn] and (mf2[fn] != "" or fcmp(fn, mf1)): modified.append(fn) + elif list_clean: + clean.append(fn) del mf1[fn] else: added.append(fn) @@ -743,12 +747,19 @@ removed = mf1.keys() # sort and return results: - for l in modified, added, removed, deleted, unknown, ignored: + for l in modified, added, removed, deleted, unknown, ignored, clean: l.sort() - if show_ignored is None: - return (modified, added, removed, deleted, unknown) + return (modified, added, removed, deleted, unknown, ignored, clean) + + def changes(self, node1=None, node2=None, files=[], match=util.always, + wlock=None, list_ignored=False, list_clean=False): + '''DEPRECATED - use status instead''' + marduit = self.status(node1, node2, files, match, wlock, + list_ignored, list_clean) + if list_ignored: + return marduit[:-1] else: - return (modified, added, removed, deleted, unknown, ignored) + return marduit[:-2] def add(self, list, wlock=None): if not wlock: