git.git
11 years agogrep: avoid accepting ambiguous revision
Nguyễn Thái Ngọc Duy [Mon, 21 Jan 2013 13:00:49 +0000 (20:00 +0700)]
grep: avoid accepting ambiguous revision

Unlike other commands that take both revs and pathspecs without "--"
disamiguators only when the boundary is clear, "git grep" treated
what can be interpreted as a rev as-is, without making sure that it
could also have meant a pathspec.  E.g.

    $ git grep -e foo master

when 'master' is in the working tree, should have triggered an
ambiguity error, but it didn't, and searched in the tree of the
commit named by 'master'.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate :/abc ambiguity check
Nguyễn Thái Ngọc Duy [Mon, 21 Jan 2013 13:00:48 +0000 (20:00 +0700)]
Update :/abc ambiguity check

:/abc may mean two things:

- as a revision, it means the revision that has "abc" in commit
  message.

- as a pathpec, it means "abc" from root.

Currently we see ":/abc" as a rev (most of the time), but never see it
as a pathspec even if "abc" exists and "git log :/abc" will gladly
take ":/abc" as rev even it's ambiguous. This patch makes it:

- ambiguous when "abc" exists on worktree
- a rev if abc does not exist on worktree
- a path if abc is not found in any commits (although better use
  "--" to avoid ambiguation because searching through commit DAG is
  expensive)

A plus from this patch is, because ":/" never matches anything as a
rev, it is never considered a valid rev and because root directory
always exists, ":/" is always unambiguously seen as a pathspec.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Mon, 21 Jan 2013 01:28:13 +0000 (17:28 -0800)]
Update draft release notes to 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Mon, 21 Jan 2013 01:27:27 +0000 (17:27 -0800)]
Merge branch 'maint'

11 years agoStart preparing for 1.8.1.2
Junio C Hamano [Mon, 21 Jan 2013 01:26:04 +0000 (17:26 -0800)]
Start preparing for 1.8.1.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'nz/send-email-headers-are-case-insensitive' into maint
Junio C Hamano [Mon, 21 Jan 2013 01:22:49 +0000 (17:22 -0800)]
Merge branch 'nz/send-email-headers-are-case-insensitive' into maint

When users spell "cc:" in lowercase in the fake "header" in the
trailer part, "git send-email" failed to pick up the addresses from
there. As e-mail headers field names are case insensitive, this
script should follow suit and treat "cc:" and "Cc:" the same way.

* nz/send-email-headers-are-case-insensitive:
  git-send-email: treat field names as case-insensitively

11 years agoMerge branch 'rs/zip-with-uncompressed-size-in-the-header' into maint
Junio C Hamano [Mon, 21 Jan 2013 01:22:27 +0000 (17:22 -0800)]
Merge branch 'rs/zip-with-uncompressed-size-in-the-header' into maint

"git archive" did not record uncompressed size in the header when
streaming a zip archive, which confused some implementations of
unzip.

* rs/zip-with-uncompressed-size-in-the-header:
  archive-zip: write uncompressed size into header even with streaming

11 years agoMerge branch 'rs/zip-tests' into maint
Junio C Hamano [Mon, 21 Jan 2013 01:22:22 +0000 (17:22 -0800)]
Merge branch 'rs/zip-tests' into maint

* rs/zip-tests:
  t5003: check if unzip supports symlinks
  t5000, t5003: move ZIP tests into their own script
  t0024, t5000: use test_lazy_prereq for UNZIP
  t0024, t5000: clear variable UNZIP, use GIT_UNZIP instead

11 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Mon, 21 Jan 2013 01:08:46 +0000 (17:08 -0800)]
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  git-svn: do not escape certain characters in paths

11 years agoMerge branch 'rt/commit-cleanup-config'
Junio C Hamano [Mon, 21 Jan 2013 01:07:04 +0000 (17:07 -0800)]
Merge branch 'rt/commit-cleanup-config'

Add a configuration variable to set default clean-up mode other
than "strip".

* rt/commit-cleanup-config:
  commit: make default of "cleanup" option configurable

11 years agoMerge branch 'ap/log-mailmap'
Junio C Hamano [Mon, 21 Jan 2013 01:06:52 +0000 (17:06 -0800)]
Merge branch 'ap/log-mailmap'

Teach commands in the "log" family to optionally pay attention to
the mailmap.

* 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 email copy and length limitation
  Use split_ident_line to parse author and committer
  string-list: allow case-insensitive string list

11 years agogit-svn: do not escape certain characters in paths
Peter Wu [Thu, 17 Jan 2013 22:07:31 +0000 (23:07 +0100)]
git-svn: do not escape certain characters in paths

Subversion 1.7 and newer implement HTTPv2, an extension that should make HTTP
more efficient. Servers with support for this protocol will make the subversion
client library take an alternative code path that checks (with assertions)
whether the URL is "canonical" or not.

This patch fixes an issue I encountered while trying to `git svn dcommit` a
rename action for a file containing a single quote character ("User's Manual"
to "UserMan.tex"). It does not happen for older subversion 1.6 servers nor
non-HTTP(S) protocols such as the native svn protocol, only on an Apache server
shipping SVN 1.7. Trying to `git svn dcommit` under the aforementioned
conditions yields the following error which aborts the commit process:

    Committing to http://example.com/svn ...
    perl: subversion/libsvn_subr/dirent_uri.c:1520: uri_skip_ancestor:
