codelation-cli 0.0.18 → 0.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/codelation.rb +1 -0
- data/lib/codelation/development.rb +6 -0
- data/lib/codelation/development/psequel.rb +15 -0
- data/lib/codelation/version.rb +1 -1
- data/resources/dot_files/.git-completion.bash +2151 -2065
- data/resources/dot_files/.git-prompt.sh +111 -24
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 500e4becd56b43d04ee95cb97b3ffa22dbf6de34
|
4
|
+
data.tar.gz: c404914b94b453a2f40081abec8202ca6c879a6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68d026b94b571b7b13f31c4c6db9d1b9cd8833e94459d46d238d93ca5aee1e516ae55a94025085d215dea44f4077858cb8028defacd9355a80c4d391d0ff4def
|
7
|
+
data.tar.gz: 19f71254285300f3e9b1a6bdb4b7b78eca2f409a717bed545bda28a20757ff10be5fdf72c4f1b3b7b46e855653d3ac08e1470f63a92cbf9a78f0658b416f00eb
|
data/lib/codelation.rb
CHANGED
@@ -6,6 +6,7 @@ require_relative "codelation/development/dependencies"
|
|
6
6
|
require_relative "codelation/development/dot_files"
|
7
7
|
require_relative "codelation/development/install_methods"
|
8
8
|
require_relative "codelation/development/postgres"
|
9
|
+
require_relative "codelation/development/psequel"
|
9
10
|
require_relative "codelation/development/ruby"
|
10
11
|
require_relative "codelation/development/sequel_pro"
|
11
12
|
require_relative "codelation/version"
|
@@ -9,6 +9,7 @@ module Codelation
|
|
9
9
|
- Atom Packages: erb-snippets, linter, linter-csslint, linter-erb, linter-jshint,
|
10
10
|
linter-php, linter-rubocop, linter-ruby, linter-scss-lint, remote-atom\n
|
11
11
|
- Postgres.app (http://postgresapp.com)\n
|
12
|
+
- PSequel.app (http://www.psequel.com)\n
|
12
13
|
- Ruby (https://www.ruby-lang.org)\n
|
13
14
|
- Ruby Gems: bundler, rubocop, scss-lint\n
|
14
15
|
- Sequel Pro.app (http://www.sequelpro.com)
|
@@ -33,6 +34,11 @@ module Codelation
|
|
33
34
|
install_postgres
|
34
35
|
end
|
35
36
|
|
37
|
+
unless Dir.exist?("/Applications/PSequel.app")
|
38
|
+
print_heading("Installing PSequel.app")
|
39
|
+
install_psequel
|
40
|
+
end
|
41
|
+
|
36
42
|
print_heading("Installing Ruby")
|
37
43
|
install_ruby
|
38
44
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "thor"
|
2
|
+
|
3
|
+
module Codelation
|
4
|
+
class Cli < Thor
|
5
|
+
PSEQUEL_APP_DOWNLOAD_URL = "http://www.psequel.com/download?version=latest"
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
# Install PSequel.app
|
10
|
+
def install_psequel
|
11
|
+
zip_file_path = download_file(PSEQUEL_APP_DOWNLOAD_URL)
|
12
|
+
extract_app_from_zip("PSequel.app", zip_file_path)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/codelation/version.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
#!bash
|
2
|
-
#
|
3
1
|
# bash/zsh completion support for core Git.
|
4
2
|
#
|
5
3
|
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
|
@@ -18,11 +16,17 @@
|
|
18
16
|
#
|
19
17
|
# To use these routines:
|
20
18
|
#
|
21
|
-
# 1) Copy this file to somewhere (e.g. ~/.git-completion.
|
19
|
+
# 1) Copy this file to somewhere (e.g. ~/.git-completion.bash).
|
22
20
|
# 2) Add the following line to your .bashrc/.zshrc:
|
23
|
-
# source ~/.git-completion.
|
21
|
+
# source ~/.git-completion.bash
|
24
22
|
# 3) Consider changing your PS1 to also show the current branch,
|
25
23
|
# see git-prompt.sh for details.
|
24
|
+
#
|
25
|
+
# If you use complex aliases of form '!f() { ... }; f', you can use the null
|
26
|
+
# command ':' as the first command in the function body to declare the desired
|
27
|
+
# completion style. For example '!f() { : git commit ; ... }; f' will
|
28
|
+
# tell the completion to use commit completion. This also works with aliases
|
29
|
+
# of form "!sh -c '...'". For example, "!sh -c ': git commit ; ... '".
|
26
30
|
|
27
31
|
case "$COMP_WORDBREAKS" in
|
28
32
|
*:*) : great ;;
|
@@ -33,22 +37,22 @@ esac
|
|
33
37
|
# returns location of .git repo
|
34
38
|
__gitdir ()
|
35
39
|
{
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
40
|
+
if [ -z "${1-}" ]; then
|
41
|
+
if [ -n "${__git_dir-}" ]; then
|
42
|
+
echo "$__git_dir"
|
43
|
+
elif [ -n "${GIT_DIR-}" ]; then
|
44
|
+
test -d "${GIT_DIR-}" || return 1
|
45
|
+
echo "$GIT_DIR"
|
46
|
+
elif [ -d .git ]; then
|
47
|
+
echo .git
|
48
|
+
else
|
49
|
+
git rev-parse --git-dir 2>/dev/null
|
50
|
+
fi
|
51
|
+
elif [ -d "$1/.git" ]; then
|
52
|
+
echo "$1/.git"
|
53
|
+
else
|
54
|
+
echo "$1"
|
55
|
+
fi
|
52
56
|
}
|
53
57
|
|
54
58
|
# The following function is based on code from:
|
@@ -106,88 +110,94 @@ __gitdir ()
|
|
106
110
|
|
107
111
|
__git_reassemble_comp_words_by_ref()
|
108
112
|
{
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
113
|
+
local exclude i j first
|
114
|
+
# Which word separators to exclude?
|
115
|
+
exclude="${1//[^$COMP_WORDBREAKS]}"
|
116
|
+
cword_=$COMP_CWORD
|
117
|
+
if [ -z "$exclude" ]; then
|
118
|
+
words_=("${COMP_WORDS[@]}")
|
119
|
+
return
|
120
|
+
fi
|
121
|
+
# List of word completion separators has shrunk;
|
122
|
+
# re-assemble words to complete.
|
123
|
+
for ((i=0, j=0; i < ${#COMP_WORDS[@]}; i++, j++)); do
|
124
|
+
# Append each nonempty word consisting of just
|
125
|
+
# word separator characters to the current word.
|
126
|
+
first=t
|
127
|
+
while
|
128
|
+
[ $i -gt 0 ] &&
|
129
|
+
[ -n "${COMP_WORDS[$i]}" ] &&
|
130
|
+
# word consists of excluded word separators
|
131
|
+
[ "${COMP_WORDS[$i]//[^$exclude]}" = "${COMP_WORDS[$i]}" ]
|
132
|
+
do
|
133
|
+
# Attach to the previous token,
|
134
|
+
# unless the previous token is the command name.
|
135
|
+
if [ $j -ge 2 ] && [ -n "$first" ]; then
|
136
|
+
((j--))
|
137
|
+
fi
|
138
|
+
first=
|
139
|
+
words_[$j]=${words_[j]}${COMP_WORDS[i]}
|
140
|
+
if [ $i = $COMP_CWORD ]; then
|
141
|
+
cword_=$j
|
142
|
+
fi
|
143
|
+
if (($i < ${#COMP_WORDS[@]} - 1)); then
|
144
|
+
((i++))
|
145
|
+
else
|
146
|
+
# Done.
|
147
|
+
return
|
148
|
+
fi
|
149
|
+
done
|
150
|
+
words_[$j]=${words_[j]}${COMP_WORDS[i]}
|
151
|
+
if [ $i = $COMP_CWORD ]; then
|
152
|
+
cword_=$j
|
153
|
+
fi
|
154
|
+
done
|
151
155
|
}
|
152
156
|
|
153
157
|
if ! type _get_comp_words_by_ref >/dev/null 2>&1; then
|
154
158
|
_get_comp_words_by_ref ()
|
155
159
|
{
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
160
|
+
local exclude cur_ words_ cword_
|
161
|
+
if [ "$1" = "-n" ]; then
|
162
|
+
exclude=$2
|
163
|
+
shift 2
|
164
|
+
fi
|
165
|
+
__git_reassemble_comp_words_by_ref "$exclude"
|
166
|
+
cur_=${words_[cword_]}
|
167
|
+
while [ $# -gt 0 ]; do
|
168
|
+
case "$1" in
|
169
|
+
cur)
|
170
|
+
cur=$cur_
|
171
|
+
;;
|
172
|
+
prev)
|
173
|
+
prev=${words_[$cword_-1]}
|
174
|
+
;;
|
175
|
+
words)
|
176
|
+
words=("${words_[@]}")
|
177
|
+
;;
|
178
|
+
cword)
|
179
|
+
cword=$cword_
|
180
|
+
;;
|
181
|
+
esac
|
182
|
+
shift
|
183
|
+
done
|
180
184
|
}
|
181
185
|
fi
|
182
186
|
|
187
|
+
__gitcompappend ()
|
188
|
+
{
|
189
|
+
local x i=${#COMPREPLY[@]}
|
190
|
+
for x in $1; do
|
191
|
+
if [[ "$x" == "$3"* ]]; then
|
192
|
+
COMPREPLY[i++]="$2$x$4"
|
193
|
+
fi
|
194
|
+
done
|
195
|
+
}
|
196
|
+
|
183
197
|
__gitcompadd ()
|
184
198
|
{
|
185
|
-
|
186
|
-
|
187
|
-
if [[ "$x" == "$3"* ]]; then
|
188
|
-
COMPREPLY[i++]="$2$x$4"
|
189
|
-
fi
|
190
|
-
done
|
199
|
+
COMPREPLY=()
|
200
|
+
__gitcompappend "$@"
|
191
201
|
}
|
192
202
|
|
193
203
|
# Generates completion reply, appending a space to possible completion words,
|
@@ -199,25 +209,33 @@ __gitcompadd ()
|
|
199
209
|
# 4: A suffix to be appended to each possible completion word (optional).
|
200
210
|
__gitcomp ()
|
201
211
|
{
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
212
|
+
local cur_="${3-$cur}"
|
213
|
+
|
214
|
+
case "$cur_" in
|
215
|
+
--*=)
|
216
|
+
;;
|
217
|
+
*)
|
218
|
+
local c i=0 IFS=$' \t\n'
|
219
|
+
for c in $1; do
|
220
|
+
c="$c${4-}"
|
221
|
+
if [[ $c == "$cur_"* ]]; then
|
222
|
+
case $c in
|
223
|
+
--*=*|*.) ;;
|
224
|
+
*) c="$c " ;;
|
225
|
+
esac
|
226
|
+
COMPREPLY[i++]="${2-}$c"
|
227
|
+
fi
|
228
|
+
done
|
229
|
+
;;
|
230
|
+
esac
|
231
|
+
}
|
232
|
+
|
233
|
+
# Variation of __gitcomp_nl () that appends to the existing list of
|
234
|
+
# completion candidates, COMPREPLY.
|
235
|
+
__gitcomp_nl_append ()
|
236
|
+
{
|
237
|
+
local IFS=$'\n'
|
238
|
+
__gitcompappend "$1" "${2-}" "${3-$cur}" "${4- }"
|
221
239
|
}
|
222
240
|
|
223
241
|
# Generates completion reply from newline-separated possible completion words
|
@@ -231,8 +249,8 @@ __gitcomp ()
|
|
231
249
|
# appended.
|
232
250
|
__gitcomp_nl ()
|
233
251
|
{
|
234
|
-
|
235
|
-
|
252
|
+
COMPREPLY=()
|
253
|
+
__gitcomp_nl_append "$@"
|
236
254
|
}
|
237
255
|
|
238
256
|
# Generates completion reply with compgen from newline-separated possible
|
@@ -244,17 +262,17 @@ __gitcomp_nl ()
|
|
244
262
|
# 3: Generate possible completion matches for this word (optional).
|
245
263
|
__gitcomp_file ()
|
246
264
|
{
|
247
|
-
|
265
|
+
local IFS=$'\n'
|
248
266
|
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
267
|
+
# XXX does not work when the directory prefix contains a tilde,
|
268
|
+
# since tilde expansion is not applied.
|
269
|
+
# This means that COMPREPLY will be empty and Bash default
|
270
|
+
# completion will be used.
|
271
|
+
__gitcompadd "$1" "${2-}" "${3-$cur}" ""
|
254
272
|
|
255
|
-
|
256
|
-
|
257
|
-
|
273
|
+
# use a hack to enable file mode in bash < 4
|
274
|
+
compopt -o filenames +o nospace 2>/dev/null ||
|
275
|
+
compgen -f /non-existing-dir/ > /dev/null
|
258
276
|
}
|
259
277
|
|
260
278
|
# Execute 'git ls-files', unless the --committable option is specified, in
|
@@ -263,16 +281,12 @@ __gitcomp_file ()
|
|
263
281
|
# argument, and using the options specified in the second argument.
|
264
282
|
__git_ls_files_helper ()
|
265
283
|
{
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
# NOTE: $2 is not quoted in order to support multiple options
|
273
|
-
git ls-files --exclude-standard $2
|
274
|
-
fi
|
275
|
-
) 2>/dev/null
|
284
|
+
if [ "$2" == "--committable" ]; then
|
285
|
+
git -C "$1" diff-index --name-only --relative HEAD
|
286
|
+
else
|
287
|
+
# NOTE: $2 is not quoted in order to support multiple options
|
288
|
+
git -C "$1" ls-files --exclude-standard $2
|
289
|
+
fi 2>/dev/null
|
276
290
|
}
|
277
291
|
|
278
292
|
|
@@ -284,37 +298,37 @@ __git_ls_files_helper ()
|
|
284
298
|
# slash.
|
285
299
|
__git_index_files ()
|
286
300
|
{
|
287
|
-
|
301
|
+
local dir="$(__gitdir)" root="${2-.}" file
|
288
302
|
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
303
|
+
if [ -d "$dir" ]; then
|
304
|
+
__git_ls_files_helper "$root" "$1" |
|
305
|
+
while read -r file; do
|
306
|
+
case "$file" in
|
307
|
+
?*/*) echo "${file%%/*}" ;;
|
308
|
+
*) echo "$file" ;;
|
309
|
+
esac
|
310
|
+
done | sort | uniq
|
311
|
+
fi
|
298
312
|
}
|
299
313
|
|
300
314
|
__git_heads ()
|
301
315
|
{
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
316
|
+
local dir="$(__gitdir)"
|
317
|
+
if [ -d "$dir" ]; then
|
318
|
+
git --git-dir="$dir" for-each-ref --format='%(refname:short)' \
|
319
|
+
refs/heads
|
320
|
+
return
|
321
|
+
fi
|
308
322
|
}
|
309
323
|
|
310
324
|
__git_tags ()
|
311
325
|
{
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
326
|
+
local dir="$(__gitdir)"
|
327
|
+
if [ -d "$dir" ]; then
|
328
|
+
git --git-dir="$dir" for-each-ref --format='%(refname:short)' \
|
329
|
+
refs/tags
|
330
|
+
return
|
331
|
+
fi
|
318
332
|
}
|
319
333
|
|
320
334
|
# __git_refs accepts 0, 1 (to pass to __gitdir), or 2 arguments
|
@@ -322,98 +336,96 @@ __git_tags ()
|
|
322
336
|
# by checkout for tracking branches
|
323
337
|
__git_refs ()
|
324
338
|
{
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
339
|
+
local i hash dir="$(__gitdir "${1-}")" track="${2-}"
|
340
|
+
local format refs
|
341
|
+
if [ -d "$dir" ]; then
|
342
|
+
case "$cur" in
|
343
|
+
refs|refs/*)
|
344
|
+
format="refname"
|
345
|
+
refs="${cur%/*}"
|
346
|
+
track=""
|
347
|
+
;;
|
348
|
+
*)
|
349
|
+
for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD; do
|
350
|
+
if [ -e "$dir/$i" ]; then echo $i; fi
|
351
|
+
done
|
352
|
+
format="refname:short"
|
353
|
+
refs="refs/tags refs/heads refs/remotes"
|
354
|
+
;;
|
355
|
+
esac
|
356
|
+
git --git-dir="$dir" for-each-ref --format="%($format)" \
|
357
|
+
$refs
|
358
|
+
if [ -n "$track" ]; then
|
359
|
+
# employ the heuristic used by git checkout
|
360
|
+
# Try to find a remote branch that matches the completion word
|
361
|
+
# but only output if the branch name is unique
|
362
|
+
local ref entry
|
363
|
+
git --git-dir="$dir" for-each-ref --shell --format="ref=%(refname:short)" \
|
364
|
+
"refs/remotes/" | \
|
365
|
+
while read -r entry; do
|
366
|
+
eval "$entry"
|
367
|
+
ref="${ref#*/}"
|
368
|
+
if [[ "$ref" == "$cur"* ]]; then
|
369
|
+
echo "$ref"
|
370
|
+
fi
|
371
|
+
done | sort | uniq -u
|
372
|
+
fi
|
373
|
+
return
|
374
|
+
fi
|
375
|
+
case "$cur" in
|
376
|
+
refs|refs/*)
|
377
|
+
git ls-remote "$dir" "$cur*" 2>/dev/null | \
|
378
|
+
while read -r hash i; do
|
379
|
+
case "$i" in
|
380
|
+
*^{}) ;;
|
381
|
+
*) echo "$i" ;;
|
382
|
+
esac
|
383
|
+
done
|
384
|
+
;;
|
385
|
+
*)
|
386
|
+
echo "HEAD"
|
387
|
+
git for-each-ref --format="%(refname:short)" -- \
|
388
|
+
"refs/remotes/$dir/" 2>/dev/null | sed -e "s#^$dir/##"
|
389
|
+
;;
|
390
|
+
esac
|
376
391
|
}
|
377
392
|
|
378
393
|
# __git_refs2 requires 1 argument (to pass to __git_refs)
|
379
394
|
__git_refs2 ()
|
380
395
|
{
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
396
|
+
local i
|
397
|
+
for i in $(__git_refs "$1"); do
|
398
|
+
echo "$i:$i"
|
399
|
+
done
|
385
400
|
}
|
386
401
|
|
387
402
|
# __git_refs_remotes requires 1 argument (to pass to ls-remote)
|
388
403
|
__git_refs_remotes ()
|
389
404
|
{
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
405
|
+
local i hash
|
406
|
+
git ls-remote "$1" 'refs/heads/*' 2>/dev/null | \
|
407
|
+
while read -r hash i; do
|
408
|
+
echo "$i:refs/remotes/$1/${i#refs/heads/}"
|
409
|
+
done
|
395
410
|
}
|
396
411
|
|
397
412
|
__git_remotes ()
|
398
413
|
{
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
i="${i#remote.}"
|
403
|
-
echo "${i/.url*/}"
|
404
|
-
done
|
414
|
+
local d="$(__gitdir)"
|
415
|
+
test -d "$d/remotes" && ls -1 "$d/remotes"
|
416
|
+
git --git-dir="$d" remote
|
405
417
|
}
|
406
418
|
|
407
419
|
__git_list_merge_strategies ()
|
408
420
|
{
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
421
|
+
git merge -s help 2>&1 |
|
422
|
+
sed -n -e '/[Aa]vailable strategies are: /,/^$/{
|
423
|
+
s/\.$//
|
424
|
+
s/.*://
|
425
|
+
s/^[ ]*//
|
426
|
+
s/[ ]*$//
|
427
|
+
p
|
428
|
+
}'
|
417
429
|
}
|
418
430
|
|
419
431
|
__git_merge_strategies=
|
@@ -424,67 +436,67 @@ __git_merge_strategies=
|
|
424
436
|
# is needed.
|
425
437
|
__git_compute_merge_strategies ()
|
426
438
|
{
|
427
|
-
|
428
|
-
|
439
|
+
test -n "$__git_merge_strategies" ||
|
440
|
+
__git_merge_strategies=$(__git_list_merge_strategies)
|
429
441
|
}
|
430
442
|
|
431
443
|
__git_complete_revlist_file ()
|
432
444
|
{
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
445
|
+
local pfx ls ref cur_="$cur"
|
446
|
+
case "$cur_" in
|
447
|
+
*..?*:*)
|
448
|
+
return
|
449
|
+
;;
|
450
|
+
?*:*)
|
451
|
+
ref="${cur_%%:*}"
|
452
|
+
cur_="${cur_#*:}"
|
453
|
+
case "$cur_" in
|
454
|
+
?*/*)
|
455
|
+
pfx="${cur_%/*}"
|
456
|
+
cur_="${cur_##*/}"
|
457
|
+
ls="$ref:$pfx"
|
458
|
+
pfx="$pfx/"
|
459
|
+
;;
|
460
|
+
*)
|
461
|
+
ls="$ref"
|
462
|
+
;;
|
463
|
+
esac
|
464
|
+
|
465
|
+
case "$COMP_WORDBREAKS" in
|
466
|
+
*:*) : great ;;
|
467
|
+
*) pfx="$ref:$pfx" ;;
|
468
|
+
esac
|
469
|
+
|
470
|
+
__gitcomp_nl "$(git --git-dir="$(__gitdir)" ls-tree "$ls" 2>/dev/null \
|
471
|
+
| sed '/^100... blob /{
|
472
|
+
s,^.* ,,
|
473
|
+
s,$, ,
|
474
|
+
}
|
475
|
+
/^120000 blob /{
|
476
|
+
s,^.* ,,
|
477
|
+
s,$, ,
|
478
|
+
}
|
479
|
+
/^040000 tree /{
|
480
|
+
s,^.* ,,
|
481
|
+
s,$,/,
|
482
|
+
}
|
483
|
+
s/^.* //')" \
|
484
|
+
"$pfx" "$cur_" ""
|
485
|
+
;;
|
486
|
+
*...*)
|
487
|
+
pfx="${cur_%...*}..."
|
488
|
+
cur_="${cur_#*...}"
|
489
|
+
__gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
|
490
|
+
;;
|
491
|
+
*..*)
|
492
|
+
pfx="${cur_%..*}.."
|
493
|
+
cur_="${cur_#*..}"
|
494
|
+
__gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
|
495
|
+
;;
|
496
|
+
*)
|
497
|
+
__gitcomp_nl "$(__git_refs)"
|
498
|
+
;;
|
499
|
+
esac
|
488
500
|
}
|
489
501
|
|
490
502
|
|
@@ -494,318 +506,312 @@ __git_complete_revlist_file ()
|
|
494
506
|
# The exception is --committable, which finds the files appropriate commit.
|
495
507
|
__git_complete_index_file ()
|
496
508
|
{
|
497
|
-
|
509
|
+
local pfx="" cur_="$cur"
|
498
510
|
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
511
|
+
case "$cur_" in
|
512
|
+
?*/*)
|
513
|
+
pfx="${cur_%/*}"
|
514
|
+
cur_="${cur_##*/}"
|
515
|
+
pfx="${pfx}/"
|
516
|
+
;;
|
517
|
+
esac
|
506
518
|
|
507
|
-
|
519
|
+
__gitcomp_file "$(__git_index_files "$1" ${pfx:+"$pfx"})" "$pfx" "$cur_"
|
508
520
|
}
|
509
521
|
|
510
522
|
__git_complete_file ()
|
511
523
|
{
|
512
|
-
|
524
|
+
__git_complete_revlist_file
|
513
525
|
}
|
514
526
|
|
515
527
|
__git_complete_revlist ()
|
516
528
|
{
|
517
|
-
|
529
|
+
__git_complete_revlist_file
|
518
530
|
}
|
519
531
|
|
520
532
|
__git_complete_remote_or_refspec ()
|
521
533
|
{
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
534
|
+
local cur_="$cur" cmd="${words[1]}"
|
535
|
+
local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0
|
536
|
+
if [ "$cmd" = "remote" ]; then
|
537
|
+
((c++))
|
538
|
+
fi
|
539
|
+
while [ $c -lt $cword ]; do
|
540
|
+
i="${words[c]}"
|
541
|
+
case "$i" in
|
542
|
+
--mirror) [ "$cmd" = "push" ] && no_complete_refspec=1 ;;
|
543
|
+
--all)
|
544
|
+
case "$cmd" in
|
545
|
+
push) no_complete_refspec=1 ;;
|
546
|
+
fetch)
|
547
|
+
return
|
548
|
+
;;
|
549
|
+
*) ;;
|
550
|
+
esac
|
551
|
+
;;
|
552
|
+
-*) ;;
|
553
|
+
*) remote="$i"; break ;;
|
554
|
+
esac
|
555
|
+
((c++))
|
556
|
+
done
|
557
|
+
if [ -z "$remote" ]; then
|
558
|
+
__gitcomp_nl "$(__git_remotes)"
|
559
|
+
return
|
560
|
+
fi
|
561
|
+
if [ $no_complete_refspec = 1 ]; then
|
562
|
+
return
|
563
|
+
fi
|
564
|
+
[ "$remote" = "." ] && remote=
|
565
|
+
case "$cur_" in
|
566
|
+
*:*)
|
567
|
+
case "$COMP_WORDBREAKS" in
|
568
|
+
*:*) : great ;;
|
569
|
+
*) pfx="${cur_%%:*}:" ;;
|
570
|
+
esac
|
571
|
+
cur_="${cur_#*:}"
|
572
|
+
lhs=0
|
573
|
+
;;
|
574
|
+
+*)
|
575
|
+
pfx="+"
|
576
|
+
cur_="${cur_#+}"
|
577
|
+
;;
|
578
|
+
esac
|
579
|
+
case "$cmd" in
|
580
|
+
fetch)
|
581
|
+
if [ $lhs = 1 ]; then
|
582
|
+
__gitcomp_nl "$(__git_refs2 "$remote")" "$pfx" "$cur_"
|
583
|
+
else
|
584
|
+
__gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
|
585
|
+
fi
|
586
|
+
;;
|
587
|
+
pull|remote)
|
588
|
+
if [ $lhs = 1 ]; then
|
589
|
+
__gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_"
|
590
|
+
else
|
591
|
+
__gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
|
592
|
+
fi
|
593
|
+
;;
|
594
|
+
push)
|
595
|
+
if [ $lhs = 1 ]; then
|
596
|
+
__gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
|
597
|
+
else
|
598
|
+
__gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_"
|
599
|
+
fi
|
600
|
+
;;
|
601
|
+
esac
|
590
602
|
}
|
591
603
|
|
592
604
|
__git_complete_strategy ()
|
593
605
|
{
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
606
|
+
__git_compute_merge_strategies
|
607
|
+
case "$prev" in
|
608
|
+
-s|--strategy)
|
609
|
+
__gitcomp "$__git_merge_strategies"
|
610
|
+
return 0
|
611
|
+
esac
|
612
|
+
case "$cur" in
|
613
|
+
--strategy=*)
|
614
|
+
__gitcomp "$__git_merge_strategies" "" "${cur##--strategy=}"
|
615
|
+
return 0
|
616
|
+
;;
|
617
|
+
esac
|
618
|
+
return 1
|
607
619
|
}
|
608
620
|
|
609
621
|
__git_commands () {
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
622
|
+
if test -n "${GIT_TESTING_COMMAND_COMPLETION:-}"
|
623
|
+
then
|
624
|
+
printf "%s" "${GIT_TESTING_COMMAND_COMPLETION}"
|
625
|
+
else
|
626
|
+
git help -a|egrep '^ [a-zA-Z0-9]'
|
627
|
+
fi
|
616
628
|
}
|
617
629
|
|
618
630
|
__git_list_all_commands ()
|
619
631
|
{
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
632
|
+
local i IFS=" "$'\n'
|
633
|
+
for i in $(__git_commands)
|
634
|
+
do
|
635
|
+
case $i in
|
636
|
+
*--*) : helper pattern;;
|
637
|
+
*) echo $i;;
|
638
|
+
esac
|
639
|
+
done
|
628
640
|
}
|
629
641
|
|
630
642
|
__git_all_commands=
|
631
643
|
__git_compute_all_commands ()
|
632
644
|
{
|
633
|
-
|
634
|
-
|
645
|
+
test -n "$__git_all_commands" ||
|
646
|
+
__git_all_commands=$(__git_list_all_commands)
|
635
647
|
}
|
636
648
|
|
637
649
|
__git_list_porcelain_commands ()
|
638
650
|
{
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
verify-tag) : plumbing;;
|
722
|
-
*) echo $i;;
|
723
|
-
esac
|
724
|
-
done
|
651
|
+
local i IFS=" "$'\n'
|
652
|
+
__git_compute_all_commands
|
653
|
+
for i in $__git_all_commands
|
654
|
+
do
|
655
|
+
case $i in
|
656
|
+
*--*) : helper pattern;;
|
657
|
+
applymbox) : ask gittus;;
|
658
|
+
applypatch) : ask gittus;;
|
659
|
+
archimport) : import;;
|
660
|
+
cat-file) : plumbing;;
|
661
|
+
check-attr) : plumbing;;
|
662
|
+
check-ignore) : plumbing;;
|
663
|
+
check-mailmap) : plumbing;;
|
664
|
+
check-ref-format) : plumbing;;
|
665
|
+
checkout-index) : plumbing;;
|
666
|
+
commit-tree) : plumbing;;
|
667
|
+
count-objects) : infrequent;;
|
668
|
+
credential) : credentials;;
|
669
|
+
credential-*) : credentials helper;;
|
670
|
+
cvsexportcommit) : export;;
|
671
|
+
cvsimport) : import;;
|
672
|
+
cvsserver) : daemon;;
|
673
|
+
daemon) : daemon;;
|
674
|
+
diff-files) : plumbing;;
|
675
|
+
diff-index) : plumbing;;
|
676
|
+
diff-tree) : plumbing;;
|
677
|
+
fast-import) : import;;
|
678
|
+
fast-export) : export;;
|
679
|
+
fsck-objects) : plumbing;;
|
680
|
+
fetch-pack) : plumbing;;
|
681
|
+
fmt-merge-msg) : plumbing;;
|
682
|
+
for-each-ref) : plumbing;;
|
683
|
+
hash-object) : plumbing;;
|
684
|
+
http-*) : transport;;
|
685
|
+
index-pack) : plumbing;;
|
686
|
+
init-db) : deprecated;;
|
687
|
+
local-fetch) : plumbing;;
|
688
|
+
ls-files) : plumbing;;
|
689
|
+
ls-remote) : plumbing;;
|
690
|
+
ls-tree) : plumbing;;
|
691
|
+
mailinfo) : plumbing;;
|
692
|
+
mailsplit) : plumbing;;
|
693
|
+
merge-*) : plumbing;;
|
694
|
+
mktree) : plumbing;;
|
695
|
+
mktag) : plumbing;;
|
696
|
+
pack-objects) : plumbing;;
|
697
|
+
pack-redundant) : plumbing;;
|
698
|
+
pack-refs) : plumbing;;
|
699
|
+
parse-remote) : plumbing;;
|
700
|
+
patch-id) : plumbing;;
|
701
|
+
prune) : plumbing;;
|
702
|
+
prune-packed) : plumbing;;
|
703
|
+
quiltimport) : import;;
|
704
|
+
read-tree) : plumbing;;
|
705
|
+
receive-pack) : plumbing;;
|
706
|
+
remote-*) : transport;;
|
707
|
+
rerere) : plumbing;;
|
708
|
+
rev-list) : plumbing;;
|
709
|
+
rev-parse) : plumbing;;
|
710
|
+
runstatus) : plumbing;;
|
711
|
+
sh-setup) : internal;;
|
712
|
+
shell) : daemon;;
|
713
|
+
show-ref) : plumbing;;
|
714
|
+
send-pack) : plumbing;;
|
715
|
+
show-index) : plumbing;;
|
716
|
+
ssh-*) : transport;;
|
717
|
+
stripspace) : plumbing;;
|
718
|
+
symbolic-ref) : plumbing;;
|
719
|
+
unpack-file) : plumbing;;
|
720
|
+
unpack-objects) : plumbing;;
|
721
|
+
update-index) : plumbing;;
|
722
|
+
update-ref) : plumbing;;
|
723
|
+
update-server-info) : daemon;;
|
724
|
+
upload-archive) : plumbing;;
|
725
|
+
upload-pack) : plumbing;;
|
726
|
+
write-tree) : plumbing;;
|
727
|
+
var) : infrequent;;
|
728
|
+
verify-pack) : infrequent;;
|
729
|
+
verify-tag) : plumbing;;
|
730
|
+
*) echo $i;;
|
731
|
+
esac
|
732
|
+
done
|
725
733
|
}
|
726
734
|
|
727
735
|
__git_porcelain_commands=
|
728
736
|
__git_compute_porcelain_commands ()
|
729
737
|
{
|
730
|
-
|
731
|
-
|
732
|
-
|
738
|
+
test -n "$__git_porcelain_commands" ||
|
739
|
+
__git_porcelain_commands=$(__git_list_porcelain_commands)
|
740
|
+
}
|
741
|
+
|
742
|
+
# Lists all set config variables starting with the given section prefix,
|
743
|
+
# with the prefix removed.
|
744
|
+
__git_get_config_variables ()
|
745
|
+
{
|
746
|
+
local section="$1" i IFS=$'\n'
|
747
|
+
for i in $(git --git-dir="$(__gitdir)" config --get-regexp "^$section\..*" 2>/dev/null); do
|
748
|
+
i="${i#$section.}"
|
749
|
+
echo "${i/ */}"
|
750
|
+
done
|
733
751
|
}
|
734
752
|
|
735
753
|
__git_pretty_aliases ()
|
736
754
|
{
|
737
|
-
|
738
|
-
for i in $(git --git-dir="$(__gitdir)" config --get-regexp "pretty\..*" 2>/dev/null); do
|
739
|
-
case "$i" in
|
740
|
-
pretty.*)
|
741
|
-
i="${i#pretty.}"
|
742
|
-
echo "${i/ */}"
|
743
|
-
;;
|
744
|
-
esac
|
745
|
-
done
|
755
|
+
__git_get_config_variables "pretty"
|
746
756
|
}
|
747
757
|
|
748
758
|
__git_aliases ()
|
749
759
|
{
|
750
|
-
|
751
|
-
for i in $(git --git-dir="$(__gitdir)" config --get-regexp "alias\..*" 2>/dev/null); do
|
752
|
-
case "$i" in
|
753
|
-
alias.*)
|
754
|
-
i="${i#alias.}"
|
755
|
-
echo "${i/ */}"
|
756
|
-
;;
|
757
|
-
esac
|
758
|
-
done
|
760
|
+
__git_get_config_variables "alias"
|
759
761
|
}
|
760
762
|
|
761
763
|
# __git_aliased_command requires 1 argument
|
762
764
|
__git_aliased_command ()
|
763
765
|
{
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
766
|
+
local word cmdline=$(git --git-dir="$(__gitdir)" \
|
767
|
+
config --get "alias.$1")
|
768
|
+
for word in $cmdline; do
|
769
|
+
case "$word" in
|
770
|
+
\!gitk|gitk)
|
771
|
+
echo "gitk"
|
772
|
+
return
|
773
|
+
;;
|
774
|
+
\!*) : shell command alias ;;
|
775
|
+
-*) : option ;;
|
776
|
+
*=*) : setting env ;;
|
777
|
+
git) : git itself ;;
|
778
|
+
\(\)) : skip parens of shell function definition ;;
|
779
|
+
{) : skip start of shell helper function ;;
|
780
|
+
:) : skip null command ;;
|
781
|
+
\'*) : skip opening quote after sh -c ;;
|
782
|
+
*)
|
783
|
+
echo "$word"
|
784
|
+
return
|
785
|
+
esac
|
786
|
+
done
|
781
787
|
}
|
782
788
|
|
783
789
|
# __git_find_on_cmdline requires 1 argument
|
784
790
|
__git_find_on_cmdline ()
|
785
791
|
{
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
792
|
+
local word subcommand c=1
|
793
|
+
while [ $c -lt $cword ]; do
|
794
|
+
word="${words[c]}"
|
795
|
+
for subcommand in $1; do
|
796
|
+
if [ "$subcommand" = "$word" ]; then
|
797
|
+
echo "$subcommand"
|
798
|
+
return
|
799
|
+
fi
|
800
|
+
done
|
801
|
+
((c++))
|
802
|
+
done
|
797
803
|
}
|
798
804
|
|
799
805
|
__git_has_doubledash ()
|
800
806
|
{
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
807
|
+
local c=1
|
808
|
+
while [ $c -lt $cword ]; do
|
809
|
+
if [ "--" = "${words[c]}" ]; then
|
810
|
+
return 0
|
811
|
+
fi
|
812
|
+
((c++))
|
813
|
+
done
|
814
|
+
return 1
|
809
815
|
}
|
810
816
|
|
811
817
|
# Try to count non option arguments passed on the command line for the
|
@@ -819,592 +825,598 @@ __git_has_doubledash ()
|
|
819
825
|
# __git_count_arguments requires 1 argument: the git command executed.
|
820
826
|
__git_count_arguments ()
|
821
827
|
{
|
822
|
-
|
828
|
+
local word i c=0
|
823
829
|
|
824
|
-
|
825
|
-
|
826
|
-
|
830
|
+
# Skip "git" (first argument)
|
831
|
+
for ((i=1; i < ${#words[@]}; i++)); do
|
832
|
+
word="${words[i]}"
|
827
833
|
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
834
|
+
case "$word" in
|
835
|
+
--)
|
836
|
+
# Good; we can assume that the following are only non
|
837
|
+
# option arguments.
|
838
|
+
((c = 0))
|
839
|
+
;;
|
840
|
+
"$1")
|
841
|
+
# Skip the specified git command and discard git
|
842
|
+
# main options
|
843
|
+
((c = 0))
|
844
|
+
;;
|
845
|
+
?*)
|
846
|
+
((c++))
|
847
|
+
;;
|
848
|
+
esac
|
849
|
+
done
|
844
850
|
|
845
|
-
|
851
|
+
printf "%d" $c
|
846
852
|
}
|
847
853
|
|
848
854
|
__git_whitespacelist="nowarn warn error error-all fix"
|
849
855
|
|
850
856
|
_git_am ()
|
851
857
|
{
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
858
|
+
local dir="$(__gitdir)"
|
859
|
+
if [ -d "$dir"/rebase-apply ]; then
|
860
|
+
__gitcomp "--skip --continue --resolved --abort"
|
861
|
+
return
|
862
|
+
fi
|
863
|
+
case "$cur" in
|
864
|
+
--whitespace=*)
|
865
|
+
__gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
|
866
|
+
return
|
867
|
+
;;
|
868
|
+
--*)
|
869
|
+
__gitcomp "
|
870
|
+
--3way --committer-date-is-author-date --ignore-date
|
871
|
+
--ignore-whitespace --ignore-space-change
|
872
|
+
--interactive --keep --no-utf8 --signoff --utf8
|
873
|
+
--whitespace= --scissors
|
874
|
+
"
|
875
|
+
return
|
876
|
+
esac
|
871
877
|
}
|
872
878
|
|
873
879
|
_git_apply ()
|
874
880
|
{
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
881
|
+
case "$cur" in
|
882
|
+
--whitespace=*)
|
883
|
+
__gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
|
884
|
+
return
|
885
|
+
;;
|
886
|
+
--*)
|
887
|
+
__gitcomp "
|
888
|
+
--stat --numstat --summary --check --index
|
889
|
+
--cached --index-info --reverse --reject --unidiff-zero
|
890
|
+
--apply --no-add --exclude=
|
891
|
+
--ignore-whitespace --ignore-space-change
|
892
|
+
--whitespace= --inaccurate-eof --verbose
|
893
|
+
"
|
894
|
+
return
|
895
|
+
esac
|
890
896
|
}
|
891
897
|
|
892
898
|
_git_add ()
|
893
899
|
{
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
900
|
+
case "$cur" in
|
901
|
+
--*)
|
902
|
+
__gitcomp "
|
903
|
+
--interactive --refresh --patch --update --dry-run
|
904
|
+
--ignore-errors --intent-to-add
|
905
|
+
"
|
906
|
+
return
|
907
|
+
esac
|
902
908
|
|
903
|
-
|
904
|
-
|
909
|
+
# XXX should we check for --update and --all options ?
|
910
|
+
__git_complete_index_file "--others --modified --directory --no-empty-directory"
|
905
911
|
}
|
906
912
|
|
907
913
|
_git_archive ()
|
908
914
|
{
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
915
|
+
case "$cur" in
|
916
|
+
--format=*)
|
917
|
+
__gitcomp "$(git archive --list)" "" "${cur##--format=}"
|
918
|
+
return
|
919
|
+
;;
|
920
|
+
--remote=*)
|
921
|
+
__gitcomp_nl "$(__git_remotes)" "" "${cur##--remote=}"
|
922
|
+
return
|
923
|
+
;;
|
924
|
+
--*)
|
925
|
+
__gitcomp "
|
926
|
+
--format= --list --verbose
|
927
|
+
--prefix= --remote= --exec=
|
928
|
+
"
|
929
|
+
return
|
930
|
+
;;
|
931
|
+
esac
|
932
|
+
__git_complete_file
|
927
933
|
}
|
928
934
|
|
929
935
|
_git_bisect ()
|
930
936
|
{
|
931
|
-
|
937
|
+
__git_has_doubledash && return
|
932
938
|
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
939
|
+
local subcommands="start bad good skip reset visualize replay log run"
|
940
|
+
local subcommand="$(__git_find_on_cmdline "$subcommands")"
|
941
|
+
if [ -z "$subcommand" ]; then
|
942
|
+
if [ -f "$(__gitdir)"/BISECT_START ]; then
|
943
|
+
__gitcomp "$subcommands"
|
944
|
+
else
|
945
|
+
__gitcomp "replay start"
|
946
|
+
fi
|
947
|
+
return
|
948
|
+
fi
|
943
949
|
|
944
|
-
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
950
|
+
case "$subcommand" in
|
951
|
+
bad|good|reset|skip|start)
|
952
|
+
__gitcomp_nl "$(__git_refs)"
|
953
|
+
;;
|
954
|
+
*)
|
955
|
+
;;
|
956
|
+
esac
|
951
957
|
}
|
952
958
|
|
953
959
|
_git_branch ()
|
954
960
|
{
|
955
|
-
|
956
|
-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
971
|
-
|
972
|
-
|
973
|
-
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
|
961
|
+
local i c=1 only_local_ref="n" has_r="n"
|
962
|
+
|
963
|
+
while [ $c -lt $cword ]; do
|
964
|
+
i="${words[c]}"
|
965
|
+
case "$i" in
|
966
|
+
-d|-m) only_local_ref="y" ;;
|
967
|
+
-r) has_r="y" ;;
|
968
|
+
esac
|
969
|
+
((c++))
|
970
|
+
done
|
971
|
+
|
972
|
+
case "$cur" in
|
973
|
+
--set-upstream-to=*)
|
974
|
+
__gitcomp_nl "$(__git_refs)" "" "${cur##--set-upstream-to=}"
|
975
|
+
;;
|
976
|
+
--*)
|
977
|
+
__gitcomp "
|
978
|
+
--color --no-color --verbose --abbrev= --no-abbrev
|
979
|
+
--track --no-track --contains --merged --no-merged
|
980
|
+
--set-upstream-to= --edit-description --list
|
981
|
+
--unset-upstream
|
982
|
+
"
|
983
|
+
;;
|
984
|
+
*)
|
985
|
+
if [ $only_local_ref = "y" -a $has_r = "n" ]; then
|
986
|
+
__gitcomp_nl "$(__git_heads)"
|
987
|
+
else
|
988
|
+
__gitcomp_nl "$(__git_refs)"
|
989
|
+
fi
|
990
|
+
;;
|
991
|
+
esac
|
986
992
|
}
|
987
993
|
|
988
994
|
_git_bundle ()
|
989
995
|
{
|
990
|
-
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
|
995
|
-
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
996
|
+
local cmd="${words[2]}"
|
997
|
+
case "$cword" in
|
998
|
+
2)
|
999
|
+
__gitcomp "create list-heads verify unbundle"
|
1000
|
+
;;
|
1001
|
+
3)
|
1002
|
+
# looking for a file
|
1003
|
+
;;
|
1004
|
+
*)
|
1005
|
+
case "$cmd" in
|
1006
|
+
create)
|
1007
|
+
__git_complete_revlist
|
1008
|
+
;;
|
1009
|
+
esac
|
1010
|
+
;;
|
1011
|
+
esac
|
1006
1012
|
}
|
1007
1013
|
|
1008
1014
|
_git_checkout ()
|
1009
1015
|
{
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
1024
|
-
|
1025
|
-
|
1026
|
-
|
1027
|
-
|
1028
|
-
|
1029
|
-
|
1030
|
-
|
1031
|
-
|
1016
|
+
__git_has_doubledash && return
|
1017
|
+
|
1018
|
+
case "$cur" in
|
1019
|
+
--conflict=*)
|
1020
|
+
__gitcomp "diff3 merge" "" "${cur##--conflict=}"
|
1021
|
+
;;
|
1022
|
+
--*)
|
1023
|
+
__gitcomp "
|
1024
|
+
--quiet --ours --theirs --track --no-track --merge
|
1025
|
+
--conflict= --orphan --patch
|
1026
|
+
"
|
1027
|
+
;;
|
1028
|
+
*)
|
1029
|
+
# check if --track, --no-track, or --no-guess was specified
|
1030
|
+
# if so, disable DWIM mode
|
1031
|
+
local flags="--track --no-track --no-guess" track=1
|
1032
|
+
if [ -n "$(__git_find_on_cmdline "$flags")" ]; then
|
1033
|
+
track=''
|
1034
|
+
fi
|
1035
|
+
__gitcomp_nl "$(__git_refs '' $track)"
|
1036
|
+
;;
|
1037
|
+
esac
|
1032
1038
|
}
|
1033
1039
|
|
1034
1040
|
_git_cherry ()
|
1035
1041
|
{
|
1036
|
-
|
1042
|
+
__gitcomp_nl "$(__git_refs)"
|
1037
1043
|
}
|
1038
1044
|
|
1039
1045
|
_git_cherry_pick ()
|
1040
1046
|
{
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1047
|
+
local dir="$(__gitdir)"
|
1048
|
+
if [ -f "$dir"/CHERRY_PICK_HEAD ]; then
|
1049
|
+
__gitcomp "--continue --quit --abort"
|
1050
|
+
return
|
1051
|
+
fi
|
1052
|
+
case "$cur" in
|
1053
|
+
--*)
|
1054
|
+
__gitcomp "--edit --no-commit --signoff --strategy= --mainline"
|
1055
|
+
;;
|
1056
|
+
*)
|
1057
|
+
__gitcomp_nl "$(__git_refs)"
|
1058
|
+
;;
|
1059
|
+
esac
|
1054
1060
|
}
|
1055
1061
|
|
1056
1062
|
_git_clean ()
|
1057
1063
|
{
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
+
case "$cur" in
|
1065
|
+
--*)
|
1066
|
+
__gitcomp "--dry-run --quiet"
|
1067
|
+
return
|
1068
|
+
;;
|
1069
|
+
esac
|
1064
1070
|
|
1065
|
-
|
1066
|
-
|
1071
|
+
# XXX should we check for -x option ?
|
1072
|
+
__git_complete_index_file "--others --directory"
|
1067
1073
|
}
|
1068
1074
|
|
1069
1075
|
_git_clone ()
|
1070
1076
|
{
|
1071
|
-
|
1072
|
-
|
1073
|
-
|
1074
|
-
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1078
|
-
|
1079
|
-
|
1080
|
-
|
1081
|
-
|
1082
|
-
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1077
|
+
case "$cur" in
|
1078
|
+
--*)
|
1079
|
+
__gitcomp "
|
1080
|
+
--local
|
1081
|
+
--no-hardlinks
|
1082
|
+
--shared
|
1083
|
+
--reference
|
1084
|
+
--quiet
|
1085
|
+
--no-checkout
|
1086
|
+
--bare
|
1087
|
+
--mirror
|
1088
|
+
--origin
|
1089
|
+
--upload-pack
|
1090
|
+
--template=
|
1091
|
+
--depth
|
1092
|
+
--single-branch
|
1093
|
+
--branch
|
1094
|
+
"
|
1095
|
+
return
|
1096
|
+
;;
|
1097
|
+
esac
|
1092
1098
|
}
|
1093
1099
|
|
1094
1100
|
_git_commit ()
|
1095
1101
|
{
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1102
|
+
case "$prev" in
|
1103
|
+
-c|-C)
|
1104
|
+
__gitcomp_nl "$(__git_refs)" "" "${cur}"
|
1105
|
+
return
|
1106
|
+
;;
|
1107
|
+
esac
|
1108
|
+
|
1109
|
+
case "$cur" in
|
1110
|
+
--cleanup=*)
|
1111
|
+
__gitcomp "default scissors strip verbatim whitespace
|
1112
|
+
" "" "${cur##--cleanup=}"
|
1113
|
+
return
|
1114
|
+
;;
|
1115
|
+
--reuse-message=*|--reedit-message=*|\
|
1116
|
+
--fixup=*|--squash=*)
|
1117
|
+
__gitcomp_nl "$(__git_refs)" "" "${cur#*=}"
|
1118
|
+
return
|
1119
|
+
;;
|
1120
|
+
--untracked-files=*)
|
1121
|
+
__gitcomp "all no normal" "" "${cur##--untracked-files=}"
|
1122
|
+
return
|
1123
|
+
;;
|
1124
|
+
--*)
|
1125
|
+
__gitcomp "
|
1126
|
+
--all --author= --signoff --verify --no-verify
|
1127
|
+
--edit --no-edit
|
1128
|
+
--amend --include --only --interactive
|
1129
|
+
--dry-run --reuse-message= --reedit-message=
|
1130
|
+
--reset-author --file= --message= --template=
|
1131
|
+
--cleanup= --untracked-files --untracked-files=
|
1132
|
+
--verbose --quiet --fixup= --squash=
|
1133
|
+
"
|
1134
|
+
return
|
1135
|
+
esac
|
1136
|
+
|
1137
|
+
if git rev-parse --verify --quiet HEAD >/dev/null; then
|
1138
|
+
__git_complete_index_file "--committable"
|
1139
|
+
else
|
1140
|
+
# This is the first commit
|
1141
|
+
__git_complete_index_file "--cached"
|
1142
|
+
fi
|
1137
1143
|
}
|
1138
1144
|
|
1139
1145
|
_git_describe ()
|
1140
1146
|
{
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1147
|
+
case "$cur" in
|
1148
|
+
--*)
|
1149
|
+
__gitcomp "
|
1150
|
+
--all --tags --contains --abbrev= --candidates=
|
1151
|
+
--exact-match --debug --long --match --always
|
1152
|
+
"
|
1153
|
+
return
|
1154
|
+
esac
|
1155
|
+
__gitcomp_nl "$(__git_refs)"
|
1150
1156
|
}
|
1151
1157
|
|
1152
1158
|
__git_diff_algorithms="myers minimal patience histogram"
|
1153
1159
|
|
1154
1160
|
__git_diff_common_options="--stat --numstat --shortstat --summary
|
1155
|
-
|
1156
|
-
|
1157
|
-
|
1158
|
-
|
1159
|
-
|
1160
|
-
|
1161
|
-
|
1162
|
-
|
1163
|
-
|
1164
|
-
|
1165
|
-
|
1166
|
-
|
1167
|
-
|
1168
|
-
|
1161
|
+
--patch-with-stat --name-only --name-status --color
|
1162
|
+
--no-color --color-words --no-renames --check
|
1163
|
+
--full-index --binary --abbrev --diff-filter=
|
1164
|
+
--find-copies-harder
|
1165
|
+
--text --ignore-space-at-eol --ignore-space-change
|
1166
|
+
--ignore-all-space --ignore-blank-lines --exit-code
|
1167
|
+
--quiet --ext-diff --no-ext-diff
|
1168
|
+
--no-prefix --src-prefix= --dst-prefix=
|
1169
|
+
--inter-hunk-context=
|
1170
|
+
--patience --histogram --minimal
|
1171
|
+
--raw --word-diff
|
1172
|
+
--dirstat --dirstat= --dirstat-by-file
|
1173
|
+
--dirstat-by-file= --cumulative
|
1174
|
+
--diff-algorithm=
|
1169
1175
|
"
|
1170
1176
|
|
1171
1177
|
_git_diff ()
|
1172
1178
|
{
|
1173
|
-
|
1174
|
-
|
1175
|
-
|
1176
|
-
|
1177
|
-
|
1178
|
-
|
1179
|
-
|
1180
|
-
|
1181
|
-
|
1182
|
-
|
1183
|
-
|
1184
|
-
|
1185
|
-
|
1186
|
-
|
1187
|
-
|
1188
|
-
|
1189
|
-
}
|
1190
|
-
|
1191
|
-
__git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff
|
1192
|
-
|
1179
|
+
__git_has_doubledash && return
|
1180
|
+
|
1181
|
+
case "$cur" in
|
1182
|
+
--diff-algorithm=*)
|
1183
|
+
__gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}"
|
1184
|
+
return
|
1185
|
+
;;
|
1186
|
+
--*)
|
1187
|
+
__gitcomp "--cached --staged --pickaxe-all --pickaxe-regex
|
1188
|
+
--base --ours --theirs --no-index
|
1189
|
+
$__git_diff_common_options
|
1190
|
+
"
|
1191
|
+
return
|
1192
|
+
;;
|
1193
|
+
esac
|
1194
|
+
__git_complete_revlist_file
|
1195
|
+
}
|
1196
|
+
|
1197
|
+
__git_mergetools_common="diffuse diffmerge ecmerge emerge kdiff3 meld opendiff
|
1198
|
+
tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc codecompare
|
1193
1199
|
"
|
1194
1200
|
|
1195
1201
|
_git_difftool ()
|
1196
1202
|
{
|
1197
|
-
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1204
|
-
|
1205
|
-
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1203
|
+
__git_has_doubledash && return
|
1204
|
+
|
1205
|
+
case "$cur" in
|
1206
|
+
--tool=*)
|
1207
|
+
__gitcomp "$__git_mergetools_common kompare" "" "${cur##--tool=}"
|
1208
|
+
return
|
1209
|
+
;;
|
1210
|
+
--*)
|
1211
|
+
__gitcomp "--cached --staged --pickaxe-all --pickaxe-regex
|
1212
|
+
--base --ours --theirs
|
1213
|
+
--no-renames --diff-filter= --find-copies-harder
|
1214
|
+
--relative --ignore-submodules
|
1215
|
+
--tool="
|
1216
|
+
return
|
1217
|
+
;;
|
1218
|
+
esac
|
1219
|
+
__git_complete_revlist_file
|
1214
1220
|
}
|
1215
1221
|
|
1222
|
+
__git_fetch_recurse_submodules="yes on-demand no"
|
1223
|
+
|
1216
1224
|
__git_fetch_options="
|
1217
|
-
|
1218
|
-
|
1225
|
+
--quiet --verbose --append --upload-pack --force --keep --depth=
|
1226
|
+
--tags --no-tags --all --prune --dry-run --recurse-submodules=
|
1219
1227
|
"
|
1220
1228
|
|
1221
1229
|
_git_fetch ()
|
1222
1230
|
{
|
1223
|
-
|
1224
|
-
|
1225
|
-
|
1226
|
-
|
1227
|
-
|
1228
|
-
|
1229
|
-
|
1231
|
+
case "$cur" in
|
1232
|
+
--recurse-submodules=*)
|
1233
|
+
__gitcomp "$__git_fetch_recurse_submodules" "" "${cur##--recurse-submodules=}"
|
1234
|
+
return
|
1235
|
+
;;
|
1236
|
+
--*)
|
1237
|
+
__gitcomp "$__git_fetch_options"
|
1238
|
+
return
|
1239
|
+
;;
|
1240
|
+
esac
|
1241
|
+
__git_complete_remote_or_refspec
|
1230
1242
|
}
|
1231
1243
|
|
1232
1244
|
__git_format_patch_options="
|
1233
|
-
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1245
|
+
--stdout --attach --no-attach --thread --thread= --no-thread
|
1246
|
+
--numbered --start-number --numbered-files --keep-subject --signoff
|
1247
|
+
--signature --no-signature --in-reply-to= --cc= --full-index --binary
|
1248
|
+
--not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
|
1249
|
+
--inline --suffix= --ignore-if-in-upstream --subject-prefix=
|
1250
|
+
--output-directory --reroll-count --to= --quiet --notes
|
1239
1251
|
"
|
1240
1252
|
|
1241
1253
|
_git_format_patch ()
|
1242
1254
|
{
|
1243
|
-
|
1244
|
-
|
1245
|
-
|
1246
|
-
|
1247
|
-
|
1248
|
-
|
1249
|
-
|
1250
|
-
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1255
|
-
|
1255
|
+
case "$cur" in
|
1256
|
+
--thread=*)
|
1257
|
+
__gitcomp "
|
1258
|
+
deep shallow
|
1259
|
+
" "" "${cur##--thread=}"
|
1260
|
+
return
|
1261
|
+
;;
|
1262
|
+
--*)
|
1263
|
+
__gitcomp "$__git_format_patch_options"
|
1264
|
+
return
|
1265
|
+
;;
|
1266
|
+
esac
|
1267
|
+
__git_complete_revlist
|
1256
1268
|
}
|
1257
1269
|
|
1258
1270
|
_git_fsck ()
|
1259
1271
|
{
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
-
|
1266
|
-
|
1267
|
-
|
1268
|
-
|
1272
|
+
case "$cur" in
|
1273
|
+
--*)
|
1274
|
+
__gitcomp "
|
1275
|
+
--tags --root --unreachable --cache --no-reflogs --full
|
1276
|
+
--strict --verbose --lost-found
|
1277
|
+
"
|
1278
|
+
return
|
1279
|
+
;;
|
1280
|
+
esac
|
1269
1281
|
}
|
1270
1282
|
|
1271
1283
|
_git_gc ()
|
1272
1284
|
{
|
1273
|
-
|
1274
|
-
|
1275
|
-
|
1276
|
-
|
1277
|
-
|
1278
|
-
|
1285
|
+
case "$cur" in
|
1286
|
+
--*)
|
1287
|
+
__gitcomp "--prune --aggressive"
|
1288
|
+
return
|
1289
|
+
;;
|
1290
|
+
esac
|
1279
1291
|
}
|
1280
1292
|
|
1281
1293
|
_git_gitk ()
|
1282
1294
|
{
|
1283
|
-
|
1295
|
+
_gitk
|
1284
1296
|
}
|
1285
1297
|
|
1286
1298
|
__git_match_ctag() {
|
1287
|
-
|
1299
|
+
awk "/^${1//\//\\/}/ { print \$1 }" "$2"
|
1288
1300
|
}
|
1289
1301
|
|
1290
1302
|
_git_grep ()
|
1291
1303
|
{
|
1292
|
-
|
1293
|
-
|
1294
|
-
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
|
1302
|
-
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1306
|
-
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1304
|
+
__git_has_doubledash && return
|
1305
|
+
|
1306
|
+
case "$cur" in
|
1307
|
+
--*)
|
1308
|
+
__gitcomp "
|
1309
|
+
--cached
|
1310
|
+
--text --ignore-case --word-regexp --invert-match
|
1311
|
+
--full-name --line-number
|
1312
|
+
--extended-regexp --basic-regexp --fixed-strings
|
1313
|
+
--perl-regexp
|
1314
|
+
--files-with-matches --name-only
|
1315
|
+
--files-without-match
|
1316
|
+
--max-depth
|
1317
|
+
--count
|
1318
|
+
--and --or --not --all-match
|
1319
|
+
"
|
1320
|
+
return
|
1321
|
+
;;
|
1322
|
+
esac
|
1323
|
+
|
1324
|
+
case "$cword,$prev" in
|
1325
|
+
2,*|*,-*)
|
1326
|
+
if test -r tags; then
|
1327
|
+
__gitcomp_nl "$(__git_match_ctag "$cur" tags)"
|
1328
|
+
return
|
1329
|
+
fi
|
1330
|
+
;;
|
1331
|
+
esac
|
1332
|
+
|
1333
|
+
__gitcomp_nl "$(__git_refs)"
|
1322
1334
|
}
|
1323
1335
|
|
1324
1336
|
_git_help ()
|
1325
1337
|
{
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
|
1332
|
-
|
1333
|
-
|
1334
|
-
|
1335
|
-
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1338
|
+
case "$cur" in
|
1339
|
+
--*)
|
1340
|
+
__gitcomp "--all --info --man --web"
|
1341
|
+
return
|
1342
|
+
;;
|
1343
|
+
esac
|
1344
|
+
__git_compute_all_commands
|
1345
|
+
__gitcomp "$__git_all_commands $(__git_aliases)
|
1346
|
+
attributes cli core-tutorial cvs-migration
|
1347
|
+
diffcore gitk glossary hooks ignore modules
|
1348
|
+
namespaces repository-layout tutorial tutorial-2
|
1349
|
+
workflows
|
1350
|
+
"
|
1339
1351
|
}
|
1340
1352
|
|
1341
1353
|
_git_init ()
|
1342
1354
|
{
|
1343
|
-
|
1344
|
-
|
1345
|
-
|
1346
|
-
|
1347
|
-
|
1348
|
-
|
1349
|
-
|
1350
|
-
|
1351
|
-
|
1352
|
-
|
1353
|
-
|
1354
|
-
|
1355
|
+
case "$cur" in
|
1356
|
+
--shared=*)
|
1357
|
+
__gitcomp "
|
1358
|
+
false true umask group all world everybody
|
1359
|
+
" "" "${cur##--shared=}"
|
1360
|
+
return
|
1361
|
+
;;
|
1362
|
+
--*)
|
1363
|
+
__gitcomp "--quiet --bare --template= --shared --shared="
|
1364
|
+
return
|
1365
|
+
;;
|
1366
|
+
esac
|
1355
1367
|
}
|
1356
1368
|
|
1357
1369
|
_git_ls_files ()
|
1358
1370
|
{
|
1359
|
-
|
1360
|
-
|
1361
|
-
|
1362
|
-
|
1363
|
-
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1368
|
-
|
1369
|
-
|
1370
|
-
|
1371
|
+
case "$cur" in
|
1372
|
+
--*)
|
1373
|
+
__gitcomp "--cached --deleted --modified --others --ignored
|
1374
|
+
--stage --directory --no-empty-directory --unmerged
|
1375
|
+
--killed --exclude= --exclude-from=
|
1376
|
+
--exclude-per-directory= --exclude-standard
|
1377
|
+
--error-unmatch --with-tree= --full-name
|
1378
|
+
--abbrev --ignored --exclude-per-directory
|
1379
|
+
"
|
1380
|
+
return
|
1381
|
+
;;
|
1382
|
+
esac
|
1371
1383
|
|
1372
|
-
|
1373
|
-
|
1374
|
-
|
1384
|
+
# XXX ignore options like --modified and always suggest all cached
|
1385
|
+
# files.
|
1386
|
+
__git_complete_index_file "--cached"
|
1375
1387
|
}
|
1376
1388
|
|
1377
1389
|
_git_ls_remote ()
|
1378
1390
|
{
|
1379
|
-
|
1391
|
+
__gitcomp_nl "$(__git_remotes)"
|
1380
1392
|
}
|
1381
1393
|
|
1382
1394
|
_git_ls_tree ()
|
1383
1395
|
{
|
1384
|
-
|
1396
|
+
__git_complete_file
|
1385
1397
|
}
|
1386
1398
|
|
1387
1399
|
# Options that go well for log, shortlog and gitk
|
1388
1400
|
__git_log_common_options="
|
1389
|
-
|
1390
|
-
|
1391
|
-
|
1392
|
-
|
1393
|
-
|
1394
|
-
|
1395
|
-
|
1396
|
-
|
1401
|
+
--not --all
|
1402
|
+
--branches --tags --remotes
|
1403
|
+
--first-parent --merges --no-merges
|
1404
|
+
--max-count=
|
1405
|
+
--max-age= --since= --after=
|
1406
|
+
--min-age= --until= --before=
|
1407
|
+
--min-parents= --max-parents=
|
1408
|
+
--no-min-parents --no-max-parents
|
1397
1409
|
"
|
1398
1410
|
# Options that go well for log and gitk (not shortlog)
|
1399
1411
|
__git_log_gitk_options="
|
1400
|
-
|
1401
|
-
|
1402
|
-
|
1412
|
+
--dense --sparse --full-history
|
1413
|
+
--simplify-merges --simplify-by-decoration
|
1414
|
+
--left-right --notes --no-notes
|
1403
1415
|
"
|
1404
1416
|
# Options that go well for log and shortlog (not gitk)
|
1405
1417
|
__git_log_shortlog_options="
|
1406
|
-
|
1407
|
-
|
1418
|
+
--author= --committer= --grep=
|
1419
|
+
--all-match --invert-grep
|
1408
1420
|
"
|
1409
1421
|
|
1410
1422
|
__git_log_pretty_formats="oneline short medium full fuller email raw format:"
|
@@ -1412,235 +1424,287 @@ __git_log_date_formats="relative iso8601 rfc2822 short local default raw"
|
|
1412
1424
|
|
1413
1425
|
_git_log ()
|
1414
1426
|
{
|
1415
|
-
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1428
|
-
|
1429
|
-
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
1436
|
-
|
1437
|
-
|
1438
|
-
|
1439
|
-
|
1440
|
-
|
1441
|
-
|
1442
|
-
|
1443
|
-
|
1444
|
-
|
1445
|
-
|
1446
|
-
|
1447
|
-
|
1448
|
-
|
1449
|
-
|
1450
|
-
|
1451
|
-
|
1452
|
-
|
1453
|
-
|
1454
|
-
|
1455
|
-
|
1456
|
-
|
1457
|
-
|
1458
|
-
|
1459
|
-
|
1460
|
-
|
1427
|
+
__git_has_doubledash && return
|
1428
|
+
|
1429
|
+
local g="$(git rev-parse --git-dir 2>/dev/null)"
|
1430
|
+
local merge=""
|
1431
|
+
if [ -f "$g/MERGE_HEAD" ]; then
|
1432
|
+
merge="--merge"
|
1433
|
+
fi
|
1434
|
+
case "$cur" in
|
1435
|
+
--pretty=*|--format=*)
|
1436
|
+
__gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases)
|
1437
|
+
" "" "${cur#*=}"
|
1438
|
+
return
|
1439
|
+
;;
|
1440
|
+
--date=*)
|
1441
|
+
__gitcomp "$__git_log_date_formats" "" "${cur##--date=}"
|
1442
|
+
return
|
1443
|
+
;;
|
1444
|
+
--decorate=*)
|
1445
|
+
__gitcomp "full short no" "" "${cur##--decorate=}"
|
1446
|
+
return
|
1447
|
+
;;
|
1448
|
+
--*)
|
1449
|
+
__gitcomp "
|
1450
|
+
$__git_log_common_options
|
1451
|
+
$__git_log_shortlog_options
|
1452
|
+
$__git_log_gitk_options
|
1453
|
+
--root --topo-order --date-order --reverse
|
1454
|
+
--follow --full-diff
|
1455
|
+
--abbrev-commit --abbrev=
|
1456
|
+
--relative-date --date=
|
1457
|
+
--pretty= --format= --oneline
|
1458
|
+
--show-signature
|
1459
|
+
--cherry-pick
|
1460
|
+
--graph
|
1461
|
+
--decorate --decorate=
|
1462
|
+
--walk-reflogs
|
1463
|
+
--parents --children
|
1464
|
+
$merge
|
1465
|
+
$__git_diff_common_options
|
1466
|
+
--pickaxe-all --pickaxe-regex
|
1467
|
+
"
|
1468
|
+
return
|
1469
|
+
;;
|
1470
|
+
esac
|
1471
|
+
__git_complete_revlist
|
1472
|
+
}
|
1473
|
+
|
1474
|
+
# Common merge options shared by git-merge(1) and git-pull(1).
|
1461
1475
|
__git_merge_options="
|
1462
|
-
|
1463
|
-
|
1476
|
+
--no-commit --no-stat --log --no-log --squash --strategy
|
1477
|
+
--commit --stat --no-squash --ff --no-ff --ff-only --edit --no-edit
|
1478
|
+
--verify-signatures --no-verify-signatures --gpg-sign
|
1479
|
+
--quiet --verbose --progress --no-progress
|
1464
1480
|
"
|
1465
1481
|
|
1466
1482
|
_git_merge ()
|
1467
1483
|
{
|
1468
|
-
|
1484
|
+
__git_complete_strategy && return
|
1469
1485
|
|
1470
|
-
|
1471
|
-
|
1472
|
-
|
1473
|
-
|
1474
|
-
|
1475
|
-
|
1486
|
+
case "$cur" in
|
1487
|
+
--*)
|
1488
|
+
__gitcomp "$__git_merge_options
|
1489
|
+
--rerere-autoupdate --no-rerere-autoupdate --abort"
|
1490
|
+
return
|
1491
|
+
esac
|
1492
|
+
__gitcomp_nl "$(__git_refs)"
|
1476
1493
|
}
|
1477
1494
|
|
1478
1495
|
_git_mergetool ()
|
1479
1496
|
{
|
1480
|
-
|
1481
|
-
|
1482
|
-
|
1483
|
-
|
1484
|
-
|
1485
|
-
|
1486
|
-
|
1487
|
-
|
1488
|
-
|
1489
|
-
|
1497
|
+
case "$cur" in
|
1498
|
+
--tool=*)
|
1499
|
+
__gitcomp "$__git_mergetools_common tortoisemerge" "" "${cur##--tool=}"
|
1500
|
+
return
|
1501
|
+
;;
|
1502
|
+
--*)
|
1503
|
+
__gitcomp "--tool="
|
1504
|
+
return
|
1505
|
+
;;
|
1506
|
+
esac
|
1490
1507
|
}
|
1491
1508
|
|
1492
1509
|
_git_merge_base ()
|
1493
1510
|
{
|
1494
|
-
|
1511
|
+
case "$cur" in
|
1512
|
+
--*)
|
1513
|
+
__gitcomp "--octopus --independent --is-ancestor --fork-point"
|
1514
|
+
return
|
1515
|
+
;;
|
1516
|
+
esac
|
1517
|
+
__gitcomp_nl "$(__git_refs)"
|
1495
1518
|
}
|
1496
1519
|
|
1497
1520
|
_git_mv ()
|
1498
1521
|
{
|
1499
|
-
|
1500
|
-
|
1501
|
-
|
1502
|
-
|
1503
|
-
|
1504
|
-
|
1522
|
+
case "$cur" in
|
1523
|
+
--*)
|
1524
|
+
__gitcomp "--dry-run"
|
1525
|
+
return
|
1526
|
+
;;
|
1527
|
+
esac
|
1505
1528
|
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1510
|
-
|
1511
|
-
|
1512
|
-
|
1529
|
+
if [ $(__git_count_arguments "mv") -gt 0 ]; then
|
1530
|
+
# We need to show both cached and untracked files (including
|
1531
|
+
# empty directories) since this may not be the last argument.
|
1532
|
+
__git_complete_index_file "--cached --others --directory"
|
1533
|
+
else
|
1534
|
+
__git_complete_index_file "--cached"
|
1535
|
+
fi
|
1513
1536
|
}
|
1514
1537
|
|
1515
1538
|
_git_name_rev ()
|
1516
1539
|
{
|
1517
|
-
|
1540
|
+
__gitcomp "--tags --all --stdin"
|
1518
1541
|
}
|
1519
1542
|
|
1520
1543
|
_git_notes ()
|
1521
1544
|
{
|
1522
|
-
|
1523
|
-
|
1524
|
-
|
1525
|
-
|
1526
|
-
|
1527
|
-
|
1528
|
-
|
1529
|
-
|
1530
|
-
|
1531
|
-
|
1532
|
-
|
1533
|
-
|
1534
|
-
|
1535
|
-
|
1536
|
-
|
1537
|
-
|
1538
|
-
|
1539
|
-
|
1540
|
-
|
1541
|
-
|
1542
|
-
|
1543
|
-
|
1544
|
-
|
1545
|
-
|
1546
|
-
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1552
|
-
|
1553
|
-
|
1554
|
-
|
1555
|
-
|
1556
|
-
|
1557
|
-
|
1558
|
-
|
1559
|
-
|
1560
|
-
|
1561
|
-
|
1562
|
-
|
1563
|
-
|
1564
|
-
|
1545
|
+
local subcommands='add append copy edit list prune remove show'
|
1546
|
+
local subcommand="$(__git_find_on_cmdline "$subcommands")"
|
1547
|
+
|
1548
|
+
case "$subcommand,$cur" in
|
1549
|
+
,--*)
|
1550
|
+
__gitcomp '--ref'
|
1551
|
+
;;
|
1552
|
+
,*)
|
1553
|
+
case "$prev" in
|
1554
|
+
--ref)
|
1555
|
+
__gitcomp_nl "$(__git_refs)"
|
1556
|
+
;;
|
1557
|
+
*)
|
1558
|
+
__gitcomp "$subcommands --ref"
|
1559
|
+
;;
|
1560
|
+
esac
|
1561
|
+
;;
|
1562
|
+
add,--reuse-message=*|append,--reuse-message=*|\
|
1563
|
+
add,--reedit-message=*|append,--reedit-message=*)
|
1564
|
+
__gitcomp_nl "$(__git_refs)" "" "${cur#*=}"
|
1565
|
+
;;
|
1566
|
+
add,--*|append,--*)
|
1567
|
+
__gitcomp '--file= --message= --reedit-message=
|
1568
|
+
--reuse-message='
|
1569
|
+
;;
|
1570
|
+
copy,--*)
|
1571
|
+
__gitcomp '--stdin'
|
1572
|
+
;;
|
1573
|
+
prune,--*)
|
1574
|
+
__gitcomp '--dry-run --verbose'
|
1575
|
+
;;
|
1576
|
+
prune,*)
|
1577
|
+
;;
|
1578
|
+
*)
|
1579
|
+
case "$prev" in
|
1580
|
+
-m|-F)
|
1581
|
+
;;
|
1582
|
+
*)
|
1583
|
+
__gitcomp_nl "$(__git_refs)"
|
1584
|
+
;;
|
1585
|
+
esac
|
1586
|
+
;;
|
1587
|
+
esac
|
1565
1588
|
}
|
1566
1589
|
|
1567
1590
|
_git_pull ()
|
1568
1591
|
{
|
1569
|
-
|
1592
|
+
__git_complete_strategy && return
|
1593
|
+
|
1594
|
+
case "$cur" in
|
1595
|
+
--recurse-submodules=*)
|
1596
|
+
__gitcomp "$__git_fetch_recurse_submodules" "" "${cur##--recurse-submodules=}"
|
1597
|
+
return
|
1598
|
+
;;
|
1599
|
+
--*)
|
1600
|
+
__gitcomp "
|
1601
|
+
--rebase --no-rebase
|
1602
|
+
$__git_merge_options
|
1603
|
+
$__git_fetch_options
|
1604
|
+
"
|
1605
|
+
return
|
1606
|
+
;;
|
1607
|
+
esac
|
1608
|
+
__git_complete_remote_or_refspec
|
1609
|
+
}
|
1610
|
+
|
1611
|
+
__git_push_recurse_submodules="check on-demand"
|
1612
|
+
|
1613
|
+
__git_complete_force_with_lease ()
|
1614
|
+
{
|
1615
|
+
local cur_=$1
|
1570
1616
|
|
1571
|
-
|
1572
|
-
|
1573
|
-
|
1574
|
-
|
1575
|
-
|
1576
|
-
|
1577
|
-
|
1578
|
-
|
1579
|
-
|
1580
|
-
|
1581
|
-
__git_complete_remote_or_refspec
|
1617
|
+
case "$cur_" in
|
1618
|
+
--*=)
|
1619
|
+
;;
|
1620
|
+
*:*)
|
1621
|
+
__gitcomp_nl "$(__git_refs)" "" "${cur_#*:}"
|
1622
|
+
;;
|
1623
|
+
*)
|
1624
|
+
__gitcomp_nl "$(__git_refs)" "" "$cur_"
|
1625
|
+
;;
|
1626
|
+
esac
|
1582
1627
|
}
|
1583
1628
|
|
1584
1629
|
_git_push ()
|
1585
1630
|
{
|
1586
|
-
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1590
|
-
|
1591
|
-
|
1592
|
-
|
1593
|
-
|
1594
|
-
|
1595
|
-
|
1596
|
-
|
1597
|
-
|
1598
|
-
|
1599
|
-
|
1600
|
-
|
1601
|
-
|
1602
|
-
|
1603
|
-
|
1604
|
-
|
1631
|
+
case "$prev" in
|
1632
|
+
--repo)
|
1633
|
+
__gitcomp_nl "$(__git_remotes)"
|
1634
|
+
return
|
1635
|
+
;;
|
1636
|
+
--recurse-submodules)
|
1637
|
+
__gitcomp "$__git_push_recurse_submodules"
|
1638
|
+
return
|
1639
|
+
;;
|
1640
|
+
esac
|
1641
|
+
case "$cur" in
|
1642
|
+
--repo=*)
|
1643
|
+
__gitcomp_nl "$(__git_remotes)" "" "${cur##--repo=}"
|
1644
|
+
return
|
1645
|
+
;;
|
1646
|
+
--recurse-submodules=*)
|
1647
|
+
__gitcomp "$__git_push_recurse_submodules" "" "${cur##--recurse-submodules=}"
|
1648
|
+
return
|
1649
|
+
;;
|
1650
|
+
--force-with-lease=*)
|
1651
|
+
__git_complete_force_with_lease "${cur##--force-with-lease=}"
|
1652
|
+
return
|
1653
|
+
;;
|
1654
|
+
--*)
|
1655
|
+
__gitcomp "
|
1656
|
+
--all --mirror --tags --dry-run --force --verbose
|
1657
|
+
--quiet --prune --delete --follow-tags
|
1658
|
+
--receive-pack= --repo= --set-upstream
|
1659
|
+
--force-with-lease --force-with-lease= --recurse-submodules=
|
1660
|
+
"
|
1661
|
+
return
|
1662
|
+
;;
|
1663
|
+
esac
|
1664
|
+
__git_complete_remote_or_refspec
|
1605
1665
|
}
|
1606
1666
|
|
1607
1667
|
_git_rebase ()
|
1608
1668
|
{
|
1609
|
-
|
1610
|
-
|
1611
|
-
|
1612
|
-
|
1613
|
-
|
1614
|
-
|
1615
|
-
|
1616
|
-
|
1617
|
-
|
1618
|
-
|
1619
|
-
|
1620
|
-
|
1621
|
-
|
1622
|
-
|
1623
|
-
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1629
|
-
|
1630
|
-
|
1631
|
-
|
1669
|
+
local dir="$(__gitdir)"
|
1670
|
+
if [ -f "$dir"/rebase-merge/interactive ]; then
|
1671
|
+
__gitcomp "--continue --skip --abort --edit-todo"
|
1672
|
+
return
|
1673
|
+
elif [ -d "$dir"/rebase-apply ] || [ -d "$dir"/rebase-merge ]; then
|
1674
|
+
__gitcomp "--continue --skip --abort"
|
1675
|
+
return
|
1676
|
+
fi
|
1677
|
+
__git_complete_strategy && return
|
1678
|
+
case "$cur" in
|
1679
|
+
--whitespace=*)
|
1680
|
+
__gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
|
1681
|
+
return
|
1682
|
+
;;
|
1683
|
+
--*)
|
1684
|
+
__gitcomp "
|
1685
|
+
--onto --merge --strategy --interactive
|
1686
|
+
--preserve-merges --stat --no-stat
|
1687
|
+
--committer-date-is-author-date --ignore-date
|
1688
|
+
--ignore-whitespace --whitespace=
|
1689
|
+
--autosquash --fork-point --no-fork-point
|
1690
|
+
--autostash
|
1691
|
+
"
|
1692
|
+
|
1693
|
+
return
|
1694
|
+
esac
|
1695
|
+
__gitcomp_nl "$(__git_refs)"
|
1632
1696
|
}
|
1633
1697
|
|
1634
1698
|
_git_reflog ()
|
1635
1699
|
{
|
1636
|
-
|
1637
|
-
|
1700
|
+
local subcommands="show delete expire"
|
1701
|
+
local subcommand="$(__git_find_on_cmdline "$subcommands")"
|
1638
1702
|
|
1639
|
-
|
1640
|
-
|
1641
|
-
|
1642
|
-
|
1643
|
-
|
1703
|
+
if [ -z "$subcommand" ]; then
|
1704
|
+
__gitcomp "$subcommands"
|
1705
|
+
else
|
1706
|
+
__gitcomp_nl "$(__git_refs)"
|
1707
|
+
fi
|
1644
1708
|
}
|
1645
1709
|
|
1646
1710
|
__git_send_email_confirm_options="always never auto cc compose"
|
@@ -1648,984 +1712,1006 @@ __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all"
|
|
1648
1712
|
|
1649
1713
|
_git_send_email ()
|
1650
1714
|
{
|
1651
|
-
|
1652
|
-
|
1653
|
-
|
1654
|
-
|
1655
|
-
|
1656
|
-
|
1657
|
-
|
1658
|
-
|
1659
|
-
|
1660
|
-
|
1661
|
-
|
1662
|
-
|
1663
|
-
|
1664
|
-
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1668
|
-
|
1669
|
-
|
1670
|
-
|
1671
|
-
|
1672
|
-
|
1673
|
-
|
1674
|
-
|
1675
|
-
|
1676
|
-
|
1677
|
-
|
1678
|
-
|
1679
|
-
|
1680
|
-
|
1681
|
-
|
1682
|
-
|
1683
|
-
|
1684
|
-
|
1685
|
-
|
1686
|
-
|
1687
|
-
|
1688
|
-
|
1689
|
-
|
1715
|
+
case "$cur" in
|
1716
|
+
--confirm=*)
|
1717
|
+
__gitcomp "
|
1718
|
+
$__git_send_email_confirm_options
|
1719
|
+
" "" "${cur##--confirm=}"
|
1720
|
+
return
|
1721
|
+
;;
|
1722
|
+
--suppress-cc=*)
|
1723
|
+
__gitcomp "
|
1724
|
+
$__git_send_email_suppresscc_options
|
1725
|
+
" "" "${cur##--suppress-cc=}"
|
1726
|
+
|
1727
|
+
return
|
1728
|
+
;;
|
1729
|
+
--smtp-encryption=*)
|
1730
|
+
__gitcomp "ssl tls" "" "${cur##--smtp-encryption=}"
|
1731
|
+
return
|
1732
|
+
;;
|
1733
|
+
--thread=*)
|
1734
|
+
__gitcomp "
|
1735
|
+
deep shallow
|
1736
|
+
" "" "${cur##--thread=}"
|
1737
|
+
return
|
1738
|
+
;;
|
1739
|
+
--*)
|
1740
|
+
__gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to
|
1741
|
+
--compose --confirm= --dry-run --envelope-sender
|
1742
|
+
--from --identity
|
1743
|
+
--in-reply-to --no-chain-reply-to --no-signed-off-by-cc
|
1744
|
+
--no-suppress-from --no-thread --quiet
|
1745
|
+
--signed-off-by-cc --smtp-pass --smtp-server
|
1746
|
+
--smtp-server-port --smtp-encryption= --smtp-user
|
1747
|
+
--subject --suppress-cc= --suppress-from --thread --to
|
1748
|
+
--validate --no-validate
|
1749
|
+
$__git_format_patch_options"
|
1750
|
+
return
|
1751
|
+
;;
|
1752
|
+
esac
|
1753
|
+
__git_complete_revlist
|
1690
1754
|
}
|
1691
1755
|
|
1692
1756
|
_git_stage ()
|
1693
1757
|
{
|
1694
|
-
|
1758
|
+
_git_add
|
1695
1759
|
}
|
1696
1760
|
|
1697
1761
|
__git_config_get_set_variables ()
|
1698
1762
|
{
|
1699
|
-
|
1700
|
-
|
1701
|
-
|
1702
|
-
|
1703
|
-
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
|
1708
|
-
|
1709
|
-
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
1718
|
-
|
1719
|
-
|
1720
|
-
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1763
|
+
local prevword word config_file= c=$cword
|
1764
|
+
while [ $c -gt 1 ]; do
|
1765
|
+
word="${words[c]}"
|
1766
|
+
case "$word" in
|
1767
|
+
--system|--global|--local|--file=*)
|
1768
|
+
config_file="$word"
|
1769
|
+
break
|
1770
|
+
;;
|
1771
|
+
-f|--file)
|
1772
|
+
config_file="$word $prevword"
|
1773
|
+
break
|
1774
|
+
;;
|
1775
|
+
esac
|
1776
|
+
prevword=$word
|
1777
|
+
c=$((--c))
|
1778
|
+
done
|
1779
|
+
|
1780
|
+
git --git-dir="$(__gitdir)" config $config_file --list 2>/dev/null |
|
1781
|
+
while read -r line
|
1782
|
+
do
|
1783
|
+
case "$line" in
|
1784
|
+
*.*=*)
|
1785
|
+
echo "${line/=*/}"
|
1786
|
+
;;
|
1787
|
+
esac
|
1788
|
+
done
|
1725
1789
|
}
|
1726
1790
|
|
1727
1791
|
_git_config ()
|
1728
1792
|
{
|
1729
|
-
|
1730
|
-
|
1731
|
-
|
1732
|
-
|
1733
|
-
|
1734
|
-
|
1735
|
-
|
1736
|
-
|
1737
|
-
|
1738
|
-
|
1739
|
-
|
1740
|
-
|
1741
|
-
|
1742
|
-
|
1743
|
-
|
1744
|
-
|
1745
|
-
|
1746
|
-
|
1747
|
-
|
1748
|
-
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1752
|
-
|
1753
|
-
|
1754
|
-
|
1755
|
-
|
1756
|
-
|
1757
|
-
|
1758
|
-
|
1759
|
-
|
1760
|
-
|
1761
|
-
|
1762
|
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
|
1766
|
-
|
1767
|
-
|
1768
|
-
|
1769
|
-
|
1770
|
-
|
1771
|
-
|
1772
|
-
|
1773
|
-
|
1774
|
-
|
1775
|
-
|
1776
|
-
|
1777
|
-
|
1778
|
-
|
1779
|
-
|
1780
|
-
|
1781
|
-
|
1782
|
-
|
1783
|
-
|
1784
|
-
|
1785
|
-
|
1786
|
-
|
1787
|
-
|
1788
|
-
|
1789
|
-
|
1790
|
-
|
1791
|
-
|
1792
|
-
|
1793
|
-
|
1794
|
-
|
1795
|
-
|
1796
|
-
|
1797
|
-
|
1798
|
-
|
1799
|
-
|
1800
|
-
|
1801
|
-
|
1802
|
-
|
1803
|
-
|
1804
|
-
|
1805
|
-
|
1806
|
-
|
1807
|
-
|
1808
|
-
|
1809
|
-
|
1810
|
-
|
1811
|
-
|
1812
|
-
|
1813
|
-
|
1814
|
-
|
1815
|
-
|
1816
|
-
|
1817
|
-
|
1818
|
-
|
1819
|
-
|
1820
|
-
|
1821
|
-
|
1822
|
-
|
1823
|
-
|
1824
|
-
|
1825
|
-
|
1826
|
-
|
1827
|
-
|
1828
|
-
|
1829
|
-
|
1830
|
-
|
1831
|
-
|
1832
|
-
|
1833
|
-
|
1834
|
-
|
1835
|
-
|
1836
|
-
|
1837
|
-
|
1838
|
-
|
1839
|
-
|
1840
|
-
|
1841
|
-
|
1842
|
-
|
1843
|
-
|
1844
|
-
|
1845
|
-
|
1846
|
-
|
1847
|
-
|
1848
|
-
|
1849
|
-
|
1850
|
-
|
1851
|
-
|
1852
|
-
|
1853
|
-
|
1854
|
-
|
1855
|
-
|
1856
|
-
|
1857
|
-
|
1858
|
-
|
1859
|
-
|
1860
|
-
|
1861
|
-
|
1862
|
-
|
1863
|
-
|
1864
|
-
|
1865
|
-
|
1866
|
-
|
1867
|
-
|
1868
|
-
|
1869
|
-
|
1870
|
-
|
1871
|
-
|
1872
|
-
|
1873
|
-
|
1874
|
-
|
1875
|
-
|
1876
|
-
|
1877
|
-
|
1878
|
-
|
1879
|
-
|
1880
|
-
|
1881
|
-
|
1882
|
-
|
1883
|
-
|
1884
|
-
|
1885
|
-
|
1886
|
-
|
1887
|
-
|
1888
|
-
|
1889
|
-
|
1890
|
-
|
1891
|
-
|
1892
|
-
|
1893
|
-
|
1894
|
-
|
1895
|
-
|
1896
|
-
|
1897
|
-
|
1898
|
-
|
1899
|
-
|
1900
|
-
|
1901
|
-
|
1902
|
-
|
1903
|
-
|
1904
|
-
|
1905
|
-
|
1906
|
-
|
1907
|
-
|
1908
|
-
|
1909
|
-
|
1910
|
-
|
1911
|
-
|
1912
|
-
|
1913
|
-
|
1914
|
-
|
1915
|
-
|
1916
|
-
|
1917
|
-
|
1918
|
-
|
1919
|
-
|
1920
|
-
|
1921
|
-
|
1922
|
-
|
1923
|
-
|
1924
|
-
|
1925
|
-
|
1926
|
-
|
1927
|
-
|
1928
|
-
|
1929
|
-
|
1930
|
-
|
1931
|
-
|
1932
|
-
|
1933
|
-
|
1934
|
-
|
1935
|
-
|
1936
|
-
|
1937
|
-
|
1938
|
-
|
1939
|
-
|
1940
|
-
|
1941
|
-
|
1942
|
-
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
|
1947
|
-
|
1948
|
-
|
1949
|
-
|
1950
|
-
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
|
1955
|
-
|
1956
|
-
|
1957
|
-
|
1958
|
-
|
1959
|
-
|
1960
|
-
|
1961
|
-
|
1962
|
-
|
1963
|
-
|
1964
|
-
|
1965
|
-
|
1966
|
-
|
1967
|
-
|
1968
|
-
|
1969
|
-
|
1970
|
-
|
1971
|
-
|
1972
|
-
|
1973
|
-
|
1974
|
-
|
1975
|
-
|
1976
|
-
|
1977
|
-
|
1978
|
-
|
1979
|
-
|
1980
|
-
|
1981
|
-
|
1982
|
-
|
1983
|
-
|
1984
|
-
|
1985
|
-
|
1986
|
-
|
1987
|
-
|
1988
|
-
|
1989
|
-
|
1990
|
-
|
1991
|
-
|
1992
|
-
|
1993
|
-
|
1994
|
-
|
1995
|
-
|
1996
|
-
|
1997
|
-
|
1998
|
-
|
1999
|
-
|
2000
|
-
|
2001
|
-
|
2002
|
-
|
2003
|
-
|
2004
|
-
|
2005
|
-
|
2006
|
-
|
2007
|
-
|
2008
|
-
|
2009
|
-
|
2010
|
-
|
2011
|
-
|
2012
|
-
|
2013
|
-
|
2014
|
-
|
2015
|
-
|
2016
|
-
|
2017
|
-
|
2018
|
-
|
2019
|
-
|
2020
|
-
|
2021
|
-
|
2022
|
-
|
2023
|
-
|
2024
|
-
|
2025
|
-
|
2026
|
-
|
2027
|
-
|
2028
|
-
|
2029
|
-
|
2030
|
-
|
2031
|
-
|
2032
|
-
|
2033
|
-
|
2034
|
-
|
2035
|
-
|
2036
|
-
|
2037
|
-
|
2038
|
-
|
2039
|
-
|
2040
|
-
|
2041
|
-
|
2042
|
-
|
2043
|
-
|
2044
|
-
|
2045
|
-
|
2046
|
-
|
2047
|
-
|
2048
|
-
|
2049
|
-
|
2050
|
-
|
2051
|
-
|
2052
|
-
|
2053
|
-
|
2054
|
-
|
2055
|
-
|
2056
|
-
|
2057
|
-
|
2058
|
-
|
2059
|
-
|
2060
|
-
|
2061
|
-
|
2062
|
-
|
2063
|
-
|
2064
|
-
|
2065
|
-
|
2066
|
-
|
2067
|
-
|
2068
|
-
|
2069
|
-
|
2070
|
-
|
2071
|
-
|
2072
|
-
|
2073
|
-
|
2074
|
-
|
2075
|
-
|
2076
|
-
|
2077
|
-
|
2078
|
-
|
2079
|
-
|
2080
|
-
|
2081
|
-
|
2082
|
-
|
2083
|
-
|
2084
|
-
|
2085
|
-
|
2086
|
-
|
2087
|
-
|
2088
|
-
|
2089
|
-
|
2090
|
-
|
2091
|
-
|
2092
|
-
|
2093
|
-
|
2094
|
-
|
2095
|
-
|
2096
|
-
|
2097
|
-
|
2098
|
-
|
2099
|
-
|
2100
|
-
|
2101
|
-
|
2102
|
-
|
2103
|
-
|
2104
|
-
|
2105
|
-
|
2106
|
-
|
2107
|
-
|
2108
|
-
|
2109
|
-
|
2110
|
-
|
2111
|
-
|
2112
|
-
|
2113
|
-
|
2114
|
-
|
2115
|
-
|
2116
|
-
|
2117
|
-
|
2118
|
-
|
2119
|
-
|
2120
|
-
|
2121
|
-
|
2122
|
-
|
2123
|
-
|
2124
|
-
|
2125
|
-
|
2126
|
-
|
2127
|
-
|
2128
|
-
|
2129
|
-
|
2130
|
-
|
2131
|
-
|
2132
|
-
|
2133
|
-
|
2134
|
-
|
2135
|
-
|
2136
|
-
|
2137
|
-
|
2138
|
-
|
2139
|
-
|
2140
|
-
|
2141
|
-
|
2142
|
-
|
2143
|
-
|
2144
|
-
|
2145
|
-
|
2146
|
-
|
2147
|
-
|
2148
|
-
|
2149
|
-
|
2150
|
-
|
2151
|
-
|
2152
|
-
|
2153
|
-
|
2154
|
-
|
2155
|
-
|
2156
|
-
|
2157
|
-
|
2158
|
-
|
2159
|
-
|
2160
|
-
|
2161
|
-
|
2162
|
-
|
2163
|
-
|
2164
|
-
|
2165
|
-
|
2166
|
-
|
2167
|
-
|
1793
|
+
case "$prev" in
|
1794
|
+
branch.*.remote|branch.*.pushremote)
|
1795
|
+
__gitcomp_nl "$(__git_remotes)"
|
1796
|
+
return
|
1797
|
+
;;
|
1798
|
+
branch.*.merge)
|
1799
|
+
__gitcomp_nl "$(__git_refs)"
|
1800
|
+
return
|
1801
|
+
;;
|
1802
|
+
branch.*.rebase)
|
1803
|
+
__gitcomp "false true"
|
1804
|
+
return
|
1805
|
+
;;
|
1806
|
+
remote.pushdefault)
|
1807
|
+
__gitcomp_nl "$(__git_remotes)"
|
1808
|
+
return
|
1809
|
+
;;
|
1810
|
+
remote.*.fetch)
|
1811
|
+
local remote="${prev#remote.}"
|
1812
|
+
remote="${remote%.fetch}"
|
1813
|
+
if [ -z "$cur" ]; then
|
1814
|
+
__gitcomp_nl "refs/heads/" "" "" ""
|
1815
|
+
return
|
1816
|
+
fi
|
1817
|
+
__gitcomp_nl "$(__git_refs_remotes "$remote")"
|
1818
|
+
return
|
1819
|
+
;;
|
1820
|
+
remote.*.push)
|
1821
|
+
local remote="${prev#remote.}"
|
1822
|
+
remote="${remote%.push}"
|
1823
|
+
__gitcomp_nl "$(git --git-dir="$(__gitdir)" \
|
1824
|
+
for-each-ref --format='%(refname):%(refname)' \
|
1825
|
+
refs/heads)"
|
1826
|
+
return
|
1827
|
+
;;
|
1828
|
+
pull.twohead|pull.octopus)
|
1829
|
+
__git_compute_merge_strategies
|
1830
|
+
__gitcomp "$__git_merge_strategies"
|
1831
|
+
return
|
1832
|
+
;;
|
1833
|
+
color.branch|color.diff|color.interactive|\
|
1834
|
+
color.showbranch|color.status|color.ui)
|
1835
|
+
__gitcomp "always never auto"
|
1836
|
+
return
|
1837
|
+
;;
|
1838
|
+
color.pager)
|
1839
|
+
__gitcomp "false true"
|
1840
|
+
return
|
1841
|
+
;;
|
1842
|
+
color.*.*)
|
1843
|
+
__gitcomp "
|
1844
|
+
normal black red green yellow blue magenta cyan white
|
1845
|
+
bold dim ul blink reverse
|
1846
|
+
"
|
1847
|
+
return
|
1848
|
+
;;
|
1849
|
+
diff.submodule)
|
1850
|
+
__gitcomp "log short"
|
1851
|
+
return
|
1852
|
+
;;
|
1853
|
+
help.format)
|
1854
|
+
__gitcomp "man info web html"
|
1855
|
+
return
|
1856
|
+
;;
|
1857
|
+
log.date)
|
1858
|
+
__gitcomp "$__git_log_date_formats"
|
1859
|
+
return
|
1860
|
+
;;
|
1861
|
+
sendemail.aliasesfiletype)
|
1862
|
+
__gitcomp "mutt mailrc pine elm gnus"
|
1863
|
+
return
|
1864
|
+
;;
|
1865
|
+
sendemail.confirm)
|
1866
|
+
__gitcomp "$__git_send_email_confirm_options"
|
1867
|
+
return
|
1868
|
+
;;
|
1869
|
+
sendemail.suppresscc)
|
1870
|
+
__gitcomp "$__git_send_email_suppresscc_options"
|
1871
|
+
return
|
1872
|
+
;;
|
1873
|
+
sendemail.transferencoding)
|
1874
|
+
__gitcomp "7bit 8bit quoted-printable base64"
|
1875
|
+
return
|
1876
|
+
;;
|
1877
|
+
--get|--get-all|--unset|--unset-all)
|
1878
|
+
__gitcomp_nl "$(__git_config_get_set_variables)"
|
1879
|
+
return
|
1880
|
+
;;
|
1881
|
+
*.*)
|
1882
|
+
return
|
1883
|
+
;;
|
1884
|
+
esac
|
1885
|
+
case "$cur" in
|
1886
|
+
--*)
|
1887
|
+
__gitcomp "
|
1888
|
+
--system --global --local --file=
|
1889
|
+
--list --replace-all
|
1890
|
+
--get --get-all --get-regexp
|
1891
|
+
--add --unset --unset-all
|
1892
|
+
--remove-section --rename-section
|
1893
|
+
"
|
1894
|
+
return
|
1895
|
+
;;
|
1896
|
+
branch.*.*)
|
1897
|
+
local pfx="${cur%.*}." cur_="${cur##*.}"
|
1898
|
+
__gitcomp "remote pushremote merge mergeoptions rebase" "$pfx" "$cur_"
|
1899
|
+
return
|
1900
|
+
;;
|
1901
|
+
branch.*)
|
1902
|
+
local pfx="${cur%.*}." cur_="${cur#*.}"
|
1903
|
+
__gitcomp_nl "$(__git_heads)" "$pfx" "$cur_" "."
|
1904
|
+
__gitcomp_nl_append $'autosetupmerge\nautosetuprebase\n' "$pfx" "$cur_"
|
1905
|
+
return
|
1906
|
+
;;
|
1907
|
+
guitool.*.*)
|
1908
|
+
local pfx="${cur%.*}." cur_="${cur##*.}"
|
1909
|
+
__gitcomp "
|
1910
|
+
argprompt cmd confirm needsfile noconsole norescan
|
1911
|
+
prompt revprompt revunmerged title
|
1912
|
+
" "$pfx" "$cur_"
|
1913
|
+
return
|
1914
|
+
;;
|
1915
|
+
difftool.*.*)
|
1916
|
+
local pfx="${cur%.*}." cur_="${cur##*.}"
|
1917
|
+
__gitcomp "cmd path" "$pfx" "$cur_"
|
1918
|
+
return
|
1919
|
+
;;
|
1920
|
+
man.*.*)
|
1921
|
+
local pfx="${cur%.*}." cur_="${cur##*.}"
|
1922
|
+
__gitcomp "cmd path" "$pfx" "$cur_"
|
1923
|
+
return
|
1924
|
+
;;
|
1925
|
+
mergetool.*.*)
|
1926
|
+
local pfx="${cur%.*}." cur_="${cur##*.}"
|
1927
|
+
__gitcomp "cmd path trustExitCode" "$pfx" "$cur_"
|
1928
|
+
return
|
1929
|
+
;;
|
1930
|
+
pager.*)
|
1931
|
+
local pfx="${cur%.*}." cur_="${cur#*.}"
|
1932
|
+
__git_compute_all_commands
|
1933
|
+
__gitcomp_nl "$__git_all_commands" "$pfx" "$cur_"
|
1934
|
+
return
|
1935
|
+
;;
|
1936
|
+
remote.*.*)
|
1937
|
+
local pfx="${cur%.*}." cur_="${cur##*.}"
|
1938
|
+
__gitcomp "
|
1939
|
+
url proxy fetch push mirror skipDefaultUpdate
|
1940
|
+
receivepack uploadpack tagopt pushurl
|
1941
|
+
" "$pfx" "$cur_"
|
1942
|
+
return
|
1943
|
+
;;
|
1944
|
+
remote.*)
|
1945
|
+
local pfx="${cur%.*}." cur_="${cur#*.}"
|
1946
|
+
__gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "."
|
1947
|
+
__gitcomp_nl_append "pushdefault" "$pfx" "$cur_"
|
1948
|
+
return
|
1949
|
+
;;
|
1950
|
+
url.*.*)
|
1951
|
+
local pfx="${cur%.*}." cur_="${cur##*.}"
|
1952
|
+
__gitcomp "insteadOf pushInsteadOf" "$pfx" "$cur_"
|
1953
|
+
return
|
1954
|
+
;;
|
1955
|
+
esac
|
1956
|
+
__gitcomp "
|
1957
|
+
add.ignoreErrors
|
1958
|
+
advice.commitBeforeMerge
|
1959
|
+
advice.detachedHead
|
1960
|
+
advice.implicitIdentity
|
1961
|
+
advice.pushNonFastForward
|
1962
|
+
advice.resolveConflict
|
1963
|
+
advice.statusHints
|
1964
|
+
alias.
|
1965
|
+
am.keepcr
|
1966
|
+
apply.ignorewhitespace
|
1967
|
+
apply.whitespace
|
1968
|
+
branch.autosetupmerge
|
1969
|
+
branch.autosetuprebase
|
1970
|
+
browser.
|
1971
|
+
clean.requireForce
|
1972
|
+
color.branch
|
1973
|
+
color.branch.current
|
1974
|
+
color.branch.local
|
1975
|
+
color.branch.plain
|
1976
|
+
color.branch.remote
|
1977
|
+
color.decorate.HEAD
|
1978
|
+
color.decorate.branch
|
1979
|
+
color.decorate.remoteBranch
|
1980
|
+
color.decorate.stash
|
1981
|
+
color.decorate.tag
|
1982
|
+
color.diff
|
1983
|
+
color.diff.commit
|
1984
|
+
color.diff.frag
|
1985
|
+
color.diff.func
|
1986
|
+
color.diff.meta
|
1987
|
+
color.diff.new
|
1988
|
+
color.diff.old
|
1989
|
+
color.diff.plain
|
1990
|
+
color.diff.whitespace
|
1991
|
+
color.grep
|
1992
|
+
color.grep.context
|
1993
|
+
color.grep.filename
|
1994
|
+
color.grep.function
|
1995
|
+
color.grep.linenumber
|
1996
|
+
color.grep.match
|
1997
|
+
color.grep.selected
|
1998
|
+
color.grep.separator
|
1999
|
+
color.interactive
|
2000
|
+
color.interactive.error
|
2001
|
+
color.interactive.header
|
2002
|
+
color.interactive.help
|
2003
|
+
color.interactive.prompt
|
2004
|
+
color.pager
|
2005
|
+
color.showbranch
|
2006
|
+
color.status
|
2007
|
+
color.status.added
|
2008
|
+
color.status.changed
|
2009
|
+
color.status.header
|
2010
|
+
color.status.nobranch
|
2011
|
+
color.status.unmerged
|
2012
|
+
color.status.untracked
|
2013
|
+
color.status.updated
|
2014
|
+
color.ui
|
2015
|
+
commit.status
|
2016
|
+
commit.template
|
2017
|
+
core.abbrev
|
2018
|
+
core.askpass
|
2019
|
+
core.attributesfile
|
2020
|
+
core.autocrlf
|
2021
|
+
core.bare
|
2022
|
+
core.bigFileThreshold
|
2023
|
+
core.compression
|
2024
|
+
core.createObject
|
2025
|
+
core.deltaBaseCacheLimit
|
2026
|
+
core.editor
|
2027
|
+
core.eol
|
2028
|
+
core.excludesfile
|
2029
|
+
core.fileMode
|
2030
|
+
core.fsyncobjectfiles
|
2031
|
+
core.gitProxy
|
2032
|
+
core.ignoreStat
|
2033
|
+
core.ignorecase
|
2034
|
+
core.logAllRefUpdates
|
2035
|
+
core.loosecompression
|
2036
|
+
core.notesRef
|
2037
|
+
core.packedGitLimit
|
2038
|
+
core.packedGitWindowSize
|
2039
|
+
core.pager
|
2040
|
+
core.preferSymlinkRefs
|
2041
|
+
core.preloadindex
|
2042
|
+
core.quotepath
|
2043
|
+
core.repositoryFormatVersion
|
2044
|
+
core.safecrlf
|
2045
|
+
core.sharedRepository
|
2046
|
+
core.sparseCheckout
|
2047
|
+
core.symlinks
|
2048
|
+
core.trustctime
|
2049
|
+
core.warnAmbiguousRefs
|
2050
|
+
core.whitespace
|
2051
|
+
core.worktree
|
2052
|
+
diff.autorefreshindex
|
2053
|
+
diff.external
|
2054
|
+
diff.ignoreSubmodules
|
2055
|
+
diff.mnemonicprefix
|
2056
|
+
diff.noprefix
|
2057
|
+
diff.renameLimit
|
2058
|
+
diff.renames
|
2059
|
+
diff.statGraphWidth
|
2060
|
+
diff.submodule
|
2061
|
+
diff.suppressBlankEmpty
|
2062
|
+
diff.tool
|
2063
|
+
diff.wordRegex
|
2064
|
+
diff.algorithm
|
2065
|
+
difftool.
|
2066
|
+
difftool.prompt
|
2067
|
+
fetch.recurseSubmodules
|
2068
|
+
fetch.unpackLimit
|
2069
|
+
format.attach
|
2070
|
+
format.cc
|
2071
|
+
format.coverLetter
|
2072
|
+
format.headers
|
2073
|
+
format.numbered
|
2074
|
+
format.pretty
|
2075
|
+
format.signature
|
2076
|
+
format.signoff
|
2077
|
+
format.subjectprefix
|
2078
|
+
format.suffix
|
2079
|
+
format.thread
|
2080
|
+
format.to
|
2081
|
+
gc.
|
2082
|
+
gc.aggressiveWindow
|
2083
|
+
gc.auto
|
2084
|
+
gc.autopacklimit
|
2085
|
+
gc.packrefs
|
2086
|
+
gc.pruneexpire
|
2087
|
+
gc.reflogexpire
|
2088
|
+
gc.reflogexpireunreachable
|
2089
|
+
gc.rerereresolved
|
2090
|
+
gc.rerereunresolved
|
2091
|
+
gitcvs.allbinary
|
2092
|
+
gitcvs.commitmsgannotation
|
2093
|
+
gitcvs.dbTableNamePrefix
|
2094
|
+
gitcvs.dbdriver
|
2095
|
+
gitcvs.dbname
|
2096
|
+
gitcvs.dbpass
|
2097
|
+
gitcvs.dbuser
|
2098
|
+
gitcvs.enabled
|
2099
|
+
gitcvs.logfile
|
2100
|
+
gitcvs.usecrlfattr
|
2101
|
+
guitool.
|
2102
|
+
gui.blamehistoryctx
|
2103
|
+
gui.commitmsgwidth
|
2104
|
+
gui.copyblamethreshold
|
2105
|
+
gui.diffcontext
|
2106
|
+
gui.encoding
|
2107
|
+
gui.fastcopyblame
|
2108
|
+
gui.matchtrackingbranch
|
2109
|
+
gui.newbranchtemplate
|
2110
|
+
gui.pruneduringfetch
|
2111
|
+
gui.spellingdictionary
|
2112
|
+
gui.trustmtime
|
2113
|
+
help.autocorrect
|
2114
|
+
help.browser
|
2115
|
+
help.format
|
2116
|
+
http.lowSpeedLimit
|
2117
|
+
http.lowSpeedTime
|
2118
|
+
http.maxRequests
|
2119
|
+
http.minSessions
|
2120
|
+
http.noEPSV
|
2121
|
+
http.postBuffer
|
2122
|
+
http.proxy
|
2123
|
+
http.sslCipherList
|
2124
|
+
http.sslCAInfo
|
2125
|
+
http.sslCAPath
|
2126
|
+
http.sslCert
|
2127
|
+
http.sslCertPasswordProtected
|
2128
|
+
http.sslKey
|
2129
|
+
http.sslVerify
|
2130
|
+
http.useragent
|
2131
|
+
i18n.commitEncoding
|
2132
|
+
i18n.logOutputEncoding
|
2133
|
+
imap.authMethod
|
2134
|
+
imap.folder
|
2135
|
+
imap.host
|
2136
|
+
imap.pass
|
2137
|
+
imap.port
|
2138
|
+
imap.preformattedHTML
|
2139
|
+
imap.sslverify
|
2140
|
+
imap.tunnel
|
2141
|
+
imap.user
|
2142
|
+
init.templatedir
|
2143
|
+
instaweb.browser
|
2144
|
+
instaweb.httpd
|
2145
|
+
instaweb.local
|
2146
|
+
instaweb.modulepath
|
2147
|
+
instaweb.port
|
2148
|
+
interactive.singlekey
|
2149
|
+
log.date
|
2150
|
+
log.decorate
|
2151
|
+
log.showroot
|
2152
|
+
mailmap.file
|
2153
|
+
man.
|
2154
|
+
man.viewer
|
2155
|
+
merge.
|
2156
|
+
merge.conflictstyle
|
2157
|
+
merge.log
|
2158
|
+
merge.renameLimit
|
2159
|
+
merge.renormalize
|
2160
|
+
merge.stat
|
2161
|
+
merge.tool
|
2162
|
+
merge.verbosity
|
2163
|
+
mergetool.
|
2164
|
+
mergetool.keepBackup
|
2165
|
+
mergetool.keepTemporaries
|
2166
|
+
mergetool.prompt
|
2167
|
+
notes.displayRef
|
2168
|
+
notes.rewrite.
|
2169
|
+
notes.rewrite.amend
|
2170
|
+
notes.rewrite.rebase
|
2171
|
+
notes.rewriteMode
|
2172
|
+
notes.rewriteRef
|
2173
|
+
pack.compression
|
2174
|
+
pack.deltaCacheLimit
|
2175
|
+
pack.deltaCacheSize
|
2176
|
+
pack.depth
|
2177
|
+
pack.indexVersion
|
2178
|
+
pack.packSizeLimit
|
2179
|
+
pack.threads
|
2180
|
+
pack.window
|
2181
|
+
pack.windowMemory
|
2182
|
+
pager.
|
2183
|
+
pretty.
|
2184
|
+
pull.octopus
|
2185
|
+
pull.twohead
|
2186
|
+
push.default
|
2187
|
+
push.followTags
|
2188
|
+
rebase.autosquash
|
2189
|
+
rebase.stat
|
2190
|
+
receive.autogc
|
2191
|
+
receive.denyCurrentBranch
|
2192
|
+
receive.denyDeleteCurrent
|
2193
|
+
receive.denyDeletes
|
2194
|
+
receive.denyNonFastForwards
|
2195
|
+
receive.fsckObjects
|
2196
|
+
receive.unpackLimit
|
2197
|
+
receive.updateserverinfo
|
2198
|
+
remote.pushdefault
|
2199
|
+
remotes.
|
2200
|
+
repack.usedeltabaseoffset
|
2201
|
+
rerere.autoupdate
|
2202
|
+
rerere.enabled
|
2203
|
+
sendemail.
|
2204
|
+
sendemail.aliasesfile
|
2205
|
+
sendemail.aliasfiletype
|
2206
|
+
sendemail.bcc
|
2207
|
+
sendemail.cc
|
2208
|
+
sendemail.cccmd
|
2209
|
+
sendemail.chainreplyto
|
2210
|
+
sendemail.confirm
|
2211
|
+
sendemail.envelopesender
|
2212
|
+
sendemail.from
|
2213
|
+
sendemail.identity
|
2214
|
+
sendemail.multiedit
|
2215
|
+
sendemail.signedoffbycc
|
2216
|
+
sendemail.smtpdomain
|
2217
|
+
sendemail.smtpencryption
|
2218
|
+
sendemail.smtppass
|
2219
|
+
sendemail.smtpserver
|
2220
|
+
sendemail.smtpserveroption
|
2221
|
+
sendemail.smtpserverport
|
2222
|
+
sendemail.smtpuser
|
2223
|
+
sendemail.suppresscc
|
2224
|
+
sendemail.suppressfrom
|
2225
|
+
sendemail.thread
|
2226
|
+
sendemail.to
|
2227
|
+
sendemail.validate
|
2228
|
+
showbranch.default
|
2229
|
+
status.relativePaths
|
2230
|
+
status.showUntrackedFiles
|
2231
|
+
status.submodulesummary
|
2232
|
+
submodule.
|
2233
|
+
tar.umask
|
2234
|
+
transfer.unpackLimit
|
2235
|
+
url.
|
2236
|
+
user.email
|
2237
|
+
user.name
|
2238
|
+
user.signingkey
|
2239
|
+
web.browser
|
2240
|
+
branch. remote.
|
2241
|
+
"
|
2168
2242
|
}
|
2169
2243
|
|
2170
2244
|
_git_remote ()
|
2171
2245
|
{
|
2172
|
-
|
2173
|
-
|
2174
|
-
|
2175
|
-
|
2176
|
-
|
2177
|
-
|
2178
|
-
|
2179
|
-
|
2180
|
-
|
2181
|
-
|
2182
|
-
|
2183
|
-
|
2184
|
-
|
2185
|
-
|
2186
|
-
|
2187
|
-
|
2188
|
-
|
2189
|
-
|
2190
|
-
|
2191
|
-
|
2192
|
-
__gitcomp "$c"
|
2193
|
-
;;
|
2194
|
-
*)
|
2195
|
-
;;
|
2196
|
-
esac
|
2246
|
+
local subcommands="add rename remove set-head set-branches set-url show prune update"
|
2247
|
+
local subcommand="$(__git_find_on_cmdline "$subcommands")"
|
2248
|
+
if [ -z "$subcommand" ]; then
|
2249
|
+
__gitcomp "$subcommands"
|
2250
|
+
return
|
2251
|
+
fi
|
2252
|
+
|
2253
|
+
case "$subcommand" in
|
2254
|
+
rename|remove|set-url|show|prune)
|
2255
|
+
__gitcomp_nl "$(__git_remotes)"
|
2256
|
+
;;
|
2257
|
+
set-head|set-branches)
|
2258
|
+
__git_complete_remote_or_refspec
|
2259
|
+
;;
|
2260
|
+
update)
|
2261
|
+
__gitcomp "$(__git_get_config_variables "remotes")"
|
2262
|
+
;;
|
2263
|
+
*)
|
2264
|
+
;;
|
2265
|
+
esac
|
2197
2266
|
}
|
2198
2267
|
|
2199
2268
|
_git_replace ()
|
2200
2269
|
{
|
2201
|
-
|
2270
|
+
__gitcomp_nl "$(__git_refs)"
|
2202
2271
|
}
|
2203
2272
|
|
2204
2273
|
_git_reset ()
|
2205
2274
|
{
|
2206
|
-
|
2275
|
+
__git_has_doubledash && return
|
2207
2276
|
|
2208
|
-
|
2209
|
-
|
2210
|
-
|
2211
|
-
|
2212
|
-
|
2213
|
-
|
2214
|
-
|
2277
|
+
case "$cur" in
|
2278
|
+
--*)
|
2279
|
+
__gitcomp "--merge --mixed --hard --soft --patch"
|
2280
|
+
return
|
2281
|
+
;;
|
2282
|
+
esac
|
2283
|
+
__gitcomp_nl "$(__git_refs)"
|
2215
2284
|
}
|
2216
2285
|
|
2217
2286
|
_git_revert ()
|
2218
2287
|
{
|
2219
|
-
|
2220
|
-
|
2221
|
-
|
2222
|
-
|
2223
|
-
|
2224
|
-
|
2225
|
-
|
2288
|
+
local dir="$(__gitdir)"
|
2289
|
+
if [ -f "$dir"/REVERT_HEAD ]; then
|
2290
|
+
__gitcomp "--continue --quit --abort"
|
2291
|
+
return
|
2292
|
+
fi
|
2293
|
+
case "$cur" in
|
2294
|
+
--*)
|
2295
|
+
__gitcomp "--edit --mainline --no-edit --no-commit --signoff"
|
2296
|
+
return
|
2297
|
+
;;
|
2298
|
+
esac
|
2299
|
+
__gitcomp_nl "$(__git_refs)"
|
2226
2300
|
}
|
2227
2301
|
|
2228
2302
|
_git_rm ()
|
2229
2303
|
{
|
2230
|
-
|
2231
|
-
|
2232
|
-
|
2233
|
-
|
2234
|
-
|
2235
|
-
|
2304
|
+
case "$cur" in
|
2305
|
+
--*)
|
2306
|
+
__gitcomp "--cached --dry-run --ignore-unmatch --quiet"
|
2307
|
+
return
|
2308
|
+
;;
|
2309
|
+
esac
|
2236
2310
|
|
2237
|
-
|
2311
|
+
__git_complete_index_file "--cached"
|
2238
2312
|
}
|
2239
2313
|
|
2240
2314
|
_git_shortlog ()
|
2241
2315
|
{
|
2242
|
-
|
2316
|
+
__git_has_doubledash && return
|
2243
2317
|
|
2244
|
-
|
2245
|
-
|
2246
|
-
|
2247
|
-
|
2248
|
-
|
2249
|
-
|
2250
|
-
|
2251
|
-
|
2252
|
-
|
2253
|
-
|
2254
|
-
|
2318
|
+
case "$cur" in
|
2319
|
+
--*)
|
2320
|
+
__gitcomp "
|
2321
|
+
$__git_log_common_options
|
2322
|
+
$__git_log_shortlog_options
|
2323
|
+
--numbered --summary
|
2324
|
+
"
|
2325
|
+
return
|
2326
|
+
;;
|
2327
|
+
esac
|
2328
|
+
__git_complete_revlist
|
2255
2329
|
}
|
2256
2330
|
|
2257
2331
|
_git_show ()
|
2258
2332
|
{
|
2259
|
-
|
2260
|
-
|
2261
|
-
|
2262
|
-
|
2263
|
-
|
2264
|
-
|
2265
|
-
|
2266
|
-
|
2267
|
-
|
2268
|
-
|
2269
|
-
|
2270
|
-
|
2271
|
-
|
2272
|
-
|
2273
|
-
|
2274
|
-
|
2275
|
-
|
2276
|
-
|
2277
|
-
|
2278
|
-
|
2333
|
+
__git_has_doubledash && return
|
2334
|
+
|
2335
|
+
case "$cur" in
|
2336
|
+
--pretty=*|--format=*)
|
2337
|
+
__gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases)
|
2338
|
+
" "" "${cur#*=}"
|
2339
|
+
return
|
2340
|
+
;;
|
2341
|
+
--diff-algorithm=*)
|
2342
|
+
__gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}"
|
2343
|
+
return
|
2344
|
+
;;
|
2345
|
+
--*)
|
2346
|
+
__gitcomp "--pretty= --format= --abbrev-commit --oneline
|
2347
|
+
--show-signature
|
2348
|
+
$__git_diff_common_options
|
2349
|
+
"
|
2350
|
+
return
|
2351
|
+
;;
|
2352
|
+
esac
|
2353
|
+
__git_complete_revlist_file
|
2279
2354
|
}
|
2280
2355
|
|
2281
2356
|
_git_show_branch ()
|
2282
2357
|
{
|
2283
|
-
|
2284
|
-
|
2285
|
-
|
2286
|
-
|
2287
|
-
|
2288
|
-
|
2289
|
-
|
2290
|
-
|
2291
|
-
|
2292
|
-
|
2293
|
-
|
2294
|
-
|
2358
|
+
case "$cur" in
|
2359
|
+
--*)
|
2360
|
+
__gitcomp "
|
2361
|
+
--all --remotes --topo-order --current --more=
|
2362
|
+
--list --independent --merge-base --no-name
|
2363
|
+
--color --no-color
|
2364
|
+
--sha1-name --sparse --topics --reflog
|
2365
|
+
"
|
2366
|
+
return
|
2367
|
+
;;
|
2368
|
+
esac
|
2369
|
+
__git_complete_revlist
|
2295
2370
|
}
|
2296
2371
|
|
2297
2372
|
_git_stash ()
|
2298
2373
|
{
|
2299
|
-
|
2300
|
-
|
2301
|
-
|
2302
|
-
|
2303
|
-
|
2304
|
-
|
2305
|
-
|
2306
|
-
|
2307
|
-
|
2308
|
-
|
2309
|
-
|
2310
|
-
|
2311
|
-
|
2312
|
-
|
2313
|
-
|
2314
|
-
|
2315
|
-
|
2316
|
-
|
2317
|
-
|
2318
|
-
|
2319
|
-
|
2320
|
-
|
2321
|
-
|
2322
|
-
|
2323
|
-
|
2324
|
-
|
2325
|
-
|
2326
|
-
|
2327
|
-
|
2328
|
-
|
2329
|
-
|
2330
|
-
|
2374
|
+
local save_opts='--keep-index --no-keep-index --quiet --patch'
|
2375
|
+
local subcommands='save list show apply clear drop pop create branch'
|
2376
|
+
local subcommand="$(__git_find_on_cmdline "$subcommands")"
|
2377
|
+
if [ -z "$subcommand" ]; then
|
2378
|
+
case "$cur" in
|
2379
|
+
--*)
|
2380
|
+
__gitcomp "$save_opts"
|
2381
|
+
;;
|
2382
|
+
*)
|
2383
|
+
if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then
|
2384
|
+
__gitcomp "$subcommands"
|
2385
|
+
fi
|
2386
|
+
;;
|
2387
|
+
esac
|
2388
|
+
else
|
2389
|
+
case "$subcommand,$cur" in
|
2390
|
+
save,--*)
|
2391
|
+
__gitcomp "$save_opts"
|
2392
|
+
;;
|
2393
|
+
apply,--*|pop,--*)
|
2394
|
+
__gitcomp "--index --quiet"
|
2395
|
+
;;
|
2396
|
+
show,--*|drop,--*|branch,--*)
|
2397
|
+
;;
|
2398
|
+
show,*|apply,*|drop,*|pop,*|branch,*)
|
2399
|
+
__gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \
|
2400
|
+
| sed -n -e 's/:.*//p')"
|
2401
|
+
;;
|
2402
|
+
*)
|
2403
|
+
;;
|
2404
|
+
esac
|
2405
|
+
fi
|
2331
2406
|
}
|
2332
2407
|
|
2333
2408
|
_git_submodule ()
|
2334
2409
|
{
|
2335
|
-
|
2410
|
+
__git_has_doubledash && return
|
2336
2411
|
|
2337
|
-
|
2338
|
-
|
2339
|
-
|
2340
|
-
|
2341
|
-
|
2342
|
-
|
2343
|
-
|
2344
|
-
|
2345
|
-
|
2346
|
-
|
2347
|
-
|
2348
|
-
|
2412
|
+
local subcommands="add status init deinit update summary foreach sync"
|
2413
|
+
if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then
|
2414
|
+
case "$cur" in
|
2415
|
+
--*)
|
2416
|
+
__gitcomp "--quiet --cached"
|
2417
|
+
;;
|
2418
|
+
*)
|
2419
|
+
__gitcomp "$subcommands"
|
2420
|
+
;;
|
2421
|
+
esac
|
2422
|
+
return
|
2423
|
+
fi
|
2349
2424
|
}
|
2350
2425
|
|
2351
2426
|
_git_svn ()
|
2352
2427
|
{
|
2353
|
-
|
2354
|
-
|
2355
|
-
|
2356
|
-
|
2357
|
-
|
2358
|
-
|
2359
|
-
|
2360
|
-
|
2361
|
-
|
2362
|
-
|
2363
|
-
|
2364
|
-
|
2365
|
-
|
2366
|
-
|
2367
|
-
|
2368
|
-
|
2369
|
-
|
2370
|
-
|
2371
|
-
|
2372
|
-
|
2373
|
-
|
2374
|
-
|
2375
|
-
|
2376
|
-
|
2377
|
-
|
2378
|
-
|
2379
|
-
|
2380
|
-
|
2381
|
-
|
2382
|
-
|
2383
|
-
|
2384
|
-
|
2385
|
-
|
2386
|
-
|
2387
|
-
|
2388
|
-
|
2389
|
-
|
2390
|
-
|
2391
|
-
|
2392
|
-
|
2393
|
-
|
2394
|
-
|
2395
|
-
|
2396
|
-
|
2397
|
-
|
2398
|
-
|
2399
|
-
|
2400
|
-
|
2401
|
-
|
2402
|
-
|
2403
|
-
|
2404
|
-
|
2405
|
-
|
2406
|
-
|
2407
|
-
|
2408
|
-
|
2409
|
-
|
2410
|
-
|
2411
|
-
|
2412
|
-
|
2413
|
-
|
2414
|
-
|
2415
|
-
|
2416
|
-
|
2417
|
-
|
2418
|
-
|
2419
|
-
|
2420
|
-
|
2421
|
-
|
2422
|
-
|
2423
|
-
|
2424
|
-
|
2425
|
-
|
2426
|
-
|
2427
|
-
|
2428
|
-
|
2429
|
-
|
2430
|
-
|
2431
|
-
|
2432
|
-
|
2433
|
-
|
2434
|
-
|
2435
|
-
|
2436
|
-
|
2437
|
-
|
2438
|
-
|
2439
|
-
|
2440
|
-
|
2441
|
-
|
2442
|
-
|
2443
|
-
|
2444
|
-
|
2445
|
-
|
2446
|
-
|
2428
|
+
local subcommands="
|
2429
|
+
init fetch clone rebase dcommit log find-rev
|
2430
|
+
set-tree commit-diff info create-ignore propget
|
2431
|
+
proplist show-ignore show-externals branch tag blame
|
2432
|
+
migrate mkdirs reset gc
|
2433
|
+
"
|
2434
|
+
local subcommand="$(__git_find_on_cmdline "$subcommands")"
|
2435
|
+
if [ -z "$subcommand" ]; then
|
2436
|
+
__gitcomp "$subcommands"
|
2437
|
+
else
|
2438
|
+
local remote_opts="--username= --config-dir= --no-auth-cache"
|
2439
|
+
local fc_opts="
|
2440
|
+
--follow-parent --authors-file= --repack=
|
2441
|
+
--no-metadata --use-svm-props --use-svnsync-props
|
2442
|
+
--log-window-size= --no-checkout --quiet
|
2443
|
+
--repack-flags --use-log-author --localtime
|
2444
|
+
--ignore-paths= --include-paths= $remote_opts
|
2445
|
+
"
|
2446
|
+
local init_opts="
|
2447
|
+
--template= --shared= --trunk= --tags=
|
2448
|
+
--branches= --stdlayout --minimize-url
|
2449
|
+
--no-metadata --use-svm-props --use-svnsync-props
|
2450
|
+
--rewrite-root= --prefix= --use-log-author
|
2451
|
+
--add-author-from $remote_opts
|
2452
|
+
"
|
2453
|
+
local cmt_opts="
|
2454
|
+
--edit --rmdir --find-copies-harder --copy-similarity=
|
2455
|
+
"
|
2456
|
+
|
2457
|
+
case "$subcommand,$cur" in
|
2458
|
+
fetch,--*)
|
2459
|
+
__gitcomp "--revision= --fetch-all $fc_opts"
|
2460
|
+
;;
|
2461
|
+
clone,--*)
|
2462
|
+
__gitcomp "--revision= $fc_opts $init_opts"
|
2463
|
+
;;
|
2464
|
+
init,--*)
|
2465
|
+
__gitcomp "$init_opts"
|
2466
|
+
;;
|
2467
|
+
dcommit,--*)
|
2468
|
+
__gitcomp "
|
2469
|
+
--merge --strategy= --verbose --dry-run
|
2470
|
+
--fetch-all --no-rebase --commit-url
|
2471
|
+
--revision --interactive $cmt_opts $fc_opts
|
2472
|
+
"
|
2473
|
+
;;
|
2474
|
+
set-tree,--*)
|
2475
|
+
__gitcomp "--stdin $cmt_opts $fc_opts"
|
2476
|
+
;;
|
2477
|
+
create-ignore,--*|propget,--*|proplist,--*|show-ignore,--*|\
|
2478
|
+
show-externals,--*|mkdirs,--*)
|
2479
|
+
__gitcomp "--revision="
|
2480
|
+
;;
|
2481
|
+
log,--*)
|
2482
|
+
__gitcomp "
|
2483
|
+
--limit= --revision= --verbose --incremental
|
2484
|
+
--oneline --show-commit --non-recursive
|
2485
|
+
--authors-file= --color
|
2486
|
+
"
|
2487
|
+
;;
|
2488
|
+
rebase,--*)
|
2489
|
+
__gitcomp "
|
2490
|
+
--merge --verbose --strategy= --local
|
2491
|
+
--fetch-all --dry-run $fc_opts
|
2492
|
+
"
|
2493
|
+
;;
|
2494
|
+
commit-diff,--*)
|
2495
|
+
__gitcomp "--message= --file= --revision= $cmt_opts"
|
2496
|
+
;;
|
2497
|
+
info,--*)
|
2498
|
+
__gitcomp "--url"
|
2499
|
+
;;
|
2500
|
+
branch,--*)
|
2501
|
+
__gitcomp "--dry-run --message --tag"
|
2502
|
+
;;
|
2503
|
+
tag,--*)
|
2504
|
+
__gitcomp "--dry-run --message"
|
2505
|
+
;;
|
2506
|
+
blame,--*)
|
2507
|
+
__gitcomp "--git-format"
|
2508
|
+
;;
|
2509
|
+
migrate,--*)
|
2510
|
+
__gitcomp "
|
2511
|
+
--config-dir= --ignore-paths= --minimize
|
2512
|
+
--no-auth-cache --username=
|
2513
|
+
"
|
2514
|
+
;;
|
2515
|
+
reset,--*)
|
2516
|
+
__gitcomp "--revision= --parent"
|
2517
|
+
;;
|
2518
|
+
*)
|
2519
|
+
;;
|
2520
|
+
esac
|
2521
|
+
fi
|
2447
2522
|
}
|
2448
2523
|
|
2449
2524
|
_git_tag ()
|
2450
2525
|
{
|
2451
|
-
|
2452
|
-
|
2453
|
-
|
2454
|
-
|
2455
|
-
|
2456
|
-
|
2457
|
-
|
2458
|
-
|
2459
|
-
|
2460
|
-
|
2461
|
-
|
2462
|
-
|
2463
|
-
|
2464
|
-
|
2465
|
-
|
2466
|
-
|
2467
|
-
|
2468
|
-
|
2469
|
-
|
2470
|
-
|
2471
|
-
|
2472
|
-
|
2473
|
-
|
2474
|
-
|
2475
|
-
|
2476
|
-
|
2477
|
-
|
2526
|
+
local i c=1 f=0
|
2527
|
+
while [ $c -lt $cword ]; do
|
2528
|
+
i="${words[c]}"
|
2529
|
+
case "$i" in
|
2530
|
+
-d|-v)
|
2531
|
+
__gitcomp_nl "$(__git_tags)"
|
2532
|
+
return
|
2533
|
+
;;
|
2534
|
+
-f)
|
2535
|
+
f=1
|
2536
|
+
;;
|
2537
|
+
esac
|
2538
|
+
((c++))
|
2539
|
+
done
|
2540
|
+
|
2541
|
+
case "$prev" in
|
2542
|
+
-m|-F)
|
2543
|
+
;;
|
2544
|
+
-*|tag)
|
2545
|
+
if [ $f = 1 ]; then
|
2546
|
+
__gitcomp_nl "$(__git_tags)"
|
2547
|
+
fi
|
2548
|
+
;;
|
2549
|
+
*)
|
2550
|
+
__gitcomp_nl "$(__git_refs)"
|
2551
|
+
;;
|
2552
|
+
esac
|
2553
|
+
|
2554
|
+
case "$cur" in
|
2555
|
+
--*)
|
2556
|
+
__gitcomp "
|
2557
|
+
--list --delete --verify --annotate --message --file
|
2558
|
+
--sign --cleanup --local-user --force --column --sort
|
2559
|
+
--contains --points-at
|
2560
|
+
"
|
2561
|
+
;;
|
2562
|
+
esac
|
2478
2563
|
}
|
2479
2564
|
|
2480
2565
|
_git_whatchanged ()
|
2481
2566
|
{
|
2482
|
-
|
2567
|
+
_git_log
|
2483
2568
|
}
|
2484
2569
|
|
2485
2570
|
__git_main ()
|
2486
2571
|
{
|
2487
|
-
|
2488
|
-
|
2489
|
-
|
2490
|
-
|
2491
|
-
|
2492
|
-
|
2493
|
-
|
2494
|
-
|
2495
|
-
|
2496
|
-
|
2497
|
-
|
2498
|
-
|
2499
|
-
|
2500
|
-
|
2501
|
-
|
2502
|
-
|
2503
|
-
|
2504
|
-
|
2505
|
-
|
2506
|
-
|
2507
|
-
|
2508
|
-
|
2509
|
-
|
2510
|
-
|
2511
|
-
|
2512
|
-
|
2513
|
-
|
2514
|
-
|
2515
|
-
|
2516
|
-
|
2517
|
-
|
2518
|
-
|
2519
|
-
|
2520
|
-
|
2521
|
-
|
2522
|
-
|
2523
|
-
|
2524
|
-
|
2525
|
-
|
2526
|
-
|
2527
|
-
|
2528
|
-
|
2529
|
-
|
2530
|
-
|
2531
|
-
|
2532
|
-
|
2533
|
-
|
2534
|
-
|
2535
|
-
|
2572
|
+
local i c=1 command __git_dir
|
2573
|
+
|
2574
|
+
while [ $c -lt $cword ]; do
|
2575
|
+
i="${words[c]}"
|
2576
|
+
case "$i" in
|
2577
|
+
--git-dir=*) __git_dir="${i#--git-dir=}" ;;
|
2578
|
+
--git-dir) ((c++)) ; __git_dir="${words[c]}" ;;
|
2579
|
+
--bare) __git_dir="." ;;
|
2580
|
+
--help) command="help"; break ;;
|
2581
|
+
-c|--work-tree|--namespace) ((c++)) ;;
|
2582
|
+
-*) ;;
|
2583
|
+
*) command="$i"; break ;;
|
2584
|
+
esac
|
2585
|
+
((c++))
|
2586
|
+
done
|
2587
|
+
|
2588
|
+
if [ -z "$command" ]; then
|
2589
|
+
case "$cur" in
|
2590
|
+
--*) __gitcomp "
|
2591
|
+
--paginate
|
2592
|
+
--no-pager
|
2593
|
+
--git-dir=
|
2594
|
+
--bare
|
2595
|
+
--version
|
2596
|
+
--exec-path
|
2597
|
+
--exec-path=
|
2598
|
+
--html-path
|
2599
|
+
--man-path
|
2600
|
+
--info-path
|
2601
|
+
--work-tree=
|
2602
|
+
--namespace=
|
2603
|
+
--no-replace-objects
|
2604
|
+
--help
|
2605
|
+
"
|
2606
|
+
;;
|
2607
|
+
*) __git_compute_porcelain_commands
|
2608
|
+
__gitcomp "$__git_porcelain_commands $(__git_aliases)" ;;
|
2609
|
+
esac
|
2610
|
+
return
|
2611
|
+
fi
|
2612
|
+
|
2613
|
+
local completion_func="_git_${command//-/_}"
|
2614
|
+
declare -f $completion_func >/dev/null && $completion_func && return
|
2615
|
+
|
2616
|
+
local expansion=$(__git_aliased_command "$command")
|
2617
|
+
if [ -n "$expansion" ]; then
|
2618
|
+
words[1]=$expansion
|
2619
|
+
completion_func="_git_${expansion//-/_}"
|
2620
|
+
declare -f $completion_func >/dev/null && $completion_func
|
2621
|
+
fi
|
2536
2622
|
}
|
2537
2623
|
|
2538
2624
|
__gitk_main ()
|
2539
2625
|
{
|
2540
|
-
|
2541
|
-
|
2542
|
-
|
2543
|
-
|
2544
|
-
|
2545
|
-
|
2546
|
-
|
2547
|
-
|
2548
|
-
|
2549
|
-
|
2550
|
-
|
2551
|
-
|
2552
|
-
|
2553
|
-
|
2554
|
-
|
2555
|
-
|
2556
|
-
|
2557
|
-
|
2626
|
+
__git_has_doubledash && return
|
2627
|
+
|
2628
|
+
local g="$(__gitdir)"
|
2629
|
+
local merge=""
|
2630
|
+
if [ -f "$g/MERGE_HEAD" ]; then
|
2631
|
+
merge="--merge"
|
2632
|
+
fi
|
2633
|
+
case "$cur" in
|
2634
|
+
--*)
|
2635
|
+
__gitcomp "
|
2636
|
+
$__git_log_common_options
|
2637
|
+
$__git_log_gitk_options
|
2638
|
+
$merge
|
2639
|
+
"
|
2640
|
+
return
|
2641
|
+
;;
|
2642
|
+
esac
|
2643
|
+
__git_complete_revlist
|
2558
2644
|
}
|
2559
2645
|
|
2560
2646
|
if [[ -n ${ZSH_VERSION-} ]]; then
|
2561
|
-
|
2562
|
-
|
2563
|
-
|
2564
|
-
|
2565
|
-
|
2566
|
-
|
2567
|
-
|
2568
|
-
|
2569
|
-
|
2570
|
-
|
2571
|
-
|
2572
|
-
|
2573
|
-
|
2574
|
-
|
2575
|
-
|
2576
|
-
|
2577
|
-
|
2578
|
-
|
2579
|
-
|
2580
|
-
|
2581
|
-
|
2582
|
-
|
2583
|
-
|
2584
|
-
|
2585
|
-
|
2586
|
-
|
2587
|
-
|
2588
|
-
|
2589
|
-
|
2590
|
-
|
2591
|
-
|
2592
|
-
|
2593
|
-
|
2594
|
-
|
2595
|
-
|
2596
|
-
|
2597
|
-
|
2598
|
-
|
2599
|
-
|
2600
|
-
|
2601
|
-
|
2602
|
-
|
2603
|
-
|
2604
|
-
|
2605
|
-
|
2606
|
-
|
2607
|
-
|
2608
|
-
|
2609
|
-
|
2610
|
-
|
2611
|
-
|
2612
|
-
|
2613
|
-
|
2614
|
-
|
2615
|
-
|
2616
|
-
|
2617
|
-
|
2618
|
-
|
2619
|
-
|
2620
|
-
|
2621
|
-
|
2647
|
+
echo "WARNING: this script is deprecated, please see git-completion.zsh" 1>&2
|
2648
|
+
|
2649
|
+
autoload -U +X compinit && compinit
|
2650
|
+
|
2651
|
+
__gitcomp ()
|
2652
|
+
{
|
2653
|
+
emulate -L zsh
|
2654
|
+
|
2655
|
+
local cur_="${3-$cur}"
|
2656
|
+
|
2657
|
+
case "$cur_" in
|
2658
|
+
--*=)
|
2659
|
+
;;
|
2660
|
+
*)
|
2661
|
+
local c IFS=$' \t\n'
|
2662
|
+
local -a array
|
2663
|
+
for c in ${=1}; do
|
2664
|
+
c="$c${4-}"
|
2665
|
+
case $c in
|
2666
|
+
--*=*|*.) ;;
|
2667
|
+
*) c="$c " ;;
|
2668
|
+
esac
|
2669
|
+
array[${#array[@]}+1]="$c"
|
2670
|
+
done
|
2671
|
+
compset -P '*[=:]'
|
2672
|
+
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
|
2673
|
+
;;
|
2674
|
+
esac
|
2675
|
+
}
|
2676
|
+
|
2677
|
+
__gitcomp_nl ()
|
2678
|
+
{
|
2679
|
+
emulate -L zsh
|
2680
|
+
|
2681
|
+
local IFS=$'\n'
|
2682
|
+
compset -P '*[=:]'
|
2683
|
+
compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
|
2684
|
+
}
|
2685
|
+
|
2686
|
+
__gitcomp_file ()
|
2687
|
+
{
|
2688
|
+
emulate -L zsh
|
2689
|
+
|
2690
|
+
local IFS=$'\n'
|
2691
|
+
compset -P '*[=:]'
|
2692
|
+
compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
|
2693
|
+
}
|
2694
|
+
|
2695
|
+
_git ()
|
2696
|
+
{
|
2697
|
+
local _ret=1 cur cword prev
|
2698
|
+
cur=${words[CURRENT]}
|
2699
|
+
prev=${words[CURRENT-1]}
|
2700
|
+
let cword=CURRENT-1
|
2701
|
+
emulate ksh -c __${service}_main
|
2702
|
+
let _ret && _default && _ret=0
|
2703
|
+
return _ret
|
2704
|
+
}
|
2705
|
+
|
2706
|
+
compdef _git git gitk
|
2707
|
+
return
|
2622
2708
|
fi
|
2623
2709
|
|
2624
2710
|
__git_func_wrap ()
|
2625
2711
|
{
|
2626
|
-
|
2627
|
-
|
2628
|
-
|
2712
|
+
local cur words cword prev
|
2713
|
+
_get_comp_words_by_ref -n =: cur words cword prev
|
2714
|
+
$1
|
2629
2715
|
}
|
2630
2716
|
|
2631
2717
|
# Setup completion for certain functions defined above by setting common
|
@@ -2633,22 +2719,22 @@ __git_func_wrap ()
|
|
2633
2719
|
# This is NOT a public function; use at your own risk.
|
2634
2720
|
__git_complete ()
|
2635
2721
|
{
|
2636
|
-
|
2637
|
-
|
2638
|
-
|
2639
|
-
|
2722
|
+
local wrapper="__git_wrap${2}"
|
2723
|
+
eval "$wrapper () { __git_func_wrap $2 ; }"
|
2724
|
+
complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \
|
2725
|
+
|| complete -o default -o nospace -F $wrapper $1
|
2640
2726
|
}
|
2641
2727
|
|
2642
2728
|
# wrapper for backwards compatibility
|
2643
2729
|
_git ()
|
2644
2730
|
{
|
2645
|
-
|
2731
|
+
__git_wrap__git_main
|
2646
2732
|
}
|
2647
2733
|
|
2648
2734
|
# wrapper for backwards compatibility
|
2649
2735
|
_gitk ()
|
2650
2736
|
{
|
2651
|
-
|
2737
|
+
__git_wrap__gitk_main
|
2652
2738
|
}
|
2653
2739
|
|
2654
2740
|
__git_complete git __git_main
|