gitweb.git
Merge git://ozlabs.org/~paulus/gitkJunio C Hamano Mon, 14 Sep 2015 18:50:21 +0000 (11:50 -0700)

Merge git://ozlabs.org/~paulus/gitk

* git://ozlabs.org/~paulus/gitk:
gitk: Accelerators for the main menu
gitk: Adjust the menu line numbers to compensate for the new entry
gitk: Add a "Copy commit summary" command
gitk: Update Bulgarian translation (307t)
gitk: Update .po files
gitk: Update Bulgarian translation (304t)
gitk: Use translated version of "Command line" in getcommitlines
gitk: Make it easier to go quickly to a specific commit
gitk: Show the current view's name in the window title
gitk: Add mouse right-click options to copy path and branch name
gitk: Remove mc parameter from proc show_error
gitk: Fix error when changing colors after closing "List references" window
gitk: Replace catch {unset foo} with unset -nocomplain foo
gitk: Rearrange window title to be more conventional
gitk: sv.po: Update Swedish translation (305t0f0u)
gitk: Fix bad English grammar "Matches none Commit Info"

Merge branch 'jk/pack-protocol-doc'Junio C Hamano Mon, 14 Sep 2015 18:46:59 +0000 (11:46 -0700)

Merge branch 'jk/pack-protocol-doc'

Streamline documentation of the pkt-line protocol.

* jk/pack-protocol-doc:
pack-protocol: clarify LF-handling in PKT-LINE()

Merge branch 'mp/t7060-diff-index-test'Junio C Hamano Mon, 14 Sep 2015 18:46:28 +0000 (11:46 -0700)

Merge branch 'mp/t7060-diff-index-test'

Fix an old test that was doing the same thing as another one.

* mp/t7060-diff-index-test:
t7060: actually test "git diff-index --cached -M"

Merge branch 'gb/apply-comment-typofix'Junio C Hamano Mon, 14 Sep 2015 18:44:43 +0000 (11:44 -0700)

Merge branch 'gb/apply-comment-typofix'

* gb/apply-comment-typofix:
apply: comment grammar fix

gitk: Accelerators for the main menuGiuseppe Bilotta Wed, 9 Sep 2015 13:20:53 +0000 (15:20 +0200)

gitk: Accelerators for the main menu

This allows fast, keyboard-only usage of the menu (e.g. Alt+V, N to open a
new view).

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

gitk: Adjust the menu line numbers to compensate for... Beat Bolli Mon, 7 Sep 2015 23:16:37 +0000 (01:16 +0200)

gitk: Adjust the menu line numbers to compensate for the new entry

Commit d835dbb9 ("gitk: Add a "Copy commit summary" command",
2015-08-13) in the upstream gitk repo added a new context menu entry.
Therefore, the line numbers of the entries below the new one need to be
adjusted when their text or state is changed.

Signed-off-by: Beat Bolli <dev+git@drbeat.li>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

Documentation/config: fix formatting for branch.*.rebas... Andreas Schwab Sat, 12 Sep 2015 14:26:53 +0000 (16:26 +0200)

Documentation/config: fix formatting for branch.*.rebase and pull.rebase

Don't format the second paragraph as a literal block.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tag, update-ref: improve description of option "create... Ralf Thielow Fri, 11 Sep 2015 16:04:13 +0000 (18:04 +0200)

tag, update-ref: improve description of option "create-reflog"

The description of option "create-reflog" is "create_reflog", which
is neither a good description, nor a sensible string to translate.
Change it to a more meaningful message.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pull: don't mark values for option "rebase" for translationRalf Thielow Fri, 11 Sep 2015 15:53:17 +0000 (17:53 +0200)

pull: don't mark values for option "rebase" for translation

"false|true|preserve" are actual values for option "rebase"
of the "git-pull" command and should therefore not be marked
for translation.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: use SHELL_PATH when running generate-cmdlist.shAlejandro R. Sedeño Thu, 10 Sep 2015 23:37:07 +0000 (19:37 -0400)

Makefile: use SHELL_PATH when running generate-cmdlist.sh

Non-POSIX shells, such as /bin/sh on SunOS, do not support $((...))
arithmetic expansion or $(...) command substitution needed by
generate-cmdlist.sh. Make sure that we use a POSIX compliant shell
$(SHELL_PATH) when running generate-cmdlist.sh.

Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
Acked-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-rebase: fix --no-autostash formattingJohn Keeping Thu, 10 Sep 2015 22:30:52 +0000 (23:30 +0100)

Documentation/git-rebase: fix --no-autostash formatting

All of the other "--option" and "--no-option" pairs in this file are
formatted as separate options.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase: support --no-autostashJohn Keeping Thu, 10 Sep 2015 22:30:51 +0000 (23:30 +0100)

rebase: support --no-autostash

This is documented as an option but we don't actually accept it.
Support it so that it is possible to override the "rebase.autostash"
config variable.

Reported-by: Daniel Hahler <genml+git-2014@thequod.de>
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: allow $(ARFLAGS) specified from the command... Junio C Hamano Thu, 10 Sep 2015 21:27:21 +0000 (14:27 -0700)

Makefile: allow $(ARFLAGS) specified from the command line

We can do this because we have a very simple needs and run "ar"
exactly the same way everywhere ;-).

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

Merge git://bogomips.org/git-svnJunio C Hamano Thu, 10 Sep 2015 21:06:58 +0000 (14:06 -0700)

Merge git://bogomips.org/git-svn

* git://bogomips.org/git-svn:
git-svn: parse authors file more leniently

git-svn: parse authors file more lenientlyMichael J Gruber Thu, 10 Sep 2015 12:32:13 +0000 (14:32 +0200)

git-svn: parse authors file more leniently

Currently, git-svn parses an authors file using the perl regex

/^(.+?|\(no author\))\s*=\s*(.+?)\s*<(.+)>\s*$/

in order to extract svn user name, real name and e-mail.
This does not match an empty e-mail field like "<>". On the other hand,
the output of an authors-prog is parsed with the perl regex

/^\s*(.+?)\s*<(.*)>\s*$/

in order to extract real name and e-mail.

So, specifying a trivial file grep such as

grep "$1" /tmp/authors | head -n 1 | cut -d'=' -f2 | cut -c'2-'

as the authors prog gives different results compared to specifying
/tmp/authors as the authors file directly.

Instead, make git svn uses the perl regex

/^(.+?|\(no author\))\s*=\s*(.+?)\s*<(.*)>\s*$/

for parsing the authors file so that the same (slightly more lenient)
regex is used in both cases.

Reported-by: Till Schäfer <till2.schaefer@tu-dortmund.de>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

Makefile: fix MAKEFLAGS tests with multiple flagsJohn Keeping Sat, 5 Sep 2015 12:22:10 +0000 (13:22 +0100)

Makefile: fix MAKEFLAGS tests with multiple flags

findstring is defined as $(findstring FIND,IN) so if multiple flags are
set these tests do the wrong thing unless $(MAKEFLAGS) is the second
argument.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'master' of github.com:jiangxin/gitJiang Xin Thu, 10 Sep 2015 15:14:16 +0000 (23:14 +0800)

Merge branch 'master' of github.com:jiangxin/git

* 'master' of github.com:jiangxin/git:
l10n: zh_CN: for git v2.6.0 l10n round 1
l10n: zh_CN: Update Git Glossary: "commit message"
l10n: zh_CN: Update Git Glossary: pickaxe
l10n: zh_CN: Update Git Glossary: fork
l10n: zh_CN: Update Git Glossary: tag
l10n: zh_CN: Update Git Glossary: "dumb", "smart"
l10n: zh_CN: Update Git Glossary: SHA-1
l10n: zh_CN: Add Surrounding Spaces
l10n: zh_CN: Add translations for Git glossary
l10n: TEAMS: stash inactive zh_CN team members
l10n: zh_CN: Update Translation of "tag"
l10n: zh_CN: Unify Translation of "packfile"
l10n: zh_CN: Update Translation: "tag object"

Sync with 2.5.2Junio C Hamano Wed, 9 Sep 2015 21:30:35 +0000 (14:30 -0700)

Sync with 2.5.2

am --skip/--abort: merge HEAD/ORIG_HEAD tree into indexJohannes Schindelin Wed, 9 Sep 2015 09:10:07 +0000 (09:10 +0000)

am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

f8da6801 (am --skip: support skipping while on unborn branch,
2015-06-06) introduced a performance regression to "git am --skip",
where it used "read-tree" to reconstruct the index from scratch
without reusing the cached stat information.

This is a backport of the corresponding patch to the builtin am in 2.6:
3ecc704 (am --skip/--abort: merge HEAD/ORIG_HEAD tree into index,
2015-08-19).

Reportedly, it can make a huge difference on Windows, in one case a `git
rebase --skip` took 1m40s without, and 5s with, this patch.

cf. https://github.com/git-for-windows/git/issues/365

Reported-and-suggested-by: Kim Gybels <kgybels@infogroep.be>
Acked-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: sv.po: Update Swedish translation (2441t0f0u)Peter Krefting Wed, 9 Sep 2015 20:46:35 +0000 (21:46 +0100)

