git/git.git
5 years agorefs.c: add err arguments to reflog functions
David Turner [Tue, 21 Jul 2015 21:04:50 +0000 (17:04 -0400)]
refs.c: add err arguments to reflog functions

Add an err argument to log_ref_setup that can explain the reason
for a failure. This then eliminates the need to manage errno through
this function since we can just add strerror(errno) to the err string
when meaningful. No callers relied on errno from this function for
anything else than the error message.

Also add err arguments to private functions write_ref_to_lockfile,
log_ref_write_1, commit_ref_update. This again eliminates the need to
manage errno in these functions.

Some error messages are slightly reordered.

Update of a patch by Ronnie Sahlberg.

Signed-off-by: Ronnie Sahlberg <sahlberg@google.com>
Signed-off-by: David Turner <dturner@twopensource.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoSync with maint
Junio C Hamano [Sun, 28 Jun 2015 21:51:12 +0000 (14:51 -0700)]
Sync with maint

* maint:

5 years agoMerge branch 'jk/stash-require-clean-index' into maint
Junio C Hamano [Fri, 26 Jun 2015 06:03:26 +0000 (23:03 -0700)]
Merge branch 'jk/stash-require-clean-index' into maint

A hotfix for the topic already in 'master'.

* jk/stash-require-clean-index:
  Revert "stash: require a clean index to apply"

5 years agoMerge branch 'cb/array-size' into maint
Junio C Hamano [Fri, 26 Jun 2015 06:03:25 +0000 (23:03 -0700)]
Merge branch 'cb/array-size' into maint

* cb/array-size:
  Fix definition of ARRAY_SIZE for non-gcc builds

5 years agoGit 2.5.0-rc0 v2.5.0-rc0
Junio C Hamano [Thu, 25 Jun 2015 18:08:39 +0000 (11:08 -0700)]
Git 2.5.0-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'cn/cvsimport-perl-update'
Junio C Hamano [Thu, 25 Jun 2015 18:08:08 +0000 (11:08 -0700)]
Merge branch 'cn/cvsimport-perl-update'

* cn/cvsimport-perl-update:
  cvsimport: silence regex warning appearing in Perl 5.22.

5 years agoMerge branch 'cb/array-size'
Junio C Hamano [Thu, 25 Jun 2015 18:07:42 +0000 (11:07 -0700)]
Merge branch 'cb/array-size'

* cb/array-size:
  Fix definition of ARRAY_SIZE for non-gcc builds

5 years agoSync with 2.4.5
Junio C Hamano [Thu, 25 Jun 2015 18:04:30 +0000 (11:04 -0700)]
Sync with 2.4.5

5 years agoGit 2.4.5 v2.4.5
Junio C Hamano [Thu, 25 Jun 2015 18:03:05 +0000 (11:03 -0700)]
Git 2.4.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'sg/merge-summary-config' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:16 +0000 (11:02 -0700)]
Merge branch 'sg/merge-summary-config' into maint

Doc updates.

* sg/merge-summary-config:
  Documentation: include 'merge.branchdesc' for merge and config as well

5 years agoMerge branch 'jk/make-fix-dependencies' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:15 +0000 (11:02 -0700)]
Merge branch 'jk/make-fix-dependencies' into maint

Build clean-up.

* jk/make-fix-dependencies:
  Makefile: silence perl/PM.stamp recipe
  Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS
  Makefile: drop dependency between git-instaweb and gitweb

5 years agoMerge branch 'sb/pack-protocol-mention-smart-http' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:14 +0000 (11:02 -0700)]
Merge branch 'sb/pack-protocol-mention-smart-http' into maint

Doc updates.

* sb/pack-protocol-mention-smart-http:
  Documentation/technical/pack-protocol: mention http as possible protocol

5 years agoMerge branch 'jk/die-on-bogus-worktree-late' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:13 +0000 (11:02 -0700)]
Merge branch 'jk/die-on-bogus-worktree-late' into maint

The setup code used to die when core.bare and core.worktree are set
inconsistently, even for commands that do not need working tree.

* jk/die-on-bogus-worktree-late:
  setup_git_directory: delay core.bare/core.worktree errors

5 years agoMerge branch 'pt/pull-tags-error-diag' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:12 +0000 (11:02 -0700)]
Merge branch 'pt/pull-tags-error-diag' into maint

There was a dead code that used to handle "git pull --tags" and
show special-cased error message, which was made irrelevant when
the semantics of the option changed back in Git 1.9 days.

* pt/pull-tags-error-diag:
  pull: remove --tags error in no merge candidates case

5 years agoMerge branch 'jk/color-diff-plain-is-context' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:11 +0000 (11:02 -0700)]
Merge branch 'jk/color-diff-plain-is-context' into maint

"color.diff.plain" was a misnomer; give it 'color.diff.context' as
a more logical synonym.

* jk/color-diff-plain-is-context:
  diff.h: rename DIFF_PLAIN color slot to DIFF_CONTEXT
  diff: accept color.diff.context as a synonym for "plain"

5 years agoMerge branch 'jk/diagnose-config-mmap-failure' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:10 +0000 (11:02 -0700)]
Merge branch 'jk/diagnose-config-mmap-failure' into maint

The configuration reader/writer uses mmap(2) interface to access
the files; when we find a directory, it barfed with "Out of memory?".

* jk/diagnose-config-mmap-failure:
  xmmap(): drop "Out of memory?"
  config.c: rewrite ENODEV into EISDIR when mmap fails
  config.c: avoid xmmap error messages
  config.c: fix mmap leak when writing config
  read-cache.c: drop PROT_WRITE from mmap of index

5 years agoMerge branch 'jk/squelch-missing-link-warning-for-unreachable' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:09 +0000 (11:02 -0700)]
Merge branch 'jk/squelch-missing-link-warning-for-unreachable' into maint

