Massive tree action speedup
authorDennis Kaarsemaker <dennis@kaarsemaker.net>
Fri, 3 Aug 2012 09:55:49 +0000 (11:55 +0200)
committerDennis Kaarsemaker <dennis@kaarsemaker.net>
Fri, 3 Aug 2012 10:08:58 +0000 (12:08 +0200)
commiteb8ee28a1c14382122949c6dcc09bc3ee6a08310
tree6cca4a9a7591a80fac0b9685f500a2929b7f9818
parentb1c8b22c3db33682673723c1400f8b8c08bcc9a3
Massive tree action speedup

The tree action used to use $tree_obj->tree to get all tree entries.
This is ridiculously slow as it loads all blobs via git cat-file.
Instead, expose directory_entries from the underlying Git::PurePerl
object and use it instead.

This also required moving _mode_str (now mode_string for consistency) to
Gitalist::Utils so it could be used in the template.
lib/Gitalist/Controller/Fragment/Ref.pm
lib/Gitalist/Controller/Root.pm
lib/Gitalist/Git/Object.pm
lib/Gitalist/Git/Object/HasTree.pm
lib/Gitalist/Utils.pm
root/fragment/ref/tree.tt2