Commit Graph

47861 Commits

Author SHA1 Message Date
Junio C Hamano
6fee4ca625 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()
2017-07-12 15:18:22 -07:00
Junio C Hamano
b5fe65fe93 Merge branch 'sb/submodule-doc'
Doc update.

* sb/submodule-doc:
  submodules: overhaul documentation
2017-07-12 15:18:21 -07:00
Junio C Hamano
117ddefdb4 Sync with maint 2017-07-10 14:06:21 -07:00
Junio C Hamano
699d47e1d2 Prepare for 2.13.3 2017-07-10 14:02:07 -07:00
Junio C Hamano
4aaf5b0b21 Merge branch 'sb/merge-recursive-code-cleanup' into maint
Code clean-up.

* sb/merge-recursive-code-cleanup:
  merge-recursive: use DIFF_XDL_SET macro
2017-07-10 13:59:09 -07:00
Junio C Hamano
127c13aa41 Merge branch 'jc/utf8-fprintf' into maint
Code cleanup.

* jc/utf8-fprintf:
  submodule--helper: do not call utf8_fprintf() unnecessarily
2017-07-10 13:59:09 -07:00
Junio C Hamano
8e7b78a692 Merge branch 'js/fsck-name-object' into maint
Test fix.

* js/fsck-name-object:
  t1450: use egrep for regexp "alternation"
2017-07-10 13:59:08 -07:00
Junio C Hamano
5a24b4e14a 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
2017-07-10 13:59:07 -07:00
Junio C Hamano
362009f8cf Merge branch 'ab/sha1dc-maint' into maint
Update the sha1dc again to fix portability glitches.

* ab/sha1dc-maint:
  sha1dc: update from upstream
2017-07-10 13:59:06 -07:00
Junio C Hamano
35049a2343 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
2017-07-10 13:59:06 -07:00
Junio C Hamano
a9e87e3204 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
2017-07-10 13:59:05 -07:00
Junio C Hamano
76de71b487 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
2017-07-10 13:59:05 -07:00
Junio C Hamano
cf77911ae5 Merge branch 'mb/reword-autocomplete-message' into maint
Message update.

* mb/reword-autocomplete-message:
  auto-correct: tweak phrasing
2017-07-10 13:59:04 -07:00
Junio C Hamano
8f3a16c390 Merge branch 'ks/t7508-indent-fix' into maint
Cosmetic update to a test.

* ks/t7508-indent-fix:
  t7508: fix a broken indentation
2017-07-10 13:59:03 -07:00
Junio C Hamano
dbcf77592a Merge branch 'sb/t4005-modernize' into maint
Test clean-up.

* sb/t4005-modernize:
  t4005: modernize style and drop hard coded sha1
2017-07-10 13:59:02 -07:00
Junio C Hamano
33c3c2d368 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
2017-07-10 13:59:01 -07:00
Junio C Hamano
b944d7c4b5 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
2017-07-10 13:59:00 -07:00
Junio C Hamano
9f6728da31 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
2017-07-10 13:59:00 -07:00
Junio C Hamano
f904494574 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
2017-07-10 13:58:59 -07:00
Junio C Hamano
040746c061 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
2017-07-10 13:58:58 -07:00
Junio C Hamano
49771171e5 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
2017-07-10 13:58:57 -07:00
Junio C Hamano
86d51bbe1a 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
2017-07-10 13:58:56 -07:00
Junio C Hamano
311b760b8f 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
2017-07-10 13:58:56 -07:00
Junio C Hamano
c4ffd78852 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
2017-07-10 13:58:56 -07:00
Junio C Hamano
5e5a7cd932 Sixteenth batch for 2.14
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-10 13:44:30 -07:00
Junio C Hamano
4dc59cba81 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
2017-07-10 13:42:53 -07:00
Junio C Hamano
e7fc60ad16 Merge branch 'bb/unicode-10.0'
Update the character width tables.

* bb/unicode-10.0:
  unicode: update the width tables to Unicode 10
2017-07-10 13:42:52 -07:00
Junio C Hamano
cd0391af93 Merge branch 'ks/typofix-commit-c-comment'
Typofix.

* ks/typofix-commit-c-comment:
  builtin/commit.c: fix a typo in the comment
2017-07-10 13:42:51 -07:00
Junio C Hamano
0c6435a4d6 Merge branch 'ab/wildmatch'
Minor code cleanup.

* ab/wildmatch:
  wildmatch: remove unused wildopts parameter
2017-07-10 13:42:51 -07:00
Junio C Hamano
2db87328ef 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
2017-07-10 13:42:51 -07:00
Junio C Hamano
d73b46cfb5 Merge branch 'rs/free-and-null'
Code cleanup.

* rs/free-and-null:
  coccinelle: polish FREE_AND_NULL rules
2017-07-10 13:42:51 -07:00
Junio C Hamano
9bf8e0c73d Merge branch 'pw/unquote-path-in-git-pm'
Code refactoring.

* pw/unquote-path-in-git-pm:
  t9700: add tests for Git::unquote_path()
  Git::unquote_path(): throw an exception on bad path
  Git::unquote_path(): handle '\a'
  add -i: move unquote_path() to Git.pm
2017-07-10 13:42:50 -07:00
Junio C Hamano
c4f70d2c90 Merge branch 'ks/commit-assuming-only-warning-removal'
An old message shown in the commit log template was removed, as it
has outlived its usefulness.

* ks/commit-assuming-only-warning-removal:
  commit-template: distinguish status information unconditionally
  commit-template: remove outdated notice about explicit paths
2017-07-10 13:42:50 -07:00
Ralf Thielow
f271c95cc0 l10n: de.po: fix typo
Reported-by: Andre Hinrichs <andre.hinrichs@gmx.de>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-10 11:44:18 -07:00
René Scharfe
2d105451c0 apply: use strcmp(3) for comparing strings in gitdiff_verify_name()
We don't know the length of the C string "another".  It could be
shorter than "name", which we compare it to using memchr(3).  Call
strcmp(3) instead to avoid running over the end of the former, and
get rid of a strlen(3) call as a bonus.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-09 09:30:42 -07:00
Beat Bolli
7560aacd7c unicode: update the width tables to Unicode 10
Now that Unicode 10 has been announced[0], update the character
width tables to the new version.

[0] http://blog.unicode.org/2017/06/announcing-unicode-standard-version-100.html

Signed-off-by: Beat Bolli <dev+git@drbeat.li>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-07 10:33:30 -07:00
Jeff King
e30d463d45 reflog-walk: include all fields when freeing complete_reflogs
When we encounter an error adding reflogs for a walk, we try
to free any logs we have read. But we didn't free all
fields, meaning that we could in theory leak all of the
"items" array (which would consitute the bulk of the
allocated memory).

This patch adds a helper which frees all of the entries and
uses it as appropriate.

As it turns out, the leak seems impossible to trigger with
the current code. Of the three error paths that free the
complete_reflogs struct, two only kick in when the items
array is empty, and the third was removed entirely in the
previous commit.

So this patch should be a noop in terms of behavior, but it
fixes a potential maintenance headache should anybody add a
new error path and copy the partial-free code. Which is
what happened in 5026b47175 (add_reflog_for_walk: avoid
memory leak, 2017-05-04), though its leaky call was the
third one that was recently removed.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-07 09:04:34 -07:00
Jeff King
8aae3cf755 reflog-walk: don't free reflogs added to cache
The add_reflog_for_walk() function keeps a cache mapping
refnames to their reflog contents. We use a cached reflog
entry if available, and otherwise allocate and store a new
one.

Since 5026b47175 (add_reflog_for_walk: avoid memory leak,
2017-05-04), when we hit an error parsing a date-based
reflog spec, we free the reflog memory but leave the cache
entry pointing to the now-freed memory.

We can fix this by just leaving the memory intact once it
has made it into the cache. This may leave an unused entry
in the cache, but that's OK. And it means we also catch a
similar situation: we may not have allocated at all in this
invocation, but simply be pointing to a cached entry from a
previous invocation (which is relying on that entry being
present).