Assertion `svn_uri_is_canonical(child_uri, ((void *)0))' failed.
    error: git-svn died of signal 6

An analysis of the subversion source for the cause:

- The assertion originates from uri_skip_ancestor which calls
  svn_uri_is_canonical, which fails when the URL contains percent-encoded values
  that do not necessarily have to be encoded (not "canonical" enough). This is
  done by a table lookup in libsvn_subr/path.c. Putting some debugging prints
  revealed that the character ' is indeed encoded to %27 which is not
  considered canonical.
- url_skip_ancestor is called by svn_ra_neon__get_baseline_info with the root
  repository URL and path as parameters;
- which is called by copy_resource (libsvn_ra_neon/commit.c) for a copy action
  (or in my case, renaming which is actually copy + delete old);
- which is called by commit_add_dir;
- which is assigned as a structure method "add_file" in
  svn_ra_neon__get_commit_editor.

In the whole path, the path argument is not modified.

Through some more uninteresting wrapper functions, the Perl bindings gives you
access to the add_file method which will pass the path argument without
modifications to svn.

git-svn calls the "R"(ename) subroutine in Git::SVN::Editor which contains:
326         my $fbat = $self->add_file($self->repo_path($m->{file_b}), $pbat,
327                                 $self->url_path($m->{file_a}), $self->{r});
"repo_path" basically returns the path as-is, unless the "svn.pathnameencoding"
configuration property is set. "url_path" tries to escape some special
characters, but does not take all special characters into account, thereby
causing the path to contain some escaped characters which do not have to be
escaped.

The list of characters not to be escaped are taken from the
subversion/libsvn_subr/path.c file to fully account for all characters. Tested
with a filename containing all characters in the range 0x20 to 0x78 (inclusive).

Signed-off-by: Peter Wu <lekensteyn@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
11 years agoMerge git://bogomips.org/git-svn
Junio C Hamano [Fri, 18 Jan 2013 20:40:28 +0000 (12:40 -0800)]
Merge git://bogomips.org/git-svn

* git://bogomips.org/git-svn:
  git-svn: teach find-rev to find near matches
  git svn: do not overescape URLs (fallback case)
  Git::SVN::Editor::T: pass $deletions to ->A and ->D

11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Fri, 18 Jan 2013 19:26:11 +0000 (11:26 -0800)]
Update draft release notes to 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'ss/help-htmlpath-config-doc'
Junio C Hamano [Fri, 18 Jan 2013 19:20:20 +0000 (11:20 -0800)]
Merge branch 'ss/help-htmlpath-config-doc'

Add missing doc.

* ss/help-htmlpath-config-doc:
  config.txt: Document help.htmlpath config parameter

11 years agoMerge branch 'nd/fix-perf-parameters-in-tests'
Junio C Hamano [Fri, 18 Jan 2013 19:20:15 +0000 (11:20 -0800)]
Merge branch 'nd/fix-perf-parameters-in-tests'

Allow GIT_PERF_* environment variables to be passed through the
test framework.

* nd/fix-perf-parameters-in-tests:
  test-lib.sh: unfilter GIT_PERF_*

11 years agoMerge branch 'nd/attr-debug-fix'
Junio C Hamano [Fri, 18 Jan 2013 19:20:11 +0000 (11:20 -0800)]
Merge branch 'nd/attr-debug-fix'

Fix debugging support that was broken in earlier change.

* nd/attr-debug-fix:
  attr: make it build with DEBUG_ATTR again

11 years agoMerge branch 'rs/pretty-use-prefixcmp'
Junio C Hamano [Fri, 18 Jan 2013 19:20:08 +0000 (11:20 -0800)]
Merge branch 'rs/pretty-use-prefixcmp'

* rs/pretty-use-prefixcmp:
  pretty: use prefixcmp instead of memcmp on NUL-terminated strings

11 years agoMerge branch 'ds/completion-silence-in-tree-path-probe'
Junio C Hamano [Fri, 18 Jan 2013 19:20:03 +0000 (11:20 -0800)]
Merge branch 'ds/completion-silence-in-tree-path-probe'

An internal ls-tree call made by completion code only to probe if
a path exists in the tree recorded in a commit object leaked error
messages when the path is not there.  It is not an error at all and
should not be shown to the end user.

* ds/completion-silence-in-tree-path-probe:
  git-completion.bash: silence "not a valid object" errors

11 years agoMerge branch 'jn/maint-trim-vim-contrib'
Junio C Hamano [Fri, 18 Jan 2013 19:19:39 +0000 (11:19 -0800)]
Merge branch 'jn/maint-trim-vim-contrib'

Remove instructions for old vim support, which is better described
in the upstream vim documentation.

* jn/maint-trim-vim-contrib:
  contrib/vim: simplify instructions for old vim support

11 years agoMerge branch 'pe/doc-email-env-is-trumped-by-config'
Junio C Hamano [Fri, 18 Jan 2013 19:19:33 +0000 (11:19 -0800)]
Merge branch 'pe/doc-email-env-is-trumped-by-config'

In the precedence order, the environment variable $EMAIL comes
between the built-in default (i.e. taking value by asking the
system's gethostname() etc.) and the user.email configuration
variable; the documentation implied that it is stronger than the
configuration like $GIT_COMMITTER_EMAIL is, which is wrong.

* pe/doc-email-env-is-trumped-by-config:
  git-commit-tree(1): correct description of defaults

11 years agoMerge branch 'mk/complete-tcsh'
Junio C Hamano [Fri, 18 Jan 2013 19:19:28 +0000 (11:19 -0800)]
Merge branch 'mk/complete-tcsh'

Update tcsh command line completion so that an unwanted space is
not added to a single directory name.

* mk/complete-tcsh:
  Prevent space after directories in tcsh completion

11 years agogit-svn: teach find-rev to find near matches
John Keeping [Thu, 17 Jan 2013 22:19:33 +0000 (22:19 +0000)]
git-svn: teach find-rev to find near matches

When a single SVN repository is split into multiple Git repositories
many SVN revisions will exist in only one of the Git repositories
created.  For some projects the only way to build a working artifact is
to check out corresponding versions of various repositories, with no
indication of what those are in the Git world - in the SVN world the
revision numbers are sufficient.

By adding "--before" to "git-svn find-rev" we can say "tell me what this
repository looked like when that other repository looked like this":

    git svn find-rev --before \
        r$(git --git-dir=/over/there.git svn find-rev HEAD)

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
11 years agogit svn: do not overescape URLs (fallback case)
Jonathan Nieder [Sun, 14 Oct 2012 11:45:21 +0000 (04:45 -0700)]
git svn: do not overescape URLs (fallback case)

Subversion's canonical URLs are intended to make URL comparison easy
and therefore have strict rules about what characters are special
enough to urlencode and what characters should be left alone.

When in the fallback codepath because unable to use libsvn's own
canonicalization function for some reason, escape special characters
in URIs according to the svn_uri__char_validity[] table in
subversion/libsvn_subr/path.c (r935829).  The libsvn versions that
trigger this code path are not likely to be strict enough to care, but
it's nicer to be consistent.

Noticed by using SVN 1.6.17 perl bindings, which do not provide
SVN::_Core::svn_uri_canonicalize (triggering the fallback code),
with libsvn 1.7.5, whose do_switch is fussy enough to care:

  Committing to file:///home/jrn/src/git/t/trash%20directory.\
  t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches\
  /more%20fun%20plugin%21 ...
  svn: E235000: In file '[...]/subversion/libsvn_subr/dirent_uri.c' \
  line 2291: assertion failed (svn_uri_is_canonical(url, pool))
  error: git-svn died of signal 6
  not ok - 3 test dcommit to funky branch

After this change, the '!' in 'more%20fun%20plugin!' is not urlencoded
and t9118 passes again.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
11 years agoGit::SVN::Editor::T: pass $deletions to ->A and ->D
Jonathan Nieder [Wed, 10 Oct 2012 21:02:18 +0000 (14:02 -0700)]
Git::SVN::Editor::T: pass $deletions to ->A and ->D

This shouldn't make a difference because the $deletions hash is
only used when adding a directory (see 379862ec, 2012-02-20) but
it's nice to be consistent to make reading smoother anyway.  No
functional change intended.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
11 years agoconfig.txt: Document help.htmlpath config parameter
Sebastian Staudt [Tue, 15 Jan 2013 20:56:21 +0000 (21:56 +0100)]
config.txt: Document help.htmlpath config parameter

Signed-off-by: Sebastian Staudt <koraktor@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agotest-lib.sh: unfilter GIT_PERF_*
Nguyễn Thái Ngọc Duy [Tue, 15 Jan 2013 13:50:56 +0000 (20:50 +0700)]
test-lib.sh: unfilter GIT_PERF_*

These variables are user parameters to control how to run the perf
tests. Allow users to do so.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoattr: make it build with DEBUG_ATTR again
Nguyễn Thái Ngọc Duy [Tue, 15 Jan 2013 02:49:26 +0000 (09:49 +0700)]
attr: make it build with DEBUG_ATTR again

Commit 82dce99 (attr: more matching optimizations from .gitignore -
2012-10-15) changed match_attr structure but it did not update
DEBUG_ATTR-specific code. This fixes it.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agopretty: use prefixcmp instead of memcmp on NUL-terminated strings
René Scharfe [Mon, 14 Jan 2013 16:34:56 +0000 (17:34 +0100)]
pretty: use prefixcmp instead of memcmp on NUL-terminated strings

This conversion avoids the need for magic string length numbers in the
code.  And unlike memcmp(), prefixcmp() is careful to not run over the
end of a string.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoSync with 1.8.1.1
Junio C Hamano [Mon, 14 Jan 2013 16:22:27 +0000 (08:22 -0800)]
Sync with 1.8.1.1

11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Mon, 14 Jan 2013 16:21:35 +0000 (08:21 -0800)]
Update draft release notes to 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'jc/blame-no-follow'
Junio C Hamano [Mon, 14 Jan 2013 16:15:51 +0000 (08:15 -0800)]
Merge branch 'jc/blame-no-follow'

Teaches "--no-follow" option to "git blame" to disable its
whole-file rename detection.

* jc/blame-no-follow:
  blame: pay attention to --no-follow
  diff: accept --no-follow option

11 years agoMerge branch 'fc/remote-testgit-feature-done'
Junio C Hamano [Mon, 14 Jan 2013 16:15:46 +0000 (08:15 -0800)]
Merge branch 'fc/remote-testgit-feature-done'

In the longer term, tightening rules is a good thing to do, and
because nobody who has worked in the remote helper area seems to be
interested in reviewing this, I would assume they do not think
such a retroactive tightening will affect their remote helpers.  So
let's advance this topic to see what happens.

* fc/remote-testgit-feature-done:
  remote-testgit: properly check for errors

11 years agoMerge branch 'nd/upload-pack-shallow-must-be-commit'
Junio C Hamano [Mon, 14 Jan 2013 16:15:44 +0000 (08:15 -0800)]
Merge branch 'nd/upload-pack-shallow-must-be-commit'

A minor consistency check patch that does not have much relevance
to the real world.

* nd/upload-pack-shallow-must-be-commit:
  upload-pack: only accept commits from "shallow" line

11 years agoMerge branch 'ap/status-ignored-in-ignored-directory'
Junio C Hamano [Mon, 14 Jan 2013 16:15:40 +0000 (08:15 -0800)]
Merge branch 'ap/status-ignored-in-ignored-directory'

Output from "git status --ignored" showed an unexpected interaction
with "--untracked".

* ap/status-ignored-in-ignored-directory:
  status: always report ignored tracked directories
  git-status: Test --ignored behavior
  dir.c: Make git-status --ignored more consistent

11 years agoMerge branch 'nz/send-email-headers-are-case-insensitive'
Junio C Hamano [Mon, 14 Jan 2013 16:15:36 +0000 (08:15 -0800)]
Merge branch 'nz/send-email-headers-are-case-insensitive'

When user spells "cc:" in lowercase in the fake "header" in the
trailer part, send-email failed to pick up the addresses from
there. As e-mail headers field names are case insensitive, this
script should follow suit and treat "cc:" and "Cc:" the same way.

* nz/send-email-headers-are-case-insensitive:
  git-send-email: treat field names as case-insensitively

11 years agoGit 1.8.1.1
Junio C Hamano [Mon, 14 Jan 2013 16:04:50 +0000 (08:04 -0800)]
Git 1.8.1.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'jk/complete-commit-c' into maint
Junio C Hamano [Mon, 14 Jan 2013 16:02:35 +0000 (08:02 -0800)]
Merge branch 'jk/complete-commit-c' into maint

* jk/complete-commit-c:
  completion: complete refs for "git commit -c"

11 years agoMerge branch 'jk/unify-exit-code-by-receiving-signal' into maint
Junio C Hamano [Mon, 14 Jan 2013 16:01:27 +0000 (08:01 -0800)]
Merge branch 'jk/unify-exit-code-by-receiving-signal' into maint

* jk/unify-exit-code-by-receiving-signal:
  run-command: encode signal death as a positive integer

11 years agoMerge branch 'jn/xml-depends-on-asciidoc-conf' into maint
Junio C Hamano [Mon, 14 Jan 2013 16:01:00 +0000 (08:01 -0800)]
Merge branch 'jn/xml-depends-on-asciidoc-conf' into maint

* jn/xml-depends-on-asciidoc-conf:
  docs: manpage XML depends on asciidoc.conf

11 years agoMerge branch 'jk/maint-fast-import-doc-reorder' into maint
Junio C Hamano [Mon, 14 Jan 2013 15:59:46 +0000 (07:59 -0800)]
Merge branch 'jk/maint-fast-import-doc-reorder' into maint

* jk/maint-fast-import-doc-reorder:
  git-fast-import(1): reorganise options
  git-fast-import(1): combine documentation of --[no-]relative-marks

11 years agoMerge branch 'jk/shortlog-no-wrap-doc' into maint
Junio C Hamano [Mon, 14 Jan 2013 15:59:03 +0000 (07:59 -0800)]
Merge branch 'jk/shortlog-no-wrap-doc' into maint

* jk/shortlog-no-wrap-doc:
  git-shortlog(1): document behaviour of zero-width wrap

11 years agoMerge branch 'jk/maint-fast-import-doc-dedup-done' into maint
Junio C Hamano [Mon, 14 Jan 2013 15:48:39 +0000 (07:48 -0800)]
Merge branch 'jk/maint-fast-import-doc-dedup-done' into maint

* jk/maint-fast-import-doc-dedup-done:
  git-fast-import(1): remove duplicate '--done' option

11 years agoMerge branch 'jc/comment-cygwin-win32api-in-makefile' into maint
Junio C Hamano [Mon, 14 Jan 2013 15:34:37 +0000 (07:34 -0800)]
Merge branch 'jc/comment-cygwin-win32api-in-makefile' into maint

* jc/comment-cygwin-win32api-in-makefile:
  Makefile: add comment on CYGWIN_V15_WIN32API

11 years agoMerge branch 'rs/leave-base-name-in-name-field-of-tar' into maint
Junio C Hamano [Mon, 14 Jan 2013 15:34:12 +0000 (07:34 -0800)]
Merge branch 'rs/leave-base-name-in-name-field-of-tar' into maint

A tar archive created by "git archive" recorded a directory in a
way that made NetBSD's implementation of "tar" sometimes unhappy.

* rs/leave-base-name-in-name-field-of-tar:
  archive-tar: split long paths more carefully

11 years agoMerge branch 'jl/interrupt-clone-remove-separate-git-dir' into maint
Junio C Hamano [Mon, 14 Jan 2013 15:33:48 +0000 (07:33 -0800)]
Merge branch 'jl/interrupt-clone-remove-separate-git-dir' into maint

When "git clone --separate-git-dir=$over_there" is interrupted, it
failed to remove the real location of the $GIT_DIR it created.  This
was most visible when interrupting a submodule update.

* jl/interrupt-clone-remove-separate-git-dir:
  clone: support atomic operation with --separate-git-dir

11 years agoMerge branch 'jc/maint-fmt-merge-msg-no-edit-lose-credit' into maint
Junio C Hamano [Mon, 14 Jan 2013 15:33:30 +0000 (07:33 -0800)]
Merge branch 'jc/maint-fmt-merge-msg-no-edit-lose-credit' into maint

"git merge --no-edit" computed who were involved in the work done
on the side branch, even though that information is to be discarded
without getting seen in the editor.

* jc/maint-fmt-merge-msg-no-edit-lose-credit:
  merge --no-edit: do not credit people involved in the side branch

11 years agoMerge branch 'jc/apply-trailing-blank-removal' into maint
Junio C Hamano [Mon, 14 Jan 2013 15:33:08 +0000 (07:33 -0800)]
Merge branch 'jc/apply-trailing-blank-removal' into maint

"git apply" misbehaved when fixing whitespace breakages by removing
excess trailing blank lines.

* jc/apply-trailing-blank-removal:
  apply.c:update_pre_post_images(): the preimage can be truncated

11 years agoMerge branch 'pf/editor-ignore-sigint' into maint
Junio C Hamano [Mon, 14 Jan 2013 15:32:25 +0000 (07:32 -0800)]
Merge branch 'pf/editor-ignore-sigint' into maint

The behaviour visible to the end users was confusing, when they
attempt to kill a process spawned in the editor that was in turn
launched by Git with SIGINT (or SIGQUIT), as Git would catch that
signal and die.  We ignore these signals now.

* pf/editor-ignore-sigint:
  fix compilation with NO_PTHREADS
  launch_editor: propagate signals from editor to git
  run-command: do not warn about child death from terminal
  launch_editor: ignore terminal signals while editor has control
  launch_editor: refactor to use start/finish_command
  run-command: drop silent_exec_failure arg from wait_or_whine

11 years agoMerge branch 'mk/maint-graph-infinity-loop' into maint
Junio C Hamano [Mon, 14 Jan 2013 15:32:18 +0000 (07:32 -0800)]
Merge branch 'mk/maint-graph-infinity-loop' into maint

* mk/maint-graph-infinity-loop:
  graph.c: infinite loop in git whatchanged --graph -m

11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Sat, 12 Jan 2013 02:51:09 +0000 (18:51 -0800)]
Update draft release notes to 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'jk/maint-fast-import-doc-reorder'
Junio C Hamano [Sat, 12 Jan 2013 02:35:07 +0000 (18:35 -0800)]
Merge branch 'jk/maint-fast-import-doc-reorder'

* jk/maint-fast-import-doc-reorder:
  git-fast-import(1): reorganise options
  git-fast-import(1): combine documentation of --[no-]relative-marks

11 years agoMerge branch 'jk/shortlog-no-wrap-doc'
Junio C Hamano [Sat, 12 Jan 2013 02:35:01 +0000 (18:35 -0800)]
Merge branch 'jk/shortlog-no-wrap-doc'

* jk/shortlog-no-wrap-doc:
  git-shortlog(1): document behaviour of zero-width wrap

11 years agoMerge branch 'rs/zip-with-uncompressed-size-in-the-header'
Junio C Hamano [Sat, 12 Jan 2013 02:34:55 +0000 (18:34 -0800)]
Merge branch 'rs/zip-with-uncompressed-size-in-the-header'

Improve compatibility of our zip output to fill uncompressed size
in the header, which we can do without seeking back (even though it
should not be necessary).

* rs/zip-with-uncompressed-size-in-the-header:
  archive-zip: write uncompressed size into header even with streaming

11 years agoMerge branch 'rs/zip-tests'
Junio C Hamano [Sat, 12 Jan 2013 02:34:43 +0000 (18:34 -0800)]
Merge branch 'rs/zip-tests'

Update zip tests to skip some that cannot be handled on platform
unzip.

* rs/zip-tests:
  t5003: check if unzip supports symlinks
  t5000, t5003: move ZIP tests into their own script
  t0024, t5000: use test_lazy_prereq for UNZIP
  t0024, t5000: clear variable UNZIP, use GIT_UNZIP instead

11 years agoMerge branch 'jn/xml-depends-on-asciidoc-conf'
Junio C Hamano [Sat, 12 Jan 2013 02:34:38 +0000 (18:34 -0800)]
Merge branch 'jn/xml-depends-on-asciidoc-conf'

* jn/xml-depends-on-asciidoc-conf:
  docs: manpage XML depends on asciidoc.conf

11 years agoMerge branch 'jk/unify-exit-code-by-receiving-signal'
Junio C Hamano [Sat, 12 Jan 2013 02:34:32 +0000 (18:34 -0800)]
Merge branch 'jk/unify-exit-code-by-receiving-signal'

The internal logic had to deal with two representations of a death
of a child process by a signal.

* jk/unify-exit-code-by-receiving-signal:
  run-command: encode signal death as a positive integer

11 years agoMerge branch 'jc/merge-blobs'
Junio C Hamano [Sat, 12 Jan 2013 02:34:24 +0000 (18:34 -0800)]
Merge branch 'jc/merge-blobs'

Update 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?

11 years agoMerge branch 'jc/format-patch-reroll'
Junio C Hamano [Sat, 12 Jan 2013 02:34:10 +0000 (18:34 -0800)]
Merge branch 'jc/format-patch-reroll'

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.

* jc/format-patch-reroll:
  format-patch: give --reroll-count a short synonym -v
  format-patch: document and test --reroll-count
  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()

11 years agoMerge branch 'maint'
Junio C Hamano [Sat, 12 Jan 2013 02:33:27 +0000 (18:33 -0800)]
Merge branch 'maint'

11 years agoMerge branch 'as/api-allocation-doc' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:51:01 +0000 (16:51 -0800)]
Merge branch 'as/api-allocation-doc' into maint

* as/api-allocation-doc:
  api-allocation-growing.txt: encourage better variable naming

11 years agoMerge branch 'jk/enable-test-lint-by-default' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:49:37 +0000 (16:49 -0800)]
Merge branch 'jk/enable-test-lint-by-default' into maint

We have two simple and quick tests to catch common mistakes when
writing test scripts, but we did not run them by default when
running tests.

* jk/enable-test-lint-by-default:
  tests: turn on test-lint by default

11 years agoMerge branch 'ap/merge-stop-at-prepare-commit-msg-failure' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:49:01 +0000 (16:49 -0800)]
Merge branch 'ap/merge-stop-at-prepare-commit-msg-failure' into maint

"git merge" started calling prepare-commit-msg hook like "git
commit" does some time ago, but forgot to pay attention to the exit
status of the hook.

* ap/merge-stop-at-prepare-commit-msg-failure:
  merge: Honor prepare-commit-msg return code

11 years agoMerge branch 'jc/submittingpatches' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:48:54 +0000 (16:48 -0800)]
Merge branch 'jc/submittingpatches' into maint

* jc/submittingpatches:
  SubmittingPatches: give list and maintainer addresses
  SubmittingPatches: remove overlong checklist
  SubmittingPatches: mention subsystems with dedicated repositories
  SubmittingPatches: who am I and who cares?

11 years agoMerge branch 'os/gitweb-highlight-uncaptured' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:48:30 +0000 (16:48 -0800)]
Merge branch 'os/gitweb-highlight-uncaptured' into maint

"gitweb", when sorting by age to show repositories with new
activities first, used to sort repositories with absolutely nothing
in it early, which was not very useful.

* os/gitweb-highlight-uncaptured:
  gitweb: fix error in sanitize when highlight is enabled

11 years agoMerge branch 'jn/less-reconfigure' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:48:03 +0000 (16:48 -0800)]
Merge branch 'jn/less-reconfigure' into maint

When autoconf is used, any build on a different commit always ran
"config.status --recheck" even when unnecessary.

* jn/less-reconfigure:
  build: do not automatically reconfigure unless configure.ac changed

11 years agoMerge branch 'kb/maint-bundle-doc' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:47:56 +0000 (16:47 -0800)]
Merge branch 'kb/maint-bundle-doc' into maint

* kb/maint-bundle-doc:
  Documentation: full-ness of a bundle is significant for cloning
  Documentation: correct example restore from bundle

11 years agoMerge branch 'as/test-name-alias-uniquely' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:47:34 +0000 (16:47 -0800)]
Merge branch 'as/test-name-alias-uniquely' into maint

* as/test-name-alias-uniquely:
  Use longer alias names in subdirectory tests

11 years agoMerge branch 'jn/warn-on-inaccessible-loosen' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:47:07 +0000 (16:47 -0800)]
Merge branch 'jn/warn-on-inaccessible-loosen' into maint

When attempting to read the XDG-style $HOME/.config/git/config and
finding that $HOME/.config/git is a file, we gave a wrong error
message, instead of treating the case as "a custom config file does
not exist there" and moving on.

* jn/warn-on-inaccessible-loosen:
  config: exit on error accessing any config file
  doc: advertise GIT_CONFIG_NOSYSTEM
  config: treat user and xdg config permission problems as errors
  config, gitignore: failure to access with ENOTDIR is ok

11 years agoMerge branch 'ja/directory-attrs' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:46:46 +0000 (16:46 -0800)]
Merge branch 'ja/directory-attrs' into maint

The attribute mechanism didn't allow limiting attributes to be
applied to only a single directory itself with "path/" like the
exclude mechanism does.

* ja/directory-attrs:
  Add directory pattern matching to attributes

11 years agoMerge branch 'jc/fetch-ignore-symref' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:45:44 +0000 (16:45 -0800)]
Merge branch 'jc/fetch-ignore-symref' into maint

"git fetch --mirror" and fetch that uses other forms of refspec with
wildcard used to attempt to update a symbolic ref that match the
wildcard on the receiving end, which made little sense (the real ref
that is pointed at by the symbolic ref would be updated anyway).

Symbolic refs no longer are affected by such a fetch.

* jc/fetch-ignore-symref:
  fetch: ignore wildcarded refspecs that update local symbolic refs

11 years agoMerge branch 'ss/svn-prompt' into maint
Junio C Hamano [Sat, 12 Jan 2013 00:45:06 +0000 (16:45 -0800)]
Merge branch 'ss/svn-prompt' into maint

The way "git svn" asked for password using SSH_ASKPASS and
GIT_ASKPASS was not in line with the rest of the system.

* ss/svn-prompt:
  git-svn, perl/Git.pm: extend and use Git->prompt method for querying users
  perl/Git.pm: Honor SSH_ASKPASS as fallback if GIT_ASKPASS is not set
  git-svn, perl/Git.pm: add central method for prompting passwords

11 years agogit-completion.bash: silence "not a valid object" errors
Dylan Smith [Fri, 11 Jan 2013 08:06:22 +0000 (03:06 -0500)]
git-completion.bash: silence "not a valid object" errors

Trying to complete the command

  git show master:./file

would cause a "Not a valid object name" error to be output on standard
error. Silence the error so it won't appear on the command line.

Signed-off-by: Dylan Smith <dylan.ah.smith@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agocontrib/vim: simplify instructions for old vim support
Jonathan Nieder [Thu, 10 Jan 2013 20:54:27 +0000 (12:54 -0800)]
contrib/vim: simplify instructions for old vim support

Rely on the upstream filetype.vim instead of duplicating its rules in
git's instructions for syntax highlighting support on pre-7.2 vim
versions.

The result is a shorter contrib/vim/README.  More importantly, it lets
us punt on maintenance of the autocmd rules.

So now when we fix the upstream gitsendemail rule in light of commit
eed6ca7, new git users stuck on old vim reading contrib/vim/README can
automagically get the fix without any further changes needed to git.

Once the world has moved on to vim 7.2+ completely, we can get rid of
these instructions, but for now if they are this simple it's
effortless to keep them.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Thu, 10 Jan 2013 22:38:00 +0000 (14:38 -0800)]
Merge branch 'maint'

* maint:
  Prepare for 1.8.1.1
  Makefile: detect when PYTHON_PATH changes (cherry-picked)

11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Thu, 10 Jan 2013 22:36:23 +0000 (14:36 -0800)]
Update draft release notes to 1.8.2

11 years agoPrepare for 1.8.1.1
Junio C Hamano [Thu, 10 Jan 2013 22:17:13 +0000 (14:17 -0800)]
Prepare for 1.8.1.1

11 years agoMakefile: detect when PYTHON_PATH changes
Christian Couder [Tue, 18 Dec 2012 15:26:38 +0000 (16:26 +0100)]
Makefile: detect when PYTHON_PATH changes

When make is run, the python scripts are created from *.py files that
are changed to use the python given by PYTHON_PATH. And PYTHON_PATH
is set by default to /usr/bin/python on Linux.

However, next time make is run with a different value in PYTHON_PATH,
we failed to regenerate these scripts.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Acked-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'ta/remove-stale-translated-tut' into maint
Junio C Hamano [Thu, 10 Jan 2013 22:11:18 +0000 (14:11 -0800)]
Merge branch 'ta/remove-stale-translated-tut' into maint

* ta/remove-stale-translated-tut:
  Remove Documentation/pt_BR/gittutorial.txt

11 years agoMerge branch 'tb/test-t9810-no-sed-i' into maint
Junio C Hamano [Thu, 10 Jan 2013 22:10:40 +0000 (14:10 -0800)]
Merge branch 'tb/test-t9810-no-sed-i' into maint

* tb/test-t9810-no-sed-i:
  t9810: Do not use sed -i

11 years agoMerge branch 'tb/test-t9020-no-which' into maint
Junio C Hamano [Thu, 10 Jan 2013 22:10:36 +0000 (14:10 -0800)]
Merge branch 'tb/test-t9020-no-which' into maint

* tb/test-t9020-no-which:
  t9020: which is not portable

11 years agoMerge branch 'mh/pthreads-autoconf' into maint
Junio C Hamano [Thu, 10 Jan 2013 22:04:26 +0000 (14:04 -0800)]
Merge branch 'mh/pthreads-autoconf' into maint

* mh/pthreads-autoconf:
  configure.ac: fix pthreads detection on Mac OS X

11 years agoMerge branch 'jc/same-encoding' into maint
Junio C Hamano [Thu, 10 Jan 2013 22:04:24 +0000 (14:04 -0800)]
Merge branch 'jc/same-encoding' into maint

* jc/same-encoding:
  format_commit_message(): simplify calls to logmsg_reencode()

11 years agoMerge branch 'sp/shortlog-missing-lf' into maint
Junio C Hamano [Thu, 10 Jan 2013 22:04:22 +0000 (14:04 -0800)]
Merge branch 'sp/shortlog-missing-lf' into maint

* sp/shortlog-missing-lf:
  strbuf_add_wrapped*(): Remove unused return value
  shortlog: fix wrapping lines of wraplen

11 years agoMerge branch 'md/gitweb-sort-by-age' into maint
Junio C Hamano [Thu, 10 Jan 2013 22:04:21 +0000 (14:04 -0800)]
Merge branch 'md/gitweb-sort-by-age' into maint

* md/gitweb-sort-by-age:
  gitweb: Sort projects with undefined ages last

11 years agoMerge branch 'nd/invalidate-i-t-a-cache-tree' into maint
Junio C Hamano [Thu, 10 Jan 2013 22:04:19 +0000 (14:04 -0800)]
Merge branch 'nd/invalidate-i-t-a-cache-tree' into maint

* nd/invalidate-i-t-a-cache-tree:
  cache-tree: invalidate i-t-a paths after generating trees
  cache-tree: fix writing cache-tree when CE_REMOVE is present
  cache-tree: replace "for" loops in update_one with "while" loops
  cache-tree: remove dead i-t-a code in verify_cache()

11 years agoMerge branch 'jk/repack-ref-racefix' into maint
Junio C Hamano [Thu, 10 Jan 2013 22:04:17 +0000 (14:04 -0800)]
Merge branch 'jk/repack-ref-racefix' into maint

* jk/repack-ref-racefix:
  refs: do not use cached refs in repack_without_ref

11 years agoMerge branch 'rb/http-cert-cred-no-username-prompt' into maint
Junio C Hamano [Thu, 10 Jan 2013 22:03:54 +0000 (14:03 -0800)]
Merge branch 'rb/http-cert-cred-no-username-prompt' into maint

* rb/http-cert-cred-no-username-prompt:
  http.c: Avoid username prompt for certifcate credentials

11 years agoMerge branch 'jc/comment-cygwin-win32api-in-makefile'
Junio C Hamano [Thu, 10 Jan 2013 21:47:43 +0000 (13:47 -0800)]
Merge branch 'jc/comment-cygwin-win32api-in-makefile'

* jc/comment-cygwin-win32api-in-makefile:
  Makefile: add comment on CYGWIN_V15_WIN32API

11 years agoMerge branch 'as/api-allocation-doc'
Junio C Hamano [Thu, 10 Jan 2013 21:47:40 +0000 (13:47 -0800)]
Merge branch 'as/api-allocation-doc'

* as/api-allocation-doc:
  api-allocation-growing.txt: encourage better variable naming

11 years agoMerge branch 'rs/leave-base-name-in-name-field-of-tar'
Junio C Hamano [Thu, 10 Jan 2013 21:47:35 +0000 (13:47 -0800)]
Merge branch 'rs/leave-base-name-in-name-field-of-tar'

Improve compatibility with implementations of "tar" that do not
like empty name field in header (with the additional prefix field
holding everything).

* rs/leave-base-name-in-name-field-of-tar:
  archive-tar: split long paths more carefully

11 years agoMerge branch 'jl/interrupt-clone-remove-separate-git-dir'
Junio C Hamano [Thu, 10 Jan 2013 21:47:30 +0000 (13:47 -0800)]
Merge branch 'jl/interrupt-clone-remove-separate-git-dir'

When "git clone --separate-git-dir" is interrupted, we failed to
remove the real location we created the repository.

* jl/interrupt-clone-remove-separate-git-dir:
  clone: support atomic operation with --separate-git-dir

11 years agoMerge branch 'as/dir-c-cleanup'
Junio C Hamano [Thu, 10 Jan 2013 21:47:25 +0000 (13:47 -0800)]
Merge branch 'as/dir-c-cleanup'

Refactor and generally clean up the directory traversal API
implementation.

* as/dir-c-cleanup:
  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

11 years agoMerge branch 'jk/config-uname'
Junio C Hamano [Thu, 10 Jan 2013 21:47:20 +0000 (13:47 -0800)]
Merge branch 'jk/config-uname'

Move the bits to set fallback default based on the platform from
the main Makefile to a separate file, so that it can be included in
Makefiles in subdirectories.

* jk/config-uname:
  Makefile: hoist uname autodetection to config.mak.uname

11 years agoMerge branch 'nd/wildmatch'
Junio C Hamano [Thu, 10 Jan 2013 21:47:15 +0000 (13:47 -0800)]
Merge branch 'nd/wildmatch'

Allows pathname patterns in .gitignore and .gitattributes files
with double-asterisks "foo/**/bar" to match any number of directory
hierarchies.

* nd/wildmatch:
  wildmatch: replace variable 'special' with better named ones
  compat/fnmatch: respect NO_FNMATCH* even on glibc
  wildmatch: fix "**" special case
  t3070: Disable some failing fnmatch tests
  test-wildmatch: avoid Windows path mangling
  Support "**" wildcard in .gitignore and .gitattributes
  wildmatch: make /**/ match zero or more directories
  wildmatch: adjust "**" behavior
  wildmatch: fix case-insensitive matching
  wildmatch: remove static variable force_lower_case
  wildmatch: make wildmatch's return value compatible with fnmatch
  t3070: disable unreliable fnmatch tests
  Integrate wildmatch to git
  wildmatch: follow Git's coding convention
  wildmatch: remove unnecessary functions
  Import wildmatch from rsync
  ctype: support iscntrl, ispunct, isxdigit and isprint
  ctype: make sane_ctype[] const array

Conflicts:
Makefile

11 years agoMerge branch 'tb/test-shell-lint'
Junio C Hamano [Thu, 10 Jan 2013 21:47:04 +0000 (13:47 -0800)]
Merge branch 'tb/test-shell-lint'

Check for common mistakes in the test scripts, based on simple
pattern-matching.

* tb/test-shell-lint:
  test: Add check-non-portable-shell.pl

11 years agoMerge branch 'mz/pick-unborn'
Junio C Hamano [Thu, 10 Jan 2013 21:46:51 +0000 (13:46 -0800)]
Merge branch 'mz/pick-unborn'

Allow "git cherry-pick $commit" even when you do not have any
history behind HEAD yet.

* mz/pick-unborn:
  learn to pick/revert into unborn branch
  tests: move test_cmp_rev to test-lib-functions

11 years agoMerge branch 'aw/rebase-am-failure-detection'
Junio C Hamano [Thu, 10 Jan 2013 21:46:46 +0000 (13:46 -0800)]
Merge branch 'aw/rebase-am-failure-detection'

Save output from format-patch command in a temporary file, just in
case it aborts, to give a better failure-case behaviour.

* aw/rebase-am-failure-detection:
  rebase: Handle cases where format-patch fails

11 years agoMerge branch 'jc/maint-fmt-merge-msg-no-edit-lose-credit'
Junio C Hamano [Thu, 10 Jan 2013 21:46:29 +0000 (13:46 -0800)]
Merge branch 'jc/maint-fmt-merge-msg-no-edit-lose-credit'

Stop spending cycles to compute information to be placed on
commented lines in "merge --no-edit", which will be discarded
anyway.

* jc/maint-fmt-merge-msg-no-edit-lose-credit:
  merge --no-edit: do not credit people involved in the side branch

11 years agolog --use-mailmap: optimize for cases without --author/--committer search
Junio C Hamano [Tue, 8 Jan 2013 08:02:49 +0000 (00:02 -0800)]
log --use-mailmap: optimize for cases without --author/--committer search

When we taught the commit_match() mechanism to pay attention to the
new --use-mailmap option, we started to unconditionally copy the
commit object to a temporary buffer, just in case we need the author
and committer lines updated via the mailmap mechanism, and rewrite
author and committer using the mailmap.

It turns out that this has a rather unpleasant performance
implications.  In the linux kernel repository, running

  $ git log --author='Junio C Hamano' --pretty=short >/dev/null

under /usr/bin/time, with and without --use-mailmap (the .mailmap
file is 118 entries long, the particular author does not appear in
it), cost (with warm cache):

  [without --use-mailmap]
  5.42user 0.26system 0:05.70elapsed 99%CPU (0avgtext+0avgdata 2005936maxresident)k
  0inputs+0outputs (0major+137669minor)pagefaults 0swaps

  [with --use-mailmap]
  6.47user 0.30system 0:06.78elapsed 99%CPU (0avgtext+0avgdata 2006288maxresident)k
  0inputs+0outputs (0major+137692minor)pagefaults 0swaps

which incurs about 20% overhead.  The command is doing extra work,
so the extra cost may be justified.

But it is inexcusable to pay the cost when we do not need
author/committer match.  In the same repository,

  $ git log --grep='fix menuconfig on debian lenny' --pretty=short >/dev/null

shows very similar numbers as the above:

  [without --use-mailmap]
  5.32user 0.30system 0:05.63elapsed 99%CPU (0avgtext+0avgdata 2005984maxresident)k
  0inputs+0outputs (0major+137672minor)pagefaults 0swaps

  [with --use-mailmap]
  6.64user 0.24system 0:06.89elapsed 99%CPU (0avgtext+0avgdata 2006320maxresident)k
  0inputs+0outputs (0major+137694minor)pagefaults 0swaps

The latter case is an unnecessary performance regression.  We may
want to _show_ the result with mailmap applied, but we do not have
to copy and rewrite the author/committer of all commits we try to
match if we do not query for these fields.

Trivially optimize this performace regression by limiting the
rewrites for only when we are matching with author/committer fields.

Signed-off-by: Junio C Hamano <gitster@pobox.com>