git
7 years agoMerge branch 'js/msgfmt-on-windows' of ../git-gui into js/git-gui-msgfmt-on-windows
Junio C Hamano [Tue, 25 Jul 2017 20:42:41 +0000 (13:42 -0700)] 
Merge branch 'js/msgfmt-on-windows' of ../git-gui into js/git-gui-msgfmt-on-windows

* 'js/msgfmt-on-windows' of ../git-gui:
  git-gui (MinGW): make use of MSys2's msgfmt
  git gui: allow for a long recentrepo list
  git gui: de-dup selected repo from recentrepo history
  git gui: cope with duplicates in _get_recentrepo
  git-gui: remove duplicate entries from .gitconfig's gui.recentrepo

7 years agogit-gui (MinGW): make use of MSys2's msgfmt
Johannes Schindelin [Tue, 25 Jul 2017 08:35:57 +0000 (10:35 +0200)] 
git-gui (MinGW): make use of MSys2's msgfmt

When Git for Windows was still based on MSys1, we had no gettext, ergo
no msgfmt, either. Therefore, we introduced a small and simple Tcl
script to perform the same task.

However, with MSys2, we no longer need that because we have a proper
msgfmt executable. Plus, the po2msg.sh script somehow manages to hang
when run in parallel in Git for Windows' SDK (symptom: the Continuous
Testing tasks timing out).

Two reasons to use real msgfmt.exe instead.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoGit 2.14-rc1 v2.14.0-rc1
Junio C Hamano [Mon, 24 Jul 2017 21:50:35 +0000 (14:50 -0700)] 
Git 2.14-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoMerge https://github.com/git-l10n/git-po
Junio C Hamano [Mon, 24 Jul 2017 21:01:08 +0000 (14:01 -0700)] 
Merge https://github.com/git-l10n/git-po

* https://github.com/git-l10n/git-po:
  l10n: git.pot: v2.14.0 round 2 (9 new, 2 removed)
  l10n: sv.po: Update Swedish translation (3206t0f0u)
  l10n: ko.po: Update Korean translation
  l10n: Update Catalan translation
  l10n: bg.po: Updated Bulgarian translation (3206t)
  l10n: vi.po(3206t): Update Vietnamese translation
  l10n: git.pot: v2.14.0 round 1 (34 new, 23 removed)
  l10n: ru.po: update Russian translation
  l10n: Fixes to Catalan translation

7 years agol10n: git.pot: v2.14.0 round 2 (9 new, 2 removed)
Jiang Xin [Mon, 24 Jul 2017 14:00:44 +0000 (22:00 +0800)] 
l10n: git.pot: v2.14.0 round 2 (9 new, 2 removed)

Generate po/git.pot from v2.14.0-rc0-40-g5eada8987e for git v2.14.0 l10n round 2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
7 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Mon, 24 Jul 2017 13:53:47 +0000 (21:53 +0800)] 
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: sv.po: Update Swedish translation (3206t0f0u)
  l10n: ko.po: Update Korean translation
  l10n: Update Catalan translation
  l10n: bg.po: Updated Bulgarian translation (3206t)
  l10n: vi.po(3206t): Update Vietnamese translation
  l10n: git.pot: v2.14.0 round 1 (34 new, 23 removed)
  l10n: ru.po: update Russian translation
  l10n: Fixes to Catalan translation

7 years agoMerge branch 'master' of git://github.com/nafmo/git-l10n-sv
Jiang Xin [Fri, 21 Jul 2017 22:19:21 +0000 (06:19 +0800)] 
Merge branch 'master' of git://github.com/nafmo/git-l10n-sv

* 'master' of git://github.com/nafmo/git-l10n-sv:
  l10n: sv.po: Update Swedish translation (3206t0f0u)

7 years agoSync with maint
Junio C Hamano [Fri, 21 Jul 2017 22:13:25 +0000 (15:13 -0700)] 
Sync with maint

* maint:
  fixes from 'master' for 2.13.4

7 years agofixes from 'master' for 2.13.4
Junio C Hamano [Fri, 21 Jul 2017 22:06:09 +0000 (15:06 -0700)] 
fixes from 'master' for 2.13.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoMerge branch 'ew/fd-cloexec-fix' into maint
Junio C Hamano [Fri, 21 Jul 2017 22:03:40 +0000 (15:03 -0700)] 
Merge branch 'ew/fd-cloexec-fix' into maint

Portability/fallback fix.

* ew/fd-cloexec-fix:
  set FD_CLOEXEC properly when O_CLOEXEC is not supported

7 years agoMerge branch 'ks/fix-rebase-doc-picture' into maint
Junio C Hamano [Fri, 21 Jul 2017 22:03:39 +0000 (15:03 -0700)] 
Merge branch 'ks/fix-rebase-doc-picture' into maint

Doc update.

* ks/fix-rebase-doc-picture:
  doc: correct a mistake in an illustration

7 years agoMerge branch 'js/alias-case-sensitivity' into maint
Junio C Hamano [Fri, 21 Jul 2017 22:03:38 +0000 (15:03 -0700)] 
Merge branch 'js/alias-case-sensitivity' into maint

A recent update broke an alias that contained an uppercase letter.

* js/alias-case-sensitivity:
  alias: compare alias name *case-insensitively*
  t1300: demonstrate that CamelCased aliases regressed

