blob: c8a3c8c80bfdcbda9b59d42be5e99e785808045c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
#compdef stg
typeset -a subcmds
subcmds=(
'help:print the detailed command usage'
'version:display version information'
'copyright:display copyright information'
'clone:make a local clone of a remote repository'
'id:print the GIT hash value of a StGIT reference'
'applied:print the applied patches'
'branch:manage patch stacks'
'clean:delete the empty patches in the series'
'commit:permanently store the applied patches into stack base'
'float:push patches to the top, even if applied'
'goto:push or pop patches to the given one'
'hide:hide a patch in the series'
'init:initialise the current branch for use with StGIT'
'patches:show the applied patches modifying a file'
'pop:pop one or more patches from the stack'
'pull:pull the changes from the remote repository'
'push:push one or more patches onto of the stack'
'rebase:move the stack base to another point in history'
'repair:Fix StGit metadata if branch was modified with git commands'
'series:print the patch series'
'sink:send patches deeper down the stack'
'top:print the name of the top patch'
'unapplied:print the unapplied patches'
'uncommit:turn regular GIT commits into StGIT patches'
'unhide:unhide a hidden patch in the series'
'delete:delete patches'
'edit:edit a patch description or diff'
'export:exports patches to a directory'
'files:show the files modified by a patch (or the current patch)'
'fold:integrate a GNU diff patch into the current patch'
'import:import a GNU diff file as a new patch'
'log:display the patch changelog'
'mail:send a patch or series of patches by e-mail'
'new:create a new patch and make it the topmost one'
'pick:import a patch from a different branch or a commit object'
'refresh:generate a new commit for the current patch'
'rename:rename a patch in the series'
'show:show the commit corresponding to a patch (or the current patch)'
'sync:synchronise patches with a branch or a series'
'add:add files or directories to the repository'
'cp:copy files inside the repository'
'diff:show the tree diff'
'resolved:mark a file conflict as solved'
'rm:remove files from the repository'
'status:show the tree status'
)
local curcontext="$curcontext"
local subcmd
local ret=1
if (( CURRENT == 2 )); then
_describe -t commands 'stgit command' subcmds && ret=0
else
shift words
(( CURRENT-- ))
subcmd="$words[1]"
curcontext="${curcontext%:*}-${subcmd}:"
case $subcmd in
(push)
_wanted -V "unapplied patches" expl "patch" compadd $(stg unapplied) \
&& ret=0
;;
(pop)
_wanted -V "applied patches" expl "patch" compadd $(stg applied) && ret=0
;;
(edit|files|goto|rename|log|float|delete|sink|mail|sync|show|pick|hide)
_wanted -V "patches" expl "patch" compadd $(stg series --noprefix) && ret=0
;;
(*)
_files
;;
esac
fi
return ret
|