A ref might be less than 11 characters. In those cases, the substringToIndex would produce a fatal out-of-bounds.
This simply draws the ref names in the cell, without any markup or correct rect.
The for-each-ref construct used to return the tag sha for annotated tags. We're not really interested in that, so also display its referenced object.
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
Instead (for non-bare repos) add the directory above the .git dir.
This adds a -readBranches function which allows you to read in all branches in our repository. It is used in the branch display popup box.
… a repository, so it can be used in other places.
…RL to store the .git path.
Multiple repositories can now be opened by using the File → Open… menu option. Each document is a PBGitRepository with a PBDetailController controlling the window. PBRepositoryDocumentController is the document controller. When launched, the application will attempt to open a repository with the current directory as its path. If this fails it will display an open panel to allow the user to select one.
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.
This is necessary for cool graph displaying, to be made.
This uses an NSMutableArray to increase the currentLine if the buffer is full. This prevents very long messages from breaking the parsing. If we cannot parse the log line, simple ignore it.
This uses the C fgets() over the weird readLine implementation I found. It speeds up the rev-parsing significantly: we went from ~4.5 seconds on the git.git repo to ~0.95 seconds. And that's with the secret new date parsing!
This will remove a lot of the stray files in the temporary dir. However, they won't be deleted on exit of the program. What to do about this?
This adds a new class, PBEasyPipe, which can do most of the pipe handling in an easy way. We use this to call `git rev-parse --git-dir` to find our current git repository. This means that we can now call GitX within a subdirectory :)
This displays the tree of a specific commit in an NSBrowser.
This makes the initial startup much faster. Commits get loaded in a separate thread, and are displayed every 1000 commits. There is a bug in here that makes fails a click while it is loading the commit list. Not sure how to fix this, perhaps send the arrayController?
removes the %x01 syntax which is only available in 1.5.6 and later