This simplifies matters greatly, and shouldn't be a huge performance
decrease (unless you have > 2 cores, but even then). This also
fixes a bug with the new --early-output, where commits would show
multiple times because they were outputted twice.
* insta-decorate:
Add framework to support removing refs
Show refs in HTML view
Allow copy and pasting of web source by pressing 'c'
Refactor cellInfo structure
Only decorate if we need to
Multithread test
Add objective c diff header
Conflicts:
GitX.xcodeproj/project.pbxproj
This makes the PBGitRevisionCell a bit nicer by retrieving all values
from the PBGitCommit object itself, and using another NSTextFieldCell to
draw the text.
This mean that PBGitGrapher now stores its information in the PBGitCommit's,
rather than in a custom grapher array. Also, because we don't need the
grapher to display refs anymore, the ref labels are also displayed when
using path limiting (for example, 'gitx -- Makefile').
* display_tags:
Grapher: add coloring to ref labels
Fix a crashing bug in PBGitRepository
Add a PBGitRef, a class to represent refs
Some minor cleanup of the commit-ref drawing.
Grapher: draw ref names
Grapher: dereference annotated tags
Grapher: add first part of displaying refs
This adds the "hasRef" boolean member in PBGitCellInfo which is set to true
if the specific commit has symbolic refs.
This is the first part in supporting labels just like gitk has. For now,
commits with refs are just displayed with a red circle.
Things that need to be done to support all refs:
* Make the NSDictionary in PBGitRepository contain arrays of refs,
not a single string
* Make PBGitGrapher store all refs of a commit in the PBGitCellInfo
* Figure out a nice way to display the labels in PBGitRevisionCell
The revision walking code made the PBGitRepository unclean. Especially if
we want to keep multiple PBGitRepository objects around (e.g. persistent
data store), it needs to be more simple. This neatly extracts the revision
walking code from the repository code.