OSDN Git Service

git-core/git.git
9 years agoMerge branch 'ss/clone-guess-dir-name-simplify'
Junio C Hamano [Mon, 13 Jul 2015 21:00:28 +0000 (14:00 -0700)]
Merge branch 'ss/clone-guess-dir-name-simplify'

Code simplification.

* ss/clone-guess-dir-name-simplify:
  clone: simplify string handling in guess_dir_name()

9 years agoMerge branch 'kb/config-unmap-before-renaming'
Junio C Hamano [Mon, 13 Jul 2015 21:00:27 +0000 (14:00 -0700)]
Merge branch 'kb/config-unmap-before-renaming'

"git config" failed to update the configuration file when the
underlying filesystem is incapable of renaming a file that is still
open.

* kb/config-unmap-before-renaming:
  config.c: fix writing config files on Windows network shares

9 years agoMerge branch 'mh/strbuf-read-file-returns-ssize-t'
Junio C Hamano [Mon, 13 Jul 2015 21:00:27 +0000 (14:00 -0700)]
Merge branch 'mh/strbuf-read-file-returns-ssize-t'

Avoid possible ssize_t to int truncation.

* mh/strbuf-read-file-returns-ssize-t:
  strbuf: strbuf_read_file() should return ssize_t

9 years agoMerge branch 'jc/unexport-git-pager-in-use-in-pager'
Junio C Hamano [Mon, 13 Jul 2015 21:00:26 +0000 (14:00 -0700)]
Merge branch 'jc/unexport-git-pager-in-use-in-pager'

When you say "!<ENTER>" while running say "git log", you'd confuse
yourself in the resulting shell, that may look as if you took
control back to the original shell you spawned "git log" from but
that isn't what is happening.  To that new shell, we leaked
GIT_PAGER_IN_USE environment variable that was meant as a local
communication between the original "Git" and subprocesses that was
spawned by it after we launched the pager, which caused many
"interesting" things to happen, e.g. "git diff | cat" still paints
its output in color by default.

Stop leaking that environment variable to the pager's half of the
fork; we only need it on "Git" side when we spawn the pager.

* jc/unexport-git-pager-in-use-in-pager:
  pager: do not leak "GIT_PAGER_IN_USE" to the pager

9 years agoMerge branch 'kb/use-nsec-doc'
Junio C Hamano [Mon, 13 Jul 2015 21:00:26 +0000 (14:00 -0700)]
Merge branch 'kb/use-nsec-doc'

Clarify in the Makefile a guideline to decide use of USE_NSEC.

* kb/use-nsec-doc:
  Makefile / racy-git.txt: clarify USE_NSEC prerequisites

9 years agoMerge branch 'js/rebase-i-clean-up-upon-continue-to-skip'
Junio C Hamano [Mon, 13 Jul 2015 21:00:25 +0000 (14:00 -0700)]
Merge branch 'js/rebase-i-clean-up-upon-continue-to-skip'

Abandoning an already applied change in "git rebase -i" with
"--continue" left CHERRY_PICK_HEAD and confused later steps.

* js/rebase-i-clean-up-upon-continue-to-skip:
  rebase -i: do not leave a CHERRY_PICK_HEAD file behind
  t3404: demonstrate CHERRY_PICK_HEAD bug

9 years agoMerge branch 'et/http-proxyauth'
Junio C Hamano [Mon, 13 Jul 2015 21:00:24 +0000 (14:00 -0700)]
Merge branch 'et/http-proxyauth'

We used to ask libCURL to use the most secure authentication method
available when talking to an HTTP proxy only when we were told to
talk to one via configuration variables.  We now ask libCURL to
always use the most secure authentication method, because the user
can tell libCURL to use an HTTP proxy via an environment variable
without using configuration variables.

* et/http-proxyauth:
  http: always use any proxy auth method available

9 years agoMerge branch 'jc/fsck-retire-require-eoh'
Junio C Hamano [Mon, 13 Jul 2015 21:00:23 +0000 (14:00 -0700)]
Merge branch 'jc/fsck-retire-require-eoh'