7 years agoMerge branch 'bb/unicode-10.0' into maint
Junio C Hamano [Fri, 21 Jul 2017 22:03:38 +0000 (15:03 -0700)] 
Merge branch 'bb/unicode-10.0' into maint

Update the character width tables.

* bb/unicode-10.0:
  unicode: update the width tables to Unicode 10

7 years agoHopefully the final last-minute fix before -rc1
Junio C Hamano [Fri, 21 Jul 2017 22:02:51 +0000 (15:02 -0700)] 
Hopefully the final last-minute fix before -rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoMerge branch 'ks/doc-fixes'
Junio C Hamano [Fri, 21 Jul 2017 21:57:37 +0000 (14:57 -0700)] 
Merge branch 'ks/doc-fixes'

Doc clean-up.

* ks/doc-fixes:
  doc: reformat the paragraph containing the 'cut-line'
  doc: camelCase the i18n config variables to improve readability

7 years agoMerge branch 'rj/cygwin-fread-reads-directories'
Junio C Hamano [Fri, 21 Jul 2017 21:57:37 +0000 (14:57 -0700)] 
Merge branch 'rj/cygwin-fread-reads-directories'

It turns out that Cygwin also needs the fopen() wrapper that
returns failure when a directory is opened for reading.

* rj/cygwin-fread-reads-directories:
  config.mak.uname: set FREAD_READS_DIRECTORIES for cygwin

7 years agoMerge branch 'jc/po-pritime-fix'
Junio C Hamano [Fri, 21 Jul 2017 21:57:36 +0000 (14:57 -0700)] 
Merge branch 'jc/po-pritime-fix'

We started using "%" PRItime, imitating "%" PRIuMAX and friends, as
a way to format the internal timestamp value, but this does not
play well with gettext(1) i18n framework, and causes "make pot"
that is run by the l10n coordinator to create a broken po/git.pot
file.  This is a possible workaround for that problem.

* jc/po-pritime-fix:
  Makefile: help gettext tools to cope with our custom PRItime format

7 years agoconfig.mak.uname: set FREAD_READS_DIRECTORIES for cygwin
Ramsay Jones [Fri, 21 Jul 2017 18:43:17 +0000 (19:43 +0100)] 
config.mak.uname: set FREAD_READS_DIRECTORIES for cygwin

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoA few more topics while waiting for the po/PRItime resolution
Junio C Hamano [Thu, 20 Jul 2017 23:31:56 +0000 (16:31 -0700)] 
A few more topics while waiting for the po/PRItime resolution

Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoMerge branch 'mt/p4-parse-G-output'
Junio C Hamano [Thu, 20 Jul 2017 23:30:00 +0000 (16:30 -0700)] 
Merge branch 'mt/p4-parse-G-output'

Use "p4 -G" to make "p4 changes" output more Python-friendly
to parse.

* mt/p4-parse-G-output:
  git-p4: filter for {'code':'info'} in p4CmdList
  git-p4: parse marshal output "p4 -G" in p4 changes
  git-p4: git-p4 tests with p4 triggers

7 years agoMerge branch 'ew/fd-cloexec-fix'
Junio C Hamano [Thu, 20 Jul 2017 23:30:00 +0000 (16:30 -0700)] 
Merge branch 'ew/fd-cloexec-fix'

Portability/fallback fix.

* ew/fd-cloexec-fix:
  set FD_CLOEXEC properly when O_CLOEXEC is not supported

7 years agoMerge branch 'jk/build-with-asan'
Junio C Hamano [Thu, 20 Jul 2017 23:29:59 +0000 (16:29 -0700)] 
Merge branch 'jk/build-with-asan'

A recent update made it easier to use "-fsanitize=" option while
compiling but supported only one sanitize option.  Allow more than
one to be combined, joined with a comma, like "make SANITIZE=foo,bar".

* jk/build-with-asan:
  Makefile: allow combining UBSan with other sanitizers

7 years agoMerge branch 'jk/test-copy-bytes-fix'
Junio C Hamano [Thu, 20 Jul 2017 23:29:59 +0000 (16:29 -0700)] 
Merge branch 'jk/test-copy-bytes-fix'

A test fix.

* jk/test-copy-bytes-fix:
  t: handle EOF in test_copy_bytes()

7 years agoMerge branch 'js/alias-case-sensitivity'
Junio C Hamano [Thu, 20 Jul 2017 23:29:59 +0000 (16:29 -0700)] 
Merge branch 'js/alias-case-sensitivity'

A recent update broke an alias that contained an uppercase letter.

* js/alias-case-sensitivity:
  alias: compare alias name *case-insensitively*
  t1300: demonstrate that CamelCased aliases regressed