l10n: sv.po: Update Swedish translation (2441t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>

Release Notes: typofixJunio C Hamano Wed, 9 Sep 2015 17:34:35 +0000 (10:34 -0700)

Release Notes: typofix

Thanks to Andreas Schwab for careful reading.

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

apply: comment grammar fixGiuseppe Bilotta Wed, 9 Sep 2015 13:33:18 +0000 (15:33 +0200)

apply: comment grammar fix

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

submodule: rewrite `module_clone` shell function in CStefan Beller Tue, 8 Sep 2015 18:57:45 +0000 (11:57 -0700)

submodule: rewrite `module_clone` shell function in C

This reimplements the helper function `module_clone` in shell
in C as `clone`. This functionality is needed for converting
`git submodule update` later on, which we want to add threading
to.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.6-rc1 v2.6.0-rc1Junio C Hamano Tue, 8 Sep 2015 22:38:43 +0000 (15:38 -0700)

Git 2.6-rc1

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

Merge branch 'jc/builtin-am-signoff-regression-fix'Junio C Hamano Tue, 8 Sep 2015 22:34:57 +0000 (15:34 -0700)

Merge branch 'jc/builtin-am-signoff-regression-fix'

Recent "git am" had regression when adding a Signed-off-by line
with its "-s" option by an unintended tightening of how an existing
trailer block is detected.

* jc/builtin-am-signoff-regression-fix:
am: match --signoff to the original scripted version

git_connect: clarify conn->use_shell flagJeff King Tue, 8 Sep 2015 08:33:14 +0000 (04:33 -0400)

git_connect: clarify conn->use_shell flag

When executing user-specified programs, we generally always
want to use a shell, for flexibility and consistency. One
big exception is executing $GIT_SSH, which for historical
reasons must not use a shell.

Once upon a time the logic in git_connect looked like:

if (protocol == PROTO_SSH) {
... setup ssh ...
} else {
... setup local connection ...
conn->use_shell = 1;
}

But over time the PROTO_SSH block has grown, and the "local"
block has shrunk so that it contains only conn->use_shell;
it's easy to miss at the end of the large block. Moreover,
PROTO_SSH now also sometimes sets use_shell, when the new
GIT_SSH_COMMAND is used.

Let's just set conn->use_shell when we're setting up the "conn"
struct, and unset it (with a comment) in the historical GIT_SSH
case. This will make the flow easier to follow.

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

interpret-trailers: allow running outside a repositoryJohn Keeping Sat, 5 Sep 2015 13:39:24 +0000 (14:39 +0100)

interpret-trailers: allow running outside a repository

It may be useful to run git-interpret-trailers without needing to be in
a repository.

Signed-off-by: John Keeping <john@keeping.me.uk>
Acked-by: Christian Couder <christian.couder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/subtree: respect spaces in a repository pathAlexey Shumkin Fri, 4 Sep 2015 22:24:11 +0000 (01:24 +0300)

contrib/subtree: respect spaces in a repository path

Remote repository may have spaces in its path, so take it into account.

Also, as far as there are no tests for the `push` command, add them.

Signed-off-by: Alexey Shumkin <Alex.Crezoff@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7900-subtree: test the "space in a subdirectory name... Alexey Shumkin Fri, 4 Sep 2015 22:24:10 +0000 (01:24 +0300)

t7900-subtree: test the "space in a subdirectory name" case

In common case there can be spaces in a subdirectory name. Change tests
accorgingly to this statement.

Also, as far as a call to the `rejoin_msg` function (in `cmd_split`)
does not take into account such a case this patch fixes commit message
when `--rejoin` option is set .

Besides, as `fixnl` and `multiline` functions did not take into account
the "new" tested "space in a subdirectory name" case they become unused
and redundant, so they are removed.

Signed-off-by: Alexey Shumkin <Alex.Crezoff@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-lib-functions: detect test_when_finished in subshellJohn Keeping Sat, 5 Sep 2015 13:12:49 +0000 (14:12 +0100)

test-lib-functions: detect test_when_finished in subshell

test_when_finished does nothing in a subshell because the change to
test_cleanup does not affect the parent.

There is no POSIX way to detect that we are in a subshell ($$ and $PPID
are specified to remain unchanged), but we can detect it on Bash and
fall back to ignoring the bug on other shells.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7800: don't use test_config in a subshellJohn Keeping Sat, 5 Sep 2015 13:12:48 +0000 (14:12 +0100)

t7800: don't use test_config in a subshell

Use the new "-C" option to test_config to change the configuration in
the submodule from the top level of the test so that it can be unset
correctly when the test finishes.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-lib-functions: support "test_config -C <dir> ..."John Keeping Sat, 5 Sep 2015 13:12:47 +0000 (14:12 +0100)

test-lib-functions: support "test_config -C <dir> ..."

If used in a subshell, test_config cannot unset variables at the end of
a test. This is a problem when testing submodules because we do not
want to "cd" at to top level of a test script in order to run the
command inside the submodule.

Add a "-C" option to test_config (and test_unconfig) so that test_config
can be kept outside subshells and still affect subrepositories.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5801: don't use test_when_finished in a subshellJohn Keeping Sat, 5 Sep 2015 13:12:46 +0000 (14:12 +0100)

t5801: don't use test_when_finished in a subshell

test_when_finished has no effect in a subshell. Since the cmp_marks
function is only used once, inline it at its call site and move the
test_when_finished invocation to the start of the test.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7610: don't use test_config in a subshellJohn Keeping Sat, 5 Sep 2015 13:12:45 +0000 (14:12 +0100)

t7610: don't use test_config in a subshell

test_config uses test_when_finished to reset the configuration after the
test, but this does not work inside a subshell. This does not cause a
problem here because the first thing the next test does is to set this
config variable itself, but we are about to add a check that will
complain when test_when_finished is used in a subshell.

In this case, "subdir" not a submodule so test_config has the same
effect when run at the top level and can simply be moved out of the
subshell.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: zh_CN: for git v2.6.0 l10n round 1Jiang Xin Sun, 23 Aug 2015 07:23:21 +0000 (15:23 +0800)

l10n: zh_CN: for git v2.6.0 l10n round 1

Update 123 translations (2441t0f0u) for git v2.6.0-rc0.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: Ray Chen <oldsharp@gmail.com>

am: match --signoff to the original scripted versionJunio C Hamano Sun, 6 Sep 2015 02:56:20 +0000 (19:56 -0700)

am: match --signoff to the original scripted version

Linus noticed that the recently reimplemented "git am -s" defines
the trailer block too rigidly, resulting in an unnecessary blank
line between the existing sign-offs and his new sign-off. An e-mail
submission sent to Linus in real life ends with mixture of sign-offs
and commentaries, e.g.

title here

message here

Signed-off-by: Original Author <original@auth.or>
[rv: tweaked frotz and nitfol]
Signed-off-by: Re Viewer <rv@ew.er>
Signed-off-by: Other Reviewer <other@rev.ewer>
---
patch here

Because the reimplementation reused append_signoff() helper that is
used by other codepaths, which is unaware that people intermix such
comments with their sign-offs in the trailer block, such a message
was judged to end with a non-trailer, resulting in an extra blank
line before adding a new sign-off.

The original scripted version of "git am" used a lot looser
definition, i.e. "if and only if there is no line that begins with
Signed-off-by:, add a blank line before adding a new sign-off". For
the upcoming release, stop using the append_signoff() in "git am"
and reimplement the looser definition used by the scripted version
to use only in "git am" to fix this regression in "am" while
avoiding new regressions to other users of append_signoff().

In the longer term, we should look into loosening append_signoff()
so that other codepaths that add a new sign-off behave the same way
as "git am -s", but that is a task for post-release.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: Updated Vietnamese translation (2441t)Tran Ngoc Quan Mon, 7 Sep 2015 01:54:05 +0000 (08:54 +0700)

l10n: Updated Vietnamese translation (2441t)

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

Merge branch 'master' of github.com:jiangxin/git into... Jiang Xin Sat, 5 Sep 2015 01:23:31 +0000 (09:23 +0800)

Merge branch 'master' of github.com:jiangxin/git into master

* 'master' of github.com:jiangxin/git:
l10n: zh_CN: Update Git Glossary: "commit message"
l10n: zh_CN: Update Git Glossary: pickaxe
l10n: zh_CN: Update Git Glossary: fork
l10n: zh_CN: Update Git Glossary: tag
l10n: zh_CN: Update Git Glossary: "dumb", "smart"
l10n: zh_CN: Update Git Glossary: SHA-1
l10n: zh_CN: Add Surrounding Spaces
l10n: zh_CN: Add translations for Git glossary
l10n: TEAMS: stash inactive zh_CN team members
l10n: zh_CN: Update Translation of "tag"
l10n: zh_CN: Unify Translation of "packfile"
l10n: zh_CN: Update Translation: "tag object"

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

l10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)Jiang Xin Sat, 5 Sep 2015 01:21:10 +0000 (09:21 +0800)