Recent "git prune" traverses young unreachable objects to safekeep
old objects in the reachability chain from them, which sometimes
caused error messages that are unnecessarily alarming.

* jk/squelch-missing-link-warning-for-unreachable:
  suppress errors on missing UNINTERESTING links
  silence broken link warnings with revs->ignore_missing_links
  add quieter versions of parse_{tree,commit}

5 years agoMerge branch 'mm/rebase-i-post-rewrite-exec' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:09 +0000 (11:02 -0700)]
Merge branch 'mm/rebase-i-post-rewrite-exec' into maint

"git rebase -i" fired post-rewrite hook when it shouldn't (namely,
when it was told to stop sequencing with 'exec' insn).

* mm/rebase-i-post-rewrite-exec:
  t5407: use <<- to align the expected output
  rebase -i: fix post-rewrite hook with failed exec command
  rebase -i: demonstrate incorrect behavior of post-rewrite

5 years agoMerge branch 'nd/diff-i-t-a'
Junio C Hamano [Thu, 25 Jun 2015 17:47:46 +0000 (10:47 -0700)]
Merge branch 'nd/diff-i-t-a'

* nd/diff-i-t-a:
  Revert "diff-lib.c: adjust position of i-t-a entries in diff"

5 years agocvsimport: silence regex warning appearing in Perl 5.22.
Christian Neukirchen [Wed, 24 Jun 2015 14:04:20 +0000 (16:04 +0200)]
cvsimport: silence regex warning appearing in Perl 5.22.

Since Perl 5.22, "A literal '{' should now be escaped in a pattern".
Silence the recently added warning by using \{ instead.

Signed-off-by: Christian Neukirchen <chneukirchen@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoFix definition of ARRAY_SIZE for non-gcc builds
Charles Bailey [Wed, 24 Jun 2015 22:12:07 +0000 (23:12 +0100)]
Fix definition of ARRAY_SIZE for non-gcc builds

The improved ARRAY_SIZE macro uses BARF_UNLESS_AN_ARRAY which expands
to a valid check for recent gcc versions and to 0 for older gcc
versions but is not defined on non-gcc builds.

Non-gcc builds need this macro to expand to 0 as well. The current outer
test (defined(__GNUC__) && (__GNUC__ >= 3)) is a strictly weaker
condition than the inner test (GIT_GNUC_PREREQ(3, 1)) so we can omit the
outer test and cause the BARF_UNLESS_AN_ARRAY macro to be defined
correctly on non-gcc builds as well as gcc builds with older versions.

Signed-off-by: Charles Bailey <cbailey32@bloomberg.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoNinth batch for 2.5
Junio C Hamano [Wed, 24 Jun 2015 19:27:20 +0000 (12:27 -0700)]
Ninth batch for 2.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'jk/stash-require-clean-index'
Junio C Hamano [Wed, 24 Jun 2015 19:21:59 +0000 (12:21 -0700)]
Merge branch 'jk/stash-require-clean-index'

A hotfix for the topic already in 'master'.

* jk/stash-require-clean-index:
  Revert "stash: require a clean index to apply"

5 years agoMerge branch 'pa/auto-gc-mac-osx'
Junio C Hamano [Wed, 24 Jun 2015 19:21:58 +0000 (12:21 -0700)]
Merge branch 'pa/auto-gc-mac-osx'

Recent Mac OS X updates breaks the logic to detect that the machine
is on the AC power in the sample pre-auto-gc script.

* pa/auto-gc-mac-osx:
  hooks/pre-auto-gc: adjust power checking for newer OS X

5 years agoMerge branch 'pt/t0302-needs-sanity'
Junio C Hamano [Wed, 24 Jun 2015 19:21:57 +0000 (12:21 -0700)]
Merge branch 'pt/t0302-needs-sanity'

* pt/t0302-needs-sanity:
  t0302: "unreadable" test needs SANITY prereq

5 years agoMerge branch 'ld/p4-changes-block-size'
Junio C Hamano [Wed, 24 Jun 2015 19:21:56 +0000 (12:21 -0700)]
Merge branch 'ld/p4-changes-block-size'

More Perforce row number limit workaround for "git p4".

* ld/p4-changes-block-size:
  git-p4: fixing --changes-block-size handling
  git-p4: add tests for non-numeric revision range
  git-p4: test with limited p4 server results
  git-p4: additional testing of --changes-block-size

5 years agoMerge branch 'fk/doc-format-patch-vn'
Junio C Hamano [Wed, 24 Jun 2015 19:21:56 +0000 (12:21 -0700)]
Merge branch 'fk/doc-format-patch-vn'

Docfix.

* fk/doc-format-patch-vn:
  doc: format-patch: fix typo

5 years agoMerge branch 'sg/commit-cleanup-scissors'
Junio C Hamano [Wed, 24 Jun 2015 19:21:55 +0000 (12:21 -0700)]
Merge branch 'sg/commit-cleanup-scissors'

"git commit --cleanup=scissors" was not careful enough to protect
against getting fooled by a line that looked like scissors.

* sg/commit-cleanup-scissors:
  commit: cope with scissors lines in commit message

5 years agoMerge branch 'jk/index-pack-reduce-recheck'
Junio C Hamano [Wed, 24 Jun 2015 19:21:54 +0000 (12:21 -0700)]
Merge branch 'jk/index-pack-reduce-recheck'

Disable "have we lost a race with competing repack?" check while
receiving a huge object transfer that runs index-pack.

* jk/index-pack-reduce-recheck:
  index-pack: avoid excessive re-reading of pack directory

5 years agoMerge branch 'af/tcsh-completion-noclobber'
Junio C Hamano [Wed, 24 Jun 2015 19:21:53 +0000 (12:21 -0700)]
Merge branch 'af/tcsh-completion-noclobber'

The tcsh completion writes a bash scriptlet but that would have
failed for users with noclobber set.

* af/tcsh-completion-noclobber:
  git-completion.tcsh: fix redirect with noclobber

5 years agoMerge branch 'mh/reporting-broken-refs-from-for-each-ref'
Junio C Hamano [Wed, 24 Jun 2015 19:21:51 +0000 (12:21 -0700)]
Merge branch 'mh/reporting-broken-refs-from-for-each-ref'

"git for-each-ref" reported "missing object" for 0{40} when it
encounters a broken ref.  The lack of object whose name is 0{40} is
not the problem; the ref being broken is.

* mh/reporting-broken-refs-from-for-each-ref:
  read_loose_refs(): treat NULL_SHA1 loose references as broken
  read_loose_refs(): simplify function logic
  for-each-ref: report broken references correctly
  t6301: new tests of for-each-ref error handling

5 years agoMerge branch 'sg/completion-commit-cleanup'
Junio C Hamano [Wed, 24 Jun 2015 19:21:51 +0000 (12:21 -0700)]
Merge branch 'sg/completion-commit-cleanup'

* sg/completion-commit-cleanup:
  completion: teach 'scissors' mode to 'git commit --cleanup='

5 years agoMerge branch 'pt/am-abort-fix'
Junio C Hamano [Wed, 24 Jun 2015 19:21:49 +0000 (12:21 -0700)]
Merge branch 'pt/am-abort-fix'

Various fixes around "git am" that applies a patch to a history
that is not there yet.

* pt/am-abort-fix:
  am --abort: keep unrelated commits on unborn branch
  am --abort: support aborting to unborn branch
  am --abort: revert changes introduced by failed 3way merge
  am --skip: support skipping while on unborn branch
  am -3: support 3way merge on unborn branch
  am --skip: revert changes introduced by failed 3way merge

5 years agoMerge branch 'nd/untracked-cache'
Junio C Hamano [Wed, 24 Jun 2015 19:21:49 +0000 (12:21 -0700)]
Merge branch 'nd/untracked-cache'

Hotfix for the 'untracked-cache' topic that is already in 'master'.

* nd/untracked-cache:
  read-cache: fix untracked cache invalidation when split-index is used

5 years agoMerge branch 'mh/fsck-reflog-entries'
Junio C Hamano [Wed, 24 Jun 2015 19:21:48 +0000 (12:21 -0700)]
Merge branch 'mh/fsck-reflog-entries'

"git fsck" used to ignore missing or invalid objects recorded in reflog.

* mh/fsck-reflog-entries:
  fsck: report errors if reflog entries point at invalid objects
  fsck_handle_reflog_sha1(): new function

5 years agoMerge branch 'js/sleep-without-select'
Junio C Hamano [Wed, 24 Jun 2015 19:21:47 +0000 (12:21 -0700)]
Merge branch 'js/sleep-without-select'

Portability fix.

* js/sleep-without-select:
  lockfile: wait using sleep_millisec() instead of select()
  lockfile: convert retry timeout computations to millisecond
  help.c: wrap wait-only poll() invocation in sleep_millisec()
  lockfile: replace random() by rand()

5 years agoMerge branch 'es/utf8-stupid-compiler-workaround'
Junio C Hamano [Wed, 24 Jun 2015 19:21:46 +0000 (12:21 -0700)]
Merge branch 'es/utf8-stupid-compiler-workaround'

A compilation workaround.

* es/utf8-stupid-compiler-workaround:
  utf8: NO_ICONV: silence uninitialized variable warning

5 years agoMerge branch 'rl/am-3way-config'
Junio C Hamano [Wed, 24 Jun 2015 19:21:45 +0000 (12:21 -0700)]
Merge branch 'rl/am-3way-config'

"git am" learned am.threeWay configuration variable.

* rl/am-3way-config:
  git-am: add am.threeWay config variable
  t4150-am: refactor am -3 tests
  git-am.sh: fix initialization of the threeway variable

5 years agoMerge branch 'jc/ll-merge-expose-path'
Junio C Hamano [Wed, 24 Jun 2015 19:21:45 +0000 (12:21 -0700)]
Merge branch 'jc/ll-merge-expose-path'

Traditionally, external low-level 3-way merge drivers are expected
to produce their results based solely on the contents of the three
variants given in temporary files named by %O, %A and %B on their
command line.  Additionally allow them to look at the final path
(given by %P).

* jc/ll-merge-expose-path:
  ll-merge: pass the original path to external drivers

5 years agoMerge branch 'es/osx-header-pollutes-mask-macro'
Junio C Hamano [Wed, 24 Jun 2015 19:21:44 +0000 (12:21 -0700)]
Merge branch 'es/osx-header-pollutes-mask-macro'

* es/osx-header-pollutes-mask-macro:
  ewah: use less generic macro name
  ewah/bitmap: silence warning about MASK macro redefinition

5 years agoMerge branch 'es/configure-getdelim'
Junio C Hamano [Wed, 24 Jun 2015 19:21:43 +0000 (12:21 -0700)]
Merge branch 'es/configure-getdelim'

Auto-detect availability of getdelim() that helps optimized version
of strbuf_getwholeline().

* es/configure-getdelim:
  configure: add getdelim() check
  config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases

5 years agoMerge branch 'pt/pull-optparse'
Junio C Hamano [Wed, 24 Jun 2015 19:21:42 +0000 (12:21 -0700)]
Merge branch 'pt/pull-optparse'

"git pull" has become more aware of the options meant for
underlying "git fetch" and then learned to use parse-options
parser.

* pt/pull-optparse:
  pull: use git-rev-parse --parseopt for option parsing
  pull: handle git-fetch's options as well

5 years agoMerge branch 'qn/blame-show-email'
Junio C Hamano [Wed, 24 Jun 2015 19:21:41 +0000 (12:21 -0700)]
Merge branch 'qn/blame-show-email'

"git blame" learned blame.showEmail configuration variable.

* qn/blame-show-email:
  blame: add blame.showEmail configuration

5 years agoMerge branch 'jc/do-not-feed-tags-to-clear-commit-marks'
Junio C Hamano [Wed, 24 Jun 2015 19:21:40 +0000 (12:21 -0700)]
Merge branch 'jc/do-not-feed-tags-to-clear-commit-marks'

"git format-patch --ignore-if-upstream A..B" did not like to be fed
tags as boundary commits.

* jc/do-not-feed-tags-to-clear-commit-marks:
  format-patch: do not feed tags to clear_commit_marks()

5 years agoMerge branch 'es/send-email-sendmail-alias'
Junio C Hamano [Wed, 24 Jun 2015 19:21:39 +0000 (12:21 -0700)]
Merge branch 'es/send-email-sendmail-alias'

"git send-email" learned to handle more forms of sendmail style
aliases file.

* es/send-email-sendmail-alias:
  send-email: further warn about unsupported sendmail aliases features
  t9001: add sendmail aliases line continuation tests
  t9001: refactor sendmail aliases test infrastructure
  send-email: implement sendmail aliases line continuation support
  send-email: simplify sendmail aliases comment and blank line recognizer
  send-email: refactor sendmail aliases parser
  send-email: fix style: cuddle 'elsif' and 'else' with closing brace
  send-email: drop noise comments which merely repeat what code says
  send-email: visually distinguish sendmail aliases parser warnings
  send-email: further document missing sendmail aliases functionality

5 years agoMerge branch 'jc/apply-reject-noop-hunk'
Junio C Hamano [Wed, 24 Jun 2015 19:21:39 +0000 (12:21 -0700)]
Merge branch 'jc/apply-reject-noop-hunk'

"git apply" cannot diagnose a patch corruption when the breakage is
to mark the length of the hunk shorter than it really is on the
hunk header line "@@ -l,k +m,n @@"; one special case it could is
when the hunk becomes no-op (e.g. k == n == 2 for two-line context
patch output), and it learned how to do so.

* jc/apply-reject-noop-hunk:
  apply: reject a hunk that does not do anything

5 years agoRevert "diff-lib.c: adjust position of i-t-a entries in diff"
Junio C Hamano [Tue, 23 Jun 2015 17:27:47 +0000 (10:27 -0700)]
Revert "diff-lib.c: adjust position of i-t-a entries in diff"

This reverts commit d95d728aba06a34394d15466045cbdabdada58a2.

It turns out that many other commands that need to interact with the
result of running diff-files and diff-index, e.g.  "git apply", "git
rm", etc., need to be adjusted to the new world order it brings in.
For example, it would break this sequence to correct a whitespace
breakage in the parts you changed:

git add -N file
git diff --cached file | git apply --cached --whitespace=fix
git checkout file

In the old world order, "diff" showed a patch to modify an existing
empty file by adding its full contents, and "apply" updated the
index by modifying the existing empty blob (which is what an
Intent-to-Add entry records in the index) with that patch.

In the new world order, "diff" shows a patch to create a new file
with its full contents, but because "apply" thinks that the i-t-a
entry already exists in the index, it refused to accept a creation.

Adjusting "apply" to this new world order is easy, but we need to
assess the extent of the damage to the rest of the system the new
world order brought in before going forward and adjust them all,
after which we can resurrect the commit being reverted here.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agogit-multimail: update to release 1.1.0
Matthieu Moy [Thu, 18 Jun 2015 08:46:04 +0000 (10:46 +0200)]
git-multimail: update to release 1.1.0

The changes are described in CHANGES.

Contributions-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Contributions-by: Richard Hansen <rhansen@rhansen.org>
Contributions-by: Michael Haggerty <mhagger@alum.mit.edu>
Contributions-by: Elijah Newren <newren@gmail.com>
Contributions-by: Luke Mewburn <luke@mewburn.net>
Contributions-by: Dave Boutcher <daveboutcher@gmail.com>
Contributions-by: Azat Khuzhin <a3at.mail@gmail.com>
Contributions-by: Sebastian Schuberth <sschuberth@gmail.com>
Contributions-by: Mikko Johannes Koivunalho <mikko.koivunalho@iki.fi>
Contributions-by: Elijah Newren <newren@palantir.com>
Contributions-by: Benoît Ryder <benoit@ryder.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoEighth batch for 2.5
Junio C Hamano [Tue, 16 Jun 2015 21:39:31 +0000 (14:39 -0700)]
Eighth batch for 2.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoSync with 2.4.4
Junio C Hamano [Tue, 16 Jun 2015 21:39:01 +0000 (14:39 -0700)]
Sync with 2.4.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoGit 2.4.4 v2.4.4
Junio C Hamano [Tue, 16 Jun 2015 21:38:01 +0000 (14:38 -0700)]
Git 2.4.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'jk/clone-dissociate' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:52 +0000 (14:33 -0700)]
Merge branch 'jk/clone-dissociate' into maint

