Bugfix: Using LS_COLORS for directory completion was not working in ZSH

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Bugfix: 'myips' was being executed on startup

This was due to an incorrectly escaped subshell

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Bugfix: Incorrectly showing 'no tracking branch' when updating master

If we're on `master` then it's ok that the tracking branch is `origin/master` :)

--------------------------------------------------------------------------------
Branch:        bug/do-not-show-warning-when-running-git-update-on-master
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Chore: Remove the roadmap and move all tasks to Github

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Restart rebase automatically when it fails on git-update

Previously we made the user attempt to start the rebase themselves, for some
users this is daunting, and we want `git-update` to be as automatic as possible.

From now on, if the rebase fails for any reason, it is aborted and then
restarted automatically.  This will still require user intervention, but it's at
least one less step.

--------------------------------------------------------------------------------
Branch:        feature/improve-unsuccessful-rebase-handling-in-git-update
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Merge branch 'bug/do-not-show-warning-when-running-git-update-on-master'
Merge branch 'feature/improve-unsuccessful-rebase-handling-in-git-update-closes-20'
Bugfix: 'git create-tracking-branch' was misspelled

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Allow 'git-update' parent branch other than 'origin/master'

Previously if you were on a branch `foo` that had a tracking branch
`origin/foo`, when you ran `git-update` it would attempt to rebase `origin/foo`
onto `origin/master`.

This, although an excellent default, needs to be able to be configurable.  Now,
if you pass something to `git-update`, it will be assumed to be the base parent
branch that you would like to use.

Closes #18

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Refactor: Instead of checking branch names, check for a tracking branch

Previously we were basing this on the names of things, but this is problematic
and not very accurate of what we care about.

What we really care about is whether the branch we're updating has a tracking
branch.  If it doesn't then we use the parent, if it does, then we use the
tracking branch.

References:
  84751a8
  #9

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Bugfix: Running 'git-update' on a fresh repo threw an error

It was due to the fact that the reflog has a bug as far as I can tell.

Running `git reflog origin/master` on a fresh repo returns nothing, even though
there is at least one entry for `origin/master` when you run `git reflog`.

Instead of trying to patch a fix, I decided to bump the lowest allowed version
of Git to 2.0 which has a `--fork-point` option to `git merge-base`.

This effectively removes the need to have the
`__git_determine_original_tracking_sha` function and does the right thing in
this case.

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Refactor: Use the new Git 2.0 'push --force-with-lease' option

This option makes available effectively exactly what `smart-force-push` was
doing, so it is no longer needed.

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Make backmerge idempotent

Previously backmerge would move remote pointers around, now we use `git
ls-remote` to access the location of the remote pointer without moving pointers.

Actions:
  Closes #8

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Bugfix: Stop resolving merge conflicts when unwipping

--------------------------------------------------------------------------------
Actions:
  Closes #10
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Allow C-h, C-j, C-k and C-l to be sent to terminal

Previously these keys would not be able to be used for key mapping in the shell
because they would be intercepted as window navigation key combinations.
However, if we're not in vim, and our tmux window only has one pane, there's no
reason that we can't let these key combinations through.

--------------------------------------------------------------------------------
Actions:
  Closes #11

Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Bugfix: Shell defaults don't like single quotes

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>