l10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)

Generate po/git.pot from v2.6.0-rc0-24-gec371ff for git v2.6.0 l10n
round 1.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

git_connect: clear GIT_* environment for sshJeff King Fri, 4 Sep 2015 22:40:08 +0000 (18:40 -0400)

git_connect: clear GIT_* environment for ssh

When we "switch" to another local repository to run the server
side of a fetch or push, we must clear the variables in
local_repo_env so that our local $GIT_DIR, etc, do not
pollute the upload-pack or receive-pack that is executing in
the "remote" repository.

We have never done so for ssh connections. For the most
part, nobody has noticed because ssh will not pass unknown
environment variables by default. However, it is not out of
the question for a user to configure ssh to pass along GIT_*
variables using SendEnv/AcceptEnv.

We can demonstrate the problem by using "git -c" on a local
command and seeing its impact on a remote repository. This
config ends up in $GIT_CONFIG_PARAMETERS. In the local case,
the config has no impact, but in the ssh transport, it does
(our test script has a fake ssh that passes through all
environment variables; this isn't normal, but does simulate
one possible setup).

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

pager: don't use unsafe functions in signal handlersTakashi Iwai Fri, 4 Sep 2015 09:35:57 +0000 (11:35 +0200)

pager: don't use unsafe functions in signal handlers

Since the commit a3da8821208d (pager: do wait_for_pager on signal
death), we call wait_for_pager() in the pager's signal handler. The
recent bug report revealed that this causes a deadlock in glibc at
aborting "git log" [*1*]. When this happens, git process is left
unterminated, and it can't be killed by SIGTERM but only by SIGKILL.

The problem is that wait_for_pager() function does more than waiting
for pager process's termination, but it does cleanups and printing
errors. Unfortunately, the functions that may be used in a signal
handler are very limited [*2*]. Particularly, malloc(), free() and the
variants can't be used in a signal handler because they take a mutex
internally in glibc. This was the cause of the deadlock above. Other
than the direct calls of malloc/free, many functions calling
malloc/free can't be used. strerror() is such one, either.

Also the usage of fflush() and printf() in a signal handler is bad,
although it seems working so far. In a safer side, we should avoid
them, too.

This patch tries to reduce the calls of such functions in signal
handlers. wait_for_signal() takes a flag and avoids the unsafe
calls. Also, finish_command_in_signal() is introduced for the
same reason. There the free() calls are removed, and only waits for
the children without whining at errors.

[*1*] https://bugzilla.opensuse.org/show_bug.cgi?id=942297
[*2*] http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04_03

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with maintJunio C Hamano Fri, 4 Sep 2015 21:34:57 +0000 (14:34 -0700)

Sync with maint

* maint:

Git 2.5.2 v2.5.2Junio C Hamano Fri, 4 Sep 2015 17:46:00 +0000 (10:46 -0700)

Git 2.5.2

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

Sync with 2.4.9Junio C Hamano Fri, 4 Sep 2015 17:43:23 +0000 (10:43 -0700)

Sync with 2.4.9

Git 2.4.9 v2.4.9Junio C Hamano Fri, 4 Sep 2015 17:36:00 +0000 (10:36 -0700)

Git 2.4.9

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

Sync with 2.3.9Junio C Hamano Fri, 4 Sep 2015 17:34:19 +0000 (10:34 -0700)

Sync with 2.3.9

Git 2.3.9 v2.3.9Junio C Hamano Fri, 4 Sep 2015 17:31:34 +0000 (10:31 -0700)

Git 2.3.9

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

Sync with 2.2.3Junio C Hamano Fri, 4 Sep 2015 17:29:28 +0000 (10:29 -0700)

Sync with 2.2.3

Git 2.2.3 v2.2.3Junio C Hamano Fri, 4 Sep 2015 17:25:47 +0000 (10:25 -0700)

Git 2.2.3

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

Merge branch 'jk/long-paths' into maint-2.2Junio C Hamano Fri, 4 Sep 2015 17:25:23 +0000 (10:25 -0700)

Merge branch 'jk/long-paths' into maint-2.2

show-branch: use a strbuf for reflog descriptionsJeff King Wed, 19 Aug 2015 18:12:48 +0000 (14:12 -0400)

show-branch: use a strbuf for reflog descriptions