Code clean-up.

* jk/clone-dissociate:
  clone: reorder --dissociate and --reference options
  clone: use OPT_STRING_LIST for --reference

5 years agoMerge branch 'sb/submodule-doc-intro' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:52 +0000 (14:33 -0700)]
Merge branch 'sb/submodule-doc-intro' into maint

* sb/submodule-doc-intro:
  submodule doc: reorder introductory paragraphs

5 years agoMerge branch 'sb/glossary-submodule' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:51 +0000 (14:33 -0700)]
Merge branch 'sb/glossary-submodule' into maint

* sb/glossary-submodule:
  glossary: add "remote", "submodule", "superproject"

5 years agoMerge branch 'ah/usage-strings' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:50 +0000 (14:33 -0700)]
Merge branch 'ah/usage-strings' into maint

A few usage string updates.

* ah/usage-strings:
  blame, log: format usage strings similarly to those in documentation

5 years agoMerge branch 'mc/commit-doc-grammofix' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:49 +0000 (14:33 -0700)]
Merge branch 'mc/commit-doc-grammofix' into maint

Doc grammar fix.

* mc/commit-doc-grammofix:
  Documentation/git-commit: grammofix

5 years agoMerge branch 'rs/janitorial' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:47 +0000 (14:33 -0700)]
Merge branch 'rs/janitorial' into maint

