Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Ohmyzsh
Commits
0c77e4ba
Commit
0c77e4ba
authored
Dec 15, 2014
by
spacewander
Browse files
update git-extras plugin
parent
141c2e59
Changes
1
Show whitespace changes
Inline
Side-by-side
plugins/git-extras/git-extras.plugin.zsh
View file @
0c77e4ba
...
@@ -3,19 +3,20 @@
...
@@ -3,19 +3,20 @@
# Description
# Description
# -----------
# -----------
#
#
# Completion script for git-extras (http://github.com/
visionmedia
/git-extras).
# Completion script for git-extras (http://github.com/
tj
/git-extras).
#
#
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
# Authors
# Authors
# -------
# -------
#
#
# * Alexis GRIMALDI (https://github.com/agrimaldi)
# * Alexis GRIMALDI (https://github.com/agrimaldi)
# * spacewander (https://github.com/spacewander)
#
#
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
# Inspirations
# Inspirations
# -----------
# -----------
#
#
# * git-extras (http://github.com/
visionmedia
/git-extras)
# * git-extras (http://github.com/
tj
/git-extras)
# * git-flow-completion (http://github.com/bobthecow/git-flow-completion)
# * git-flow-completion (http://github.com/bobthecow/git-flow-completion)
#
#
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
...
@@ -30,10 +31,21 @@ __git_command_successful () {
...
@@ -30,10 +31,21 @@ __git_command_successful () {
}
}
__git_commits
()
{
declare
-A
commits
git log
--oneline
-15
|
sed
's/\([[:alnum:]]\{7\}\) /\1:/'
|
while
read
commit
do
hash
=
$(
echo
$commit
|
cut
-d
':'
-f1
)
commits[
$hash
]=
"
$commit
"
done
local
ret
=
1
_describe
-t
commits commit commits
&&
ret
=
0
}
__git_tag_names
()
{
__git_tag_names
()
{
local
expl
local
expl
declare
-a
tag_names
declare
-a
tag_names
tag_names
=(
${${
(f)
"
$(
_call_program
branchref
s git
for
-each-ref
--format
=
'"%(refname)"'
refs/tags 2>/dev/null
)
"
}
#refs/tags/
}
)
tag_names
=(
${${
(f)
"
$(
_call_program
tag
s git
for
-each-ref
--format
=
'"%(refname)"'
refs/tags 2>/dev/null
)
"
}
#refs/tags/
}
)
__git_command_successful
||
return
__git_command_successful
||
return
_wanted tag-names expl tag-name compadd
$*
-
$tag_names
_wanted tag-names expl tag-name compadd
$*
-
$tag_names
}
}
...
@@ -47,31 +59,27 @@ __git_branch_names() {
...
@@ -47,31 +59,27 @@ __git_branch_names() {
_wanted branch-names expl branch-name compadd
$*
-
$branch_names
_wanted branch-names expl branch-name compadd
$*
-
$branch_names
}
}
__git_specific_branch_names
()
{
__git_feature_branch_names
()
{
local
expl
local
expl
declare
-a
branch_names
declare
-a
branch_names
branch_names
=(
${${
(f)
"
$(
_call_program branchrefs git
for
-each-ref
--format
=
'"%(refname)"'
refs/heads/
feature
2>/dev/null
)
"
}
#refs/heads/
feature
/
}
)
branch_names
=(
${${
(f)
"
$(
_call_program branchrefs git
for
-each-ref
--format
=
'"%(refname)"'
refs/heads/
"
$1
"
2>/dev/null
)
"
}
#refs/heads/
$1
/
}
)
__git_command_successful
||
return
__git_command_successful
||
return
_wanted branch-names expl branch-name compadd
$*
-
$branch_names
_wanted branch-names expl branch-name compadd
$*
-
$branch_names
}
}
__git_feature_branch_names
()
{
__git_specific_branch_names
'feature'
}
__git_refactor_branch_names
()
{
__git_refactor_branch_names
()
{
local
expl
__git_specific_branch_names
'refactor'
declare
-a
branch_names
branch_names
=(
${${
(f)
"
$(
_call_program branchrefs git
for
-each-ref
--format
=
'"%(refname)"'
refs/heads/refactor 2>/dev/null
)
"
}
#refs/heads/refactor/
}
)
__git_command_successful
||
return
_wanted branch-names expl branch-name compadd
$*
-
$branch_names
}
}
__git_bug_branch_names
()
{
__git_bug_branch_names
()
{
local
expl
__git_specific_branch_names
'bug'
declare
-a
branch_names
branch_names
=(
${${
(f)
"
$(
_call_program branchrefs git
for
-each-ref
--format
=
'"%(refname)"'
refs/heads/bug 2>/dev/null
)
"
}
#refs/heads/bug/
}
)
__git_command_successful
||
return
_wanted branch-names expl branch-name compadd
$*
-
$branch_names
}
}
...
@@ -92,19 +100,43 @@ __git_author_names() {
...
@@ -92,19 +100,43 @@ __git_author_names() {
_wanted author-names expl author-name compadd
$*
-
$author_names
_wanted author-names expl author-name compadd
$*
-
$author_names
}
}
# subcommands
_git-changelog
()
{
_git-bug
()
{
_arguments
\
local
curcontext
=
$curcontext
state line
ret
=
1
'(-l --list)'
{
-l
,--list
}
'[list commits]'
\
declare
-A
opt_args
_arguments
-C
\
': :->command'
\
'*:: :->option-or-argument'
&&
ret
=
0
case
$state
in
(
command
)
declare
-a
commands
commands
=(
'finish:merge bug into the current branch'
)
_describe
-t
commands
command
commands
&&
ret
=
0
;;
(
option-or-argument
)
curcontext
=
${
curcontext
%
:
*
}
-
$line
[
1]:
case
$line
[
1]
in
(
finish
)
_arguments
-C
\
':branch-name:__git_bug_branch_names'
;;
esac
esac
}
}
_git-
effort
()
{
_git-
changelog
()
{
_arguments
\
_arguments
\
'
--above[ignore file with less than x
commits]'
\
'
(-l --list)'
{
-l
,--list
}
'[list
commits]'
\
}
}
_git-contrib
()
{
_git-contrib
()
{
_arguments
\
_arguments
\
':author:__git_author_names'
':author:__git_author_names'
...
@@ -135,6 +167,11 @@ _git-delete-tag() {
...
@@ -135,6 +167,11 @@ _git-delete-tag() {
}
}
_git-effort
()
{
_arguments
\
'--above[ignore file with less than x commits]'
}
_git-extras
()
{
_git-extras
()
{
local
curcontext
=
$curcontext
state line
ret
=
1
local
curcontext
=
$curcontext
state line
ret
=
1
declare
-A
opt_args
declare
-A
opt_args
...
@@ -154,20 +191,7 @@ _git-extras() {
...
@@ -154,20 +191,7 @@ _git-extras() {
esac
esac
_arguments
\
_arguments
\
'(-v --version)'
{
-v
,--version
}
'[show current version]'
\
'(-v --version)'
{
-v
,--version
}
'[show current version]'
}
_git-graft
()
{
_arguments
\
':src-branch-name:__git_branch_names'
\
':dest-branch-name:__git_branch_names'
}
_git-squash
()
{
_arguments
\
':branch-name:__git_branch_names'
}
}
...
@@ -199,6 +223,25 @@ _git-feature() {
...
@@ -199,6 +223,25 @@ _git-feature() {
}
}
_git-graft
()
{
_arguments
\
':src-branch-name:__git_branch_names'
\
':dest-branch-name:__git_branch_names'
}
_git-ignore
()
{
_arguments
-C
\
'(--local -l)'
{
--local
,-l
}
'[show local gitignore]'
\
'(--global -g)'
{
--global
,-g
}
'[show global gitignore]'
}
_git-missing
()
{
_arguments
\
':first-branch-name:__git_branch_names'
\
':second-branch-name:__git_branch_names'
}
_git-refactor
()
{
_git-refactor
()
{
local
curcontext
=
$curcontext
state line
ret
=
1
local
curcontext
=
$curcontext
state line
ret
=
1
declare
-A
opt_args
declare
-A
opt_args
...
@@ -227,59 +270,62 @@ _git-refactor() {
...
@@ -227,59 +270,62 @@ _git-refactor() {
}
}
_git-bug
()
{
_git-squash
()
{
local
curcontext
=
$curcontext
state line
ret
=
1
_arguments
\
declare
-A
opt_args
':branch-name:__git_branch_names'
}
_arguments
-C
\
_git-summary
()
{
': :->command'
\
_arguments
'--line[summarize with lines other than commits]'
'*:: :->option-or-argument'
&&
ret
=
0
__git_commits
}
case
$state
in
(
command
)
_git-undo
(){
declare
-a
commands
commands
=(
'finish:merge bug into the current branch'
)
_describe
-t
commands
command
commands
&&
ret
=
0
;;
(
option-or-argument
)
curcontext
=
${
curcontext
%
:
*
}
-
$line
[
1]:
case
$line
[
1]
in
(
finish
)
_arguments
-C
\
_arguments
-C
\
':branch-name:__git_bug_branch_names'
'(--soft -s)'
{
--soft
,-s
}
'[only rolls back the commit but changes remain un-staged]'
\
;;
'(--hard -h)'
{
--hard
,-h
}
'[wipes your commit(s)]'
esac
esac
}
}
zstyle
':completion:*:*:git:*'
user-commands
\
zstyle
':completion:*:*:git:*'
user-commands
\
alias
:
'define, search and show aliases'
\
archive-file:
'export the current HEAD of the git repository to a archive'
\
back:
'undo and stage latest commits'
\
bug:
'create a bug branch'
\
changelog:
'populate changelog file with commits since the previous tag'
\
changelog:
'populate changelog file with commits since the previous tag'
\
commits-since:
'list commits since a given date'
\
contrib:
'display author contributions'
\
contrib:
'display author contributions'
\
count:
'count commits'
\
count:
'count commits'
\
create-branch:
'create local and remote branch'
\
delete-branch:
'delete local and remote branch'
\
delete-branch:
'delete local and remote branch'
\
delete-merged-brancees:
'delete merged branches'
\
delete-submodule:
'delete submodule'
\
delete-submodule:
'delete submodule'
\
delete-tag:
'delete local and remote tag'
\
delete-tag:
'delete local and remote tag'
\
effort:
'display effort statistics'
\
extras:
'git-extras'
\
extras:
'git-extras'
\
graft:
'merge commits from source branch to destination branch'
\
squash:
'merge commits from source branch into the current one as a single commit'
\
feature:
'create a feature branch'
\
feature:
'create a feature branch'
\
refactor:
'create a refactor branch'
\
fork:
'fork a repo on github'
\
bug:
'create a bug branch'
\
fresh-branch:
'create empty local branch'
\
summary:
'repository summary'
\
gh-pages:
'create the GitHub Pages branch'
\
effort:
'display effort statistics'
\
graft:
'merge commits from source branch to destination branch'
\
repl:
'read-eval-print-loop'
\
commits-since:
'list commits since a given date'
\
release:
'release commit with the given tag'
\
alias
:
'define, search and show aliases'
\
ignore:
'add patterns to .gitignore'
\
ignore:
'add patterns to .gitignore'
\
info:
'show info about the repository'
\
info:
'show info about the repository'
\
create-branch:
'create local and remote branch'
\
local-commits:
'list unpushed commits on the local branch'
\
fresh-branch:
'create empty local branch'
\
lock:
'lock a file excluded from version control'
\
undo:
'remove the latest commit'
\
locked:
'ls files that have been locked'
\
missing:
'show commits missing from another branch'
\
pr
:
'checks out a pull request locally'
\
rebase-patch:
'rebases a patch'
\
refactor:
'create a refactor branch'
\
release:
'commit, tag and push changes to the repository'
\
rename-tag:
'rename a tag'
\
repl:
'read-eval-print-loop'
\
reset-file:
'reset one file'
\
root:
'show path of root'
\
setup:
'setup a git repository'
\
setup:
'setup a git repository'
\
show-tree:
'show branch tree of commit history'
\
squash:
'merge commits from source branch into the current one as a single commit'
\
summary:
'repository summary'
\
touch
:
'one step creation of new files'
\
touch
:
'one step creation of new files'
\
obliterate:
'Completely remove a file from the repository, including past commits and tags
'
\
undo:
'remove the latest commit
'
\
loc
al-commits:
'list unpushed commits on the local branch'
\
un
loc
k:
'unlock a file excluded from version control'
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment