<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/contrib/completion, branch v2.24.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.24.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.24.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2019-10-23T05:43:09Z</updated>
<entry>
<title>Merge branch 'mb/clarify-zsh-completion-doc'</title>
<updated>2019-10-23T05:43:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-10-23T05:43:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c1ec35dd48ddc0d18249638f18888baf9b07d422'/>
<id>urn:sha1:c1ec35dd48ddc0d18249638f18888baf9b07d422</id>
<content type='text'>
The installation instruction for zsh completion script (in
contrib/) has been a bit improved.

* mb/clarify-zsh-completion-doc:
  completion: clarify installation instruction for zsh
</content>
</entry>
<entry>
<title>completion: clarify installation instruction for zsh</title>
<updated>2019-10-18T04:55:49Z</updated>
<author>
<name>Maxim Belsky</name>
<email>public.belsky@gmail.com</email>
</author>
<published>2019-10-11T17:54:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=176f5adfdb01abeede867a305c427cf8b2f48c0e'/>
<id>urn:sha1:176f5adfdb01abeede867a305c427cf8b2f48c0e</id>
<content type='text'>
The original comment does not describe type of ~/.zsh/_git explicitly
and zsh does not warn or fail if a user create it as a dictionary.
So unexperienced users could be misled by the original comment.

There is a small update to clarify it.

Helped-by: Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;
Helped-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Signed-off-by: Maxim Belsky &lt;public.belsky@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'mr/complete-more-for-log-etc'</title>
<updated>2019-10-07T02:32:55Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-10-07T02:32:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=37ab7cb0a8e12d7f6e8e994cab48bc2383e03105'/>
<id>urn:sha1:37ab7cb0a8e12d7f6e8e994cab48bc2383e03105</id>
<content type='text'>
Completion updates.

* mr/complete-more-for-log-etc:
  completion: add missing completions for log, diff, show
</content>
</entry>
<entry>
<title>Merge branch 'dl/complete-rebase-and-archive'</title>
<updated>2019-10-07T02:32:55Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-10-07T02:32:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e392382f95fe8d3c15cf88453acb92a93fc5a942'/>
<id>urn:sha1:e392382f95fe8d3c15cf88453acb92a93fc5a942</id>
<content type='text'>
The command line completion for "git archive" and "git rebase" are
now made less prone to go out of sync with the binary.

* dl/complete-rebase-and-archive:
  completion: teach archive to use __gitcomp_builtin
  completion: teach rebase to use __gitcomp_builtin
</content>
</entry>
<entry>
<title>Merge branch 'dl/rebase-i-keep-base'</title>
<updated>2019-09-30T04:19:31Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-09-30T04:19:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=640f9cd5994ed2061405aa94972b1746bb0c393e'/>
<id>urn:sha1:640f9cd5994ed2061405aa94972b1746bb0c393e</id>
<content type='text'>
"git rebase --keep-base &lt;upstream&gt;" tries to find the original base
of the topic being rebased and rebase on top of that same base,
which is useful when running the "git rebase -i" (and its limited
variant "git rebase -x").

The command also has learned to fast-forward in more cases where it
can instead of replaying to recreate identical commits.

* dl/rebase-i-keep-base:
  rebase: teach rebase --keep-base
  rebase tests: test linear branch topology
  rebase: fast-forward --fork-point in more cases
  rebase: fast-forward --onto in more cases
  rebase: refactor can_fast_forward into goto tower
  t3432: test for --no-ff's interaction with fast-forward
  t3432: distinguish "noop-same" v.s. "work-same" in "same head" tests
  t3432: test rebase fast-forward behavior
  t3431: add rebase --fork-point tests
</content>
</entry>
<entry>
<title>Merge branch 'dl/complete-cherry-pick-revert-skip'</title>
<updated>2019-09-30T04:19:30Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-09-30T04:19:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=21db12c9ea572a34bd9d4388135b1a9553c28133'/>
<id>urn:sha1:21db12c9ea572a34bd9d4388135b1a9553c28133</id>
<content type='text'>
The command line completion support (in contrib/) learned about the
"--skip" option of "git revert" and "git cherry-pick".

* dl/complete-cherry-pick-revert-skip:
  status: mention --skip for revert and cherry-pick
  completion: add --skip for cherry-pick and revert
  completion: merge options for cherry-pick and revert
