gitweb.git
completion: factor out _git_xxx calling codeNguyễn Thái Ngọc Duy Sat, 24 Mar 2018 20:35:21 +0000 (21:35 +0100)

completion: factor out _git_xxx calling code

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: mention the oldest version we need to supportNguyễn Thái Ngọc Duy Sat, 24 Mar 2018 20:35:20 +0000 (21:35 +0100)

completion: mention the oldest version we need to support

This is more of a note for git-completion.bash contributors, not
users. The bash version is from MacOS [1]. Most Linux distros should
be 4.x at this point.

[1] https://public-inbox.org/git/%3CCAPig+cQXT1ov4MjzSzqiLBzr4wN1XcP7aSxMP+_dhtWtYwhDAA@mail.gmail.com%3E/

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git.c: add hidden option --list-parseopt-builtinsNguyễn Thái Ngọc Duy Sat, 24 Mar 2018 20:35:19 +0000 (21:35 +0100)

git.c: add hidden option --list-parseopt-builtins

This is another step to help automate git-completion.bash. This option
gives a list of all builtin commands that do use parse_options(),
which supports another hidden option --git-completion-helper. The
output is prepared for easy consumption by git-completion.bash and
separates items by spaces instead of \n

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git.c: move cmd_struct declaration upNguyễn Thái Ngọc Duy Sat, 24 Mar 2018 20:35:18 +0000 (21:35 +0100)

git.c: move cmd_struct declaration up

In a later patch we need access to one of these command option
constants near the top of this file. Move this block up so we will be
able to access the command options.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9902: disable test on the list of merge-strategies... Junio C Hamano Fri, 23 Mar 2018 17:40:06 +0000 (10:40 -0700)

t9902: disable test on the list of merge-strategies under GETTEXT_POISON

The code to learn the list of merge strategies from the output of
"git merge -s help" forces C locale, so that it can notice the
message shown to indicate where the list starts in the output.

However, GETTEXT_POISON build corrupts its output even when run in
the C locale, and we cannot expect this test to succeed.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: clear cached --options when sourcing the... SZEDER Gábor Thu, 22 Mar 2018 14:16:04 +0000 (15:16 +0100)

completion: clear cached --options when sourcing the completion script

The established way to update the completion script in an already
running shell is to simply source it again: this brings in any new
--options and features, and clears caching variables. E.g. it clears
the variables caching the list of (all|porcelain) git commands, so
when they are later lazy-initialized again, then they will list and
cache any newly installed commmands as well.

Unfortunately, since d401f3debc (git-completion.bash: introduce
__gitcomp_builtin, 2018-02-09) and subsequent patches this doesn't
work for a lot of git commands' options. To eliminate a lot of
hard-to-maintain hard-coded lists of options, those commits changed
the completion script to use a bunch of programmatically created and
lazy-initialized variables to cache the options of those builtin
porcelain commands that use parse-options. These variables are not
cleared upon sourcing the completion script, therefore they continue
caching the old lists of options, even when some commands recently
learned new options or when deprecated options were removed.

Always 'unset' these variables caching the options of builtin commands
when sourcing the completion script.

Redirect 'unset's stderr to /dev/null, because ZSH's 'unset' complains
if it's invoked without any arguments, i.e. no variables caching
builtin's options are set. This can happen, if someone were to source
the completion script twice without completing any --options in
between. Bash stays silent in this case.

Add tests to ensure that these variables are indeed cleared when the
completion script is sourced; not just the variables caching options,
but all other caching variables, i.e. the variables caching commands,
porcelain commands and merge strategies as well.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: more subcommands in _git_notes()Nguyễn Thái Ngọc Duy Wed, 7 Mar 2018 01:05:04 +0000 (08:05 +0700)

completion: more subcommands in _git_notes()

Two subcommands are added for completion: merge and get-ref. get-ref
is more like plumbing. But since it does not share the prefix with any
other subcommands, it won't slow anybody down.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: complete --{reuse,reedit}-message= for... Nguyễn Thái Ngọc Duy Wed, 7 Mar 2018 01:05:03 +0000 (08:05 +0700)

completion: complete --{reuse,reedit}-message= for all notes subcmds

The new subcommand that takes these options is 'git notes edit'. Just
accept the options from subcommands since we handle them the same way
in builtin/notes.c anyway. If a user does

git prune --reuse-message=...

