Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Nov 15, 2010
  1. Add a "Report a problem" item to the Help menu

    Opens the GitX Lighthouse page.
Commits on Sep 13, 2010
  1. Refactor the gitx CLI to use apple events and the scripting bridge

    Sending the arguments with the openURL:... message allows the repository document to modify it's UI without the UI flashing between states as it opens.
    Covers all the existing functionality of the CLI, but modifies:
        - "--all" "--local" "--branch" change the branch filter
        - cleaned up the usage (help) text and added info on missing commands
        - looks up the full ref name of refs so the name of a branch or tag can be entered (the user can enter "master" instead of "refs/heads/master")
    Modified the History Controller to watch for and react to branch filter changes.
    The GitX.h file is generated by the 'sdp' tool in a run script build phase called 'Generate Scripting Bridge Header' based on the content of GitX.sdef. It is used by the Scripting Bridge so that other apps (in this case the gitx CLI) can call Applescript commands on GitX in objective-c.
Commits on Jul 5, 2010
  1. @uliwitness

    First stab at an executable that can be put into the SSH_ASKPASS envi…

    uliwitness authored committed
    …ronment variable to make GitX ask for passwords.
    Set the environment variables for our tool. We have a rudimentary but working password panel now. Prettification later.
    Label on password window so it's less cryptic.
Commits on May 30, 2010
  1. Merge remote branch 'refs/remotes/dgrijalva/stable' into experimental

Commits on Mar 22, 2010
  1. Add support for QuickLook in 10.6+

    In 10.6 Apple removed the private QL API that existed in 10.5 and added a new public API. However they did not port the new API back to 10.5 so we have to do some work to get it working in both.
    This patch has GitX choose the correct version at run time.
        - The delegate code is based on Apple's QuickLookDownloader example project
        - added three of the public API methods to CWQuickLook.h to avoid warnings about unknown method calls
        - In ApplicationController try to load the public API first then load the private one if it fails
        - Created PBQLTextView, a subclass of NSTextView to allow the space key event to toggle the preview panel
        - PBGitHistoryView.xib:
            - set the text view's class to PBQLTextView
            - connected the history controller to the controller outlet
            - bound the quick look button's enabled binding to File's Owner.selectedCommitDetailsIndex
            - added "Quick Look" to the quick look button's tooltip
        - The commit list table view toggles the panel if the tree view is active
        - changed name of the toggle IBAction method which caused MainMenu.xib and PBGitHistoryView.xib to update
Commits on Mar 14, 2010
  1. Add Reopen all repositories from last session

    Store all the open documents when the app closes and then open them when the app starts again. Defaults to NO, so that there is no change to the existing behavior.
  2. Add Clone Repository

    Added Clone… to the File menu which opens a window to select the repository URL and the path for the destination.
Commits on Sep 17, 2009
  1. @pieter

    Remove Sparkle feed url changer

    pieter authored
    Apparently the setFeedURL: method is persistent, so if someone ever used
    a nightly, it would keep the debug URL. That's not what I intended (I wanted
    to use a different URL for debugging purposes), so let's just remove it.
  2. @pieter

    Add update key

    pieter authored
  3. @pieter

    Update Sparkle Framework

    pieter authored
Commits on Sep 7, 2009
  1. @pieter

    Add preferences for opening things at launch.

    Stonewall Ballard authored pieter committed
    Heavily-Edited-By: Pieter de Bie <>
Commits on Sep 6, 2009
  1. @heipei @pieter

    About-Panel: Show git-describe using Info.plist

    heipei authored pieter committed
    This patch adds a CFBundleGitRevision key to Info.plist which is set to
    the output of "git describe" when building.
    The menu-entry for "About GitX" was reconnected to a custom method in
    the AppController, which reads the CF-string from the .plist and also
    indicates if the build is a DEBUG-build.
    Signed-off-by: Johannes Gilger <>
Commits on Jun 11, 2009
  1. @pieter

    Add preference to ignore whitespace differences in history view

    pieter authored
    We don't want to do this in the commit view, as that way you can't
    commit whitespace differences. You'll never be able to have a clean
    working tree, and you can't see why the files remain 'unstaged'. So, we do this
    only for the history view :)
Commits on Mar 28, 2009
Commits on Feb 8, 2009
  1. @heipei

    ApplicationController: Make sure gitx installation-path exists

    heipei authored
    When trying to install the gitx symlink into /usr/local/bin, GitX would
    fail if the directory /usr/local/bin didn't exist yet. We simply call
    mkdir -p in advance, which only creates the directory if doesn't exist.
Commits on Jan 28, 2009
  1. @pieter

    Use new help page URL

    pieter authored
    Some while ago, gitx changed its homepage from to, and in the process the user
    manual was moved. Though there is still a redirect in place,
    it's nicer for the user if we go to the correct page at once.
Commits on Jan 19, 2009
  1. @clj @pieter

    Add a preferences window

    clj authored pieter committed
    This adds a preference window with default preferences to change the
    sparkle options and to set a custom path to a git binary.
Commits on Nov 8, 2008
  1. @pieter
Commits on Nov 1, 2008
  1. @pieter

    Remove stray debug messages

    pieter authored
  2. @pieter

    Add a GitX:// protocol handler

    pieter authored
    This allows to read in arbitrary blobs from the repository.
    For more information, see the CallingFromWebKit.txt
    document in the Documentation/ directory.
Commits on Oct 27, 2008
  1. @pieter

    Add a Complete SHA service

    pieter authored
    This adds a service bound to ⌘⇧7 that expands
    any ref to its abbreviated SHA and its subject
    line, much like ⌘C in the commit list does.
Commits on Oct 10, 2008
  1. @pieter

    Add a help menu item

    pieter authored
  2. @pieter

    Remove leftover code

    pieter authored
Commits on Sep 19, 2008
  1. @pieter

    First part of splitting views

    pieter authored
Commits on Sep 12, 2008
  1. @pieter
  2. @pieter

    Only show the open dialog if the application is active

    pieter authored
    This fixes an issue where command line arguments were not passed because
    the repository was already opened.
Commits on Aug 18, 2008
  1. @ciaran

    Installation of the gitx command-line tool.

    ciaran authored
    We use ln(1) via AuthorizationExecuteWithPrivileges() to create a symlink to gitx in /usr/bin.
  2. @ciaran

    Adding a message to inform the user that the terminal tool installati…

    ciaran authored
    …on isn’t ready yet.
    It also gives the user a command they can run to create the symlink manually.
  3. @ciaran
  4. @ciaran

    Adding a basic command-line tool to interface with the application th…

    ciaran authored
    …rough distributed objects.
    Currently it simply launches the app and connects, however this will allow passing of arguments (for example, a revision to show).
  5. @ciaran

    I had changed the usage of getenv("PWD") to use -[NSFileManager curre…

    ciaran authored
    …ntDirectoryPath], but this doesn’t work when opening GitX from the commandline.
    So, this changes back to using $PWD (but through Cocoa instead, via NSProcessInfo)
  6. @ciaran

    Completing the document-based app setup.

    ciaran authored
    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.
  7. @ciaran

    Splitting the window and it’s associated controllers into a separate …

    ciaran authored
    …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.
Commits on Aug 17, 2008
  1. @ciaran

    Force activation of the application after launch in debug builds.

    ciaran authored
    This is required when running with TextMate’s Build & Run command, as the application is opened in the background.
Something went wrong with that request. Please try again.