The new test in t1411 exercises this case and fails when run
with --valgrind or ASan.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-07 09:00:31 -07:00
Jeff King
75afe7ac87 reflog-walk: duplicate strings in complete_reflogs list
As part of the add_reflog_to_walk() function, we keep a
string_list mapping refnames to their reflog contents. This
serves as a cache so that accessing the same reflog twice
requires only a single copy of the log in memory.

The string_list is initialized via xcalloc, meaning its
strdup_strings field is set to 0. But after inserting a
string into the list, we unconditionally call free() on the
string, leaving the list pointing to freed memory. If
another reflog is added (e.g., "git log -g HEAD HEAD"), then
the second one may have unpredictable results.

The extra free was added by 5026b47175 (add_reflog_for_walk:
avoid memory leak, 2017-05-04). Though if you look
carefully, you can see that the code was buggy even before
then. If we tried to read the reflogs by time but came up
with no entries, we exited with an error, freeing the string
in that code path. So the bug was harder to trigger, but
still there.

We can fix it by just asking the string list to make a copy
of the string. Technically we could fix the problem by not
calling free() on our string (and just handing over
ownership to the string list), but there are enough
conditionals that it's quite hard to figure out which code
paths need the free and which do not. Simpler is better
here.

The new test reliably shows the problem when run with
--valgrind or ASAN.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-07 08:58:17 -07:00
Junio C Hamano
8b2efe2a0f Fifteenth batch for 2.14
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-06 18:26:13 -07:00
Junio C Hamano
6ba649e408 Merge branch 'ab/strbuf-addftime-tzname-boolify'
strbuf_addftime() is further getting tweaked.

* ab/strbuf-addftime-tzname-boolify:
  strbuf: change an always NULL/"" strbuf_addftime() param to bool
  strbuf.h comment: discuss strbuf_addftime() arguments in order
2017-07-06 18:14:47 -07:00
Junio C Hamano
eb37527ab0 Merge branch 'xz/send-email-batch-size'
"git send-email" learned to overcome some SMTP server limitation
that does not allow many pieces of e-mails to be sent over a single
session.

* xz/send-email-batch-size:
  send-email: --batch-size to work around some SMTP server limit
2017-07-06 18:14:46 -07:00
Junio C Hamano
ccce1e51e8 Merge branch 'js/t5534-rev-parse-gives-multi-line-output-fix'
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
2017-07-06 18:14:46 -07:00
Junio C Hamano
2f4bcd8b70 Merge branch 'sb/merge-recursive-code-cleanup'
Code clean-up.

* sb/merge-recursive-code-cleanup:
  merge-recursive: use DIFF_XDL_SET macro
2017-07-06 18:14:45 -07:00
Junio C Hamano
f9b3252b2a Merge branch 'rs/apply-avoid-over-reading'
Code clean-up to fix possible buffer over-reading.

* rs/apply-avoid-over-reading:
  apply: use starts_with() in gitdiff_verify_name()
2017-07-06 18:14:45 -07:00
Junio C Hamano
cbb8704adb Merge branch 'ab/sha1dc-maint'
Update the sha1dc again to fix portability glitches.

* ab/sha1dc-maint:
  sha1dc: update from upstream
2017-07-06 18:14:44 -07:00
Junio C Hamano
62458ea333 Merge branch 'jc/utf8-fprintf'
Code cleanup.

* jc/utf8-fprintf:
  submodule--helper: do not call utf8_fprintf() unnecessarily
2017-07-06 18:14:44 -07:00
Junio C Hamano
8f58a34cad Merge branch 'js/fsck-name-object'
Test fix.

* js/fsck-name-object:
  t1450: use egrep for regexp "alternation"
2017-07-06 18:14:43 -07:00
Junio C Hamano
33cc9cfc3d Merge branch 'aw/contrib-subtree-doc-asciidoctor'
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
2017-07-06 18:14:42 -07:00
Kaartic Sivaraam
669638fe7a builtin/commit.c: fix a typo in the comment
Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-06 09:06:26 -07:00