Code clean-up.

* rs/janitorial:
  dir: remove unused variable sb
  clean: remove unused variable buf
  use file_exists() to check if a file exists in the worktree

5 years agoMerge branch 'sb/test-bitmap-free-at-end' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:47 +0000 (14:33 -0700)]
Merge branch 'sb/test-bitmap-free-at-end' into maint

An earlier leakfix to bitmap testing code was incomplete.

* sb/test-bitmap-free-at-end:
  test_bitmap_walk: free bitmap with bitmap_free

5 years agoMerge branch 'dt/clean-pathspec-filter-then-lstat' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:46 +0000 (14:33 -0700)]
Merge branch 'dt/clean-pathspec-filter-then-lstat' into maint

"git clean pathspec..." tried to lstat(2) and complain even for
paths outside the given pathspec.

* dt/clean-pathspec-filter-then-lstat:
  clean: only lstat files in pathspec

5 years agoMerge branch 'jk/http-backend-deadlock' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:45 +0000 (14:33 -0700)]
Merge branch 'jk/http-backend-deadlock' into maint

Communication between the HTTP server and http_backend process can
lead to a dead-lock when relaying a large ref negotiation request.
Diagnose the situation better, and mitigate it by reading such a
request first into core (to a reasonable limit).

* jk/http-backend-deadlock:
  http-backend: spool ref negotiation requests to buffer
  t5551: factor out tag creation
  http-backend: fix die recursion with custom handler

5 years agoMerge branch 'jh/filter-empty-contents' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:44 +0000 (14:33 -0700)]
Merge branch 'jh/filter-empty-contents' into maint

The clean/smudge interface did not work well when filtering an
empty contents (failed and then passed the empty input through).
It can be argued that a filter that produces anything but empty for
an empty input is nonsense, but if the user wants to do strange
things, then why not?

* jh/filter-empty-contents:
  sha1_file: pass empty buffer to index empty file

5 years agoMerge branch 'jk/stash-options' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:43 +0000 (14:33 -0700)]
Merge branch 'jk/stash-options' into maint

Make "git stash something --help" error out, so that users can
safely say "git stash drop --help".

* jk/stash-options:
  stash: recognize "--help" for subcommands
  stash: complain about unknown flags

5 years agoMerge branch 'mm/log-format-raw-doc' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:42 +0000 (14:33 -0700)]
Merge branch 'mm/log-format-raw-doc' into maint

Clarify that "log --raw" and "log --format=raw" are unrelated
concepts.

* mm/log-format-raw-doc:
  Documentation/log: clarify sha1 non-abbreviation in log --raw
  Documentation/log: clarify what --raw means

5 years agoMerge branch 'ep/do-not-feed-a-pointer-to-array-size' into maint
Junio C Hamano [Tue, 16 Jun 2015 21:33:41 +0000 (14:33 -0700)]
Merge branch 'ep/do-not-feed-a-pointer-to-array-size' into maint

Catch a programmer mistake to feed a pointer not an array to
ARRAY_SIZE() macro, by using a couple of GCC extensions.

* ep/do-not-feed-a-pointer-to-array-size:
  git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array

5 years agoMerge branch 'nd/slim-index-pack-memory-usage'
Junio C Hamano [Tue, 16 Jun 2015 21:27:08 +0000 (14:27 -0700)]
Merge branch 'nd/slim-index-pack-memory-usage'

An earlier optimization broke index-pack for a large object
transfer; this fixes it before the breakage hits any released
version.

* nd/slim-index-pack-memory-usage:
  index-pack: fix truncation of off_t in comparison

5 years agoMerge branch 'sb/pack-protocol-mention-smart-http'
Junio C Hamano [Tue, 16 Jun 2015 21:27:07 +0000 (14:27 -0700)]
Merge branch 'sb/pack-protocol-mention-smart-http'

Doc updates.

* sb/pack-protocol-mention-smart-http:
  Documentation/technical/pack-protocol: mention http as possible protocol

5 years agoMerge branch 'jk/make-fix-dependencies'
Junio C Hamano [Tue, 16 Jun 2015 21:27:06 +0000 (14:27 -0700)]
Merge branch 'jk/make-fix-dependencies'

Build clean-up.

* jk/make-fix-dependencies:
  Makefile: silence perl/PM.stamp recipe
  Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS
  Makefile: drop dependency between git-instaweb and gitweb

5 years agoMerge branch 'jk/die-on-bogus-worktree-late'
Junio C Hamano [Tue, 16 Jun 2015 21:27:06 +0000 (14:27 -0700)]
Merge branch 'jk/die-on-bogus-worktree-late'

The setup code used to die when core.bare and core.worktree are set
inconsistently, even for commands that do not need working tree.

* jk/die-on-bogus-worktree-late:
  setup_git_directory: delay core.bare/core.worktree errors