just let the command catches that error when it's executed.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: simplify _git_notesNguyễn Thái Ngọc Duy Wed, 7 Mar 2018 01:05:02 +0000 (08:05 +0700)

completion: simplify _git_notes

This also adds completion for 'git notes remove' and 'git notes edit'.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: don't set PARSE_OPT_NOCOMPLETE on --rerere... Nguyễn Thái Ngọc Duy Wed, 7 Mar 2018 01:05:01 +0000 (08:05 +0700)

completion: don't set PARSE_OPT_NOCOMPLETE on --rerere-autoupdate

There is not a strong reason to hide this option, and git-merge already
completes this one. Let's allow to complete this for all commands (and
let git-completion.bash do the suppressing if needed).

This makes --rerere-autoupdate completable for am, cherry-pick and
revert. rebase completion is fixed manually because it's a shell
script and does not benefit from --git-completion-helper.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_worktreeNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:20 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_worktree

The new completable options for "worktree add" are:

--checkout
--guess-remote
--lock
--track

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_tagNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:19 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_tag

The new completable options are:

--color
--format=
--ignore-case

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_statusNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:18 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_status

The new completable options are --null and --show-stash.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_show_branchNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:17 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_show_branch

No new completable options!

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_rmNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:16 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_rm

No new completable options!

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_revertNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:15 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_revert

The new completable option is --gpg-sign

In-progress options like --continue will be part of --git-completion-helper
then filtered out by _git_revert() unless the operation is in
progress. This helps keep marking of these operations in just one place.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_resetNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:14 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_reset

The new completable options are:

--intent-to-add
--quiet
--recurse-submodules

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_replaceNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:13 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_replace

The new completable option is --raw.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote: force completing --mirror= instead of --mirrorNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:12 +0000 (18:02 +0700)

remote: force completing --mirror= instead of --mirror

"git remote --mirror" is a special case. Technically it is possible to
specify --mirror without any argument. But we will get a "dangerous,
deprecated!" warning in that case.

This new parse-opt flag allows --git-completion-helper to always
complete --mirror=, ignoring the dangerous use case.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_remoteNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:11 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_remote

No new completable options!

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_pushNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:10 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_push

The new completable options are:

--atomic
--exec=
--ipv4
--ipv6
--no-verify
--porcelain
--progress
--push-option
--signed

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_pullNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:09 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_pull

This is really nice. Since pull_options[] already declares all
passthru options to 'merge' or 'fetch', a single

git pull --git-completion-helper

would provide all completable options (--no- variants are a separate
issue). Dead shell variables can now be deleted.

New completable options are:

--allow-unrelated-histories
--ipv4
--ipv6
--jobs
--refmap=
--signoff
--strategy-option=

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_notesNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:08 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_notes

The new completable options are:

--allow-empty (notes add and notes append)
--for-rewrite= (notes copy)

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_name_revNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:07 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_name_rev

The new completable options are:

--always
--exclude
--name-only
--refs
--undefined

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_mvNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:06 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_mv

The new completable option is --verbose.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_merge_baseNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:05 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_merge_base

The new completion option is --all.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_mergeNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:04 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_merge

New completable options are:

--allow-unrelated-histories
--message=
--overwrite-ignore
--signoff
--strategy-option=
--summary
--verify

The variable $__git_merge_options remains because _git_pull() still
needs it. It will soon be gone after _git_pull() is updated.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_ls_remoteNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:03 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_ls_remote

The new completable options are --quiet and --upload-pack=.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_ls_filesNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:02 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_ls_files

The new completable options are:

--debug
--empty-directory
--eol
--recurse-submodules
--resolve-undo

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_initNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:01 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_init

The new completable option is --separate-git-dir=.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_helpNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:02:00 +0000 (18:02 +0700)

completion: use __gitcomp_builtin in _git_help

No new completable options!

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_grepNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:59 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_grep

The new completable options are:

--after-context=
--before-context=
--color
--context
--exclude-standard
--quiet
--recurse-submodules
--textconv

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_gcNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:58 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_gc

The new completable option is --quiet.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_fsckNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:57 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_fsck

The new completable options are:

--connectivity-only
--dangling
--progress
--reflogs

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_fetchNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:56 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_fetch

New completable options:

--deepen=
--ipv4
--ipv6
--jobs=
--multiple
--progress
--refmap=
--shallow-exclude=
--shallow-since=
--update-head-ok

Since _git_pull() needs fetch options too, $__git_fetch_options
remains. This variable will soon be gone after _git_pull() is updated.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_difftoolNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:55 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_difftool