7 years agol10n: sv.po: Update Swedish translation (3206t0f0u)
Peter Krefting [Thu, 20 Jul 2017 21:00:16 +0000 (23:00 +0200)] 
l10n: sv.po: Update Swedish translation (3206t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
7 years agoRelNotes: mention "sha1dc: optionally use sha1collisiondetection as a submodule"
Ævar Arnfjörð Bjarmason [Thu, 20 Jul 2017 14:19:24 +0000 (14:19 +0000)] 
RelNotes: mention "sha1dc: optionally use sha1collisiondetection as a submodule"

To note that merely cloning git.git without --recurse-submodules
doesn't get you a full copy of the code anymore. See
5f6482d642 ("RelNotes: mention "log: make --regexp-ignore-case work
with --perl-regexp"", 2017-07-20).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoRelNotes: mention "log: make --regexp-ignore-case work with --perl-regexp"
Ævar Arnfjörð Bjarmason [Thu, 20 Jul 2017 14:19:23 +0000 (14:19 +0000)] 
RelNotes: mention "log: make --regexp-ignore-case work with --perl-regexp"

To inform users that they can use --regexp-ignore-case now, and that
existing scripts which relied on that + PCRE may be buggy. See
9e3cbc59d5 ("log: make --regexp-ignore-case work with --perl-regexp",
2017-05-20).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoRelNotes: mention "log: add -P as a synonym for --perl-regexp"
Ævar Arnfjörð Bjarmason [Thu, 20 Jul 2017 14:19:22 +0000 (14:19 +0000)] 
RelNotes: mention "log: add -P as a synonym for --perl-regexp"

To inform users that they can use the short form now. See
7531a2dd87 ("log: add -P as a synonym for --perl-regexp", 2017-05-25).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoMakefile: help gettext tools to cope with our custom PRItime format
Junio C Hamano [Thu, 20 Jul 2017 18:57:01 +0000 (11:57 -0700)] 
Makefile: help gettext tools to cope with our custom PRItime format

We started using our own timestamp_t type and PRItime format
specifier to go along with it, so that we can later change the
underlying type and output format more easily, but this does not
play well with gettext tools.

Because gettext tools need to keep the *.po file portable across
platforms, they have to special-case the format specifiers like
PRIuMAX that are known types in inttypes.h, instead of letting CPP
handle strings like

    "%" PRIuMAX " seconds ago"

as an ordinary string concatenation.  They fundamentally cannot do
the same for our own custom type/format.

Given that po/git.pot needs to be generated only once every release
and by only one person, i.e. the l10n coordinator, let's update the
Makefile rule to generate po/git.pot so that gettext tools are run
on a munged set of sources in which all mentions of PRItime are
replaced with PRIuMAX, which is what we happen to use right now.

This way, developers do not have to care that PRItime does not play
well with gettext, and translators do not have to care that we use
our own PRItime.

The credit for the idea to munge the source files goes to Dscho.
Possible bugs are mine.

Helped-by: Jiang Xin <worldhello.net@gmail.com>
Helped-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agol10n: ko.po: Update Korean translation
Changwoo Ryu [Wed, 19 Jul 2017 08:15:28 +0000 (17:15 +0900)] 
l10n: ko.po: Update Korean translation

Signed-off-by: Changwoo Ryu <cwryu@debian.org>
7 years agodoc: reformat the paragraph containing the 'cut-line'
Kaartic Sivaraam [Tue, 18 Jul 2017 14:34:27 +0000 (20:04 +0530)] 
doc: reformat the paragraph containing the 'cut-line'

The paragraph that describes the 'scissors' cleanup mode of
'commit' had the 'cut-line' in the middle of a sentence. This
made it possible for the line to get wrapped on smaler windows.
This shouldn't be the case as it makes it hard for the user to
understand the structure of the cut-line.

Reformat the pragraph to make the 'cut-line' stand on a line of
it's own thus distinguishing it from the rest of the paragraph.
This further prevents it from getting wrapped to some extent.

Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoA few more topics before 2.14-rc1
Junio C Hamano [Tue, 18 Jul 2017 19:52:49 +0000 (12:52 -0700)] 
A few more topics before 2.14-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoMerge branch 'jk/gc-pre-detach-under-hook'
Junio C Hamano [Tue, 18 Jul 2017 19:48:10 +0000 (12:48 -0700)] 
Merge branch 'jk/gc-pre-detach-under-hook'

We run an early part of "git gc" that deals with refs before
daemonising (and not under lock) even when running a background
auto-gc, which caused multiple gc processes attempting to run the
early part at the same time.  This is now prevented by running the
early part also under the GC lock.

* jk/gc-pre-detach-under-hook:
  gc: run pre-detach operations under lock

7 years agoMerge branch 'jn/hooks-pre-rebase-sample-fix'
Junio C Hamano [Tue, 18 Jul 2017 19:48:10 +0000 (12:48 -0700)] 
Merge branch 'jn/hooks-pre-rebase-sample-fix'

Code clean-up, that makes us in sync with Debian by one patch.

* jn/hooks-pre-rebase-sample-fix:
  pre-rebase hook: capture documentation in a <<here document

7 years agoMerge branch 'rs/progress-overall-throughput-at-the-end'
Junio C Hamano [Tue, 18 Jul 2017 19:48:09 +0000 (12:48 -0700)] 
Merge branch 'rs/progress-overall-throughput-at-the-end'

The progress meter did not give a useful output when we haven't had
0.5 seconds to measure the throughput during the interval.  Instead
show the overall throughput rate at the end, which is a much more
useful number.

* rs/progress-overall-throughput-at-the-end:
  progress: show overall rate in last update

7 years agoMerge branch 'tb/push-to-cygwin-unc-path'
Junio C Hamano [Tue, 18 Jul 2017 19:48:09 +0000 (12:48 -0700)] 
Merge branch 'tb/push-to-cygwin-unc-path'

On Cygwin, similar to Windows, "git push //server/share/repository"
ought to mean a repository on a network share that can be accessed
locally, but this did not work correctly due to stripping the double
slashes at the beginning.

This may need to be heavily tested before it gets unleashed to the
wild, as the change is at a fairly low-level code and would affect
not just the code to decide if the push destination is local.  There
may be unexpected fallouts in the path normalization.

* tb/push-to-cygwin-unc-path:
  cygwin: allow pushing to UNC paths

7 years agol10n: Update Catalan translation
Jordi Mas [Tue, 18 Jul 2017 19:06:06 +0000 (21:06 +0200)] 
l10n: Update Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>
7 years agodoc: camelCase the i18n config variables to improve readability
Kaartic Sivaraam [Mon, 17 Jul 2017 15:39:00 +0000 (21:09 +0530)] 
doc: camelCase the i18n config variables to improve readability

The i18n config variable used weren't readable as they were in
the crude form of how git stores/uses it's config variables.

Improve it's readability by replacing them with camelCased versions
of config variables as it doesn't have any impact on it's usage.

Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agot: handle EOF in test_copy_bytes()
Jeff King [Sun, 16 Jul 2017 10:45:32 +0000 (06:45 -0400)] 
t: handle EOF in test_copy_bytes()

The test_copy_bytes() function claims to read up to N bytes,
or until it gets EOF. But we never handle EOF in our loop,
and a short input will cause perl to go into an infinite
loop of read() getting zero bytes.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoset FD_CLOEXEC properly when O_CLOEXEC is not supported
Eric Wong [Sat, 15 Jul 2017 18:55:40 +0000 (18:55 +0000)] 
set FD_CLOEXEC properly when O_CLOEXEC is not supported

FD_CLOEXEC only applies to the file descriptor, so it needs to be
manipuluated via F_GETFD/F_SETFD.  F_GETFL/F_SETFL are for file
description flags.

Verified via strace with o_cloexec set to zero.

Signed-off-by: Eric Wong <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoMakefile: allow combining UBSan with other sanitizers
René Scharfe [Sat, 15 Jul 2017 17:18:56 +0000 (19:18 +0200)] 
Makefile: allow combining UBSan with other sanitizers

Multiple sanitizers can be specified as a comma-separated list.  Set
the flag NO_UNALIGNED_LOADS even if UndefinedBehaviorSanitizer is not
the only sanitizer to build with.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoalias: compare alias name *case-insensitively*
Johannes Schindelin [Fri, 14 Jul 2017 08:39:38 +0000 (10:39 +0200)] 
alias: compare alias name *case-insensitively*

It is totally legitimate to add CamelCased aliases, but due to the way
config keys are compared, the case does not matter.

Therefore, we must compare the alias name insensitively to the config
keys.

This fixes a regression introduced by a9bcf6586d1 (alias: use
the early config machinery to expand aliases, 2017-06-14).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agot1300: demonstrate that CamelCased aliases regressed
Johannes Schindelin [Fri, 14 Jul 2017 08:39:29 +0000 (10:39 +0200)] 
t1300: demonstrate that CamelCased aliases regressed

It is totally legitimate to add CamelCased aliases, but due to the way
config keys are compared, the case does not matter.

Except that now it does: the alias name is expected to be all
lower-case. This is a regression introduced by a9bcf6586d1 (alias: use
the early config machinery to expand aliases, 2017-06-14).

Noticed by Alejandro Pauly, diagnosed by Kevin Willford.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agol10n: bg.po: Updated Bulgarian translation (3206t)
Alexander Shopov [Wed, 5 Jul 2017 08:17:59 +0000 (11:17 +0300)] 
l10n: bg.po: Updated Bulgarian translation (3206t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
7 years agol10n: vi.po(3206t): Update Vietnamese translation
Tran Ngoc Quan [Sat, 15 Jul 2017 06:53:33 +0000 (13:53 +0700)] 
l10n: vi.po(3206t): Update Vietnamese translation

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
7 years agol10n: git.pot: v2.14.0 round 1 (34 new, 23 removed)
Jiang Xin [Sat, 15 Jul 2017 03:58:14 +0000 (11:58 +0800)] 
l10n: git.pot: v2.14.0 round 1 (34 new, 23 removed)

Generate po/git.pot from v2.14.0-rc0 for git v2.14.0 l10n round 1.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
7 years agoMerge branch 'maint' of git://github.com/git-l10n/git-po
Jiang Xin [Sat, 15 Jul 2017 01:26:40 +0000 (09:26 +0800)] 
Merge branch 'maint' of git://github.com/git-l10n/git-po

* 'maint' of git://github.com/git-l10n/git-po:
  l10n: ru.po: update Russian translation
  l10n: Fixes to Catalan translation

7 years agoGit 2.14-rc0 v2.14.0-rc0
Junio C Hamano [Thu, 13 Jul 2017 23:22:29 +0000 (16:22 -0700)] 
Git 2.14-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoMerge branch 'jk/build-with-asan'
Junio C Hamano [Thu, 13 Jul 2017 23:14:54 +0000 (16:14 -0700)] 
Merge branch 'jk/build-with-asan'

The build procedure has been improved to allow building and testing
Git with address sanitizer more easily.

* jk/build-with-asan:
  Makefile: disable unaligned loads with UBSan
  Makefile: turn off -fomit-frame-pointer with sanitizers
  Makefile: add helper for compiling with -fsanitize
  test-lib: turn on ASan abort_on_error by default
  test-lib: set ASAN_OPTIONS variable before we run git

7 years agoMerge branch 'sb/pull-rebase-submodule'
Junio C Hamano [Thu, 13 Jul 2017 23:14:54 +0000 (16:14 -0700)] 
Merge branch 'sb/pull-rebase-submodule'

"git pull --rebase --recurse-submodules" learns to rebase the
branch in the submodules to an updated base.

* sb/pull-rebase-submodule:
  builtin/fetch cleanup: always set default value for submodule recursing
  pull: optionally rebase submodules (remote submodule changes only)
  builtin/fetch: parse recurse-submodules-default at default options parsing
  builtin/fetch: factor submodule recurse parsing out to submodule config

7 years agoMerge branch 'sb/hashmap-customize-comparison'
Junio C Hamano [Thu, 13 Jul 2017 23:14:54 +0000 (16:14 -0700)] 
Merge branch 'sb/hashmap-customize-comparison'

Update the hashmap API so that data to customize the behaviour of
the comparison function can be specified at the time a hashmap is
initialized.

* sb/hashmap-customize-comparison:
  hashmap: migrate documentation from Documentation/technical into header
  patch-ids.c: use hashmap correctly
  hashmap.h: compare function has access to a data field

7 years agoMerge branch 'ab/grep-lose-opt-regflags'
Junio C Hamano [Thu, 13 Jul 2017 23:14:54 +0000 (16:14 -0700)] 
Merge branch 'ab/grep-lose-opt-regflags'

Code cleanup.

* ab/grep-lose-opt-regflags:
  grep: remove redundant REG_NEWLINE when compiling fixed regex
  grep: remove regflags from the public grep_opt API
  grep: remove redundant and verbose re-assignments to 0
  grep: remove redundant "fixed" field re-assignment to 0
  grep: adjust a redundant grep pattern type assignment
  grep: remove redundant double assignment to 0

7 years agogit-p4: filter for {'code':'info'} in p4CmdList
Miguel Torroja [Thu, 13 Jul 2017 07:00:35 +0000 (09:00 +0200)] 
git-p4: filter for {'code':'info'} in p4CmdList

The function p4CmdList accepts a new argument: skip_info. When set to
True it ignores any 'code':'info' entry (skip_info=False by default).

That allows us to fix some of the tests in t9831-git-p4-triggers.sh
known to be broken with verobse p4 triggers

Signed-off-by: Miguel Torroja <miguel.torroja@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agogit-p4: parse marshal output "p4 -G" in p4 changes
Miguel Torroja [Thu, 13 Jul 2017 07:00:34 +0000 (09:00 +0200)] 
git-p4: parse marshal output "p4 -G" in p4 changes

The option -G of p4 (python marshal output) gives more context about the
data being output. That's useful when using the command "change -o" as
we can distinguish between warning/error line and real change description.

This fixes the case where a p4 trigger for  "p4 change" is set and the command git-p4 submit is run.

Signed-off-by: Miguel Torroja <miguel.torroja@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agogit-p4: git-p4 tests with p4 triggers
Miguel Torroja [Thu, 13 Jul 2017 07:00:33 +0000 (09:00 +0200)] 
git-p4: git-p4 tests with p4 triggers

Some p4 triggers in the server side generate some warnings when
executed. Unfortunately those messages are mixed with the output of
p4 commands. A few git-p4 commands don't expect extra messages or output
lines and may fail with verbose triggers.
New tests added are known to be broken.

Signed-off-by: Miguel Torroja <miguel.torroja@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoSync with v2.13.3
Junio C Hamano [Wed, 12 Jul 2017 22:25:14 +0000 (15:25 -0700)] 
Sync with v2.13.3

7 years agoGit 2.13.3 v2.13.3
Junio C Hamano [Wed, 12 Jul 2017 22:24:15 +0000 (15:24 -0700)] 
Git 2.13.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoMerge branch 'kn/ref-filter-branch-list' into maint
Junio C Hamano [Wed, 12 Jul 2017 22:23:09 +0000 (15:23 -0700)] 
Merge branch 'kn/ref-filter-branch-list' into maint

The rewrite of "git branch --list" using for-each-ref's internals
that happened in v2.13 regressed its handling of color.branch.local;
this has been fixed.

* kn/ref-filter-branch-list:
  ref-filter.c: drop return from void function
  branch: set remote color in ref-filter branch immediately
  branch: use BRANCH_COLOR_LOCAL in ref-filter format
  branch: only perform HEAD check for local branches

7 years agoMerge branch 'ks/typofix-commit-c-comment' into maint
Junio C Hamano [Wed, 12 Jul 2017 22:20:48 +0000 (15:20 -0700)] 
Merge branch 'ks/typofix-commit-c-comment' into maint

Typofix.

* ks/typofix-commit-c-comment:
  builtin/commit.c: fix a typo in the comment

7 years agoMerge branch 'jk/reflog-walk-maint' into maint
Junio C Hamano [Wed, 12 Jul 2017 22:20:35 +0000 (15:20 -0700)] 
Merge branch 'jk/reflog-walk-maint' into maint

After "git branch --move" of the currently checked out branch, the
code to walk the reflog of HEAD via "log -g" and friends
incorrectly stopped at the reflog entry that records the renaming
of the branch.

* jk/reflog-walk-maint:
  reflog-walk: include all fields when freeing complete_reflogs
  reflog-walk: don't free reflogs added to cache
  reflog-walk: duplicate strings in complete_reflogs list
  reflog-walk: skip over double-null oid due to HEAD rename

7 years agoHopefully the last batch before -rc0
Junio C Hamano [Wed, 12 Jul 2017 22:19:27 +0000 (15:19 -0700)] 
Hopefully the last batch before -rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoMerge branch 'ks/fix-rebase-doc-picture'
Junio C Hamano [Wed, 12 Jul 2017 22:18:24 +0000 (15:18 -0700)] 
Merge branch 'ks/fix-rebase-doc-picture'

Doc update.

* ks/fix-rebase-doc-picture:
  doc: correct a mistake in an illustration

7 years agoMerge branch 'rs/wt-status-cleanup'
Junio C Hamano [Wed, 12 Jul 2017 22:18:23 +0000 (15:18 -0700)] 
Merge branch 'rs/wt-status-cleanup'

Code cleanup.

* rs/wt-status-cleanup:
  wt-status: use separate variable for result of shorten_unambiguous_ref

7 years agoMerge branch 'rs/use-div-round-up'
Junio C Hamano [Wed, 12 Jul 2017 22:18:23 +0000 (15:18 -0700)] 
Merge branch 'rs/use-div-round-up'

Code cleanup.

* rs/use-div-round-up:
  use DIV_ROUND_UP

7 years agoMerge branch 'kn/ref-filter-branch-list'
Junio C Hamano [Wed, 12 Jul 2017 22:18:23 +0000 (15:18 -0700)] 
Merge branch 'kn/ref-filter-branch-list'

The rewrite of "git branch --list" using for-each-ref's internals
that happened in v2.13 regressed its handling of color.branch.local;
this has been fixed.

* kn/ref-filter-branch-list:
  ref-filter.c: drop return from void function
  branch: set remote color in ref-filter branch immediately
  branch: use BRANCH_COLOR_LOCAL in ref-filter format
  branch: only perform HEAD check for local branches

7 years agoMerge branch 'rs/urlmatch-cleanup'
Junio C Hamano [Wed, 12 Jul 2017 22:18:22 +0000 (15:18 -0700)] 
Merge branch 'rs/urlmatch-cleanup'

Code cleanup.

* rs/urlmatch-cleanup:
  urlmatch: use hex2chr() in append_normalized_escapes()

7 years agoMerge branch 'rs/apply-avoid-over-reading'
Junio C Hamano [Wed, 12 Jul 2017 22:18:22 +0000 (15:18 -0700)] 
Merge branch 'rs/apply-avoid-over-reading'

Code cleanup.

* rs/apply-avoid-over-reading:
  apply: use strcmp(3) for comparing strings in gitdiff_verify_name()

7 years agoMerge branch 'sb/submodule-doc'
Junio C Hamano [Wed, 12 Jul 2017 22:18:21 +0000 (15:18 -0700)] 
Merge branch 'sb/submodule-doc'

Doc update.

* sb/submodule-doc:
  submodules: overhaul documentation

7 years agogc: run pre-detach operations under lock
Jeff King [Tue, 11 Jul 2017 09:06:35 +0000 (05:06 -0400)] 
gc: run pre-detach operations under lock

We normally try to avoid having two auto-gc operations run
at the same time, because it wastes resources. This was done
long ago in 64a99eb47 (gc: reject if another gc is running,
unless --force is given, 2013-08-08).

When we do a detached auto-gc, we run the ref-related
commands _before_ detaching, to avoid confusing lock
contention. This was done by 62aad1849 (gc --auto: do not
lock refs in the background, 2014-05-25).

These two features do not interact well. The pre-detach
operations are run before we check the gc.pid lock, meaning
that on a busy repository we may run many of them
concurrently. Ideally we'd take the lock before spawning any
operations, and hold it for the duration of the program.

This is tricky, though, with the way the pid-file interacts
with the daemonize() process.  Other processes will check
that the pid recorded in the pid-file still exists. But
detaching causes us to fork and continue running under a
new pid. So if we take the lock before detaching, the
pid-file will have a bogus pid in it. We'd have to go back
and update it with the new pid after detaching. We'd also
have to play some tricks with the tempfile subsystem to
tweak the "owner" field, so that the parent process does not
clean it up on exit, but the child process does.

Instead, we can do something a bit simpler: take the lock
only for the duration of the pre-detach work, then detach,
then take it again for the post-detach work. Technically,
this means that the post-detach lock could lose to another
process doing pre-detach work. But in the long run this
works out.

That second process would then follow-up by doing
post-detach work. Unless it was in turn blocked by a third
process doing pre-detach work, and so on. This could in
theory go on indefinitely, as the pre-detach work does not
repack, and so need_to_gc() will continue to trigger.  But
in each round we are racing between the pre- and post-detach
locks. Eventually, one of the post-detach locks will win the
race and complete the full gc. So in the worst case, we may
racily repeat the pre-detach work, but we would never do so
simultaneously (it would happen via a sequence of serialized
race-wins).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agopre-rebase hook: capture documentation in a <<here document
Jonathan Nieder [Mon, 10 Jul 2017 23:35:25 +0000 (16:35 -0700)] 
pre-rebase hook: capture documentation in a <<here document

Without this change, the sample hook does not pass a syntax check
(sh -n):

  $ sh -n hooks--pre-rebase.sample
  hooks--pre-rebase.sample: line 101: syntax error near unexpected token `('
  hooks--pre-rebase.sample: line 101: `   merged into it again (either directly or indirectly).'

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agouse DIV_ROUND_UP
René Scharfe [Sat, 8 Jul 2017 10:35:35 +0000 (12:35 +0200)] 
use DIV_ROUND_UP

Convert code that divides and rounds up to use DIV_ROUND_UP to make the
intent clearer and reduce the number of magic constants.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoSync with maint
Junio C Hamano [Mon, 10 Jul 2017 21:02:45 +0000 (14:02 -0700)] 
Sync with maint

7 years agoPrepare for 2.13.3
Junio C Hamano [Mon, 10 Jul 2017 21:02:07 +0000 (14:02 -0700)] 
Prepare for 2.13.3

7 years agoMerge branch 'sb/merge-recursive-code-cleanup' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:09 +0000 (13:59 -0700)] 
Merge branch 'sb/merge-recursive-code-cleanup' into maint

Code clean-up.

* sb/merge-recursive-code-cleanup:
  merge-recursive: use DIFF_XDL_SET macro

7 years agoMerge branch 'jc/utf8-fprintf' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:08 +0000 (13:59 -0700)] 
Merge branch 'jc/utf8-fprintf' into maint

Code cleanup.

* jc/utf8-fprintf:
  submodule--helper: do not call utf8_fprintf() unnecessarily

7 years agoMerge branch 'js/fsck-name-object' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:08 +0000 (13:59 -0700)] 
Merge branch 'js/fsck-name-object' into maint

Test fix.

* js/fsck-name-object:
  t1450: use egrep for regexp "alternation"

7 years agoMerge branch 'js/t5534-rev-parse-gives-multi-line-output-fix' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:07 +0000 (13:59 -0700)] 
Merge branch 'js/t5534-rev-parse-gives-multi-line-output-fix' into maint

A few tests that tried to verify the contents of push certificates
did not use 'git rev-parse' to formulate the line to look for in
the certificate correctly.

* js/t5534-rev-parse-gives-multi-line-output-fix:
  t5534: fix misleading grep invocation

7 years agoMerge branch 'ab/sha1dc-maint' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:06 +0000 (13:59 -0700)] 
Merge branch 'ab/sha1dc-maint' into maint

Update the sha1dc again to fix portability glitches.

* ab/sha1dc-maint:
  sha1dc: update from upstream

7 years agoMerge branch 'aw/contrib-subtree-doc-asciidoctor' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:06 +0000 (13:59 -0700)] 
Merge branch 'aw/contrib-subtree-doc-asciidoctor' into maint

The Makefile rule in contrib/subtree for building documentation
learned to honour USE_ASCIIDOCTOR just like the main documentation
set does.

* aw/contrib-subtree-doc-asciidoctor:
  subtree: honour USE_ASCIIDOCTOR when set

7 years agoMerge branch 'cc/shared-index-permfix' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:05 +0000 (13:59 -0700)] 
Merge branch 'cc/shared-index-permfix' into maint

The split index code did not honor core.sharedrepository setting
correctly.

* cc/shared-index-permfix:
  t1700: make sure split-index respects core.sharedrepository
  t1301: move modebits() to test-lib-functions.sh
  read-cache: use shared perms when writing shared index

7 years agoMerge branch 'ah/doc-pretty-color-auto-prefix' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:05 +0000 (13:59 -0700)] 
Merge branch 'ah/doc-pretty-color-auto-prefix' into maint

Doc update.

* ah/doc-pretty-color-auto-prefix:
  doc: clarify syntax for %C(auto,...) in pretty formats

7 years agoMerge branch 'mb/reword-autocomplete-message' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:04 +0000 (13:59 -0700)] 
Merge branch 'mb/reword-autocomplete-message' into maint

Message update.

* mb/reword-autocomplete-message:
  auto-correct: tweak phrasing

7 years agoMerge branch 'ks/t7508-indent-fix' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:03 +0000 (13:59 -0700)] 
Merge branch 'ks/t7508-indent-fix' into maint

Cosmetic update to a test.

* ks/t7508-indent-fix:
  t7508: fix a broken indentation

7 years agoMerge branch 'sb/t4005-modernize' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:02 +0000 (13:59 -0700)] 
Merge branch 'sb/t4005-modernize' into maint

Test clean-up.

* sb/t4005-modernize:
  t4005: modernize style and drop hard coded sha1

7 years agoMerge branch 'rs/apply-validate-input' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:01 +0000 (13:59 -0700)] 
Merge branch 'rs/apply-validate-input' into maint

Tighten error checks for invalid "git apply" input.

* rs/apply-validate-input:
  apply: check git diffs for mutually exclusive header lines
  apply: check git diffs for invalid file modes
  apply: check git diffs for missing old filenames

7 years agoMerge branch 'jc/pack-bitmap-unaligned' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:59:00 +0000 (13:59 -0700)] 
Merge branch 'jc/pack-bitmap-unaligned' into maint

An unaligned 32-bit access in pack-bitmap code ahs been corrected.

* jc/pack-bitmap-unaligned:
  pack-bitmap: don't perform unaligned memory access

7 years agoMerge branch 'pw/rebase-i-regression-fix-tests' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:58:59 +0000 (13:58 -0700)] 
Merge branch 'pw/rebase-i-regression-fix-tests' into maint