5 years agoMerge branch 'sg/merge-summary-config'
Junio C Hamano [Tue, 16 Jun 2015 21:27:05 +0000 (14:27 -0700)]
Merge branch 'sg/merge-summary-config'

Doc updates.

* sg/merge-summary-config:
  Documentation: include 'merge.branchdesc' for merge and config as well

5 years agoMerge branch 'ah/send-email-sendmail-alias'
Junio C Hamano [Tue, 16 Jun 2015 21:27:04 +0000 (14:27 -0700)]
Merge branch 'ah/send-email-sendmail-alias'

"git send-email" learned the alias file format used by the sendmail
program (in an abbreviated form).

* ah/send-email-sendmail-alias:
  t9001: write $HOME/, not ~/, to help shells without tilde expansion
  send-email: add sendmail email aliases format

5 years agoRevert "stash: require a clean index to apply"
Jeff King [Mon, 15 Jun 2015 18:27:22 +0000 (14:27 -0400)]
Revert "stash: require a clean index to apply"

This reverts commit ed178ef13a26136d86ff4e33bb7b1afb5033f908.

That commit was an attempt to improve the safety of applying
a stash, because the application process may create
conflicted index entries, after which it is hard to restore
the original index state.

Unfortunately, this hurts some common workflows around "git
stash -k", like:

    git add -p       ;# (1) stage set of proposed changes
    git stash -k     ;# (2) get rid of everything else
    make test        ;# (3) make sure proposal is reasonable
    git stash apply  ;# (4) restore original working tree

If you "git commit" between steps (3) and (4), then this
just works. However, if these steps are part of a pre-commit
hook, you don't have that opportunity (you have to restore
the original state regardless of whether the tests passed or
failed).

It's possible that we could provide better tools for this
sort of workflow. In particular, even before ed178ef, it
could fail with a conflict if there were conflicting hunks
in the working tree and index (since the "stash -k" puts the
index version into the working tree, and we then attempt to
apply the differences between HEAD and the old working tree
on top of that). But the fact remains that people have been
using it happily for a while, and the safety provided by
ed178ef is simply not that great. Let's revert it for now.
In the long run, people can work on improving stash for this
sort of workflow, but the safety tradeoff is not worth it in
the meantime.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge tag 'l10n-2.4-maint-de-updates' of git://github.com/git-l10n/git-po into maint
Junio C Hamano [Sun, 14 Jun 2015 21:24:49 +0000 (14:24 -0700)]
Merge tag 'l10n-2.4-maint-de-updates' of git://github.com/git-l10n/git-po into maint

l10n-2.4-maint-de-updates

* tag 'l10n-2.4-maint-de-updates' of git://github.com/git-l10n/git-po:
  l10n: de.po: translation fix for fall-back to 3way merge
  l10n: de.po: punctuation fixes
  l10n: de.po: grammar fix
  l10n: de.po: change error message from "sagen" to "Meinten Sie"

5 years agohooks/pre-auto-gc: adjust power checking for newer OS X
Panagiotis Astithas [Thu, 11 Jun 2015 14:37:25 +0000 (17:37 +0300)]
hooks/pre-auto-gc: adjust power checking for newer OS X

The output of "pmset -g batt" changed at some point from "Currently
drawing from 'AC Power'" to the slightly different "Now drawing from
'AC Power'". Starting the match from "drawing" makes the check work
in both old and new versions of OS X.

Signed-off-by: Panagiotis Astithas <pastith@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agot0302: "unreadable" test needs SANITY prereq
Paul Tan [Fri, 12 Jun 2015 13:29:58 +0000 (21:29 +0800)]
t0302: "unreadable" test needs SANITY prereq

The test expects that "chmod -r ~/.git-credentials" would make it
unreadable to the user, and thus needs the SANITY prerequisite.

Reported-by: Jean-Yves LENHOF <jean-yves@lenhof.eu.org>
Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: de.po: translation fix for fall-back to 3way merge
Michael J Gruber [Tue, 19 May 2015 08:51:34 +0000 (10:51 +0200)]
l10n: de.po: translation fix for fall-back to 3way merge

The English version is correct, but misleading: It is not the 3way merge
that is being patched also, but that is being fallen back to also.

The German version translates the former meaning. Make it translate the
latter.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
5 years agol10n: de.po: punctuation fixes
Michael J Gruber [Tue, 19 May 2015 08:51:33 +0000 (10:51 +0200)]
l10n: de.po: punctuation fixes

This respects the ellipsis style used in de.po.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
5 years agol10n: de.po: grammar fix
Michael J Gruber [Tue, 19 May 2015 08:51:32 +0000 (10:51 +0200)]
l10n: de.po: grammar fix

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
5 years agol10n: de.po: change error message from "sagen" to "Meinten Sie"
Phillip Sz [Sat, 9 May 2015 11:28:55 +0000 (13:28 +0200)]
l10n: de.po: change error message from "sagen" to "Meinten Sie"

We should not use "sagen" if someone has written something wrong.
Although it's "say" in English, we should not use it in German
and instead use our normal error message.

Signed-off-by: Phillip Sz <phillip.szelat@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
5 years agoSecond half of seventh batch
Junio C Hamano [Thu, 11 Jun 2015 16:35:25 +0000 (09:35 -0700)]
Second half of seventh batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'tb/complete-sequencing'
Junio C Hamano [Thu, 11 Jun 2015 16:29:59 +0000 (09:29 -0700)]
Merge branch 'tb/complete-sequencing'

The bash completion script (in contrib/) learned a few options that
"git revert" takes.

* tb/complete-sequencing:
  completion: suggest sequencer commands for revert

5 years agoMerge branch 'jk/squelch-missing-link-warning-for-unreachable'
Junio C Hamano [Thu, 11 Jun 2015 16:29:58 +0000 (09:29 -0700)]
Merge branch 'jk/squelch-missing-link-warning-for-unreachable'