Since we can't automatically extract diff options for completion yet,
difftool will take all options from $__git_diff_common_options. This
brings _a lot_ more completable options to difftool.

--ignore-submodules is added to $__git_diff_common_options to avoid
regression in difftool. But it's a good thing anyway even for other
diff commands.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_describeNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:54 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_describe

No new completable options!

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_configNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:53 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_config

The new completable options are:

--blob=
--bool
--bool-or-int
--edit
--expiry-date
--get-color
--get-colorbool
--get-urlmatch
--includes
--int
--null
--path
--show-origin

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_commitNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:52 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_commit

The new comletable options are:

--branch
--gpg-sign
--long
--no-post-rewrite
--null
--porcelain
--status

--allow-empty is no longer completable because it's a hidden option
since 4741edd549 (Remove deprecated OPTION_BOOLEAN for parsing arguments
- 2013-08-03)

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_cloneNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:51 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_clone

The new completable options are:

--config
--dissociate
--ipv4
--ipv6
--jobs=
--progress
--reference-if-able
--separate-git-dir=
--shallow-exclude
--shallow-since=
--verbose

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_cleanNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:50 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_clean

The new completable options are --exclude and --interactive

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_cherry_pickNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:49 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_cherry_pick

The new completable options are:

--allow-empty
--allow-empty-message
--ff
--gpg-sign
--keep-redundant-commits
--strategy-option

In-progress options like --continue will be part of --git-completion-helper
then filtered out by _git_cherry_pick() unless the operation is in
progress. This helps keep marking of these operations in just one place.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_checkoutNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:48 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_checkout

The new completable options are:

--ignore-other-worktrees
--progress

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_branchNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:47 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_branch

The new completable options are:

--all
--create-reflog
--format=
--ignore-case
--quiet

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_applyNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:46 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_apply

The new completable options are:

--3way
--allow-overlap
--build-fake-ancestor=
--directory
--exclude
--include

--index-info is no longer completable but that's because it's renamed to
--build-fake-ancestor in 26b2800768 (apply: get rid of --index-info in
favor of --build-fake-ancestor - 2007-09-17)

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_amNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:45 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_am

The new completable options are:

--directory
--exclude
--gpg-sign
--include
--keep-cr
--keep-non-patch
--message-id
--no-keep-cr
--patch-format
--quiet
--reject
--resolvemsg=

In-progress options like --continue will be part of --git-completion-helper
then filtered out by _git_am() unless the operation is in progress. This
helps keep marking of these operations in just one place.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use __gitcomp_builtin in _git_addNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:44 +0000 (18:01 +0700)

completion: use __gitcomp_builtin in _git_add

The new completable options are

--all
--ignore-missing
--ignore-removal
--renormalize
--verbose

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-completion.bash: introduce __gitcomp_builtinNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:43 +0000 (18:01 +0700)

git-completion.bash: introduce __gitcomp_builtin

This is a __gitcomp wrapper that will execute

git ... --git-completion-helper

to get the list of completable options. The call will be made only
once and cached to avoid performance issues, especially on Windows.

__gitcomp_builtin() allows callers to change its output a bit by adding
some more options, or removing some.

- Current --git-completion-helper for example does not output --no-foo
form, this has to be added manually by __gitcomp_builtin() callers
when necessary

- Some options from --git-completion-helper should only be available in
certain conditions (e.g. --continue and friends). __gitcomp_builtin()
callers can remove them if the conditions are not met.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

parse-options: let OPT__FORCE take optional flags argumentNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:42 +0000 (18:01 +0700)

parse-options: let OPT__FORCE take optional flags argument

--force option is most likely hidden from command line completion for
safety reasons. This is done by adding an extra flag
PARSE_OPT_NOCOMPLETE. Update OPT__FORCE() to accept additional
flags. Actual flag change comes later depending on individual
commands.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

parse-options: add OPT_xxx_F() variantsNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:41 +0000 (18:01 +0700)

parse-options: add OPT_xxx_F() variants

These macros allow us to add extra parse-options flag, the main one in
my mind is PARSE_OPT_NOCOMPLETE to hide certain options from
--git-completion-helper.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

parse-options: support --git-completion-helperNguyễn Thái Ngọc Duy Fri, 9 Feb 2018 11:01:40 +0000 (18:01 +0700)

parse-options: support --git-completion-helper

This option is designed to be used by git-completion.bash. For many
simple cases, what we do in there is usually

