Kiln » Dependencies » Dulwich Read More
Clone URL:  
Pushed to one repository · View In Graph Contained in master-1, master-0, and 0.9.4

Store tree contents in dictionary internally.

Changeset 155734ae7f6e

Parent 6b3f2b78f28c

by Jelmer Vernooij

Changes to one file · Browse files at 155734ae7f6e Showing diff from parent 6b3f2b78f28c Diff from another changeset...

 
325
326
327
328
 
329
330
331
 
334
335
336
 
 
 
337
338
 
339
340
341
342
343
344
345
346
347
348
 
 
 
 
 
349
350
351
 
374
375
376
377
 
378
379
380
 
325
326
327
 
328
329
330
331
 
334
335
336
337
338
339
340
 
341
342
343
344
 
 
 
 
 
 
 
345
346
347
348
349
350
351
352
 
375
376
377
 
378
379
380
381
@@ -325,7 +325,7 @@
  _num_type = 2     def __init__(self): - self._entries = [] + self._entries = {}     @classmethod   def from_file(cls, filename): @@ -334,18 +334,19 @@
  raise NotTreeError(filename)   return tree   + def __getitem__(self, name): + return self._entries[name] +   def add(self, mode, name, hexsha): - self._entries.append((mode, name, hexsha)) + self._entries[name] = mode, hexsha     def entries(self):   """Return a list of tuples describing the tree entries""" - return self._entries - - def __getitem__(self, name): - for mode, entry, hexsha in self.entries(): - if entry == name: - return mode, hexsha - raise KeyError(name) + return [(mode, name, hexsha) for (name, (mode, hexsha)) in self._entries.iteritems()] + + def iteritems(self): + for name in sorted(self._entries.keys()): + yield name, self_entries[name][0], self._entries[name][1]     def _parse_text(self):   """Grab the entries in the tree""" @@ -374,7 +375,7 @@
    def serialize(self):   self._text = "" - for mode, name, hexsha in self._entries: + for name, mode, hexsha in self.iteritems():   self._text += "%04o %s\0%s" % (mode, name, hex_to_sha(hexsha))