Recent "git prune" traverses young unreachable objects to safekeep
old objects in the reachability chain from them, which sometimes
caused error messages that are unnecessarily alarming.

* jk/squelch-missing-link-warning-for-unreachable:
  suppress errors on missing UNINTERESTING links
  silence broken link warnings with revs->ignore_missing_links
  add quieter versions of parse_{tree,commit}

5 years agoMerge branch 'pt/pull-tests'
Junio C Hamano [Thu, 11 Jun 2015 16:29:58 +0000 (09:29 -0700)]
Merge branch 'pt/pull-tests'

Add more test coverage to "git pull".

* pt/pull-tests:
  t5520: check reflog action in fast-forward merge
  t5521: test --dry-run does not make any changes
  t5520: test --rebase failure on unborn branch with index
  t5520: test --rebase with multiple branches
  t5520: test work tree fast-forward when fetch updates head
  t5520: test for failure if index has unresolved entries
  t5520: test no merge candidates cases
  t5520: prevent field splitting in content comparisons

5 years agoMerge branch 'sb/glossary-submodule'
Junio C Hamano [Thu, 11 Jun 2015 16:29:57 +0000 (09:29 -0700)]
Merge branch 'sb/glossary-submodule'

* sb/glossary-submodule:
  glossary: add "remote", "submodule", "superproject"

5 years agoMerge branch 'sb/submodule-doc-intro'
Junio C Hamano [Thu, 11 Jun 2015 16:29:56 +0000 (09:29 -0700)]
Merge branch 'sb/submodule-doc-intro'

* sb/submodule-doc-intro:
  submodule doc: reorder introductory paragraphs

5 years agoMerge branch 'jk/diagnose-config-mmap-failure'
Junio C Hamano [Thu, 11 Jun 2015 16:29:55 +0000 (09:29 -0700)]
Merge branch 'jk/diagnose-config-mmap-failure'

The configuration reader/writer uses mmap(2) interface to access
the files; when we find a directory, it barfed with "Out of memory?".

* jk/diagnose-config-mmap-failure:
  xmmap(): drop "Out of memory?"
  config.c: rewrite ENODEV into EISDIR when mmap fails
  config.c: avoid xmmap error messages
  config.c: fix mmap leak when writing config
  read-cache.c: drop PROT_WRITE from mmap of index

5 years agoMerge branch 'mt/p4-depotFile-at-version'
Junio C Hamano [Thu, 11 Jun 2015 16:29:55 +0000 (09:29 -0700)]
Merge branch 'mt/p4-depotFile-at-version'

* mt/p4-depotFile-at-version:
  p4: retrieve the right revision of the file in UTF-16 codepath

5 years agoMerge branch 'mh/verify-lock-error-report'
Junio C Hamano [Thu, 11 Jun 2015 16:29:54 +0000 (09:29 -0700)]
Merge branch 'mh/verify-lock-error-report'

Bring consistency to error reporting mechanism used in "refs" API.

* mh/verify-lock-error-report:
  ref_transaction_commit(): do not capitalize error messages
  verify_lock(): do not capitalize error messages
  verify_lock(): report errors via a strbuf
  verify_lock(): on errors, let the caller unlock the lock
  verify_lock(): return 0/-1 rather than struct ref_lock *

5 years agoMerge branch 'jk/color-diff-plain-is-context'
Junio C Hamano [Thu, 11 Jun 2015 16:29:53 +0000 (09:29 -0700)]
Merge branch 'jk/color-diff-plain-is-context'

"color.diff.plain" was a misnomer; give it 'color.diff.context' as
a more logical synonym.

* jk/color-diff-plain-is-context:
  diff.h: rename DIFF_PLAIN color slot to DIFF_CONTEXT
  diff: accept color.diff.context as a synonym for "plain"

5 years agoMerge branch 'jk/clone-dissociate'
Junio C Hamano [Thu, 11 Jun 2015 16:29:52 +0000 (09:29 -0700)]
Merge branch 'jk/clone-dissociate'

Code clean-up.

* jk/clone-dissociate:
  clone: reorder --dissociate and --reference options
  clone: use OPT_STRING_LIST for --reference

5 years agoMerge branch 'jc/diff-ws-error-highlight'
Junio C Hamano [Thu, 11 Jun 2015 16:29:51 +0000 (09:29 -0700)]
Merge branch 'jc/diff-ws-error-highlight'

Allow whitespace breakages in deleted and context lines to be also
painted in the output.

* jc/diff-ws-error-highlight:
  diff.c: --ws-error-highlight=<kind> option
  diff.c: add emit_del_line() and emit_context_line()
  t4015: separate common setup and per-test expectation
  t4015: modernise style

5 years agodoc: format-patch: fix typo
Frans Klaver [Wed, 10 Jun 2015 21:01:14 +0000 (23:01 +0200)]
doc: format-patch: fix typo

reroll count documentation states that v<n> will be pretended to the
filename. Judging by the examples that should have been 'prepended'.

Signed-off-by: Frans Klaver <fransklaver@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agogit-p4: fixing --changes-block-size handling
Luke Diamand [Wed, 10 Jun 2015 07:30:59 +0000 (08:30 +0100)]
git-p4: fixing --changes-block-size handling

The --changes-block-size handling was intended to help when
a user has a limited "maxscanrows" (see "p4 group"). It used
"p4 changes -m $maxchanges" to limit the number of results.

Unfortunately, it turns out that the "maxscanrows" and "maxresults"
limits are actually applied *before* the "-m maxchanges" parameter
is considered (experimentally).

Fix the block-size handling so that it gets blocks of changes
limited by revision number ($Start..$Start+$N, etc). This limits
the number of results early enough that both sets of tests pass.