</content>
</entry>
<entry>
<title>completion: teach archive to use __gitcomp_builtin</title>
<updated>2019-09-12T20:45:29Z</updated>
<author>
<name>Denton Liu</name>
<email>liu.denton@gmail.com</email>
</author>
<published>2019-09-12T19:43:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=aeeb978ba6c757dddc1097fc4de96c0bc1c1e338'/>
<id>urn:sha1:aeeb978ba6c757dddc1097fc4de96c0bc1c1e338</id>
<content type='text'>
Currently, _git_archive() uses a hardcoded list of options for its
completion. However, we can use __gitcomp_builtin() to get a dynamically
generated list of completions instead.

Teach _git_archive() to use __gitcomp_builtin() so that newly
implemented options in archive will be automatically completed without
any mucking around in git-completion.bash. While we're at it, teach it
to complete the missing `--worktree-attributes` option as well.

Unfortunately, since some args are passed through from cmd_archive() to
write_archive() (which calls parse_archive_args()), there's no way that a
`--git-completion-helper` arg can end up reaching parse_archive_args()
since the first call to parse_options() will end up calling exit(0). As
a result, we have to carry the options supported by write_archive() in
the hardcoded string.

Signed-off-by: Denton Liu &lt;liu.denton@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>completion: teach rebase to use __gitcomp_builtin</title>
<updated>2019-09-12T20:45:28Z</updated>
<author>
<name>Denton Liu</name>
<email>liu.denton@gmail.com</email>
</author>
<published>2019-09-12T19:43:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2b9bd488ae09dc89f02be7d73f3710ee2ea7325c'/>
<id>urn:sha1:2b9bd488ae09dc89f02be7d73f3710ee2ea7325c</id>
<content type='text'>
Currently, _git_rebase() uses a hardcoded list of options for its
completion. However, we can use __gitcomp_builtin() to get a dynamically
generated list of completions instead.

Teach _git_rebase() to use __gitcomp_builtin() so that newly implemented
options in rebase will be automatically completed without any mucking
around in git-completion.bash.

Signed-off-by: Denton Liu &lt;liu.denton@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>completion: add missing completions for log, diff, show</title>
<updated>2019-09-12T19:47:52Z</updated>
<author>
<name>Max Rothman</name>
<email>max.r.rothman@gmail.com</email>
</author>
<published>2019-07-02T01:56:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d49dffde9a3964dce2412ea912b712df212e7046'/>
<id>urn:sha1:d49dffde9a3964dce2412ea912b712df212e7046</id>
<content type='text'>
The bash completion script knows some options to "git log" and
"git show" only in the positive form, (e.g. "--abbrev-commit"), but not
in their negative form (e.g. "--no-abbrev-commit"). Add them.

Also, the bash completion script is missing some other options to
"git diff", and "git show" (and thus, all other commands that take
"git diff"'s options). Add them. Of note, since "--indent-heuristic" is
no longer experimental, add that too.

Signed-off-by: Max Rothman &lt;max.r.rothman@gmail.com&gt;
Acked-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase: teach rebase --keep-base</title>
<updated>2019-08-27T22:33:40Z</updated>
<author>
<name>Denton Liu</name>
<email>liu.denton@gmail.com</email>
</author>
<published>2019-08-27T05:38:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=414d924beb41b9f39744b5574231856d5ffbcba8'/>
<id>urn:sha1:414d924beb41b9f39744b5574231856d5ffbcba8</id>
<content type='text'>
A common scenario is if a user is working on a topic branch and they
wish to make some changes to intermediate commits or autosquash, they
would run something such as

	git rebase -i --onto master... master

in order to preserve the merge base. This is useful when contributing a
patch series to the Git mailing list, one often starts on top of the
current 'master'. While developing the patches, 'master' is also
developed further and it is sometimes not the best idea to keep rebasing
on top of 'master', but to keep the base commit as-is.

In addition to this, a user wishing to test individual commits in a
topic branch without changing anything may run

	git rebase -x ./test.sh master... master

Since rebasing onto the merge base of the branch and the upstream is
such a common case, introduce the --keep-base option as a shortcut.

This allows us to rewrite the above as

	git rebase -i --keep-base master

and

	git rebase -x ./test.sh --keep-base master

respectively.

Add tests to ensure --keep-base works correctly in the normal case and
fails when there are multiple merge bases, both in regular and
interactive mode. Also, test to make sure conflicting options cause
rebase to fail. While we're adding test cases, add a missing
set_fake_editor call to 'rebase -i --onto master...side'.

While we're documenting the --keep-base option, change an instance of
"merge-base" to "merge base", which is the consistent spelling.

Helped-by: Eric Sunshine &lt;sunshine@sunshineco.com&gt;
Helped-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Helped-by: Ævar Arnfjörð Bjarmason &lt;avarab@gmail.com&gt;
Helped-by: Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;
Signed-off-by: Denton Liu &lt;liu.denton@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
