fetch --all: pass --tags/--no-tags through to each remote

When fetch is invoked with --all, we need to pass the tag-following
preference to each individual fetch; without this, we will always
auto-follow tags, preventing us from fetching the remote tags into a
remote-specific namespace, for example.

Reported-by: Oswald Buddenhagen <ossi@kde.org>
Signed-off-by: Dan Johnson <ComputerDruid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ls-remote: document the '--get-url' option

While looking for a way to expand the URL of a remote
that uses a 'url.<name>.insteadOf' config option I stumbled
over the undocumented '--get-url' option of 'git ls-remote'.
This adds some minimum documentation for that option.

And while at it, also add that option to the '-h' output.

Signed-off-by: Stefan Naewe <stefan.naewe@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'jk/maint-quiet-is-synonym-to-s-in-log' into jch

We tried to bend backwards to allow "--quiet" to be a synonym as
"-s" when given as e.g. "git show --quiet", but did not quite
succeed.

Will merge to 'master' as part of the fifth batch.

* jk/maint-quiet-is-synonym-to-s-in-log:
  log: fix --quiet synonym for -s
Merge branch 'ph/credential-gnome-keyring' into jch

The later refactoring of the shared code in the original series may
not be worth the trouble, so it is split into a separate topic that
builds on top of this one, which independently should be useful.

Will merge to 'master' as part of the fifth batch.

* ph/credential-gnome-keyring:
  contrib: add credential helper for GnomeKeyring
Merge branch 'mz/cherry-pick-cmdline-order' into jch

"git cherry-pick A C B" used to replay changes in A and then B and
then C if these three commits had committer timestamps in that
order, which is not what the user who said "A C B" naturally expects.

Will merge to 'master' as part of the fifth batch.

* mz/cherry-pick-cmdline-order:
  cherry-pick/revert: respect order of revisions to pick
  demonstrate broken 'git cherry-pick three one two'
  teach log --no-walk=unsorted, which avoids sorting

Conflicts:
	Documentation/rev-list-options.txt
Merge branch 'cn/branch-set-upstream-to' into jch

"git branch --set-upstream origin/master" is a common mistake to
create a local branch 'origin/master' and set it to integrate with
the current branch.  With a plan to deprecate this option, introduce
"git branch (-u|--set-upstream-to) origin/master" that sets the
current branch to integrate with 'origin/master' remote tracking
branch.

Will merge to 'master' as part of the fifth batch.

* cn/branch-set-upstream-to:
  branch: deprecate --set-upstream and show help if we detect possible mistaken use
  branch: add --unset-upstream option
  branch: introduce --set-upstream-to

Conflicts:
	builtin/branch.c
Merge branch 'nd/i18n-index-pack' into jch

Will merge to 'next'.

* nd/i18n-index-pack:
  i18n: mark more index-pack strings for translation
Merge branch 'jc/merge-bases' into jch

Optimise the "merge-base" computation a bit, and also update its
users that do not need the full merge-base information to call a
cheaper subset.

Will merge to 'next'.

* jc/merge-bases:
  reduce_heads(): reimplement on top of remove_redundant()
  merge-base: "--is-ancestor A B"
  get_merge_bases_many(): walk from many tips in parallel
  in_merge_bases(): use paint_down_to_common()
  merge_bases_many(): split out the logic to paint history
  in_merge_bases(): omit unnecessary redundant common ancestor reduction
  http-push: use in_merge_bases() for fast-forward check
  receive-pack: use in_merge_bases() for fast-forward check
  in_merge_bases(): support only one "other" commit

Conflicts:
	builtin/merge-base.c
Merge branch 'jc/maint-ident-missing-human-name' into jch

"git show --format='%ci'" did not give timestamp correctly for
commits created without human readable name on "committer" line.

Will merge to 'next' after eyeballing one more time.

* jc/maint-ident-missing-human-name:
  split_ident_line(): make best effort when parsing author/committer line
Merge branch 'jk/argv-array' into jch

Use argv-array API in "git fetch" implementation.
Will merge to 'next' after eyeballing one more time.

* jk/argv-array:
  submodule: use argv_array instead of hand-building arrays
  fetch: use argv_array instead of hand-building arrays
  argv-array: fix bogus cast when freeing array
  argv-array: add pop function
Merge branch 'rj/test-regex' into jch

Git ships with a fall-back regexp implementation for platforms with
buggy regexp library; give people a tool to see if they should be
using it on their platform.

Will merge to 'next' after eyeballing one more time.

