Highlights any commit that touches a file.
The "Show history of file" context menu item will now set the path search instead of creating a rev specifier.
Moving an annotated tag would convert it to a lightweight tag and lose the tags message.
Given that tags are meant to represent a fixed point in the history and remote branches represent the state of the remote I'm disabling moving them.
-s or --search= for searching in subject, author or SHA
-S or --Search= for git's pickaxe string matching
-r or --regex= for git's pickaxe regex matching
Add two new search modes to search the commits for strings that were added or removed in a commit.
- match by string or an extended POSIX regex (see man git-log -S<string> and --pickaxe-regex)
- include the modes in the search menu
- store the current mode in user defaults
- show progress indicator when search takes time
Previously searching would filter the commits in the commit tableview to only show the commits that matched the search. However the context of where those commits exist in the history is lost.
With this patch all the commits are shown but the commits that match the search are highlighted with a light blue background. In addition there is a forward/back button to step through the matches.
A new search controller:
- keeps track of the matching results
- finds the next or previous result
- displays the number of matches found or "Not found"
- shows/hides the # of matches text and the next/last stepper button
- shows a small bezel style window with a rewind icon indicating that the selection has cycled (pressing next when at the last match or previous when at the first)
- sets up the search predicate which covers Subject, Author and SHA (previously this was three different searches)
- stores search results in an NSIndexSet to make finding if a row is in the set faster (needed at drawing time)
Highlighting of search result rows is done in PBCommitList -drawRow:clipRect:
PBGitTextFieldCell is a subclass of NSTextFieldCell that disables the cell's selection highlighting.
Supporting Find Next and Find Previous (cmd-g and cmd-shift-g) menu commands required changing the action method of the menu items because NSTextFields (seem to) actively disable items in the Find menu.
rewindImage.pdf created by Nathan Kinsinger
Allows creating repositories from the command line, Applescript, or the scripting bridge. These are basic commands, if you need to use commandline options then use git itself.
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.
If there is no network connection then the reachability test will take the system default time (90 seconds I think?) to time out. During this time the UI is blocked (spinning beach ball).
The test was being done even if gravatar use was turned off. It doesn't really matter if the site is unreachable, the image will not load but that's not a big deal.
Shows a relative time ("x minutes ago", "Yesterday", "x days ago", "x years ago").
- Sort the column on the commit's date and not on the string value
- Use a custom formatter connected to the cell in the XIB
- Show or hide using the contextual menu for the table header
The class method and the instance method had different types for the window controller. The instance method should be using the NSWindowController since the sheet can be shown in a non PBGitWindowController window (the PBCloneRepositoryPanel).
- use something close to the standard HIG spacing
- add the app's icon and a title so people know what app is asking for a password
- save the position of the window and only center the window if the user hasn't moved it before
- the NSSecureTextField spews some garbage to STDERR which GitX would show in the success/failure sheet so close STDERR
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.
Set the debug configuration to NATIVE_ARCH_ACTUAL because NATIVE_ARCH will always be i386
Move the "compile libgit2" script build phase to it's own target. By setting the script to run in it's own target we get the ability to clean it durning the clean phase (normal build phase scripts don't run during clean). This will be needed if someone has built GitX prior to this commit because the object files will be for the old architectures.
Also give an error if there is no git repository. This is from several questions I've received after someone has downloaded the source from github instead of cloning the project. The problem is that there is no submodule setting to update.
This is important for large repositories as the commit will be selected when it is added instead of waiting for all the commits to be loaded.
Stop attempts to select the current commit again if it's already selected.
No longer need the updatedGraph property on the history list.
- make sure to remove themselves from KV and notification center observers
- add the PBWebHistoryController to PBHistoryController so it can be told to close
- replaced the -removeView methods with -closeView (-removeView was not being used)
- clear any obj-c objects set in web scripting objects
This last item seems to be the reason that the web controllers and the current commit did not get collected which then held the repository document from being collected as well.
The cleanup method cancels any background threads and removes KV observers when the repository document is closed.
Also removed KV observers that are no longer needed.
This is a convenience class to replace using NSStrings to store and compare SHAs. PBGitSHA has a much faster isEqual: function.
It is <NSCopying> compliant and implements isEqual: and hash so it can be used as a key in dictionaries.
If the commit's detail is not UTF8 then PBWebHistoryController's commitDetailsLoaded: method will drop down to Latin1. That can cause character's in the committer's name to not be converted correctly.
Move parsing the name to PBGitRevList where the correct encoding can be determined.
1) stop a threading issue with old commits being added after the commits array was reset
2) stop using --early-output (shouldn't there be an incremental output option???)