comparison mercurial/context.py @ 6762:f67d1468ac50

util: add sort helper
author Matt Mackall <mpm@selenic.com>
date Fri, 27 Jun 2008 18:28:45 -0500
parents 4faaa0535ea7
children 403682f1c678
comparison
equal deleted inserted replaced
6761:cb981fc955fb 6762:f67d1468ac50
69 69
70 def __getitem__(self, key): 70 def __getitem__(self, key):
71 return self.filectx(key) 71 return self.filectx(key)
72 72
73 def __iter__(self): 73 def __iter__(self):
74 a = self._manifest.keys() 74 for f in util.sort(self._manifest):
75 a.sort()
76 for f in a:
77 yield f 75 yield f
78 76
79 def changeset(self): return self._changeset 77 def changeset(self): return self._changeset
80 def manifest(self): return self._manifest 78 def manifest(self): return self._manifest
81 79
132 changectx=self, filelog=filelog) 130 changectx=self, filelog=filelog)
133 131
134 def filectxs(self): 132 def filectxs(self):
135 """generate a file context for each file in this changeset's 133 """generate a file context for each file in this changeset's
136 manifest""" 134 manifest"""
137 mf = self.manifest() 135 for f in util.sort(mf):
138 m = mf.keys()
139 m.sort()
140 for f in m:
141 yield self.filectx(f, fileid=mf[f]) 136 yield self.filectx(f, fileid=mf[f])
142 137
143 def ancestor(self, c2): 138 def ancestor(self, c2):
144 """ 139 """
145 return the ancestor context of self and c2 140 return the ancestor context of self and c2
381 needed[p] += 1 376 needed[p] += 1
382 377
383 # sort by revision (per file) which is a topological order 378 # sort by revision (per file) which is a topological order
384 visit = [] 379 visit = []
385 for f in files: 380 for f in files:
386 fn = [(n.rev(), n) for n in needed.keys() if n._path == f] 381 fn = [(n.rev(), n) for n in needed if n._path == f]
387 visit.extend(fn) 382 visit.extend(fn)
388 visit.sort() 383
389 hist = {} 384 hist = {}
390 385 for r, f in util.sort(visit):
391 for r, f in visit:
392 curr = decorate(f.data(), f) 386 curr = decorate(f.data(), f)
393 for p in parents(f): 387 for p in parents(f):
394 if p != nullid: 388 if p != nullid:
395 curr = pair(hist[p], curr) 389 curr = pair(hist[p], curr)
396 # trim the history of unneeded revs 390 # trim the history of unneeded revs
528 522
529 def user(self): return self._user 523 def user(self): return self._user
530 def date(self): return self._date 524 def date(self): return self._date
531 def description(self): return self._text 525 def description(self): return self._text
532 def files(self): 526 def files(self):
533 f = self.modified() + self.added() + self.removed() 527 return util.sort(self._status[0] + self._status[1] + self._status[2])
534 f.sort()
535 return f
536 528
537 def modified(self): return self._status[0] 529 def modified(self): return self._status[0]
538 def added(self): return self._status[1] 530 def added(self): return self._status[1]
539 def removed(self): return self._status[2] 531 def removed(self): return self._status[2]
540 def deleted(self): return self._status[3] 532 def deleted(self): return self._status[3]
686 self._date = date and util.parsedate(date) or util.makedate() 678 self._date = date and util.parsedate(date) or util.makedate()
687 self._user = user or self._repo.ui.username() 679 self._user = user or self._repo.ui.username()
688 parents = [(p or nullid) for p in parents] 680 parents = [(p or nullid) for p in parents]
689 p1, p2 = parents 681 p1, p2 = parents
690 self._parents = [changectx(self._repo, p) for p in (p1, p2)] 682 self._parents = [changectx(self._repo, p) for p in (p1, p2)]
691 files = list(files) 683 files = util.sort(list(files))
692 files.sort()
693 self._status = [files, [], [], [], []] 684 self._status = [files, [], [], [], []]
694 self._filectxfn = filectxfn 685 self._filectxfn = filectxfn
695 686
696 self._extra = extra and extra.copy() or {} 687 self._extra = extra and extra.copy() or {}
697 if 'branch' not in self._extra: 688 if 'branch' not in self._extra: