Commit Graph

115 Commits

Author SHA1 Message Date
Pieter de Bie bbeedd10ce Rewrite the graphing code
This uses more Cocoa classes to draw the lines, making it easier to
understand and hopefully maintain.

Furthermore, we use less memory now, which is nice, but all the
dynamic arrays probably mean more CPU usage.
2008-08-27 21:51:42 +02:00
Pieter de Bie b99e1a85d6 Merge commit 'ciaran/grapher'
* commit 'ciaran/grapher':
  Grapher: add speed tests
  Discard branches that run for too long
  PBGitRevList: use --topo-order for better graphs
  PBGitGrapher: Improve the grapher
  First take on graphing
2008-08-27 18:10:59 +02:00
Ciarán Walsh 62f6463ec4 Suppress useless svn repository ID e-mail addresses.
When there is no e-mail address available git-svn will substitute the loginname@svn-repository-ID, but this is confusing and useless to have linked/display.
2008-08-27 13:12:19 +02:00
Ciarán Walsh ce37b09862 Merge commit 'pieter/master' into grapher
Conflicts:

	ApplicationController.m
	GitX.xcodeproj/project.pbxproj
	PBGitRepository.m
	PBGitRevList.m
2008-08-19 13:12:20 +01:00
Ciarán Walsh 8de6a10c88 Remember the currently selected tab across sessions. 2008-08-19 08:32:03 +01:00
Ciarán Walsh 2b0a4da416 There’s no need for selectedTab to be an NSNumber (and certainly not an IBOutlet). 2008-08-19 08:32:03 +01:00
Ciarán Walsh 01a5cf3817 awakeFromNib should be void 2008-08-19 08:32:03 +01:00
Ciarán Walsh 159924ae9f Add the standard ⌥⌘F shortcut to focus the search field in the toolbar 2008-08-19 08:32:03 +01:00
Ciarán Walsh 2cb8e7ac5a Restore the search field functionality.
Allows searching by subject, author or SHA.
2008-08-19 08:32:02 +01:00
Pieter de Bie 072de9bbbd Add a create_zip Rake task
This makes it easier for me to release new versions.
2008-08-19 01:11:30 +02:00
Pieter de Bie 0fccf5a3bb Remove extra buttons
These aren't used for now anyway, and this looks cleaner.
2008-08-19 00:34:01 +02:00
Pieter de Bie 045db4b625 WebView: limit diffs to a width of 250, not 100
100 was a bit low.
2008-08-19 00:26:29 +02:00
Pieter de Bie d39648e8d4 Show the current checked out HEAD if no branch is selected 2008-08-19 00:25:32 +02:00
Ciarán Walsh 9b6974bf31 Prevent confusing filenames when quick-looking files.
Instead of creating a file with a random prefix, create a file with the same name in a temporary directory name. This way the quicklook window shows the correct filename.
2008-08-19 00:16:31 +02:00
Ciarán Walsh 12faa4a8f0 Avoid showing .git dirs in the recent documents menu.
Instead (for non-bare repos) add the directory above the .git dir.
2008-08-19 00:16:15 +02:00
Pieter de Bie d320a4bc43 Fix a bug in reading the current branch 2008-08-18 23:59:45 +02:00
Pieter de Bie ec9861e543 Allow switching of branches 2008-08-18 23:54:48 +02:00
Pieter de Bie 3e8fbf6d15 Refactor command output to new functions 2008-08-18 23:26:15 +02:00
Pieter de Bie 9135163f24 Read the current branch from the repository 2008-08-18 23:06:37 +02:00
Pieter de Bie eeca836454 Also readBranches when opening as a NSDocument. 2008-08-18 22:26:34 +02:00
Pieter de Bie bcd6d88851 Merge commit 'ciaran/master'
* commit 'ciaran/master':
  Installation of the gitx command-line tool.
2008-08-18 22:04:13 +02:00
Pieter de Bie f786fe2b0b Read branches in a repository
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.
2008-08-18 22:03:41 +02:00
Ciarán Walsh 6f6b1e36db Installation of the gitx command-line tool.
We use ln(1) via AuthorizationExecuteWithPrivileges() to create a symlink to gitx in /usr/bin.
2008-08-18 20:49:45 +01:00
Ciarán Walsh 6d500bc310 Adding a message to inform the user that the terminal tool installation isn’t ready yet.
It also gives the user a command they can run to create the symlink manually.
2008-08-18 20:12:54 +01:00
Pieter de Bie 8d37228148 Merge commit 'ciaran/cli'
* commit 'ciaran/cli':
  Adding a menu item to install the CLI tool.
  The repository is owned by the window controller now, and PBWebGitController shouldn't need to use the ApplicationController
  The ApplicationController does not own a repository any more
  Amend the CLI tool to use the distributed objects system to try opening the current path when invoked.
  Overriding -documentForURL: to use +gitDirForURL: to convert incoming URLs to the .git dir before checking for an open document, so that open a repository from subdirectories won’t open duplicate windows.
  Separating out the logic for finding the .git dir for a given path in a repository, so it can be used in other places.
  Adding a basic command-line tool to interface with the application through distributed objects.
2008-08-18 20:44:22 +02:00
Ciarán Walsh 23a30ad259 Disabling diffs for the new xib file 2008-08-18 18:44:48 +01:00
Ciarán Walsh 3773a739b7 Adding a menu item to install the CLI tool. 2008-08-18 18:44:08 +01:00
Ciarán Walsh 7813dbfe54 The repository is owned by the window controller now, and PBWebGitController shouldn't need to use the ApplicationController 2008-08-18 18:29:41 +01:00
Ciarán Walsh d8dd74c59b The ApplicationController does not own a repository any more 2008-08-18 18:29:41 +01:00
Ciarán Walsh 4547d513d1 Amend the CLI tool to use the distributed objects system to try opening the current path when invoked.
When using the CLI tool (rather than a command using open(1)) it is now possible to open multiple repositores via the command-line.
2008-08-18 18:27:57 +01:00
Ciarán Walsh d600dded88 The repository is owned by the window controller now, and PBWebGitController shouldn't need to use the ApplicationController 2008-08-18 18:17:30 +01:00
Ciarán Walsh 07b6e826b4 The ApplicationController does not own a repository any more 2008-08-18 18:10:44 +01:00
Ciarán Walsh e015fd7be4 Overriding -documentForURL: to use +gitDirForURL: to convert incoming URLs to the .git dir before checking for an open document, so that open a repository from subdirectories won’t open duplicate windows. 2008-08-18 17:24:50 +01:00
Ciarán Walsh e5b2f0d2b9 Separating out the logic for finding the .git dir for a given path in a repository, so it can be used in other places. 2008-08-18 17:21:43 +01:00
Ciarán Walsh 0bb4cbc197 Adding a basic command-line tool to interface with the application through distributed objects.
Currently it simply launches the app and connects, however this will allow passing of arguments (for example, a revision to show).
2008-08-18 16:02:34 +01:00
Pieter de Bie 4c18f592f5 Fix 'commits loaded' label
The value binding of this label was lost after switching to a Document-based
view. This restores it.
2008-08-18 13:23:56 +02:00
Ciarán Walsh c90d48dd7b I had changed the usage of getenv("PWD") to use -[NSFileManager currentDirectoryPath], but this doesn’t work when opening GitX from the commandline.
So, this changes back to using $PWD (but through Cocoa instead, via NSProcessInfo)
2008-08-18 12:16:49 +01:00
Ciarán Walsh 5450d2c700 The tab buttons were connected to the setRawView: action, which meant that all buttons would switch to raw mode. The tab switching is done via a binding to selectedTab. 2008-08-18 12:07:06 +01:00
Ciarán Walsh 3998ffece2 Since we are using NSDocument now it’s best to use the document fileURL to store the .git path. 2008-08-18 08:58:47 +01:00
Ciarán Walsh b85a205698 Completing the document-based app setup.
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.
2008-08-18 08:58:39 +01:00
Ciarán Walsh 0def8d34d7 Splitting the window and it’s associated controllers into a separate nib; this will allow multiple repository windows to be used.
PBDetailController is the window controller, and now takes ownership of the repository so we can bind to it through File’s Owner in the nib file. Currently the ApplicationController creates a new PBDetailController at startup with the opened repository.
2008-08-18 07:31:39 +01:00
Ciarán Walsh 18e2a519b3 Force activation of the application after launch in debug builds.
This is required when running with TextMate’s Build & Run command, as the application is opened in the background.
2008-08-17 21:16:45 +01:00
Ciarán Walsh 45addc1f47 Setting up the Info.plist for a document-based application. PBGitRepository will be our document class. 2008-08-17 21:05:01 +01:00
Ciarán Walsh 8a4d5f2a34 Adding some more ignores 2008-08-17 20:53:25 +01:00
dbr 8eb76f1386 Add Rakefile tasks for (un)install
Added Rakefile that does install and uninstall.

Also providded are sub-tasks that do things like build GitX, copy it to
~/Applications/ or /Applications/, cleaning the build and removing GitX.app

Signed-off-by: Pieter de Bie <pdebie@ai.rug.nl>
2008-08-14 20:57:29 +02:00
Pieter de Bie 2e3a79af4a Fix compilation warnings 2008-06-21 14:06:04 +02:00
Pieter de Bie 17df4e808a PBGitRepository: search for git binary on more paths 2008-06-21 14:05:55 +02:00
Pieter de Bie 42c038ba49 Build: Rename last GitTest files to GitX
Some flags in the Debug target still weren't renamed. This caused compilation
problems.
2008-06-21 13:51:08 +02:00
Pieter de Bie 31c7cbc4e2 Merge branch 'master' into grapher 2008-06-21 13:42:04 +02:00
Pieter de Bie 061eb7de48 Grapher: add speed tests
This creates a new directory speed_test with different
implementations that we can use to power the grapher. The current
implementation is somewhat lacking in that we build up the graph
completely at the end. If we can do it while traversing the tree, we
can build and display it earlier. Similarly, if we can leave out the
line calculation but just work with the columns, we save computation at
load time, and can defer the lines to the drawing process. That will
also clear up the problem of not being able to draw some lines.
2008-06-21 13:41:55 +02:00