Mercurial > hg
comparison mercurial/cmdutil.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 | 63b5f4c73c98 |
comparison
equal
deleted
inserted
replaced
6761:cb981fc955fb | 6762:f67d1468ac50 |
---|---|
651 if copies and self.ui.verbose: | 651 if copies and self.ui.verbose: |
652 copies = ['%s (%s)' % c for c in copies] | 652 copies = ['%s (%s)' % c for c in copies] |
653 self.ui.write(_("copies: %s\n") % ' '.join(copies)) | 653 self.ui.write(_("copies: %s\n") % ' '.join(copies)) |
654 | 654 |
655 if extra and self.ui.debugflag: | 655 if extra and self.ui.debugflag: |
656 extraitems = extra.items() | 656 for key, value in util.sort(extra.items()): |
657 extraitems.sort() | |
658 for key, value in extraitems: | |
659 self.ui.write(_("extra: %s=%s\n") | 657 self.ui.write(_("extra: %s=%s\n") |
660 % (key, value.encode('string_escape'))) | 658 % (key, value.encode('string_escape'))) |
661 | 659 |
662 description = changes[4].strip() | 660 description = changes[4].strip() |
663 if description: | 661 if description: |
797 | 795 |
798 def showtags(**args): | 796 def showtags(**args): |
799 return showlist('tag', self.repo.nodetags(changenode), **args) | 797 return showlist('tag', self.repo.nodetags(changenode), **args) |
800 | 798 |
801 def showextras(**args): | 799 def showextras(**args): |
802 extras = changes[5].items() | 800 for key, value in util.sort(changes[5].items()): |
803 extras.sort() | |
804 for key, value in extras: | |
805 args = args.copy() | 801 args = args.copy() |
806 args.update(dict(key=key, value=value)) | 802 args.update(dict(key=key, value=value)) |
807 yield self.t('extra', **args) | 803 yield self.t('extra', **args) |
808 | 804 |
809 def showcopies(**args): | 805 def showcopies(**args): |
1127 return rev in wanted | 1123 return rev in wanted |
1128 | 1124 |
1129 for i, window in increasing_windows(0, len(revs)): | 1125 for i, window in increasing_windows(0, len(revs)): |
1130 yield 'window', revs[0] < revs[-1], revs[-1] | 1126 yield 'window', revs[0] < revs[-1], revs[-1] |
1131 nrevs = [rev for rev in revs[i:i+window] if want(rev)] | 1127 nrevs = [rev for rev in revs[i:i+window] if want(rev)] |
1132 srevs = list(nrevs) | 1128 for rev in util.sort(list(nrevs)): |
1133 srevs.sort() | |
1134 for rev in srevs: | |
1135 fns = fncache.get(rev) | 1129 fns = fncache.get(rev) |
1136 if not fns: | 1130 if not fns: |
1137 def fns_generator(): | 1131 def fns_generator(): |
1138 for f in change(rev)[3]: | 1132 for f in change(rev)[3]: |
1139 if m(f): | 1133 if m(f): |
1157 addremove(repo, pats, opts) | 1151 addremove(repo, pats, opts) |
1158 | 1152 |
1159 m = match(repo, pats, opts) | 1153 m = match(repo, pats, opts) |
1160 if pats: | 1154 if pats: |
1161 modified, added, removed = repo.status(match=m)[:3] | 1155 modified, added, removed = repo.status(match=m)[:3] |
1162 files = modified + added + removed | 1156 files = util.sort(modified + added + removed) |
1163 slist = None | 1157 slist = None |
1164 for f in m.files(): | 1158 for f in m.files(): |
1165 if f == '.': | 1159 if f == '.': |
1166 continue | 1160 continue |
1167 if f not in files: | 1161 if f not in files: |
1171 mode = os.lstat(rf)[stat.ST_MODE] | 1165 mode = os.lstat(rf)[stat.ST_MODE] |
1172 except OSError: | 1166 except OSError: |
1173 raise util.Abort(_("file %s not found!") % rel) | 1167 raise util.Abort(_("file %s not found!") % rel) |
1174 if stat.S_ISDIR(mode): | 1168 if stat.S_ISDIR(mode): |
1175 name = f + '/' | 1169 name = f + '/' |
1176 if slist is None: | 1170 i = bisect.bisect(files, name) |
1177 slist = list(files) | 1171 if i >= len(files) or not files[i].startswith(name): |
1178 slist.sort() | |
1179 i = bisect.bisect(slist, name) | |
1180 if i >= len(slist) or not slist[i].startswith(name): | |
1181 raise util.Abort(_("no match under directory %s!") | 1172 raise util.Abort(_("no match under directory %s!") |
1182 % rel) | 1173 % rel) |
1183 elif not (stat.S_ISREG(mode) or stat.S_ISLNK(mode)): | 1174 elif not (stat.S_ISREG(mode) or stat.S_ISLNK(mode)): |
1184 raise util.Abort(_("can't commit %s: " | 1175 raise util.Abort(_("can't commit %s: " |
1185 "unsupported file type!") % rel) | 1176 "unsupported file type!") % rel) |