Fix a recent regression to "git rebase -i" and add tests that would
have caught it and others.

* pw/rebase-i-regression-fix-tests:
  t3420: fix under GETTEXT_POISON build
  rebase: add more regression tests for console output
  rebase: add regression tests for console output
  rebase -i: add test for reflog message
  sequencer: print autostash messages to stderr

7 years agoMerge branch 'jk/add-p-commentchar-fix' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:58:58 +0000 (13:58 -0700)] 
Merge branch 'jk/add-p-commentchar-fix' into maint

"git add -p" were updated in 2.12 timeframe to cope with custom
core.commentchar but the implementation was buggy and a
metacharacter like $ and * did not work.

* jk/add-p-commentchar-fix:
  add--interactive: quote commentChar regex
  add--interactive: handle EOF in prompt_yesno

7 years agoMerge branch 'js/alias-early-config' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:58:57 +0000 (13:58 -0700)] 
Merge branch 'js/alias-early-config' into maint

The code to pick up and execute command alias definition from the
configuration used to switch to the top of the working tree and
then come back when the expanded alias was executed, which was
unnecessarilyl complex.  Attempt to simplify the logic by using the
early-config mechanism that does not chdir around.

* js/alias-early-config:
  alias: use the early config machinery to expand aliases
  t7006: demonstrate a problem with aliases in subdirectories
  t1308: relax the test verifying that empty alias values are disallowed
  help: use early config when autocorrecting aliases
  config: report correct line number upon error
  discover_git_directory(): avoid setting invalid git_dir