__gitcomp "lots of completion options"

which has to be manually updated when a new user-visible option is
added. With support from parse-options, we can write

__gitcomp "$(git command --git-completion-helper)"

and get that list directly from the parser for free. Dangerous/Unpopular
options could be hidden with the new "NOCOMPLETE" flag.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

First batch after 2.16Junio C Hamano Tue, 23 Jan 2018 21:21:10 +0000 (13:21 -0800)

First batch after 2.16

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'nd/add-i-ignore-submodules'Junio C Hamano Tue, 23 Jan 2018 21:16:41 +0000 (13:16 -0800)

Merge branch 'nd/add-i-ignore-submodules'

"git add -p" was taught to ignore local changes to submodules as
they do not interfere with the partial addition of regular changes
anyway.

* nd/add-i-ignore-submodules:
add--interactive: ignore submodule changes except HEAD

Merge branch 'mm/send-email-fallback-to-local-mail... Junio C Hamano Tue, 23 Jan 2018 21:16:41 +0000 (13:16 -0800)

Merge branch 'mm/send-email-fallback-to-local-mail-address'

Instead of maintaining home-grown email address parsing code, ship
a copy of reasonably recent Mail::Address to be used as a fallback
in 'git send-email' when the platform lacks it.

* mm/send-email-fallback-to-local-mail-address:
send-email: add test for Linux's get_maintainer.pl
perl/Git: remove now useless email-address parsing code
send-email: add and use a local copy of Mail::Address

Merge branch 'ab/doc-cat-file-e-still-shows-errors'Junio C Hamano Tue, 23 Jan 2018 21:16:41 +0000 (13:16 -0800)

Merge branch 'ab/doc-cat-file-e-still-shows-errors'

Doc update.

* ab/doc-cat-file-e-still-shows-errors:
cat-file doc: document that -e will return some output

Merge branch 'as/read-tree-prefix-doc-fix'Junio C Hamano Tue, 23 Jan 2018 21:16:41 +0000 (13:16 -0800)

Merge branch 'as/read-tree-prefix-doc-fix'

Doc update.

* as/read-tree-prefix-doc-fix:
doc/read-tree: remove obsolete remark

Merge branch 'ys/bisect-object-id-missing-conversion... Junio C Hamano Tue, 23 Jan 2018 21:16:40 +0000 (13:16 -0800)

Merge branch 'ys/bisect-object-id-missing-conversion-fix'

Fix for a commented-out code to adjust it to a rather old API change.

* ys/bisect-object-id-missing-conversion-fix:
bisect: debug: convert struct object to object_id

Merge branch 'tg/stash-with-pathspec-fix'Junio C Hamano Tue, 23 Jan 2018 21:16:39 +0000 (13:16 -0800)

Merge branch 'tg/stash-with-pathspec-fix'

"git stash -- <pathspec>" incorrectly blew away untracked files in
the directory that matched the pathspec, which has been corrected.

* tg/stash-with-pathspec-fix:
stash: don't delete untracked files that match pathspec

Merge branch 'sb/submodule-update-reset-fix'Junio C Hamano Tue, 23 Jan 2018 21:16:39 +0000 (13:16 -0800)

Merge branch 'sb/submodule-update-reset-fix'

When resetting the working tree files recursively, the working tree
of submodules are now also reset to match.

* sb/submodule-update-reset-fix:
submodule: submodule_move_head omits old argument in forced case
unpack-trees: oneway_merge to update submodules
t/lib-submodule-update.sh: fix test ignoring ignored files in submodules
t/lib-submodule-update.sh: clarify test

Merge branch 'bw/oidmap-autoinit'Junio C Hamano Tue, 23 Jan 2018 21:16:39 +0000 (13:16 -0800)

Merge branch 'bw/oidmap-autoinit'

Code clean-up.

* bw/oidmap-autoinit:
oidmap: ensure map is initialized

Merge branch 'ab/commit-m-with-fixup'Junio C Hamano Tue, 23 Jan 2018 21:16:38 +0000 (13:16 -0800)

Merge branch 'ab/commit-m-with-fixup'

"git commit --fixup" did not allow "-m<message>" option to be used
at the same time; allow it to annotate resulting commit with more
text.

* ab/commit-m-with-fixup:
commit: add support for --fixup <commit> -m"<extra message>"
commit doc: document that -c, -C, -F and --fixup with -m error