When we show "branch@{0}", we format into a fixed-size
buffer using sprintf. This can overflow if you have long
branch names. We can fix it by using a temporary strbuf.

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

read_info_alternates: handle paths larger than PATH_MAXJeff King Wed, 19 Aug 2015 18:12:45 +0000 (14:12 -0400)

read_info_alternates: handle paths larger than PATH_MAX

This function assumes that the relative_base path passed
into it is no larger than PATH_MAX, and writes into a
fixed-size buffer. However, this path may not have actually
come from the filesystem; for example, add_submodule_odb
generates a path using a strbuf and passes it in. This is
hard to trigger in practice, though, because the long
submodule directory would have to exist on disk before we
would try to open its info/alternates file.

We can easily avoid the bug, though, by simply creating the
filename on the heap.

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

notes: use a strbuf in add_non_noteJeff King Wed, 19 Aug 2015 18:12:41 +0000 (14:12 -0400)

notes: use a strbuf in add_non_note

When we are loading a notes tree into our internal hash
table, we also collect any files that are clearly non-notes.
We format the name of the file into a PATH_MAX buffer, but
unlike true notes (which cannot be larger than a fanned-out
sha1 hash), these tree entries can be arbitrarily long,
overflowing our buffer.

We can fix this by switching to a strbuf. It doesn't even
cost us an extra allocation, as we can simply hand ownership
of the buffer over to the non-note struct.

This is of moderate security interest, as you might fetch
notes trees from an untrusted remote. However, we do not do
so by default, so you would have to manually fetch into the
notes namespace.

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

verify_absent: allow filenames longer than PATH_MAXJeff King Wed, 19 Aug 2015 18:12:37 +0000 (14:12 -0400)

verify_absent: allow filenames longer than PATH_MAX

When unpack-trees wants to know whether a path will
overwrite anything in the working tree, we use lstat() to
see if there is anything there. But if we are going to write
"foo/bar", we can't just lstat("foo/bar"); we need to look
for leading prefixes (e.g., "foo"). So we use the lstat cache
to find the length of the leading prefix, and copy the
filename up to that length into a temporary buffer (since
the original name is const, we cannot just stick a NUL in
it).

The copy we make goes into a PATH_MAX-sized buffer, which
will overflow if the prefix is longer than PATH_MAX. How
this happens is a little tricky, since in theory PATH_MAX is
the biggest path we will have read from the filesystem. But
this can happen if:

- the compiled-in PATH_MAX does not accurately reflect
what the filesystem is capable of

- the leading prefix is not _quite_ what is on disk; it
contains the next element from the name we are checking.
So if we want to write "aaa/bbb/ccc/ddd" and "aaa/bbb"
exists, the prefix of interest is "aaa/bbb/ccc". If
"aaa/bbb" approaches PATH_MAX, then "ccc" can overflow
it.

So this can be triggered, but it's hard to do. In
particular, you cannot just "git clone" a bogus repo. The
verify_absent checks happen before unpack-trees writes
anything to the filesystem, so there are never any leading
prefixes during the initial checkout, and the bug doesn't
trigger. And by definition, these files are larger than
PATH_MAX, so writing them will fail, and clone will
complain (though it may write a partial path, which will
cause a subsequent "git checkout" to hit the bug).

We can fix it by creating the temporary path on the heap.
The extra malloc overhead is not important, as we are
already making at least one stat() call (and probably more
for the prefix discovery).

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

Merge branch 'ee/clean-test-fixes' into maintJunio C Hamano Fri, 4 Sep 2015 02:18:05 +0000 (19:18 -0700)

Merge branch 'ee/clean-test-fixes' into maint

* ee/clean-test-fixes:
t7300: fix broken && chains

Merge branch 'jk/log-missing-default-HEAD' into maintJunio C Hamano Fri, 4 Sep 2015 02:18:03 +0000 (19:18 -0700)

Merge branch 'jk/log-missing-default-HEAD' into maint

"git init empty && git -C empty log" said "bad default revision 'HEAD'",
which was found to be a bit confusing to new users.

* jk/log-missing-default-HEAD:
log: diagnose empty HEAD more clearly

Merge branch 'cc/trailers-corner-case-fix' into maintJunio C Hamano Fri, 4 Sep 2015 02:18:03 +0000 (19:18 -0700)

Merge branch 'cc/trailers-corner-case-fix' into maint

The "interpret-trailers" helper mistook a multi-paragraph title of
a commit log message with a colon in it as the end of the trailer
block.

* cc/trailers-corner-case-fix:
trailer: support multiline title
trailer: retitle a test and correct an in-comment message
trailer: ignore first line of message

Merge branch 'dt/commit-preserve-base-index-upon-opport... Junio C Hamano Fri, 4 Sep 2015 02:18:02 +0000 (19:18 -0700)

Merge branch 'dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update' into maint

When re-priming the cache-tree opportunistically while committing
the in-core index as-is, we mistakenly invalidated the in-core
index too aggressively, causing the experimental split-index code
to unnecessarily rewrite the on-disk index file(s).

* dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update:
commit: don't rewrite shared index unnecessarily

Merge branch 'rs/archive-zip-many' into maintJunio C Hamano Fri, 4 Sep 2015 02:18:01 +0000 (19:18 -0700)

Merge branch 'rs/archive-zip-many' into maint

"git archive" did not use zip64 extension when creating an archive
with more than 64k entries, which nobody should need, right ;-)?

* rs/archive-zip-many:
archive-zip: support more than 65535 entries
archive-zip: use a local variable to store the creator version
t5004: test ZIP archives with many entries