A fix to a minor regression to "git fsck" in v2.2 era that started
complaining about a body-less tag object when it lacks a separator
empty line after its header to separate it with a non-existent body.

* jc/fsck-retire-require-eoh:
  fsck: it is OK for a tag and a commit to lack the body

9 years agoThe last minute bits of fixes
Junio C Hamano [Fri, 10 Jul 2015 21:29:00 +0000 (14:29 -0700)]
The last minute bits of fixes

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'cb/rebase-am-exit-code'
Junio C Hamano [Fri, 10 Jul 2015 21:26:16 +0000 (14:26 -0700)]
Merge branch 'cb/rebase-am-exit-code'

"git rebase" did not exit with failure when format-patch it invoked
failed for whatever reason.

* cb/rebase-am-exit-code:
  rebase: return non-zero error code if format-patch fails

9 years agoMerge branch 'jk/fix-refresh-utime'
Junio C Hamano [Fri, 10 Jul 2015 21:26:14 +0000 (14:26 -0700)]
Merge branch 'jk/fix-refresh-utime'

Fix a small bug in our use of umask() return value.

* jk/fix-refresh-utime:
  check_and_freshen_file: fix reversed success-check

9 years agoMerge branch 'mm/branch-doc-updates'
Junio C Hamano [Fri, 10 Jul 2015 21:26:13 +0000 (14:26 -0700)]
Merge branch 'mm/branch-doc-updates'

* mm/branch-doc-updates:
  Documentation/branch: document -M and -D in terms of --force
  Documentation/branch: document -d --force and -m --force

9 years agoMerge branch 'ls/hint-rev-list-count'
Junio C Hamano [Fri, 10 Jul 2015 21:26:12 +0000 (14:26 -0700)]
Merge branch 'ls/hint-rev-list-count'

* ls/hint-rev-list-count:
  rev-list: add --count to usage guide

9 years agoMerge branch 'jk/rev-list-no-bitmap-while-pruning'
Junio C Hamano [Fri, 10 Jul 2015 21:26:12 +0000 (14:26 -0700)]
Merge branch 'jk/rev-list-no-bitmap-while-pruning'

A minor bugfix when pack bitmap is used with "rev-list --count".

* jk/rev-list-no-bitmap-while-pruning:
  rev-list: disable --use-bitmap-index when pruning commits

9 years agoMerge branch 'cb/subtree-tests-update'
Junio C Hamano [Fri, 10 Jul 2015 21:17:56 +0000 (14:17 -0700)]
Merge branch 'cb/subtree-tests-update'

Tests update in contrib/subtree.

* cb/subtree-tests-update:
  contrib/subtree: small tidy-up to test
  contrib/subtree: fix broken &&-chains and revealed test error
  contrib/subtree: use tabs consitently for indentation in tests

9 years agoMerge branch 'rh/test-color-avoid-terminfo-in-original-home'
Junio C Hamano [Fri, 10 Jul 2015 21:17:55 +0000 (14:17 -0700)]
Merge branch 'rh/test-color-avoid-terminfo-in-original-home'

An ancient test framework enhancement to allow color was not
entirely correct; this makes it work even when tput needs to read
from the ~/.terminfo under the user's real HOME directory.

* rh/test-color-avoid-terminfo-in-original-home:
  test-lib.sh: fix color support when tput needs ~/.terminfo
  Revert "test-lib.sh: do tests for color support after changing HOME"

9 years agoMerge branch 'sb/p5310-and-chain'
Junio C Hamano [Fri, 10 Jul 2015 21:17:54 +0000 (14:17 -0700)]
Merge branch 'sb/p5310-and-chain'

Code clean-up.

* sb/p5310-and-chain:
  p5310: Fix broken && chain in performance test

9 years agoMerge branch 'tb/checkout-doc'
Junio C Hamano [Fri, 10 Jul 2015 21:17:54 +0000 (14:17 -0700)]
Merge branch 'tb/checkout-doc'

Doc update.

* tb/checkout-doc:
  git-checkout.txt: document "git checkout <pathspec>" better