Merge branch 'cc/codespeed'Junio C Hamano Tue, 23 Jan 2018 21:16:38 +0000 (13:16 -0800)

Merge branch 'cc/codespeed'

"perf" test output can be sent to codespeed server.

* cc/codespeed:
perf/run: read GIT_PERF_REPO_NAME from perf.repoName
perf/run: learn to send output to codespeed server
perf/run: learn about perf.codespeedOutput
perf/run: add conf_opts argument to get_var_from_env_or_config()
perf/aggregate: implement codespeed JSON output
perf/aggregate: refactor printing results
perf/aggregate: fix checking ENV{GIT_PERF_SUBSECTION}

Merge branch 'ab/perf-grep-threads'Junio C Hamano Tue, 23 Jan 2018 21:16:37 +0000 (13:16 -0800)

Merge branch 'ab/perf-grep-threads'

More perf tests for threaded grep

* ab/perf-grep-threads:
perf: amend the grep tests to test grep.threads

Merge branch 'sb/diff-blobfind-pickaxe'Junio C Hamano Tue, 23 Jan 2018 21:16:37 +0000 (13:16 -0800)

Merge branch 'sb/diff-blobfind-pickaxe'

"diff" family of commands learned "--find-object=<object-id>" option
to limit the findings to changes that involve the named object.

* sb/diff-blobfind-pickaxe:
diff: use HAS_MULTI_BITS instead of counting bits manually
diff: properly error out when combining multiple pickaxe options
diffcore: add a pickaxe option to find a specific blob
diff: introduce DIFF_PICKAXE_KINDS_MASK
diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit
diff.h: make pickaxe_opts an unsigned bit field

Merge branch 'jk/abort-clone-with-existing-dest'Junio C Hamano Tue, 23 Jan 2018 21:16:37 +0000 (13:16 -0800)

Merge branch 'jk/abort-clone-with-existing-dest'

"git clone $there $here" is allowed even when here directory exists
as long as it is an empty directory, but the command incorrectly
removed it upon a failure of the operation.

* jk/abort-clone-with-existing-dest:
clone: do not clean up directories we didn't create
clone: factor out dir_exists() helper
t5600: modernize style
t5600: fix outdated comment about unborn HEAD

Merge branch 'jc/merge-symlink-ours-theirs'Junio C Hamano Tue, 23 Jan 2018 21:16:37 +0000 (13:16 -0800)

Merge branch 'jc/merge-symlink-ours-theirs'

"git merge -Xours/-Xtheirs" learned to use our/their version when
resolving a conflicting updates to a symbolic link.

* jc/merge-symlink-ours-theirs:
merge: teach -Xours/-Xtheirs to symbolic link merge

Merge branch 'rs/lose-leak-pending'Junio C Hamano Tue, 23 Jan 2018 21:16:36 +0000 (13:16 -0800)

Merge branch 'rs/lose-leak-pending'

API clean-up around revision traversal.

* rs/lose-leak-pending:
commit: remove unused function clear_commit_marks_for_object_array()
revision: remove the unused flag leak_pending
checkout: avoid using the rev_info flag leak_pending
bundle: avoid using the rev_info flag leak_pending
bisect: avoid using the rev_info flag leak_pending
object: add clear_commit_marks_all()
ref-filter: use clear_commit_marks_many() in do_merge_filter()
commit: use clear_commit_marks_many() in remove_redundant()
commit: avoid allocation in clear_commit_marks_many()

Merge branch 'jm/svn-pushmergeinfo-fix'Junio C Hamano Tue, 23 Jan 2018 21:16:36 +0000 (13:16 -0800)

Merge branch 'jm/svn-pushmergeinfo-fix'

"git svn dcommit" did not take into account the fact that a
svn+ssh:// URL with a username@ (typically used for pushing) refers
to the same SVN repository without the username@ and failed when
svn.pushmergeinfo option is set.

* jm/svn-pushmergeinfo-fix:
git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames.

Merge branch 'nd/ita-wt-renames-in-status'Junio C Hamano Tue, 23 Jan 2018 21:16:28 +0000 (13:16 -0800)

Merge branch 'nd/ita-wt-renames-in-status'

"git status" after moving a path in the working tree (hence making
it appear "removed") and then adding with the -N option (hence
making that appear "added") detected it as a rename, but did not
report the old and new pathnames correctly.

