Merge branch 'er/python-version-requirements' into pu

* er/python-version-requirements:
  Add checks to Python scripts for version dependencies.
Merge branch 'as/check-ignore' into pu

Rerolled.  The early parts looked mostly fine; we may want to split
this into two topics and have the early half progress earlier.

* as/check-ignore:
  Add git-check-ignore sub-command
  setup.c: document get_pathspec()
  pathspec.c: extract new validate_path() for reuse
  pathspec.c: move reusable code from builtin/add.c
  add.c: remove unused argument from validate_pathspec()
  add.c: refactor treat_gitlinks()
  dir.c: provide clear_directory() for reclaiming dir_struct memory
  dir.c: keep track of where patterns came from
  dir.c: use a single struct exclude_list per source of excludes
  dir.c: rename free_excludes() to clear_exclude_list()
  dir.c: refactor is_path_excluded()
  dir.c: refactor is_excluded()
  dir.c: refactor is_excluded_from_list()
  dir.c: rename excluded() to is_excluded()
  dir.c: rename excluded_from_list() to is_excluded_from_list()
  dir.c: rename path_excluded() to is_path_excluded()
  dir.c: rename cryptic 'which' variable to more consistent name
  Improve documentation and comments regarding directory traversal API
  api-directory-listing.txt: update to match code

Conflicts:
	builtin/ls-files.c
	dir.c
Merge branch 'as/test-name-alias-uniquely' into pu

A few short-and-bland aliases used in the tests were interfering
with git-custom command in user's $PATH.

* as/test-name-alias-uniquely:
  Use longer alias names in subdirectory tests
Merge branch 'jc/maint-fmt-merge-msg-no-edit-lose-credit' into pu

Stop spending cycles to compute information to be placed on
commented lines in "merge --no-edit".

* jc/maint-fmt-merge-msg-no-edit-lose-credit:
  merge --no-edit: do not credit people involved in the side branch
Merge branch 'kb/maint-bundle-doc' into pu

* kb/maint-bundle-doc:
  Documentation: full-ness of a bundle is significant for cloning
  Documentation: correct example restore from bundle
Merge branch 'nd/maint-branch-desc-doc' into pu

* nd/maint-branch-desc-doc:
  branch: delete branch description if it's empty
  format-patch: pick up branch description when no ref is specified
  config.txt: a few lines about branch.<name>.description
Merge branch 'jc/submittingpatches' into pu

* jc/submittingpatches:
  SubmittingPatches: remove overlong checklist
  SubmittingPatches: mention subsystems with dedicated repositories
  SubmittingPatches: who am I and who cares?
Merge branch 'er/stop-recommending-parsecvs' into pu

Stop recommending a defunct third-party software.

* er/stop-recommending-parsecvs:
  Remove the suggestion to use parsecvs, which is currently broken.
Merge branch 'mb/gitweb-highlight-link-target' into pu

Expecting a reroll.

* mb/gitweb-highlight-link-target:
  Highlight the link target line in Gitweb using CSS
Merge branch 'mp/complete-paths' into pu

The completion script used to let the default completer to suggest
pathnames, which gave too many irrelevant choices (e.g. "git add"
would not want to add an unmodified path).  Teach it to use a more
git-aware logic to enumerate only relevant ones.

Waiting for area-experts' review.

* mp/complete-paths:
  git-completion.bash: add support for path completion

Conflicts:
	contrib/completion/git-completion.bash
Merge branch 'jc/format-patch-reroll' into pu

Teach "format-patch" to prefix v4- to its output files for the
fourth iteration of a patch series, to make it easier for the
submitter to keep separate copies for iterations.

Needs tests and documentation updates.

* jc/format-patch-reroll:
  format-patch: add --reroll-count=$N option
  get_patch_filename(): split into two functions
  get_patch_filename(): drop "just-numbers" hack
  get_patch_filename(): simplify function signature
  builtin/log.c: stop using global patch_suffix
  builtin/log.c: drop redundant "numbered_files" parameter from make_cover_letter()
  builtin/log.c: drop unused "numbered" parameter from make_cover_letter()
Merge branch 'ta/remove-stale-translated-tut' into pu

Remove a translation of a document that was left stale.

* ta/remove-stale-translated-tut:
  Remove Documentation/pt_BR/gittutorial.txt
Merge branch 'jc/merge-blobs' into pu

A beginning of a new merge strategy based on the disused merge-tree
proof-of-concept code.

