config: reject bogus section names for --rename-section

You can feed junk to "git config --rename-section", which
will result in a config file that git will not even parse
(so you cannot fix it with git-config). We already have
syntactic sanity checks when setting a variable; let's do
the same for section names.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t5541: warning message is given even with --quiet

Explicitly set push.default to matching to avoid the warning message.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'nl/http-proxy-more' into pu

The code to talk to http proxies learn to use the same credential
API used to talk to the final http destinations.  This still needs
to peek into $ENV{HTTPS_PROXY}.

By Nelson Benitez Leon (5) and others
* nl/http-proxy-more:
  http: fix proxy password passing
  http: fix proxy authentication
  http: rename HTTP_REAUTH to HTTP_AUTH_RETRY
  http: Avoid limit of retrying request only twice
  http: handle proxy authentication failure (error 407)
  http: handle proxy proactive authentication
  http: try http_proxy env var when http.proxy config option is not set
Merge branch 'mm/push-default-switch-warning' into pu

By Matthieu Moy (6) and others
* mm/push-default-switch-warning:
  t5541: warning message is given even with --quiet
  push: start warning upcoming default change for push.default
  push.default doc: explain simple after upstream
  push: document the future default change for push.default (matching -> simple)
  t5570: use explicit push refspec
  push: introduce new push.default mode "simple"
  t5528-push-default.sh: add helper functions
  Undocument deprecated alias 'push.default=tracking'
  Documentation: explain push.default option a bit more
Merge branch 'jc/split-blob' into pu

Not ready.

I finished the streaming checkout codepath, but as explained in
127b177 (bulk-checkin: support chunked-object encoding, 2011-11-30),
these are still early steps of a long and painful journey. At least
pack-objects and fsck need to learn the new encoding for the series
to be usable locally, and then index-pack/unpack-objects needs to
learn it to be used remotely.

Given that I heard a lot of noise that people want large files, and
that I was asked by somebody at GitTogether'11 privately for an
advice on how to pay developers (not me) to help adding necessary
support, I am somewhat dissapointed that the original patch series
that was sent almost two months ago still remains here without much
comments and updates from the developer community. I even made the
interface to the logic that decides where to split chunks easily
replaceable, and I deliberately made the logic in the original patch
extremely stupid to entice others, especially the "bup" fanboys, to
come up with a better logic, thinking that giving people an easy
target to shoot for, they may be encouraged to help out. The plan is
not working :-(.

* jc/split-blob:
  chunked-object: streaming checkout
  chunked-object: fallback checkout codepaths
  bulk-checkin: support chunked-object encoding
  bulk-checkin: allow the same data to be multiply hashed
  new representation types in the packstream
  packfile: use varint functions

Conflicts:
	t/t1050-large.sh
Merge branch 'jc/run-hook-env-1' into pu

Not urgent.

Updates run_hook() API to be much less specific to "commit".  It would
only be useful if people start doing more interesting things with hooks.

* jc/run-hook-env-1:
  run_hook(): enhance the interface to pass arbitrary environment
Merge branch 'th/difftool-diffall' into pu

Rolls the two-directory-diff logic from diffall script (in contrib/) into
"git difftool" framework.

Still being reworked.

By Tim Henigan
* th/difftool-diffall:
  difftool: print list of valid tools with '--tool-help'
  difftool: teach difftool to handle directory diffs
  difftool: eliminate setup_environment function
  difftool: stop appending '.exe' to git
  difftool: remove explicit change of PATH
  difftool: exit(0) when usage is printed
  difftool: add '--no-gui' option
  difftool: parse options using Getopt::Long
Merge branch 'nd/threaded-index-pack' into pu

By Nguyễn Thái Ngọc Duy (3) and Ramsay Jones (1)
* nd/threaded-index-pack:
  index-pack: disable threading if NO_PREAD is defined
  index-pack: support multithreaded delta resolving
  index-pack: split second pass obj handling into own function
  compat/win32/pthread.h: Add an pthread_key_delete() implementation

Conflicts:
	builtin/index-pack.c
Merge branch 'mm/include-userpath' into pu

The new "include.path" directive in the configuration files learned
to understand "~/path" and "~user/path".

By Jeff King (1) and Junio C Hamano (1)
* mm/include-userpath:
  fixup! config: expand tildes in include.path variable
  config: expand tildes in include.path variable
Merge branch 'nd/i18n' into pu

More message strings marked for i18n.

By Nguyễn Thái Ngọc Duy
* nd/i18n:
  help: replace underlining "help -a" headers using hyphens with a blank line

Conflicts:
	builtin/help.c
	help.c
	help.h
Merge branch 'mh/ref-api-lazy-loose' into pu

By Michael Haggerty
* mh/ref-api-lazy-loose: (30 commits)
  refs: read loose references lazily
  create_dir_entry(): allow the flag value to be passed as an argument
  read_loose_refs(): access ref_cache via the ref_dir field
  read_loose_refs(): rename function from get_ref_dir()
  struct ref_dir: store a reference to the enclosing ref_cache
  sort_ref_dir(): take (ref_entry *) instead of (ref_dir *)
  do_for_each_ref_in_dir(): take (ref_entry *) instead of (ref_dir *)
  do_for_each_ref_in_dirs(): take (ref_entry *) instead of (ref_dir *)
  add_entry(): take (ref_entry *) instead of (ref_dir *)
  search_ref_dir(): take (ref_entry *) instead of (ref_dir *)
  search_for_subdir(): take (ref_entry *) instead of (ref_dir *)
  get_ref_dir(): remove dirname argument
  get_ref_dir(): take (ref_entry *) instead of (ref_dir *)
  find_containing_direntry(): use (ref_entry *) instead of (ref_dir *)
  add_ref(): take (ref_entry *) instead of (ref_dir *)
  read_packed_refs(): take (ref_entry *) instead of (ref_dir *)
  find_ref(): take (ref_entry *) instead of (ref_dir *)
  is_refname_available(): take (ref_entry *) instead of (ref_dir *)
  get_loose_refs(): return (ref_entry *) instead of (ref_dir *)
  get_packed_refs(): return (ref_entry *) instead of (ref_dir *)
  ...
Merge branch 'rs/commit-list-append' into pu

By René Scharfe
* rs/commit-list-append:
  commit: remove commit_list_reverse()
  revision: append to list instead of insert and reverse
  sequencer: export commit_list_append()
Merge branch 'jk/maint-config-bogus-section' into pu

By Jeff King
* jk/maint-config-bogus-section:
  config: reject bogus section names for --rename-section
Merge branch 'kk/maint-gitweb-missing-owner' into pu

By Kacper Kornet
* kk/maint-gitweb-missing-owner:
  gitweb: Don't set owner if got empty value from projects.list