9 years agoMerge branch 'jk/pretty-encoding-doc'
Junio C Hamano [Fri, 10 Jul 2015 21:17:53 +0000 (14:17 -0700)]
Merge branch 'jk/pretty-encoding-doc'

Doc update.

* jk/pretty-encoding-doc:
  docs: clarify that --encoding can produce invalid sequences

9 years agoMerge branch 'nd/dwim-wildcards-as-pathspecs'
Junio C Hamano [Fri, 10 Jul 2015 21:17:52 +0000 (14:17 -0700)]
Merge branch 'nd/dwim-wildcards-as-pathspecs'

Test updates to a topic already in 2.5-rc.

* nd/dwim-wildcards-as-pathspecs:
  Add tests for wildcard "path vs ref" disambiguation

9 years agoMerge branch 'jk/maint-for-each-packed-object'
Junio C Hamano [Thu, 9 Jul 2015 21:31:43 +0000 (14:31 -0700)]
Merge branch 'jk/maint-for-each-packed-object'

The for_each_packed_object() API function did not iterate over
objects in a packfile that hasn't been used yet.

* jk/maint-for-each-packed-object:
  for_each_packed_object: automatically open pack index

9 years agoMerge branch 'jc/fix-alloc-sortbuf-in-index-pack'
Junio C Hamano [Thu, 9 Jul 2015 21:31:42 +0000 (14:31 -0700)]
Merge branch 'jc/fix-alloc-sortbuf-in-index-pack'

A hotfix for what is in 2.5-rc but not in 2.4.

* jc/fix-alloc-sortbuf-in-index-pack:
  index-pack: fix allocation of sorted_by_pos array

9 years agoclone: simplify string handling in guess_dir_name()
Sebastian Schuberth [Thu, 9 Jul 2015 18:24:08 +0000 (18:24 +0000)]
clone: simplify string handling in guess_dir_name()

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agocheck_and_freshen_file: fix reversed success-check
Jeff King [Wed, 8 Jul 2015 20:33:52 +0000 (16:33 -0400)]
check_and_freshen_file: fix reversed success-check

When we want to write out a loose object file, we have
always first made sure we don't already have the object
somewhere. Since 33d4221 (write_sha1_file: freshen existing
objects, 2014-10-15), we also update the timestamp on the
file, so that a simultaneous prune knows somebody is
likely to reference it soon.

If our utime() call fails, we treat this the same as not
having the object in the first place; the safe thing to do
is write out another copy. However, the loose-object check
accidentally inverts the utime() check; it returns failure
_only_ when the utime() call actually succeeded. Thus it was
failing to protect us there, and in the normal case where
utime() succeeds, it caused us to pointlessly write out and
link the object.

This passed our freshening tests, because writing out the
new object is certainly _one_ way of updating its utime. So
the normal case was inefficient, but not wrong.

While we're here, let's also drop a comment in front of the
check_and_freshen functions, making a note of their return
type (since it is not our usual "0 for success, -1 for
error").

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agorebase: return non-zero error code if format-patch fails
Clemens Buchacher [Thu, 2 Jul 2015 09:11:33 +0000 (11:11 +0200)]
rebase: return non-zero error code if format-patch fails

Since e481af06 (rebase: Handle cases where format-patch fails) we
notice if format-patch fails and return immediately from
git-rebase--am. We save the return value with ret=$?, but then we
return $?, which is usually zero in this case.

Fix this by returning $ret instead.

Cc: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Clemens Buchacher <clemens.buchacher@intel.com>
Helped-by: Jorge Nunes <jorge.nunes@intel.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoDocumentation/branch: document -M and -D in terms of --force
Matthieu Moy [Thu, 2 Jul 2015 14:07:21 +0000 (16:07 +0200)]
Documentation/branch: document -M and -D in terms of --force

Now that we have proper documentation for --force's interaction with -d
and -m, we can avoid duplication and consider -M and -D as convenience
aliases for -m --force and -d --force.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoDocumentation/branch: document -d --force and -m --force
Matthieu Moy [Thu, 2 Jul 2015 14:07:20 +0000 (16:07 +0200)]
Documentation/branch: document -d --force and -m --force

The --force option was modified in 356e91f (branch: allow -f with -m and
-d, 2014-12-08), but the documentation was not updated.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agogit-multimail: update to release 1.1.1
Matthieu Moy [Sun, 5 Jul 2015 11:10:17 +0000 (13:10 +0200)]
git-multimail: update to release 1.1.1

The only change is a bugfix: the SMTP mailer was not working with
Python 2.4.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoindex-pack: fix allocation of sorted_by_pos array
Junio C Hamano [Fri, 3 Jul 2015 16:51:57 +0000 (09:51 -0700)]
index-pack: fix allocation of sorted_by_pos array

When c6458e60 (index-pack: kill union delta_base to save memory,
2015-04-18) attempted to reduce the memory footprint of index-pack,
one of the key thing it did was to keep track of ref-deltas and
ofs-deltas separately.

In fix_unresolved_deltas(), however it forgot that it now wants to
look only at ref deltas in one place.  The code allocated an array
for nr_unresolved, which is sum of number of ref- and ofs-deltas
minus nr_resolved, which may be larger or smaller than the number
ref-deltas.  Depending on nr_resolved, this was either under or over
allocating.

Also, the old code before this change had to use 'i' and 'n' because
some of the things we see in the (old) deltas[] array we scanned
with 'i' would not make it into the sorted_by_pos[] array in the old
world order, but now because you have only ref delta in a separate
ref_deltas[] array, they increment lock&step.  We no longer need
separate variables.  And most importantly, we shouldn't pass the
nr_unresolved parameter, as this number does not play a role in the
working of this helper function.

Helped-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agostrbuf: strbuf_read_file() should return ssize_t
Michael Haggerty [Fri, 3 Jul 2015 13:59:32 +0000 (15:59 +0200)]
strbuf: strbuf_read_file() should return ssize_t

It is currently declared to return int, which could overflow for
large files.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agopager: do not leak "GIT_PAGER_IN_USE" to the pager
Junio C Hamano [Fri, 3 Jul 2015 17:18:45 +0000 (10:18 -0700)]
pager: do not leak "GIT_PAGER_IN_USE" to the pager

Since 2e6c012e (setup_pager: set GIT_PAGER_IN_USE, 2011-08-17), we
export GIT_PAGER_IN_USE so that a process that becomes the upstream
of the spawned pager can still tell that we have spawned the pager
and decide to do colored output even when its output no longer goes
to a terminal (i.e. isatty(1)).

But we forgot to clear it from the enviornment of the spawned pager.

This is not a problem in a sane world, but if you have a handful of
thousands Git users in your organization, somebody is bound to do
strange things, e.g. typing "!<ENTER>" instead of 'q' to get control
back from $LESS.  GIT_PAGER_IN_USE is still set in that subshell
spawned by "less", and all sorts of interesting things starts
happening, e.g. "git diff | cat" starts coloring its output.

We can clear the environment variable in the half of the fork that
runs the pager to avoid the confusion.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMakefile / racy-git.txt: clarify USE_NSEC prerequisites
Karsten Blees [Wed, 1 Jul 2015 19:10:52 +0000 (21:10 +0200)]
Makefile / racy-git.txt: clarify USE_NSEC prerequisites

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoGit 2.5.0-rc1 v2.5.0-rc1
Junio C Hamano [Wed, 1 Jul 2015 21:05:33 +0000 (14:05 -0700)]
Git 2.5.0-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'me/fetch-into-shallow-safety'
Junio C Hamano [Wed, 1 Jul 2015 21:02:33 +0000 (14:02 -0700)]
Merge branch 'me/fetch-into-shallow-safety'

"git fetch --depth=<depth>" and "git clone --depth=<depth>" issued
a shallow transfer request even to an upload-pack that does not
support the capability.

* me/fetch-into-shallow-safety:
  fetch-pack: check for shallow if depth given

9 years agoMerge branch 'jc/prompt-document-ps1-state-separator'
Junio C Hamano [Wed, 1 Jul 2015 21:02:32 +0000 (14:02 -0700)]
Merge branch 'jc/prompt-document-ps1-state-separator'

Docfix.

* jc/prompt-document-ps1-state-separator:
  git-prompt.sh: document GIT_PS1_STATESEPARATOR

9 years agoMerge branch 'mm/describe-doc'
Junio C Hamano [Wed, 1 Jul 2015 21:02:30 +0000 (14:02 -0700)]
Merge branch 'mm/describe-doc'

Docfix.

* mm/describe-doc:
  Documentation/describe: improve one-line summary

9 years agoMerge branch 'da/mergetool-winmerge'
Junio C Hamano [Wed, 1 Jul 2015 21:02:30 +0000 (14:02 -0700)]
Merge branch 'da/mergetool-winmerge'

Hotfix for an earlier change already in 'master' that broke the
default tool selection for mergetool.

* da/mergetool-winmerge:
  mergetool-lib: fix default tool selection

9 years agorev-list: disable --use-bitmap-index when pruning commits
Jeff King [Wed, 1 Jul 2015 18:42:17 +0000 (14:42 -0400)]
rev-list: disable --use-bitmap-index when pruning commits

The reachability bitmaps do not have enough information to
tell us which commits might have changed path "foo", so the
current code produces wrong answers for:

  git rev-list --use-bitmap-index --count HEAD -- foo

(it silently ignores the "foo" limiter). Instead, we should
fall back to doing a normal traversal (it is OK to fall
back rather than complain, because --use-bitmap-index is a
pure optimization, and might not kick in for other reasons,
such as there being no bitmaps in the repository).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoAdd tests for wildcard "path vs ref" disambiguation
Nguyễn Thái Ngọc Duy [Wed, 1 Jul 2015 11:08:14 +0000 (18:08 +0700)]
Add tests for wildcard "path vs ref" disambiguation

Commit 28fcc0b (pathspec: avoid the need of "--" when wildcard is used -
2015-05-02) changes how the disambiguation rules work. This patch adds
some tests to demonstrate, basically, if wildcard characters are in an
argument:

 - if the argument is valid extended sha-1 syntax, "--" must be used
 - otherwise the argument is considered a path, even without "--"

And wildcard can appear in extended sha-1 syntax, either as part of
regex in ":/<regex>" or as the literal path in ":<path>". The latter
case is less likely to happen in real world. But if you do ":/" a lot,
you may need to type "--" more.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agorev-list: add --count to usage guide
Lawrence Siebert [Wed, 1 Jul 2015 09:24:11 +0000 (02:24 -0700)]
rev-list: add --count to usage guide

--count should be mentioned in the usage guide, this updates code and
documentation.

Signed-off-by: Lawrence Siebert <lawrencesiebert@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoconfig.c: fix writing config files on Windows network shares
Karsten Blees [Tue, 30 Jun 2015 14:34:13 +0000 (16:34 +0200)]
config.c: fix writing config files on Windows network shares

Renaming to an existing file doesn't work on Windows network shares if the
target file is open.

munmap() the old config file before commit_lock_file.

Signed-off-by: Karsten Blees <blees@dcon.de>
Acked-by: Jeff King <peff@peff.net>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agorebase -i: do not leave a CHERRY_PICK_HEAD file behind
Johannes Schindelin [Thu, 18 Jun 2015 16:38:53 +0000 (18:38 +0200)]
rebase -i: do not leave a CHERRY_PICK_HEAD file behind

When skipping commits whose changes were already applied via `git rebase
--continue`, we need to clean up said file explicitly.

The same is not true for `git rebase --skip` because that will execute
`git reset --hard` as part of the "skip" handling in git-rebase.sh, even
before git-rebase--interactive.sh is called.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agot3404: demonstrate CHERRY_PICK_HEAD bug
Johannes Schindelin [Thu, 18 Jun 2015 16:38:44 +0000 (18:38 +0200)]
t3404: demonstrate CHERRY_PICK_HEAD bug

When rev-list's --cherry option does not detect that a patch has already
been applied upstream, an interactive rebase would offer to reapply it and
consequently stop at that patch with a failure, mentioning that the diff
is empty.

Traditionally, a `git rebase --continue` simply skips the commit in such a
situation.

However, as pointed out by Gábor Szeder, this leaves a CHERRY_PICK_HEAD
behind, making the Git prompt believe that a cherry pick is still going
on. This commit adds a test case demonstrating this bug.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agohttp: always use any proxy auth method available
Enrique Tobis [Fri, 26 Jun 2015 18:19:04 +0000 (18:19 +0000)]
http: always use any proxy auth method available

We set CURLOPT_PROXYAUTH to use the most secure authentication
method available only when the user has set configuration variables
to specify a proxy.  However, libcurl also supports specifying a
proxy through environment variables.  In that case libcurl defaults
to only using the Basic proxy authentication method, because we do
not use CURLOPT_PROXYAUTH.

Set CURLOPT_PROXYAUTH to always use the most secure authentication
method available, even when there is no git configuration telling us
to use a proxy. This allows the user to use environment variables to
configure a proxy that requires an authentication method different
from Basic.

Signed-off-by: Enrique A. Tobis <etobis@twosigma.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoSync with maint
Junio C Hamano [Sun, 28 Jun 2015 21:51:12 +0000 (14:51 -0700)]
Sync with maint

* maint:

9 years agofsck: it is OK for a tag and a commit to lack the body
Junio C Hamano [Sun, 28 Jun 2015 18:18:31 +0000 (11:18 -0700)]
fsck: it is OK for a tag and a commit to lack the body

When fsck validates a commit or a tag, it scans each line in the
header of the object using helper functions such as "start_with()",
etc. that work on a NUL terminated buffer, but before a1e920a0
(index-pack: terminate object buffers with NUL, 2014-12-08), the
validation functions were fed the object data in a piece of memory
that is not necessarily terminated with a NUL.

We added a helper function require_end_of_header() to be called at
the beginning of these validation functions to insist that the
object data contains an empty line before its end.  The theory is
that the validating functions will notice and stop when it hits an
empty line as a normal end of header (or a required header line that
is missing) without scanning past the end of potentially not
NUL-terminated buffer.

But the theory forgot that in the older days, Git itself happily
created objects with only the header lines without a body. This
caused Git 2.2 and later to issue an unnecessary warning in some
existing repositories.

With a1e920a0, we do not need to require an empty line (or the body)
in these objects to safely parse and validate them.  Drop the
offending "must have an empty line" check from this helper function,
while keeping the other check to make sure that there is no NUL in
the header part of the object, and adjust the name of the helper to
what it does accordingly.

Noticed-by: Wolfgang Denk <wd@denx.de>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agop5310: Fix broken && chain in performance test
Stefan Beller [Fri, 26 Jun 2015 21:27:00 +0000 (14:27 -0700)]
p5310: Fix broken && chain in performance test

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 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"

9 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

9 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>
9 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.

9 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

9 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

9 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>
9 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

9 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

9 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

9 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

9 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

9 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"

9 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

9 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}

9 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

9 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"

9 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>
9 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>
9 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>
9 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"

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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='

9 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

9 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

9 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

9 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()

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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()

9 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

9 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

9 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>
9 years agocontrib/subtree: small tidy-up to test
Charles Bailey [Mon, 22 Jun 2015 13:53:30 +0000 (14:53 +0100)]
contrib/subtree: small tidy-up to test

There's no need to switch branches to parse another branch's ancestry.

Signed-off-by: Charles Bailey <cbailey32@bloomberg.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agocontrib/subtree: fix broken &&-chains and revealed test error
Charles Bailey [Mon, 22 Jun 2015 13:53:29 +0000 (14:53 +0100)]
contrib/subtree: fix broken &&-chains and revealed test error

This fixes two instances where a &&-chain was broken in the subtree
tests and fixes a test error that was revealed because of this.

Many tests in t7900-subtree.sh make a commit and then use 'undo' to
reset the state for the next test. In the 'check hash of split' test,
an 'undo' was being invoked after a 'subtree split' even though the
particular invocation of 'subtree split' did not actually make a commit.
The subsequent check_equal was failing, but this failure was masked by
that broken &&-chain.

Removing this undo causes the failing check_equal to succeed but breaks
the a check_equal later on in the same test.

It turns out that an earlier test ('check if --message for merge works
with squash too') makes a commit but doesn't 'undo' to the state
expected by the remaining tests. None of the intervening tests cared
enough about the state of the test repo to fail and the spurious 'undo'
in 'check hash of split' restored the expected state for any remaining
test that might care.

Adding the missing 'undo' to 'check if --message for merge works
with squash too' and removing the spurious one from 'check hash of
split' fixes all tests once the &&-chains are completed.

Signed-off-by: Charles Bailey <cbailey32@bloomberg.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agocontrib/subtree: use tabs consitently for indentation in tests
Charles Bailey [Mon, 22 Jun 2015 13:53:28 +0000 (14:53 +0100)]
contrib/subtree: use tabs consitently for indentation in tests

Although subtrees tests uses more spaces for indentation than tabs,
there are still quite a lot of lines indented with tabs. As tabs conform
with Git coding guidelines resolve the inconsistency in favour of tabs.

Signed-off-by: Charles Bailey <cbailey32@bloomberg.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agofor_each_packed_object: automatically open pack index
Jeff King [Mon, 22 Jun 2015 10:40:50 +0000 (06:40 -0400)]
for_each_packed_object: automatically open pack index

When for_each_packed_object is called, we call
prepare_packed_git() to make sure we have the actual list of
packs. But the latter does not actually open the pack
indices, meaning that pack->nr_objects may simply be 0 if
the pack has not otherwise been used since the program
started.

In practice, this didn't come up for the current callers,
because they iterate the packed objects only after iterating
all reachable objects (so for it to matter you would have to
have a pack consisting only of unreachable objects). But it
is a dangerous and confusing interface that should be fixed
for future callers.

Note that we do not end the iteration when a pack cannot be
opened, but we do return an error. That lets you complete
the iteration even in actively-repacked repository where an
.idx file may racily go away, but it also lets callers know
that they may not have gotten the complete list (which the
current reachability-check caller does care about).

We have to tweak one of the prune tests due to the changed
return value; an earlier test creates bogus .idx files and
does not clean them up. Having to make this tweak is a good
thing; it means we will not prune in a broken repository,
and the test confirms that we do not negatively impact a
more lenient caller, count-objects.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agomergetool-lib: fix default tool selection
Michael J Gruber [Fri, 19 Jun 2015 09:30:55 +0000 (11:30 +0200)]
mergetool-lib: fix default tool selection

When no diff nor merge tool is specified (config, option), mergetool-lib
is supposed to choose a default tool from a set of tools. That set is
constructed dynamically depending on the environment (graphical, editor
setting) as a space separated string of tool names.

719518f (mergetool--lib: set IFS for difftool and mergetool, 2015-05-20)
introduced a newline as IFS which breaks the parsing of the space
separated list into items, resulting in a failed search for an available
tool.

Set IFS to a space locally for the tool search.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 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>
9 years agotest-lib.sh: fix color support when tput needs ~/.terminfo
Richard Hansen [Wed, 17 Jun 2015 21:11:21 +0000 (17:11 -0400)]
test-lib.sh: fix color support when tput needs ~/.terminfo

If tput needs ~/.terminfo for the current $TERM, then tput will
succeed before HOME is changed to $TRASH_DIRECTORY (causing color to
be set to 't') but fail afterward.

One possible way to fix this is to treat HOME like TERM: back up the
original value and temporarily restore it before say_color() runs
tput.

Instead, pre-compute and save the color control sequences before
changing either TERM or HOME.  Use the saved control sequences in
say_color() rather than call tput each time.  This avoids the need to
back up and restore the TERM and HOME variables, and it avoids the
overhead of a subshell and two invocations of tput per call to
say_color().

Signed-off-by: Richard Hansen <rhansen@bbn.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agodocs: clarify that --encoding can produce invalid sequences
Jeff King [Wed, 17 Jun 2015 18:46:08 +0000 (14:46 -0400)]
docs: clarify that --encoding can produce invalid sequences

In the common case that the commit encoding matches the
output encoding, we do not touch the buffer at all, which
makes things much more efficient. But it might be unclear to
a consumer that we will pass through bogus sequences.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>