Merge branch 'jc/calloc-pathspec' into maintJunio C Hamano Fri, 4 Sep 2015 02:18:00 +0000 (19:18 -0700)

Merge branch 'jc/calloc-pathspec' into maint

Minor code cleanup.

* jc/calloc-pathspec:
ps_matched: xcalloc() takes nmemb and then element size

Merge branch 'ss/fix-config-fd-leak' into maintJunio C Hamano Fri, 4 Sep 2015 02:17:59 +0000 (19:17 -0700)

Merge branch 'ss/fix-config-fd-leak' into maint

* ss/fix-config-fd-leak:
config: close config file handle in case of error

Merge branch 'sg/wt-status-header-inclusion' into maintJunio C Hamano Fri, 4 Sep 2015 02:17:57 +0000 (19:17 -0700)

Merge branch 'sg/wt-status-header-inclusion' into maint

* sg/wt-status-header-inclusion:
wt-status: move #include "pathspec.h" to the header

Merge branch 'po/po-readme' into maintJunio C Hamano Fri, 4 Sep 2015 02:17:56 +0000 (19:17 -0700)

Merge branch 'po/po-readme' into maint

Doc updates for i18n.

* po/po-readme:
po/README: Update directions for l10n contributors

Merge branch 'sg/t3020-typofix' into maintJunio C Hamano Fri, 4 Sep 2015 02:17:54 +0000 (19:17 -0700)

Merge branch 'sg/t3020-typofix' into maint

* sg/t3020-typofix:
t3020: fix typo in test description

Merge branch 'as/docfix-reflog-expire-unreachable'... Junio C Hamano Fri, 4 Sep 2015 02:17:53 +0000 (19:17 -0700)

Merge branch 'as/docfix-reflog-expire-unreachable' into maint

Docfix.

* as/docfix-reflog-expire-unreachable:
Documentation/config: fix inconsistent label on gc.*.reflogExpireUnreachable

Merge branch 'nd/fixup-linked-gitdir' into maintJunio C Hamano Fri, 4 Sep 2015 02:17:53 +0000 (19:17 -0700)

Merge branch 'nd/fixup-linked-gitdir' into maint

The code in "multiple-worktree" support that attempted to recover
from an inconsistent state updated an incorrect file.

* nd/fixup-linked-gitdir:
setup: update the right file in multiple checkouts

Merge branch 'jk/rev-list-has-no-notes' into maintJunio C Hamano Fri, 4 Sep 2015 02:17:52 +0000 (19:17 -0700)

Merge branch 'jk/rev-list-has-no-notes' into maint

"git rev-list" does not take "--notes" option, but did not complain
when one is given.

* jk/rev-list-has-no-notes:
rev-list: make it obvious that we do not support notes

Merge branch 'jk/fix-alias-pager-config-key-warnings... Junio C Hamano Fri, 4 Sep 2015 02:17:52 +0000 (19:17 -0700)

Merge branch 'jk/fix-alias-pager-config-key-warnings' into maint

Because the configuration system does not allow "alias.0foo" and
"pager.0foo" as the configuration key, the user cannot use '0foo'
as a custom command name anyway, but "git 0foo" tried to look these
keys up and emitted useless warnings before saying '0foo is not a
git command'. These warning messages have been squelched.

* jk/fix-alias-pager-config-key-warnings:
config: silence warnings for command names with invalid keys

Merge branch 'nd/dwim-wildcards-as-pathspecs' into... Junio C Hamano Fri, 4 Sep 2015 02:17:51 +0000 (19:17 -0700)

Merge branch 'nd/dwim-wildcards-as-pathspecs' into maint

Test updates for Windows.

* nd/dwim-wildcards-as-pathspecs:
t2019: skip test requiring '*' in a file name non Windows

Merge branch 'sg/help-group' into maintJunio C Hamano Fri, 4 Sep 2015 02:17:51 +0000 (19:17 -0700)

Merge branch 'sg/help-group' into maint

We rewrote one of the build scripts in Perl but this reimplements
in Bourne shell.

* sg/help-group:
generate-cmdlist: re-implement as shell script

Merge branch 'ps/t1509-chroot-test-fixup' into maintJunio C Hamano Fri, 4 Sep 2015 02:17:50 +0000 (19:17 -0700)

Merge branch 'ps/t1509-chroot-test-fixup' into maint

t1509 test that requires a dedicated VM environment had some
bitrot, which has been corrected.

* ps/t1509-chroot-test-fixup:
tests: fix cleanup after tests in t1509-root-worktree
tests: fix broken && chains in t1509-root-worktree

Merge branch 'jh/strbuf-read-use-read-in-full' into... Junio C Hamano Fri, 4 Sep 2015 02:17:50 +0000 (19:17 -0700)

Merge branch 'jh/strbuf-read-use-read-in-full' into maint

strbuf_read() used to have one extra iteration (and an unnecessary
strbuf_grow() of 8kB), which was eliminated.

* jh/strbuf-read-use-read-in-full:
strbuf_read(): skip unnecessary strbuf_grow() at eof

Merge branch 'jk/long-error-messages' into maintJunio C Hamano Fri, 4 Sep 2015 02:17:49 +0000 (19:17 -0700)

Merge branch 'jk/long-error-messages' into maint

The codepath to produce error messages had a hard-coded limit to
the size of the message, primarily to avoid memory allocation while
calling die().

* jk/long-error-messages:
vreportf: avoid intermediate buffer
vreportf: report to arbitrary filehandles

Merge branch 'cb/open-noatime-clear-errno' into maintJunio C Hamano Fri, 4 Sep 2015 02:17:49 +0000 (19:17 -0700)

Merge branch 'cb/open-noatime-clear-errno' into maint