7 years agoMerge branch 'rs/pretty-add-again' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:58:57 +0000 (13:58 -0700)] 
Merge branch 'rs/pretty-add-again' into maint

The pretty-format specifiers like '%h', '%t', etc. had an
optimization that no longer works correctly.  In preparation/hope
of getting it correctly implemented, first discard the optimization
that is broken.

* rs/pretty-add-again:
  pretty: recalculate duplicate short hashes

7 years agoMerge branch 'ah/doc-gitattributes-empty-index' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:58:56 +0000 (13:58 -0700)] 
Merge branch 'ah/doc-gitattributes-empty-index' into maint

An example in documentation that does not work in multi worktree
configuration has been corrected.

* ah/doc-gitattributes-empty-index:
  doc: do not use `rm .git/index` when normalizing line endings

7 years agoMerge branch 'da/mergetools-meld-output-opt-on-macos' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:58:56 +0000 (13:58 -0700)] 
Merge branch 'da/mergetools-meld-output-opt-on-macos' into maint

"git mergetool" learned to work around a wrapper MacOS X adds
around underlying meld.

* da/mergetools-meld-output-opt-on-macos:
  mergetools/meld: improve compatibiilty with Meld on macOS X

7 years agoMerge branch 'jk/diff-highlight-module' into maint
Junio C Hamano [Mon, 10 Jul 2017 20:58:56 +0000 (13:58 -0700)] 
Merge branch 'jk/diff-highlight-module' into maint

The 'diff-highlight' program (in contrib/) has been restructured
for easier reuse by an external project 'diff-so-fancy'.

* jk/diff-highlight-module:
  diff-highlight: split code into module

7 years agoSixteenth batch for 2.14
Junio C Hamano [Mon, 10 Jul 2017 20:44:30 +0000 (13:44 -0700)] 
Sixteenth batch for 2.14

Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 years agoMerge branch 'jk/reflog-walk-maint'
Junio C Hamano [Mon, 10 Jul 2017 20:42:52 +0000 (13:42 -0700)] 
Merge branch 'jk/reflog-walk-maint'

After "git branch --move" of the currently checked out branch, the
code to walk the reflog of HEAD via "log -g" and friends
incorrectly stopped at the reflog entry that records the renaming
of the branch.

* jk/reflog-walk-maint:
  reflog-walk: include all fields when freeing complete_reflogs
  reflog-walk: don't free reflogs added to cache
  reflog-walk: duplicate strings in complete_reflogs list
  reflog-walk: skip over double-null oid due to HEAD rename

7 years agoMerge branch 'bb/unicode-10.0'
Junio C Hamano [Mon, 10 Jul 2017 20:42:52 +0000 (13:42 -0700)] 
Merge branch 'bb/unicode-10.0'

Update the character width tables.

* bb/unicode-10.0:
  unicode: update the width tables to Unicode 10

7 years agoMerge branch 'ks/typofix-commit-c-comment'
Junio C Hamano [Mon, 10 Jul 2017 20:42:51 +0000 (13:42 -0700)] 
Merge branch 'ks/typofix-commit-c-comment'

Typofix.

* ks/typofix-commit-c-comment:
  builtin/commit.c: fix a typo in the comment

7 years agoMerge branch 'ab/wildmatch'
Junio C Hamano [Mon, 10 Jul 2017 20:42:51 +0000 (13:42 -0700)] 
Merge branch 'ab/wildmatch'

Minor code cleanup.

* ab/wildmatch:
  wildmatch: remove unused wildopts parameter

7 years agoMerge branch 'ab/sha1dc'
Junio C Hamano [Mon, 10 Jul 2017 20:42:51 +0000 (13:42 -0700)] 
Merge branch 'ab/sha1dc'

The "collission-detecting" implementation of SHA-1 hash we borrowed
from is replaced by directly binding the upstream project as our
submodule.  Glitches on minority platforms are still being worked out.

* ab/sha1dc:
  sha1collisiondetection: automatically enable when submodule is populated
  sha1dc: optionally use sha1collisiondetection as a submodule

7 years agoMerge branch 'rs/free-and-null'
Junio C Hamano [Mon, 10 Jul 2017 20:42:51 +0000 (13:42 -0700)] 
Merge branch 'rs/free-and-null'

Code cleanup.

* rs/free-and-null:
  coccinelle: polish FREE_AND_NULL rules