Checkout:
- PBGitRepository: add checkoutRefish:
- PBRefController: renamed checkoutRef: to checkout: and use new method in PBGitRepository
- add to the contextual menus for commits (it was already in the menu for refs)
- add "Checkout branch" checkbox to the Create Branch sheet
- store the state in the defaults
- tell the commitController to rearrangeObjects so that the refs highlight correctly (seems to only be a problem when going from a branch to a detached HEAD at the same commit)
A Create Tag item:
- A new class (and xib) PBCreateTagSheet
- In the Repository menu
- In the contextual menu for commits
PBRefController the method tagInfo:
- renamed to showTagInfoSheet:
- moved it under the Tags mark
Update the methods for creating a branch.
- create new class and xib PBCreateBranchSheet
- remove old addRef: methods and iVars from PBRefController
- remove old sheet from PBHistoryView.xib
- put the implementation method in PBGitRepository
- add a contextual menu item for commits
- shows an error sheet
- ask the commitController to rearrangeObjects to make sure the new branch is shown
- switch from using "update-ref" to "branch" so that branches starting at a remote branch will track automatically (or not depending on the repo's settings)
Switch from storing both the ref and the commit to storing just one or the other as a refish.
Change action methods that receive PBRefMenuItem to support the change in functionality. In particular the removeRefSheetDidEnd:returnCode:contextInfo: method in PBRefController now looks up the commit for the ref (this was the only place that needed both the ref and the commit).
This will simplify methods that execute git commands that can take a ref or an SHA.
Add some string constants so there is only one place for the type strings.
Better indicates the information needed and stops a compiler warning about wrong type (there are other initWithRepository: methods that take a different type).
EINTR errors are recoverable, just need to read() again.
Randomly while looking at files in the file browser the contents view will be empty or files will not be shown when clicking a discloser triangle. Seems to happen more when running in XCode than when running by itself.
When the Subject column is not the first column in the git history table the contextual menu for refs and dragging and dropping refs don't work.
Offset the mouse click's x value by the x origin of the Subject column.
In PBRefController look up the column index of the subject column and check that it's the clicked column (don't assume it's the first one).
We used to increase this variable after
handing it over to the [handle readToEndOfFileInBackgroundAndNotify],
but sometimes a task would quit before getting to that point, causing
a premature index refresh event to be called.
* pu/pb/index_refactor: (24 commits)
PBGitIndex: post notifications when index stuff fails
GitIndexController: reorder methods a bit, remove unnecessary stuff
PBGitIndex: Migrate discardChanges to the GitIndex
CommitController: Make commit message editable after commit failed
GitIndex: Fix a few comments
GitIndex: explicitly tell when stuff is updated
Remove cruft
Show previous commit message when amending
CommitController: Empty commit title when commit is successful
CommitView: Remove cruft
Add failed commit notifications
GitIndex: add commit notifications
CommitController: Add status messages for index operations
GitIndex: Add a few notifications
CommitView: Migrate patch apply stuff to GitIndex
GitIndex: Add support for applying patches
CommitController: Replace commit method with the one from GitIndex
GitIndex: add basic commit method
GitIndexController: Migrate stageFiles functions to GitIndex
GitIndex: Add methods to stage and unstage files
...
Conflicts:
PBGitCommitController.m
PBGitIndexController.h
PBGitIndexController.m
* stable:
HistoryView: Don't show the 'loading commit' thing until after 500 ms.
HistoryView: Remove raw view
HistoryView: don't load in commit information in a separate thread anymore
Fix UTF-8 bug in NSString_RegEx
CommitView: Don't keep rearranging when iterating over files
IndexController: de-privatize the index-stopping stuff
I've seen this hang or crash a few times, so I hope this works better.
Instead of running a task in a separate thread, we just let it go through
the run loop and catch it when the task is done.
This ruins the second subview in the history view, but I don't think
anybody ever used that, so I'm going to remove it.
This class would use the location information provided by
regex(3) as range for for a substring. However, the information
regex(3) returns is a byte-based, while NSString works on characters.
This can cause a problem when there are UTF-8 characters in the string,
as the wrong subsstring will be returned.
This is fixed by taking the UTF bytesequence, and extracting a substring
from that, rather than using NSString's own substring method