Commit Graph

50 Commits

Author SHA1 Message Date
Pieter de Bie 39797876fe Optimize rev-list parsing
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!
2008-06-17 15:04:49 +02:00
Pieter de Bie aa3f720129 Merge commit 'HEAD@{1}'
* commit 'HEAD@{1}':
  Fix bug in encoding parsing
2008-06-17 13:59:29 +02:00
Pieter de Bie ecd4ce4aff Fix bug in encoding parsing
If a commit had invalid UTF-8 characters in them -- like one in git.git for
example -- then the revparsing would stop halfway through. This patch first
tries UTF-8 enconding, and if that fails, falls back to ASCII encoding.
2008-06-17 13:59:20 +02:00
Pieter de Bie fe8f173360 Add custom cell 2008-06-17 13:46:18 +02:00
Pieter de Bie e72d93c872 Allow dragging of files out of tree view
This uses the promisedfile protocol, which means that dragging to e.g.
FileMerge won't work.
2008-06-17 09:29:52 +02:00
Pieter de Bie e2b507313b Delete temporary files when they are deallocated
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?
2008-06-17 05:56:00 +02:00
Pieter de Bie b18b957190 Allow QuickLook to activate by pressing space
Subclasses NSOutlineView to PBQLOutlineView that takes a controller which
should respond to toggleQuickLook:. This is used for our tree walker to
actually show QuickLook when space is pressed.
2008-06-17 02:55:49 +02:00
Pieter de Bie 28e8bacb89 Add QuickLook support in tree view
This adds a QuickLook button that will allow you to directly view any file in
the tree view in QuickLook. This is really nice for PDF's and images. You can
select multiple files and even play a slideshow if you want.

Currently it does not remove temporary files it created. This means that they
will probably stay around until you reboot.
2008-06-17 02:29:27 +02:00
Pieter de Bie b62e92ad7f Treat MainMenu.xib as binary 2008-06-16 14:25:55 +02:00
Pieter de Bie cc6ac22047 Allow double click to open file 2008-06-16 14:19:38 +02:00
Pieter de Bie 7cdfdf0954 Use UTF-8 for data decoding 2008-06-16 05:31:12 +02:00
Pieter de Bie 60e0684b4b Quit on closing the window
Also add some fancy buttons that don't do anything :)
2008-06-16 05:24:27 +02:00
Pieter de Bie 758eaac2e8 Align objects a bit better 2008-06-16 04:06:23 +02:00
Pieter de Bie 21addff1f4 Show an open dialog if not opened from the terminal 2008-06-16 03:44:26 +02:00
Pieter de Bie 0fa37ba024 Only show commits if they are of reasonable size
This shows a link people should click if they want to display a huge diff
(more than 10k lines). This speeds up the browsing a lot :)
2008-06-16 03:27:52 +02:00
Pieter de Bie e6da252ee0 Add shortcuts and menu items for different views 2008-06-16 03:19:01 +02:00
Pieter de Bie 6ba944b2ac Implement a DetailsController
This controller makes sure that only the current view
receives its notifications. Therefore we won't do any work that we don't
see, like parsing diffs or asking for trees. This makes everything quicker.
2008-06-16 03:13:08 +02:00
Pieter de Bie d6a0b1bb4c Use a separate controller for tabs 2008-06-16 02:19:26 +02:00
Pieter de Bie bd165e7d29 Output better debug info for NSTask action 2008-06-16 02:01:52 +02:00
Pieter de Bie 3a672aee16 Cache commit details so we have to fork less 2008-06-16 02:01:38 +02:00
Pieter de Bie 08757ad610 Add easy pipe handling library. Use it to find real git repository path
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 :)
2008-06-16 01:52:12 +02:00
Pieter de Bie 0171c6d065 Use a .XIB file instead of a .NIB file 2008-06-16 00:32:27 +02:00
Pieter de Bie 154b78b70c Rename to GitX 2008-06-16 00:25:34 +02:00
Pieter de Bie 65ef13a6dd Add nice icons 2008-06-16 00:06:47 +02:00
Pieter de Bie 3106379334 Use unified interface and display tree contents 2008-06-15 23:10:05 +02:00
Pieter de Bie 9be3c50a75 Add a Tree displayer
This displays the tree of a specific commit in an NSBrowser.
2008-06-15 20:35:07 +02:00
Pieter de Bie 9e019e7ef7 test 2008-06-15 19:06:04 +02:00
Pieter de Bie 3432e514b8 Show nicely formatted diff
This steals the idea and markup from Gitnub. Thanks! :)
2008-06-15 18:22:00 +02:00
Pieter de Bie 62e739bfc0 Update .gitignore 2008-06-15 16:48:01 +02:00
Pieter de Bie f4a81e217c Make the link to previous parents work 2008-06-15 16:46:31 +02:00
Pieter de Bie 9a40fd9748 Remove some debug output 2008-06-15 16:46:31 +02:00
Pieter de Bie 2e4ea6edab Load commit list in a separate thread
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?
2008-06-15 16:46:25 +02:00
Pieter de Bie 378016c84f Allow case-insensitive author search 2008-06-14 21:47:54 +02:00
Pieter de Bie 8226a42fab Fix a bug that would break the search when an invalid search term was entered 2008-06-14 21:47:43 +02:00
Pieter de Bie 2d1324479e Allower a bigger diff before not displaying it 2008-06-14 21:47:20 +02:00
Pieter de Bie 1ef4fe8a6b Only display a diff when it is small enough
The diff display is rather slow now, probably because everything is
put into one big pre tag. Before we can fix this, we have to parse the
diff better. For now, just display a message.
2008-06-14 21:29:20 +02:00
Pieter de Bie 3e7c1f8a5e Set the table view as initial first responder 2008-06-14 21:29:08 +02:00
Pieter de Bie 12b13d2aa4 Use a Commit model in Javascript to parse commit data
This includes the prototype library in the bundle for convenience.
Whenever a new commit is selected, a new Commit object is created that
is going to parse the raw message. From the object we can select
author information, diffs, etc.

Currently there is still a bug with commits without content changes.
2008-06-14 21:03:49 +02:00
Pieter de Bie a3d0d66d31 Use a stylesheet for detailed view
This simplifies the HTML code somewhat
2008-06-14 20:08:01 +02:00
Pieter de Bie ce61cdf46f Make git log --pretty < v1.5.6 compatible
removes the %x01 syntax which is only available in 1.5.6 and later
2008-06-14 20:06:58 +02:00
Pieter de Bie 3dd9e2a41c Guess user's git location 2008-06-14 20:06:07 +02:00
Pieter de Bie 4ba028dcde Test 2008-06-14 18:48:44 +02:00
Pieter de Bie 79e9ba9fb6 Add a detailed HTML view 2008-06-14 17:38:29 +02:00
Pieter de Bie a47da8d3ea Open a current git repository if one exists 2008-06-14 02:56:38 +02:00
Pieter de Bie 77e560967f Remove stray files 2008-06-14 02:56:26 +02:00
Pieter de Bie 646b5146a7 Use a box to display SHA1 2008-06-14 02:43:20 +02:00
Pieter de Bie d444c9d5d1 Add an author field 2008-06-14 02:31:29 +02:00
Pieter de Bie b752f5bc02 Add a search field and subject 2008-06-14 02:24:55 +02:00
Pieter de Bie 0fda285125 Use a separate Git class 2008-06-13 17:09:42 +02:00
Pieter de Bie 2763141b12 Initial commit 2008-06-13 15:41:30 +02:00