status: show the branch name if possible in in-progress info

The typical use-case is starting a rebase, do something else, come
back the day after, run "git status" or make a new commit and wonder
what in the world's going on. Which branch is being rebased is
probably the most useful tidbit to help, but the target may help
too.

Ideally, I would have loved to see "rebasing master on
origin/master", but the target ref name is not stored during rebase,
so this patch writes "rebasing master on a78c8c98b" as a
half-measure to remind future users of that potential improvement.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
apply: verify submodule commit object name better

A textual patch also records the submodule commit object name in
full.  Make the parsing more robust by reading from there and
verifying the (possibly abbreviated) name on the index line matches.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'jc/remove-treesame-parent-in-simplify-merges' into jch

The --simplify-merges logic did not cull irrelevant parents from a
merge that is otherwise not interesting with respect to the paths
we are following.

This touches a fairly core part of the revision traversal
infrastructure; even though I think this change is correct, please
report immediately if you find any unintended side effect.

Will cook in 'next'.

* jc/remove-treesame-parent-in-simplify-merges:
  simplify-merges: drop merge from irrelevant side branch

Conflicts:
	revision.c
Merge branch 'ft/transport-report-segv' into jch

A failure to push due to non-ff while on an unborn branch
dereferenced a NULL pointer when showing an error message.

Will merge to 'master'.

* ft/transport-report-segv:
  push: fix segfault when HEAD points nowhere

Conflicts:
	transport.c
Merge branch 'ab/gitweb-use-same-scheme' into jch

Avoid mixed contents on a page coming via http and https when
gitweb is hosted on a https server.

Will merge to 'master'.

* ab/gitweb-use-same-scheme:
  gitweb: refer to picon/gravatar images over the same scheme
Merge branch 'sb/gpg-plug-fd-leak' into jch

We forgot to close the file descriptor reading from "gpg" output,
killing "git log --show-signature" on a long history.

Will merge to 'master'.

* sb/gpg-plug-fd-leak:
  gpg: close stderr once finished with it in verify_signed_buffer()
Merge branch 'sb/gpg-i18n' into jch

Will merge to 'master'.

* sb/gpg-i18n:
  gpg: allow translation of more error messages
Merge branch 'sb/run-command-fd-error-reporting' into jch

Will merge to 'master'.

* sb/run-command-fd-error-reporting:
  run-command: be more informative about what failed
Merge branch 'sp/smart-http-content-type-check' into jch

The smart HTTP clients forgot to verify the content-type that comes
back from the server side to make sure that the request is being
handled properly.

Will merge to 'master'.

* sp/smart-http-content-type-check:
  t5551: fix expected error output
  Verify Content-Type from smart HTTP servers
Merge branch 'jc/fake-ancestor-with-non-blobs' into jch

Rebasing the history of superproject with change in the submodule
has been broken since v1.7.12.

Will merge to 'master'.

* jc/fake-ancestor-with-non-blobs:
  apply: diagnose incomplete submodule object name better
  apply: simplify build_fake_ancestor()
  git-am: record full index line in the patch used while rebasing
Merge branch 'nd/branch-error-cases' into jch

Fix various error messages and conditions in "git branch", e.g. we
advertised "branch -d/-D" to remove one or more branches but actually
implemented removal of zero or more branches---request to remove no
branches was not rejected.

Will merge to 'master'.

* nd/branch-error-cases:
  branch: let branch filters imply --list
  docs: clarify git-branch --list behavior
  branch: mark more strings for translation
  branch: give a more helpful message on redundant arguments
  branch: reject -D/-d without branch name
Merge branch 'jk/doc-makefile-cleanup' into jch

Will merge to 'master'.

* jk/doc-makefile-cleanup:
  Documentation/Makefile: clean up MAN*_TXT lists
Merge branch 'jk/mergetool' into jch

Cleans up mergetool/difftool combo.

Will merge to 'master'.

* jk/mergetool:
  mergetools: simplify how we handle "vim" and "defaults"
  mergetool--lib: don't call "exit" in setup_tool
  mergetool--lib: improve show_tool_help() output
  mergetools/vim: remove redundant diff command
  git-difftool: use git-mergetool--lib for "--tool-help"
  git-mergetool: don't hardcode 'mergetool' in show_tool_help
  git-mergetool: remove redundant assignment
  git-mergetool: move show_tool_help to mergetool--lib
Merge branch 'da/mergetool-docs' into jch

Build on top of the clean-up done by jk/mergetool and automatically
generate the list of mergetool and difftool backends the build
supports to be included in the documentation.

Will merge to 'master'.

* da/mergetool-docs:
  doc: generate a list of valid merge tools
  mergetool--lib: list user configured tools in '--tool-help'
  mergetool--lib: add functions for finding available tools
  mergetool--lib: improve the help text in guess_merge_tool()
  mergetool--lib: simplify command expressions

Conflicts:
	Documentation/Makefile
Merge branch 'ss/mergetools-tortoise' into jch

Update mergetools to work better with newer merge helper tortoise ships.

Will merge to 'master'.

* ss/mergetools-tortoise:
  mergetools: teach tortoisemerge to handle filenames with SP correctly
  mergetools: support TortoiseGitMerge
Merge branch 'jk/python-styles' into jch

Will merge to 'master'.

* jk/python-styles:
  CodingGuidelines: add Python coding guidelines
Merge branch 'jk/remote-helpers-doc' into jch

"git help remote-helpers" did not work; 'remote-helpers' is not
a subcommand name but a concept, so its documentation should have
been in gitremote-helpers, not git-remote-helpers.

Will merge to 'master'.

* jk/remote-helpers-doc:
  Rename {git- => git}remote-helpers.txt

Conflicts:
	Documentation/Makefile
Merge branch 'ta/doc-no-small-caps' into jch

Update documentation to change "GIT" which was a poor-man's small
caps to "Git".  The latter was the intended spelling.

Also change "git" spelled in all-lowercase to "Git" when it refers
to the system as the whole or the concept it embodies, as opposed to
the command the end users would type.

Will merge to 'master'.

* ta/doc-no-small-caps:
  Documentation: StGit is the right spelling, not StGIT
  Documentation: describe the "repository" in repository-layout
  Documentation: add a description for 'gitfile' to glossary
  Documentation: do not use undefined terms git-dir and git-file
  Documentation: the name of the system is 'Git', not 'git'
  Documentation: avoid poor-man's small caps GIT

Conflicts:
	Documentation/git-cvsimport.txt
	Documentation/howto/maintain-git.txt
Merge branch 'jn/auto-depend-workaround-buggy-ccache' into jch

An age-old workaround to prevent buggy versions of ccache from
breaking the auto-generation of dependencies, which unfortunately
is still relevant because some people use ancient distros.

Will merge to 'master'.

* jn/auto-depend-workaround-buggy-ccache:
  Makefile: explicitly set target name for autogenerated dependencies
Merge branch 'ct/autoconf-htmldir' into jch

The autoconf subsystem passed --mandir down to generated
config.mak.autogen but forgot to do the same for --htmldir.

Will merge to 'next'.

* ct/autoconf-htmldir:
  Honor configure's htmldir switch

Conflicts:
	config.mak.in