* jc/merge-blobs:
  merge-tree: fix d/f conflicts
  merge-tree: add comments to clarify what these functions are doing
  merge-tree: lose unused "resolve_directories"
  merge-tree: lose unused "flags" from merge_list
  Which merge_file() function do you mean?
Merge branch 'ap/log-mailmap' into pu

Clean up various codepaths around mailmap and teach the "log"
machinery to use it.

Will merge to 'next'.

* ap/log-mailmap:
  log --use-mailmap: optimize for cases without --author/--committer search
  log: add log.mailmap configuration option
  log: grep author/committer using mailmap
  test: Add test for --use-mailmap option
  log: Add --use-mailmap option
  pretty: Use mailmap to display username and email
  mailmap: Add mailmap structure to rev_info and pp
  mailmap: Simplify map_user() interface
  mailmap: Remove buffer length limit in map_user
  Use split_ident_line to parse author and committer

Conflicts:
	commit.h
	log-tree.c
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 'jc/maint-name-rev' into pu

"git name-rev" names the given revision based on a ref that can be
reached in the smallest number of steps from the rev, but that is
not useful when the caller wants to know which tag is the oldest one
that contains the rev.  This teaches a new mode to the command that
uses the oldest ref among those which contain the rev.

I am not sure if this is worth it; for one thing, even with the help
from notes-cache, it seems to make the "describe --contains" even
slower. Also the command will be unusably slow for a user who does
not have a write access (hence unable to create or update the
notes-cache).

Stalled mostly due to lack of responses.

* jc/maint-name-rev:
  describe --contains: use "name-rev --algorithm=weight"
  name-rev --algorithm=weight: tests and documentation
  name-rev --algorithm=weight: cache the computed weight in notes
  name-rev --algorithm=weight: trivial optimization
  name-rev: --algorithm option
  name_rev: clarify the logic to assign a new tip-name to a commit
  name-rev: lose unnecessary typedef

Conflicts:
	builtin/name-rev.c
Merge branch 'fc/remote-bzr' into pu

New remote helper for bzr (v3).  With minor fixes, this may be ready
for 'next'.

* fc/remote-bzr:
  (fixup) test-bzr.sh: fix multi-line string assignment
  remote-bzr: detect local repositories
  remote-bzr: add support for older versions of bzr
  remote-bzr: add support to push special modes
  remote-bzr: add support for fecthing special modes
  remote-bzr: add simple tests
  remote-bzr: update working tree upon pushing
  remote-bzr: add support for remote repositories
  remote-bzr: add support for pushing
  Add new remote-bzr transport helper
Merge branch 'fc/remote-testgit-feature-done' into pu

Needs review and Ack (or Nack) from people involved in the remote
helper interface for this to move forward.

* fc/remote-testgit-feature-done:
  remote-testgit: properly check for errors
Merge branch 'mo/cvs-server-updates' into pu

Needs review by folks interested in cvsserver.

* mo/cvs-server-updates:
  t9402: Use TABs for indentation
  t9402: Rename check.cvsCount and check.list
  t9402: Simplify git ls-tree
  t9402: Add missing &&; Code style
  t9402: No space after IO-redirection
  t9402: Dont use test_must_fail cvs
  t9402: improve check_end_tree() and check_end_full_tree()
  t9402: sed -i is not portable
  cvsserver Documentation: new cvs ... -r support
  cvsserver: add t9402 to test branch and tag refs
  cvsserver: support -r and sticky tags for most operations
  cvsserver: Add version awareness to argsfromdir
  cvsserver: generalize getmeta() to recognize commit refs
  cvsserver: implement req_Sticky and related utilities
  cvsserver: add misc commit lookup, file meta data, and file listing functions
  cvsserver: define a tag name character escape mechanism
  cvsserver: cleanup extra slashes in filename arguments
  cvsserver: factor out git-log parsing logic
Merge branch 'mb/remote-default-nn-origin' into pu

When the user does not specify what remote to interact with, we
often attempt to use 'origin'.  This can now be customized via a
configuration variable.

Expecting a re-roll.

"The first remote becomes the default" bit is better done as a
separate step.

* mb/remote-default-nn-origin:
  Teach get_default_remote to respect remote.default.
  Test that plain "git fetch" uses remote.default when on a detached HEAD.
  Teach clone to set remote.default.
  Teach "git remote" about remote.default.
  Teach remote.c about the remote.default configuration setting.
  Rename remote.c's default_remote_name static variables.

Conflicts:
	builtin/remote.c
	t/t5505-remote.sh