Note that many other Perforce operations can fail for the same
reason (p4 print, p4 files, etc) and it's probably not possible
to workaround this. In the real world, this is probably not
usually a problem.

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agogit-p4: add tests for non-numeric revision range
Luke Diamand [Wed, 10 Jun 2015 07:30:58 +0000 (08:30 +0100)]
git-p4: add tests for non-numeric revision range

Test that git-p4 can handle a sync with a non-numeric revision
range (e.g. a date).

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoindex-pack: avoid excessive re-reading of pack directory
Jeff King [Tue, 9 Jun 2015 17:24:37 +0000 (13:24 -0400)]
index-pack: avoid excessive re-reading of pack directory

Since 45e8a74 (has_sha1_file: re-check pack directory before
giving up, 2013-08-30), we spend extra effort for
has_sha1_file to give the right answer when somebody else is
repacking. Usually this effort does not matter, because
after finding that the object does not exist, the next step
is usually to die().

However, some code paths make a large number of
has_sha1_file checks which are _not_ expected to return 1.
The collision test in index-pack.c is such a case. On a
local system, this can cause a performance slowdown of
around 5%. But on a system with high-latency system calls
(like NFS), it can be much worse.

This patch introduces a "quick" flag to has_sha1_file which
callers can use when they would prefer high performance at
the cost of false negatives during repacks. There may be
other code paths that can use this, but the index-pack one
is the most obviously critical, so we'll start with
switching that one.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocommit: cope with scissors lines in commit message
SZEDER Gábor [Tue, 9 Jun 2015 00:28:34 +0000 (02:28 +0200)]
commit: cope with scissors lines in commit message

The diff and submodule shortlog appended to the commit message template
by 'git commit --verbose' are not stripped when the commit message
contains an indented scissors line.

When cleaning up a commit message with 'git commit --verbose' or
'--cleanup=scissors' the code is careful and triggers only on a pure
scissors line, i.e. a line containing nothing but a comment character, a
space, and the scissors cut.  This is good, because people can embed
scissors lines in the commit message while using 'git commit --verbose',
and the text they write after their indented scissors line doesn't get
deleted.

While doing so, however, the cleanup function only looks at the first
line matching the scissors pattern and if it doesn't start at the
beginning of the line, then the function just returns without performing
any cleanup.  This is wrong, because a "real" scissors line added by
'git commit --verbose' might follow, and in that case the diff and
submodule shortlog get included in the commit message.

Fix this by changing the scissors pattern to match only at the beginning
of the line, yet be careful to catch scissors on the first line as well.

Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agogit-completion.tcsh: fix redirect with noclobber
Ariel Faigon [Tue, 9 Jun 2015 17:25:15 +0000 (10:25 -0700)]
git-completion.tcsh: fix redirect with noclobber

tcsh users who happen to have 'set noclobber' elsewhere in their
~/.tcshrc or ~/.cshrc startup files get a 'File exist' error, and
the tcsh completion file doesn't get generated/updated.

Adding a `!` in the redirect works correctly for both clobber (default)
and 'set noclobber' users.

Reviewed-by: Christian Couder <christian.couder@gmail.com>
Signed-off-by: Ariel Faigon <github.2009@yendor.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoam --abort: keep unrelated commits on unborn branch
Paul Tan [Sat, 6 Jun 2015 11:46:12 +0000 (19:46 +0800)]
am --abort: keep unrelated commits on unborn branch

Since 7b3b7e3 (am --abort: keep unrelated commits since the last failure
and warn, 2010-12-21), git-am would refuse to rewind HEAD if commits
were made since the last git-am failure. This check was implemented in
safe_to_abort(), which checked to see if HEAD's hash matched the
abort-safety file.

However, this check was skipped if the abort-safety file was empty,
which can happen if git-am failed while on an unborn branch. As such, if
any commits were made since then, they would be discarded. Fix this by
carrying on the abort safety check even if the abort-safety file is
empty.

Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoam --abort: support aborting to unborn branch
Paul Tan [Sat, 6 Jun 2015 11:46:11 +0000 (19:46 +0800)]
am --abort: support aborting to unborn branch

When git-am is first run on an unborn branch, no ORIG_HEAD is created.
As such, any applied commits will remain even after a git am --abort.

To be consistent with the behavior of git am --abort when it is not run
from an unborn branch, we empty the index, and then destroy the branch
pointed to by HEAD if there is no ORIG_HEAD.

Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoam --abort: revert changes introduced by failed 3way merge
Paul Tan [Sat, 6 Jun 2015 11:46:10 +0000 (19:46 +0800)]
am --abort: revert changes introduced by failed 3way merge

Even when a merge conflict occurs with am --3way, the index will be
modified with the results of any successfully merged files. These
changes to the index will not be reverted with a
"git read-tree --reset -u HEAD ORIG_HEAD", as git read-tree will not be
aware of how the current index differs from HEAD or ORIG_HEAD.

To fix this, we first reset any conflicting entries in the index. The
resulting index will contain the results of successfully merged files
introduced by the failed merge. We write this index to a tree, and then
use git read-tree to fast-forward this "index tree" back to ORIG_HEAD,
thus undoing all the changes from the failed merge.

When we are on an unborn branch, HEAD and ORIG_HEAD will not point to
valid trees. In this case, use an empty tree.

Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoam --skip: support skipping while on unborn branch
Paul Tan [Sat, 6 Jun 2015 11:46:09 +0000 (19:46 +0800)]
am --skip: support skipping while on unborn branch

When git am --skip is run, git am will copy HEAD's tree entries to the
index with "git reset HEAD". However, on an unborn branch, HEAD does not
point to a tree, so "git reset HEAD" will fail.

Fix this by treating HEAD as en empty tree when we are on an unborn
branch.

Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>