Teun / git-flow-vis

81 stars 12 forks source link

Incremental redrawing #17

Closed Teun closed 7 years ago

Teun commented 9 years ago

D3 suggests a pattern where you only have to redraw elements that actually changed. Each element must specify a key. Then you specify operations for enter(), exit() and update().

If many elements remain untouched after a redraw, this can give large perf advantages. Also, you could easily add animations to indicate moving/appearing elements.

Would be interesting to profile which part actually takes most time.

Commit messages would be easy to make incremental (unique key is easy, most remain as they are.

Hard part could be that the x() function potentially changes, because the number of lines can increase.

It would help if the cleanup code would have an algorithm that would most of the time have commits end up on the same line as before. This seems possible enough.

Teun commented 7 years ago

This is already implemented as part of the work on hiding/showing branches.