* nd/ita-wt-renames-in-status:
wt-status.c: handle worktree renames
wt-status.c: rename rename-related fields in wt_status_change_data
wt-status.c: catch unhandled diff status codes
wt-status.c: coding style fix
Use DIFF_DETECT_RENAME for detect_rename assignments
t2203: test status output with porcelain v2 format

Merge branch 'dk/describe-all-output-fix'Junio C Hamano Tue, 23 Jan 2018 21:16:28 +0000 (13:16 -0800)

Merge branch 'dk/describe-all-output-fix'

An old regression in "git describe --all $annotated_tag^0" has been
fixed.

* dk/describe-all-output-fix:
describe: prepend "tags/" when describing tags with embedded name

Sync with v2.16.1Junio C Hamano Mon, 22 Jan 2018 05:14:54 +0000 (21:14 -0800)

Sync with v2.16.1

* maint:
Git 2.16.1
t5601-clone: test case-conflicting files on case-insensitive filesystem
repository: pre-initialize hash algo pointer

Git 2.16.1 v2.16.1Junio C Hamano Mon, 22 Jan 2018 05:14:25 +0000 (21:14 -0800)

Git 2.16.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Start 2.17 cycleJunio C Hamano Mon, 22 Jan 2018 05:14:09 +0000 (21:14 -0800)

Start 2.17 cycle

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'bc/hash-algo' into maintJunio C Hamano Mon, 22 Jan 2018 05:12:37 +0000 (21:12 -0800)

Merge branch 'bc/hash-algo' into maint

* bc/hash-algo:
t5601-clone: test case-conflicting files on case-insensitive filesystem
repository: pre-initialize hash algo pointer

t5601-clone: test case-conflicting files on case-insens... Eric Sunshine Sun, 21 Jan 2018 08:07:28 +0000 (03:07 -0500)

t5601-clone: test case-conflicting files on case-insensitive filesystem

A recently introduced regression caused a segfault at clone time on
case-insensitive filesystems when filenames differing only in case are
present. This bug has already been fixed (repository: pre-initialize
hash algo pointer, 2018-01-18), but it's not the first time similar
problems have arisen. Therefore, introduce a test to catch this case and
protect against future regressions.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

repository: pre-initialize hash algo pointerbrian m. carlson Fri, 19 Jan 2018 04:18:25 +0000 (04:18 +0000)

repository: pre-initialize hash algo pointer

There are various git subcommands (among them, clone) which don't set up
the repository (that is, they lack RUN_SETUP or RUN_SETUP_GENTLY) but
end up needing to have information about the hash algorithm in use.
Because the hash algorithm is part of struct repository and it's only
initialized in repository setup, we can end up dereferencing a NULL
pointer in some cases if we call one of these subcommands and look up
the empty blob or empty tree values.

A "git clone" of a project that has two paths that differ only in
case suffers from this if it is run on a case insensitive platform.
When the command attempts to check out one of these two paths after
checking out the other one, the checkout codepath needs to see if
the version that is already on the filesystem (which should not
happen if the FS were case sensitive) is dirty, and it needs to
exercise the hashing code at that point.

In the future, we can add a command line option for this or read it
from the configuration, but until we're ready to expose that
functionality to the user, simply initialize the repository
structure to use the current hash algorithm, SHA-1.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.16 v2.16.0Junio C Hamano Wed, 17 Jan 2018 21:06:51 +0000 (13:06 -0800)

Git 2.16

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge tag 'l10n-2.16.0-rnd2' of git://github.com/git... Junio C Hamano Tue, 16 Jan 2018 22:49:58 +0000 (14:49 -0800)

Merge tag 'l10n-2.16.0-rnd2' of git://github.com/git-l10n/git-po

l10n for Git 2.16.0 round 2

* tag 'l10n-2.16.0-rnd2' of git://github.com/git-l10n/git-po: (24 commits)
l10n: de.po: translate 72 new messages
l10n: de.po: improve messages when a branch starts to track another ref
l10n: bg.po: Updated Bulgarian translation (3288t)
l10n: TEAMS: add zh_CN team members
l10n: zh_CN: for git v2.16.0 l10n round 2
l10n: sv.po: Update Swedish translation (3288t0f0u)
l10n: ru.po: update Russian translation
l10n: TEAMS: Add ko team members
l10n: ko.po: Update Korean translation
l10n: fr.po 2.16 round 2
l10n: es.po: Spanish translation 2.16.0 round 2
l10n: vi.po(3288t): Updated Vietnamese translation for v2.16.0 round 2
l10n: git.pot: v2.16.0 round 2 (8 new, 4 removed)
l10n: es.po: Update Spanish Translation v2.16.0
l10n: fr.po v2.16.0 round 1
l10n: bg.po: Updated Bulgarian translation (3284t)
l10n: sv.po: Update Swedish translation (3284t0f0u)
l10n: fr.po: "worktree list" mistranslated as prune
l10n: git.pot: v2.16.0 round 1 (64 new, 25 removed)
l10n: fixes to German translation
...

