Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[egit-dev] Git decorator - current implementation

I worked on the Git decorator now for some time and could improve the performance with some minor tweaks. Nevertheless I want to start a discussion about the current implementation of the decorator as there are several bugs open that deal with the bad performance of the decoration.
From my analyses I see mainly two problems:
  1. To decorate a single resource, a "full-blown" TreeWalk is created with a filter for this single file. The performance of this decoration thus depends on the size and complexity of the overall repository; decorating a resource in a small repository is fast while decorating a single file in a huge project becomes slow. Maybe we have to come up with some solution that does not require building a full TreeWalk…
  2. When a decoration is (re-)triggered, e.g. by opening a folder in the package explorer, each resource affected by this is handled independently. For example, when browsing a folder containing 100 files, 100 TreeWalks are created and traversed (as described above). This is caused by how Eclipse triggers these decorations, but it would be faster, if a set of resources could be decorated at once or if we could somehow manage to use a TreeWalk for more than a single file (e.g. by loosening the filter and caching the results somewhere).
Any ideas or proposals are highly appreciated :-)

Back to the top