Mercurial > public > mercurial-scm > hg
comparison mercurial/changelog.py @ 6762:f67d1468ac50
util: add sort helper
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Fri, 27 Jun 2008 18:28:45 -0500 |
parents | fb42030d79d6 |
children | f29b674cc221 |
comparison
equal
deleted
inserted
replaced
6761:cb981fc955fb | 6762:f67d1468ac50 |
---|---|
128 extra[k] = v | 128 extra[k] = v |
129 return extra | 129 return extra |
130 | 130 |
131 def encode_extra(self, d): | 131 def encode_extra(self, d): |
132 # keys must be sorted to produce a deterministic changelog entry | 132 # keys must be sorted to produce a deterministic changelog entry |
133 keys = d.keys() | 133 items = [_string_escape('%s:%s' % (k, d[k])) for k in util.sort(d)] |
134 keys.sort() | |
135 items = [_string_escape('%s:%s' % (k, d[k])) for k in keys] | |
136 return "\0".join(items) | 134 return "\0".join(items) |
137 | 135 |
138 def read(self, node): | 136 def read(self, node): |
139 """ | 137 """ |
140 format used: | 138 format used: |
173 if not extra.get('branch'): | 171 if not extra.get('branch'): |
174 extra['branch'] = 'default' | 172 extra['branch'] = 'default' |
175 files = l[3:] | 173 files = l[3:] |
176 return (manifest, user, (time, timezone), files, desc, extra) | 174 return (manifest, user, (time, timezone), files, desc, extra) |
177 | 175 |
178 def add(self, manifest, list, desc, transaction, p1=None, p2=None, | 176 def add(self, manifest, files, desc, transaction, p1=None, p2=None, |
179 user=None, date=None, extra={}): | 177 user=None, date=None, extra={}): |
180 | 178 |
181 user, desc = util.fromlocal(user), util.fromlocal(desc) | 179 user, desc = util.fromlocal(user), util.fromlocal(desc) |
182 | 180 |
183 if date: | 181 if date: |
187 if extra and extra.get("branch") in ("default", ""): | 185 if extra and extra.get("branch") in ("default", ""): |
188 del extra["branch"] | 186 del extra["branch"] |
189 if extra: | 187 if extra: |
190 extra = self.encode_extra(extra) | 188 extra = self.encode_extra(extra) |
191 parseddate = "%s %s" % (parseddate, extra) | 189 parseddate = "%s %s" % (parseddate, extra) |
192 list.sort() | 190 l = [hex(manifest), user, parseddate] + util.sort(files) + ["", desc] |
193 l = [hex(manifest), user, parseddate] + list + ["", desc] | |
194 text = "\n".join(l) | 191 text = "\n".join(l) |
195 return self.addrevision(text, transaction, len(self), p1, p2) | 192 return self.addrevision(text, transaction, len(self), p1, p2) |