This PR replaces `local varname=value` style declarations with `local varname; varname=value`. This solves #168 which caused troubles in zsh environments
The `git status --porcelain` command can take an additional argument
`-b` which causes the porcelain output to also contain branch
information in a stable and supposedly nonchanging way.
This change adds that argument to the initial `git status` call, and
parses the branch/ahead/behind information from that. The end result is
the entire call to `git branch -v` can be removed, resulting in one less
subshell command and hopefully a more reliable target across future
versions of git.
The current `git_clear_vars()` method appears to have iterated over all
the existing set variable correctly, but never actually bothered to
clear them.
this is unrelated to the previous commit and zero functionality but
while I was changing things I wanted to clean up the indentation and
use consistent single quotes versus double quotes in the functions
calls for `_alias()` and `_git_alias()`.
In my opinion this makes the file more readable, but if it bothers you
let me know and I’ll be happy to remove it from the pull request.
The ability to not define default aliases in the `.git.scmbrc` file
leading to not having those aliases not present worked fine in bash.
However, this seems to still have thrown an error in zsh. For example,
if you commented out the line:
git_checkout_alias="gco"
then when sourcing scm_breeze aliases.sh would throw an error.
This applied only to aliases defined with the `_alias()` function and
not those with the `_git_alias()` function.
To fix this, I wrapped `_alias()` in a similar check to the one
`_git_alias()` has, where it passes the portions as arguments and
verifies the first is present before proceeding.
I'm not 100% certain why seperate functions exist for these two things
to begin with (as far as I can tell from a cursory examination the main
difference is `_git_aliases()` defines a tab completion?) but I believe
my change has fixed the ability to comment out aliases in `.git.scmbrc`
in zsh for users who do not want them (I'm in this boat, there are too
many for me and I get confused).
I tested manually in both bash and zsh and it appears to work, however
you might want to review this before merging given my relative
unfamiliarity with the codebase.
`gh` is the new `hub`, rewritten to be fast and efficient.
http://owenou.com/gh/
If has been adopted by GitHub themselves and will replace `hub`
entirely, see:
https://github.com/github/hub/issues/475
This patch simply checks for `gh` as a possible `_git_cmd` in addition
to hub, restoring scm_breeze functionality for people who have switched
to gh.
This change makes sure LC_MESSAGES is set to C whenever command output
is run through grep, sed etc. Otherwise aliasing will fail whenever
localized messages are printed.
This should fix#98 and #64.