When trying to see that an object does not exist, a state errno
leaked from our "first try to open a packfile with O_NOATIME and
then if it fails retry without it" logic on a system that refuses
O_NOATIME. This confused us and caused us to die, saying that the
packfile is unreadable, when we should have just reported that the
object does not exist in that packfile to the caller.

* cb/open-noatime-clear-errno:
git_open_noatime: return with errno=0 on success

Merge branch 'mh/get-remote-group-fix' into maintJunio C Hamano Fri, 4 Sep 2015 02:17:47 +0000 (19:17 -0700)

Merge branch 'mh/get-remote-group-fix' into maint

An off-by-one error made "git remote" to mishandle a remote with a
single letter nickname.

* mh/get-remote-group-fix:
get_remote_group(): use skip_prefix()
get_remote_group(): eliminate superfluous call to strcspn()
get_remote_group(): rename local variable "space" to "wordlen"
get_remote_group(): handle remotes with single-character names

t6300: add tests for "-local" date formatsJohn Keeping Thu, 3 Sep 2015 21:49:01 +0000 (22:49 +0100)

t6300: add tests for "-local" date formats

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t6300: make UTC and local dates differentJohn Keeping Thu, 3 Sep 2015 21:49:00 +0000 (22:49 +0100)

t6300: make UTC and local dates different

By setting the UTC time to 23:18:43 the date in +0200 is the following
day, 2006-07-04. This will ensure that the test for "short-local" to be
added in the following patch tests for different output from the "short"
format.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

date: make "local" orthogonal to date formatJeff King Thu, 3 Sep 2015 21:48:59 +0000 (22:48 +0100)

date: make "local" orthogonal to date format

Most of our "--date" modes are about the format of the date:
which items we show and in what order. But "--date=local" is
a bit of an oddball. It means "show the date in the normal
format, but using the local timezone". The timezone we use
is orthogonal to the actual format, and there is no reason
we could not have "localized iso8601", etc.

This patch adds a "local" boolean field to "struct
date_mode", and drops the DATE_LOCAL element from the
date_mode_type enum (it's now just DATE_NORMAL plus
local=1). The new feature is accessible to users by adding
"-local" to any date mode (e.g., "iso-local"), and we retain
"local" as an alias for "default-local" for backwards
compatibility.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

date: check for "local" before anything elseJohn Keeping Thu, 3 Sep 2015 21:48:58 +0000 (22:48 +0100)

date: check for "local" before anything else

In a following commit we will make "local" orthogonal to the format.
Although this will not apply to "relative", which does not use the
timezone, it applies to all other formats so move the timezone
conversion to the start of the function.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t6300: add test for "raw" date formatJohn Keeping Thu, 3 Sep 2015 21:48:57 +0000 (22:48 +0100)

t6300: add test for "raw" date format

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t6300: introduce test_date() helperJohn Keeping Thu, 3 Sep 2015 21:48:56 +0000 (22:48 +0100)

t6300: introduce test_date() helper

This moves the setup of the "expected" file inside the test case. The
helper function has the advantage that we can use SQ in the file content
without needing to escape the quotes.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fast-import: switch crash-report date to iso8601Jeff King Thu, 3 Sep 2015 21:48:55 +0000 (22:48 +0100)

fast-import: switch crash-report date to iso8601

When fast-import emits a crash report, it does so in the
user's local timezone. But because we omit the timezone
completely for DATE_LOCAL, a reader of the report does not
immediately know which time zone was used. Let's switch this
to ISO8601 instead, which includes the time zone.

This does mean we will show the time in UTC, but that's not
a big deal. A crash report like this will either be looked
at immediately (in which case nobody even looks at the
timestamp), or it will be passed along to a developer to
debug, in which case the original timezone is less likely to
be of interest.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/rev-list: don't list date formatsJohn Keeping Thu, 3 Sep 2015 21:48:54 +0000 (22:48 +0100)

Documentation/rev-list: don't list date formats

We are about to add several new date formats which will make this list
too long to display in a single line.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-for-each-ref: don't list date formatsJohn Keeping Thu, 3 Sep 2015 21:48:53 +0000 (22:48 +0100)

Documentation/git-for-each-ref: don't list date formats

We are about to add a new set of supported date formats and do not want
to have to maintain the same list in several different bits of
documentation. Refer to git-rev-list(1) which contains the full list of
supported formats.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/config: don't list date formatsJohn Keeping Thu, 3 Sep 2015 21:48:52 +0000 (22:48 +0100)

Documentation/config: don't list date formats

This list is already incomplete (missing "raw") and we're about to add
new formats. Since this option sets a default for git-log's --date
option, just refer to git-log(1).

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/blame-options: don't list date formatsJohn Keeping Thu, 3 Sep 2015 21:48:51 +0000 (22:48 +0100)

Documentation/blame-options: don't list date formats

This list is already incomplete (missing "raw") and we're about to add
new formats. Remove it and refer to the canonical documentation in
git-log(1).

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pack-protocol: clarify LF-handling in PKT-LINE()Jeff King Thu, 3 Sep 2015 08:24:09 +0000 (04:24 -0400)

pack-protocol: clarify LF-handling in PKT-LINE()

The spec is very inconsistent about which PKT-LINE() parts
of the grammar include a LF. On top of that, the code is not
consistent, either (e.g., send-pack does not put newlines
into the ref-update commands it sends).

Let's make explicit the long-standing expectation that we
generally expect pkt-lines to end in a newline, but that
receivers should be lenient. This makes the spec consistent,
and matches what git already does (though it does not always
fulfill the SHOULD).