* rj/test-regex:
  test-regex: Add a test to check for a bug in the regex routines

Conflicts:
	.gitignore
	Makefile
Merge branch 'er/doc-fast-import-done' into pu

Parked in 'pu' in case ESR responds with "Sorry, forgot to sign-off".

* er/doc-fast-import-done:
  fast-import: document the --done option
Merge branch 'jx/test-real-path' into pu

Running tests with the "trash" directory elsewhere with the "--root"
option did not work well if the directory was specified by a symbolic
link pointing at it.

Seems broken as it makes $(pwd) and TRASH_DIRECTORY inconsistent.
Needs rerolling.

* jx/test-real-path:
  test: set the realpath of CWD as TRASH_DIRECTORY
Merge branch 'jc/add-delete-default' into pu

"git add dir/" updated modified files and added new files, but does
not notice removed files, which may be "Huh?" to some users.  They
can of course use "git add -A dir/", but why should they?

Resurrected from graveyard, as I thought it was a worthwhile thing
to do in the longer term; waiting for comments.

* jc/add-delete-default:
  git add: notice removal of tracked paths by default
Merge branch 'tx/relative-in-the-future' into pu

Not my itch; rewritten an earlier submission by Tom Xue into
somewhat more maintainable form, though it breaks existing i18n.

Anybody interested in fixing it up?  Otherwise may discard.

* tx/relative-in-the-future:
  date: show relative dates in the future
  date: refactor the relative date logic from presentation
Merge branch 'jk/no-more-pre-exec-callback' into pu

(Originally merged to 'next' on 2012-07-23)

Will defer until the end of the 2012.
while waiting for older "less" to go extinct.

* jk/no-more-pre-exec-callback:
  pager: drop "wait for output to run less" hack
Merge branch 'jc/maint-push-refs-all' into pu

Allows pushing and fetching everything including refs/stash.
This is broken (see the log message there).

* jc/maint-push-refs-all:
  get_fetch_map(): tighten checks on dest refs
  [BROKEN] fetch/push: allow refs/*:refs/*
Merge branch 'mh/fetch-filter-refs' into pu

Code simplification and clarification.
Waiting for a follow-up patch based on Peff's idea.

* mh/fetch-filter-refs:
  filter_refs(): simplify logic
  fetch_pack(): free matching heads
  cmd_fetch_pack(): simplify computation of return value
  fetch-pack: report missing refs even if no existing refs were received
  cmd_fetch_pack: return early if finish_connect() returns an error
  filter_refs(): compress unmatched refs in heads array
  filter_refs(): do not leave gaps in return_refs
  filter_refs(): simplify by removing optimization
  Pass nr_heads to filter_refs() by reference
  Pass nr_heads to everything_local() by reference
  Pass nr_heads to do_pack_ref() by reference
  Let fetch_pack() inform caller about number of unique heads
  filter_refs(): do not check the same head_pos twice
  fetch-pack.c: name local variables more consistently
  fetch_pack(): reindent function decl and defn
  Rename static function fetch_pack() to http_fetch_pack()
  t5500: add tests of error output for missing refs

Conflicts:
	builtin/fetch-pack.c
Merge branch 'pw/p4-submit-conflicts' into pu

Waiting for the dust to settle.

* pw/p4-submit-conflicts:
  git p4: add submit --prepare-p4-only option
  git p4: add submit --dry-run option
  git p4: accept -v for --verbose
  git p4: revert deleted files after submit cancel
  git p4: rearrange submit template construction
  git p4: test clean-up after failed submit, fix added files
  git p4: standardize submit cancel due to unchanged template
  git p4: move conflict prompt into run, use [c]ontinue and [q]uit
  git p4: remove submit failure options [a]pply and [w]rite
  git p4: gracefully fail if some commits could not be applied
  git p4 test: use p4d -L option to suppress log messages
  git p4 test: remove bash-ism of combined export/assignment
Merge branch 'nd/checkout-option-parsing-fix' into pu

The option parsing of "git checkout" had error checking, dwim and
defaulting missing options, all mixed in the code, and issuing an
appropriate error message with useful context was getting harder.
Reorganize the code and allow giving a proper diagnosis when the
user says "git checkout -b -t foo bar" (e.g. "-t" is not a good name
for a branch).

Will merge to 'next' after eyeballing one more time.

* nd/checkout-option-parsing-fix:
  checkout: reorder option handling
  checkout: move more parameters to struct checkout_opts
  checkout: pass "struct checkout_opts *" as const pointer

Conflicts:
	builtin/checkout.c