add--interactive: ignore submodule changes except HEADNguyễn Thái Ngọc Duy Sat, 13 Jan 2018 12:10:38 +0000 (19:10 +0700)

add--interactive: ignore submodule changes except HEAD

For 'add -i' and 'add -p', the only action we can take on a dirty
submodule entry is update the index with a new value from its HEAD. The
content changes inside (from its own index, untracked files...) do not
matter, at least until 'git add -i' learns about launching a new
interactive add session inside a submodule.

Ignore all other submodules changes except HEAD. This reduces the number
of entries the user has to check through in 'git add -i', and the number
of 'no' they have to answer to 'git add -p' when dirty submodules are
present.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: de.po: translate 72 new messagesRalf Thielow Tue, 2 Jan 2018 09:14:40 +0000 (10:14 +0100)

l10n: de.po: translate 72 new messages

Translate 72 new messages came from git.pot update in 18a907225 (l10n:
git.pot: v2.16.0 round 1 (64 new, 25 removed)) and 005c62fe4 (l10n:
git.pot: v2.16.0 round 2 (8 new, 4 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>

l10n: de.po: improve messages when a branch starts... Ralf Thielow Sat, 16 Dec 2017 19:32:16 +0000 (20:32 +0100)

l10n: de.po: improve messages when a branch starts to track another ref

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

RelNotes: minor typofixSZEDER Gábor Fri, 12 Jan 2018 10:47:36 +0000 (11:47 +0100)

RelNotes: minor typofix

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.16-rc2 v2.16.0-rc2Junio C Hamano Thu, 11 Jan 2018 21:20:41 +0000 (13:20 -0800)

Git 2.16-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jh/object-filtering'Junio C Hamano Thu, 11 Jan 2018 21:16:37 +0000 (13:16 -0800)

Merge branch 'jh/object-filtering'

Hotfix for a topic already in 'master'.

* jh/object-filtering:
oidset: don't return value from oidset_init

Merge branch 'tg/worktree-create-tracking'Junio C Hamano Thu, 11 Jan 2018 21:16:36 +0000 (13:16 -0800)

Merge branch 'tg/worktree-create-tracking'

Doc hotfix.

* tg/worktree-create-tracking:
Documentation/git-worktree.txt: add missing `

Merge branch 'js/test-with-ws-in-path'Junio C Hamano Thu, 11 Jan 2018 21:16:36 +0000 (13:16 -0800)

Merge branch 'js/test-with-ws-in-path'

Hot fix to a test.

* js/test-with-ws-in-path:
t3900: add some more quotes

l10n: bg.po: Updated Bulgarian translation (3288t)Alexander Shopov Thu, 11 Jan 2018 20:59:37 +0000 (21:59 +0100)

l10n: bg.po: Updated Bulgarian translation (3288t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>

Documentation/git-worktree.txt: add missing `Ralf Thielow Thu, 11 Jan 2018 18:18:21 +0000 (19:18 +0100)

Documentation/git-worktree.txt: add missing `

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

cat-file doc: document that -e will return some outputÆvar Arnfjörð Bjarmason Wed, 10 Jan 2018 12:55:53 +0000 (12:55 +0000)

cat-file doc: document that -e will return some output

The -e option added in 7950571ad7 ("A few more options for
git-cat-file", 2005-12-03) has always errored out with message on
stderr saying that the provided object is malformed, like this:

$ git cat-file -e malformed; echo $?
fatal: Not a valid object name malformed
128

A reader of this documentation may be misled into thinking that

if ! git cat-file -e "$object" [...]

as opposed to:

if ! git cat-file -e "$object" 2>/dev/null [...]

is sufficient to implement a truly silent test that checks whether
some arbitrary $object string was both valid, and pointed to an
object that exists.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3900: add some more quotesBeat Bolli Wed, 10 Jan 2018 09:58:32 +0000 (10:58 +0100)

t3900: add some more quotes

In 89a70b80 ("t0302 & t3900: add forgotten quotes", 2018-01-03), quotes
were added to protect against spaces in $HOME. In the test_when_finished
command, two files are deleted which must be quoted individually.

[jc: with \$HOME in the test_when_finished command quoted, as
pointed out by j6t].

Signed-off-by: Beat Bolli <dev+git@drbeat.li>
Helped-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

RelNotes update before -rc2Junio C Hamano Wed, 10 Jan 2018 22:01:50 +0000 (14:01 -0800)

RelNotes update before -rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/perl-path-workaround-in-tests'Junio C Hamano Wed, 10 Jan 2018 22:01:31 +0000 (14:01 -0800)

Merge branch 'js/perl-path-workaround-in-tests'

* js/perl-path-workaround-in-tests:
mingw: handle GITPERLLIB in t0021 in a Windows-compatible way

Merge branch 'ew/empty-merge-with-dirty-index'Junio C Hamano Wed, 10 Jan 2018 22:01:25 +0000 (14:01 -0800)

Merge branch 'ew/empty-merge-with-dirty-index'

"git merge -s recursive" did not correctly abort when the index is
dirty, if the merged tree happened to be the same as the current
HEAD, which has been fixed.

* ew/empty-merge-with-dirty-index:
merge-recursive: do not look at the index during recursive merge

Merge branch 'ma/bisect-leakfix'Junio C Hamano Wed, 10 Jan 2018 22:01:25 +0000 (14:01 -0800)

Merge branch 'ma/bisect-leakfix'

A hotfix for a recent update that broke 'git bisect'.

* ma/bisect-leakfix:
bisect: fix a regression causing a segfault

Merge branch 'js/fix-merge-arg-quoting-in-rebase-p'Junio C Hamano Wed, 10 Jan 2018 22:01:24 +0000 (14:01 -0800)

Merge branch 'js/fix-merge-arg-quoting-in-rebase-p'

"git rebase -p -X<option>" did not propagate the option properly
down to underlying merge strategy backend.

* js/fix-merge-arg-quoting-in-rebase-p:
rebase -p: fix quoting when calling `git merge`

mingw: handle GITPERLLIB in t0021 in a Windows-compatib... Johannes Schindelin Sat, 6 Jan 2018 22:01:22 +0000 (23:01 +0100)

mingw: handle GITPERLLIB in t0021 in a Windows-compatible way

Git's assumption that all path lists are colon-separated is not only
wrong on Windows, it is not even an assumption that is compatible with
POSIX.

In the interest of time, let's not try to fix this properly but simply
work around the obvious breakage on Windows, where the MSYS2 Bash used
by Git for Windows to interpret the Git's Unix shell scripts will
automagically convert path lists in the environment to
semicolon-separated lists of Windows paths (with drive letter and the
corresponding colon and all that jazz).

In other words, we simply look whether there is a semicolon in
GITPERLLIB and split by semicolons if found instead of colons. This is
not fool-proof, of course, as the path list could consist of a single
path. But that is not the case in Git for Windows' test suite, there are
always two paths in GITPERLLIB.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: TEAMS: add zh_CN team membersJiang Xin Tue, 9 Jan 2018 01:55:12 +0000 (09:55 +0800)

l10n: TEAMS: add zh_CN team members

Add Fangyi Zhou to zh_CN l10n team members.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

l10n: zh_CN: for git v2.16.0 l10n round 2Jiang Xin Sun, 31 Dec 2017 02:50:17 +0000 (10:50 +0800)

l10n: zh_CN: for git v2.16.0 l10n round 2

Translate 72 messages (3288t0f0u) for git v2.16.0-rc1.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: 依云 <lilydjwg@gmail.com>
Reviewed-by: Fangyi Zhou <fangyi.zhou@yuriko.moe>

Merge branch 'master' of git://github.com/nafmo/git... Jiang Xin Wed, 10 Jan 2018 03:30:04 +0000 (11:30 +0800)

Merge branch 'master' of git://github.com/nafmo/git-l10n-sv

* 'master' of git://github.com/nafmo/git-l10n-sv:
l10n: sv.po: Update Swedish translation (3288t0f0u)

Merge branch 'russian-l10n' of https://github.com/DJm00... Jiang Xin Wed, 10 Jan 2018 03:28:56 +0000 (11:28 +0800)

Merge branch 'russian-l10n' of https://github.com/DJm00n/git-po-ru

* 'russian-l10n' of https://github.com/DJm00n/git-po-ru:
l10n: ru.po: update Russian translation