We do make an exception for the push-cert, where the
receiving code is currently a bit pickier. This is a
reasonable way to be, as the data needs to be byte-for-byte
compatible with what was signed. We _could_ make up some
rules about signing a canonicalized version including
newlines, but that would require a code change, and is out
of scope for this patch.

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

Merge branch 'jk/am-rerere-lock-fix'Junio C Hamano Thu, 3 Sep 2015 21:14:01 +0000 (14:14 -0700)

Merge branch 'jk/am-rerere-lock-fix'

Recent "git am" introduced a double-locking failure when used with
the "--3way" option that invokes rerere machinery.

* jk/am-rerere-lock-fix:
rerere: release lockfile in non-writing functions

submodule: rewrite `module_name` shell function in CStefan Beller Wed, 2 Sep 2015 21:42:25 +0000 (14:42 -0700)

submodule: rewrite `module_name` shell function in C

This implements the helper `name` in C instead of shell,
yielding a nice performance boost.

Before this patch, I measured a time (best out of three):

$ time ./t7400-submodule-basic.sh >/dev/null
real 0m11.066s
user 0m3.348s
sys 0m8.534s

With this patch applied I measured (also best out of three)

$ time ./t7400-submodule-basic.sh >/dev/null
real 0m10.063s
user 0m3.044s
sys 0m7.487s

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

submodule: rewrite `module_list` shell function in CStefan Beller Wed, 2 Sep 2015 21:42:24 +0000 (14:42 -0700)

submodule: rewrite `module_list` shell function in C

Most of the submodule operations work on a set of submodules.
Calculating and using this set is usually done via:

module_list "$@" | {
while read mode sha1 stage sm_path
do
# the actual operation
done
}

Currently the function `module_list` is implemented in the
git-submodule.sh as a shell script wrapping a perl script.
The rewrite is in C, such that it is faster and can later be
easily adapted when other functions are rewritten in C.

git-submodule.sh, similar to the builtin commands, will navigate
to the top-most directory of the repository and keep the
subdirectory as a variable. As the helper is called from
within the git-submodule.sh script, we are already navigated
to the root level, but the path arguments are still relative
to the subdirectory we were in when calling git-submodule.sh.
That's why there is a `--prefix` option pointing to an alternative
path which to anchor relative path arguments.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.6-rc0 v2.6.0-rc0Junio C Hamano Wed, 2 Sep 2015 19:55:21 +0000 (12:55 -0700)

Git 2.6-rc0

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

Merge branch 'cc/trailers-corner-case-fix'Junio C Hamano Wed, 2 Sep 2015 19:50:21 +0000 (12:50 -0700)

Merge branch 'cc/trailers-corner-case-fix'

The "interpret-trailers" helper mistook a multi-paragraph title of
a commit log message with a colon in it as the end of the trailer
block.

* cc/trailers-corner-case-fix:
trailer: support multiline title

Merge branch 'sb/read-cache-one-indent-style-fix'Junio C Hamano Wed, 2 Sep 2015 19:50:18 +0000 (12:50 -0700)

Merge branch 'sb/read-cache-one-indent-style-fix'

* sb/read-cache-one-indent-style-fix:
read-cache: fix indentation in read_index_from

Merge branch 'ee/clean-test-fixes'Junio C Hamano Wed, 2 Sep 2015 19:50:16 +0000 (12:50 -0700)

Merge branch 'ee/clean-test-fixes'

* ee/clean-test-fixes:
t7300: fix broken && chains

Merge branch 'jk/log-missing-default-HEAD'Junio C Hamano Wed, 2 Sep 2015 19:50:08 +0000 (12:50 -0700)

Merge branch 'jk/log-missing-default-HEAD'

"git init empty && git -C empty log" said "bad default revision 'HEAD'",
which was found to be a bit confusing to new users.

* jk/log-missing-default-HEAD:
log: diagnose empty HEAD more clearly

t7060: actually test "git diff-index --cached -M"Matthieu Prat Wed, 2 Sep 2015 18:12:55 +0000 (14:12 -0400)

t7060: actually test "git diff-index --cached -M"

A test was designed for "git diff-index --cached -M" but the command is
run without the "-M" option (which makes the test essentially identical
to its preceding counterpart).

Signed-off-by: Matthieu Prat <matthieuprat@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Ninth batch for 2.6Junio C Hamano Tue, 1 Sep 2015 23:31:58 +0000 (16:31 -0700)

Ninth batch for 2.6

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

Merge branch 'dt/commit-preserve-base-index-upon-opport... Junio C Hamano Tue, 1 Sep 2015 23:31:29 +0000 (16:31 -0700)

Merge branch 'dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update'

When re-priming the cache-tree opportunistically while committing
the in-core index as-is, we mistakenly invalidated the in-core
index too aggressively, causing the experimental split-index code
to unnecessarily rewrite the on-disk index file(s).

* dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update:
commit: don't rewrite shared index unnecessarily

Merge branch 'rt/remove-hold-lockfile-for-append'Junio C Hamano Tue, 1 Sep 2015 23:31:26 +0000 (16:31 -0700)

Merge branch 'rt/remove-hold-lockfile-for-append'

* rt/remove-hold-lockfile-for-append:
lockfile: remove function "hold_lock_file_for_append"

Merge branch 'rs/archive-zip-many'Junio C Hamano Tue, 1 Sep 2015 23:31:24 +0000 (16:31 -0700)

Merge branch 'rs/archive-zip-many'

"git archive" did not use zip64 extension when creating an archive
with more than 64k entries, which nobody should need, right ;-)?

* rs/archive-zip-many:
archive-zip: support more than 65535 entries
archive-zip: use a local variable to store the creator version
t5004: test ZIP archives with many entries