summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-12-04sha1_file: use strbuf_add() instead of strbuf_addf()Libravatar Derrick Stolee2-5/+11
Replace use of strbuf_addf() with strbuf_add() when enumerating loose objects in for_each_file_in_obj_subdir(). Since we already check the length and hex-values of the string before consuming the path, we can prevent extra computation by using the lower- level method. One consumer of for_each_file_in_obj_subdir() is the abbreviation code. OID abbreviations use a cached list of loose objects (per object subdirectory) to make repeated queries fast, but there is significant cache load time when there are many loose objects. Most repositories do not have many loose objects before repacking, but in the GVFS case the repos can grow to have millions of loose objects. Profiling 'git log' performance in GitForWindows on a GVFS-enabled repo with ~2.5 million loose objects revealed 12% of the CPU time was spent in strbuf_addf(). Add a new performance test to p4211-line-log.sh that is more sensitive to this cache-loading. By limiting to 1000 commits, we more closely resemble user wait time when reading history into a pager. For a copy of the Linux repo with two ~512 MB packfiles and ~572K loose objects, running 'git log --oneline --parents --raw -1000' had the following performance: HEAD~1 HEAD ---------------------------------------- 7.70(7.15+0.54) 7.44(7.09+0.29) -3.4% Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-11-28Sync with v2.15.1Libravatar Junio C Hamano1-0/+3
2017-11-28RelNotes: the seventh batchLibravatar Junio C Hamano1-1/+13
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-11-28Merge branch 'rs/include-comments-before-the-function-header'Libravatar Junio C Hamano5-20/+76
"git grep -W", "git diff -W" and their friends learned a heuristic to extend a pre-context beyond the line that matches the "function pattern" (aka "diff.*.xfuncname") to include a comment block, if exists, that immediately precedes it. * rs/include-comments-before-the-function-header: grep: show non-empty lines before functions with -W grep: update boundary variable for pre-context t7810: improve check of -W with user-defined function lines xdiff: show non-empty lines before functions with -W xdiff: factor out is_func_rec() t4051: add test for comments preceding function lines
2017-11-28Merge branch 'ma/branch-list-paginate'Libravatar Junio C Hamano4-1/+48
"git branch --list" learned to show its output through the pager by default when the output is going to a terminal, which is controlled by the pager.branch configuration variable. This is similar to a recent change to "git tag --list". * ma/branch-list-paginate: branch: change default of `pager.branch` to "on" branch: respect `pager.branch` in list-mode only t7006: add tests for how git branch paginates
2017-11-28Merge branch 'jc/branch-name-sanity'Libravatar Junio C Hamano6-43/+106
"git branch" and "git checkout -b" are now forbidden from creating a branch whose name is "HEAD". * jc/branch-name-sanity: builtin/branch: remove redundant check for HEAD branch: correctly reject refs/heads/{-dash,HEAD} branch: split validate_new_branchname() into two branch: streamline "attr_only" handling in validate_new_branchname()
2017-11-28Git 2.15.1Libravatar Junio C Hamano1-0/+3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-11-28Merge branch 'rs/config-write-section-fix' into maintLibravatar Junio C Hamano1-1/+1
There was a recent semantic mismerge in the codepath to write out a section of a configuration section, which has been corrected. * rs/config-write-section-fix: config: flip return value of write_section()
2017-11-27RelNotes: the sixth batch for 2.16Libravatar Junio C Hamano1-8/+65
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-11-27Sync with maintLibravatar Junio C Hamano1-3/+8
* maint: A bit more fixes for 2.15.1 RelNotes: minor typo fixes in 2.15.1 draft
2017-11-27Merge branch 'sw/pull-ipv46-passthru'Libravatar Junio C Hamano1-0/+12
Contrary to the documentation, "git pull -4/-6 other-args" did not ask the underlying "git fetch" to go over IPv4/IPv6, which has been corrected. * sw/pull-ipv46-passthru: pull: pass -4/-6 option to 'git fetch'
2017-11-27Merge branch 'ks/rebase-no-git-foo'Libravatar Junio C Hamano1-2/+2
Mentions of "git-rebase" and "git-am" (dashed form) still remained in end-user visible strings emitted by the "git rebase" command; they have been corrected. * ks/rebase-no-git-foo: git-rebase: clean up dashed-usages in messages
2017-11-27Merge branch 'rs/config-write-section-fix'Libravatar Junio C Hamano1-1/+1
There was a recent semantic mismerge in the codepath to write out a section of a configuration section, which has been corrected. * rs/config-write-section-fix: config: flip return value of write_section()
2017-11-27Merge branch 'ew/rebase-mboxrd'Libravatar Junio C Hamano2-0/+24
When "git rebase" prepared an mailbox of changes and fed it to "git am" to replay them, it was confused when a stray "From " happened to be in the log message of one of the replayed changes. This has been corrected. * ew/rebase-mboxrd: rebase: use mboxrd format to avoid split errors
2017-11-27Merge branch 'tb/add-renormalize'Libravatar Junio C Hamano7-18/+102
"git add --renormalize ." is a new and safer way to record the fact that you are correcting the end-of-line convention and other "convert_to_git()" glitches in the in-repository data. * tb/add-renormalize: add: introduce "--renormalize"
2017-11-27Merge branch 'tz/complete-branch-copy'Libravatar Junio C Hamano1-1/+1
Command line completion (in contrib/) has been taught about the "--copy" option of "git branch". * tz/complete-branch-copy: completion: add '--copy' option to 'git branch'
2017-11-27Merge branch 'rs/apply-inaccurate-eof-with-incomplete-line'Libravatar Junio C Hamano2-0/+16
"git apply --inaccurate-eof" when used with "--ignore-space-change" triggered an internal sanity check, which has been fixed. * rs/apply-inaccurate-eof-with-incomplete-line: apply: update line lengths for --inaccurate-eof
2017-11-27Merge branch 'pw/sequencer-recover-from-unlockable-index'Libravatar Junio C Hamano1-1/+2
The sequencer machinery (used by "git cherry-pick A..B", and "git rebase -i", among other things) would have lost a commit if stopped due to an unlockable index file, which has been fixed. * pw/sequencer-recover-from-unlockable-index: sequencer: reschedule pick if index can't be locked
2017-11-27Merge branch 'sd/branch-copy'Libravatar Junio C Hamano1-2/+2
Code clean-up. * sd/branch-copy: config: avoid "write_in_full(fd, buf, len) != len" pattern
2017-11-27Merge branch 'sb/test-cherry-pick-submodule-getting-in-a-way'Libravatar Junio C Hamano2-2/+39
The three-way merge performed by "git cherry-pick" was confused when a new submodule was added in the meantime, which has been fixed (or "papered over"). * sb/test-cherry-pick-submodule-getting-in-a-way: merge-recursive: handle addition of submodule on our side of history t/3512: demonstrate unrelated submodule/file conflict as cherry-pick failure
2017-11-27Merge branch 'tz/notes-error-to-stderr'Libravatar Junio C Hamano3-9/+9
"git notes" sent its error message to its standard output stream, which was corrected. * tz/notes-error-to-stderr: notes: send "Automatic notes merge failed" messages to stderr
2017-11-27Merge branch 'tz/redirect-fix'Libravatar Junio C Hamano2-2/+2
A few scripts (both in production and tests) incorrectly redirected their error output. These have been corrected. * tz/redirect-fix: rebase: fix stderr redirect in apply_autostash() t/lib-gpg: fix gpgconf stderr redirect to /dev/null
2017-11-27Merge branch 'rv/sendemail-tocmd-in-config-and-completion'Libravatar Junio C Hamano2-0/+2
Teach "sendemail.tocmd" to places that know about "sendemail.to", like documentation and shell completion (in contrib/). * rv/sendemail-tocmd-in-config-and-completion: completion: add git config sendemail.tocmd Documentation/config: add sendemail.tocmd to list preceding "See git-send-email(1)"
2017-11-27Merge branch 'jc/merge-base-fork-point-doc'Libravatar Junio C Hamano1-8/+56
Clarify and enhance documentation for "merge-base --fork-point", as it was clear what it computed but not why/what for. * jc/merge-base-fork-point-doc: merge-base --fork-point doc: clarify the example and failure modes
2017-11-27Merge branch 'jc/ignore-cr-at-eol'Libravatar Junio C Hamano8-18/+92
The "diff" family of commands learned to ignore differences in carriage return at the end of line. * jc/ignore-cr-at-eol: diff: --ignore-cr-at-eol xdiff: reassign xpparm_t.flags bits
2017-11-27A bit more fixes for 2.15.1Libravatar Junio C Hamano1-0/+5
We've been waiting long enough, a few more would not hurt ;-) Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-11-27Merge branch 'ma/reduce-heads-leakfix' into maintLibravatar Junio C Hamano7-23/+52
Leak fixes. * ma/reduce-heads-leakfix: reduce_heads: fix memory leaks builtin/merge-base: free commit lists
2017-11-27Merge branch 'ma/bisect-leakfix' into maintLibravatar Junio C Hamano3-19/+29
Leak fixes. * ma/bisect-leakfix: bisect: fix memory leak when returning best element bisect: fix off-by-one error in `best_bisection_sorted()` bisect: fix memory leak in `find_bisection()` bisect: change calling-convention of `find_bisection()`
2017-11-27Merge branch 'rs/apply-fuzzy-match-fix' into maintLibravatar Junio C Hamano1-39/+20
A fix for an ancient bug in "git apply --ignore-space-change" codepath. * rs/apply-fuzzy-match-fix: apply: avoid out-of-bounds access in fuzzy_matchlines()
2017-11-27Merge branch 'ad/submitting-patches-title-decoration' into maintLibravatar Junio C Hamano1-8/+13
Doc update around use of "format-patch --subject-prefix" etc. * ad/submitting-patches-title-decoration: doc/SubmittingPatches: correct subject guidance
2017-11-27Merge branch 'rs/imap-send-next-arg-fix' into maintLibravatar Junio C Hamano1-2/+13
Error checking in "git imap-send" for empty response has been improved. * rs/imap-send-next-arg-fix: imap-send: handle missing response codes gracefully imap-send: handle NULL return of next_arg()
2017-11-26RelNotes: minor typo fixes in 2.15.1 draftLibravatar Todd Zullinger1-3/+3
Signed-off-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-11-21Sync with maintLibravatar Junio C Hamano1-0/+12
* maint: Almost ready for 2.15.1
2017-11-21RelNotes: the fifth batch for 2.16Libravatar Junio C Hamano1-12/+9
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-11-21Merge branch 'rs/apply-fuzzy-match-fix'Libravatar Junio C Hamano1-39/+20
A fix for an ancient bug in "git apply --ignore-space-change" codepath. * rs/apply-fuzzy-match-fix: apply: avoid out-of-bounds access in fuzzy_matchlines()
2017-11-21Merge branch 'ad/submitting-patches-title-decoration'Libravatar Junio C Hamano1-8/+13
Doc update around use of "format-patch --subject-prefix" etc. * ad/submitting-patches-title-decoration: doc/SubmittingPatches: correct subject guidance
2017-11-21Merge branch 'av/fsmonitor'Libravatar Junio C Hamano8-48/+77
Various fixes to bp/fsmonitor topic. * av/fsmonitor: fsmonitor: simplify determining the git worktree under Windows fsmonitor: store fsmonitor bitmap before splitting index fsmonitor: read from getcwd(), not the PWD environment variable fsmonitor: delay updating state until after split index is merged fsmonitor: document GIT_TRACE_FSMONITOR fsmonitor: don't bother pretty-printing JSON from watchman fsmonitor: set the PWD to the top of the working tree
2017-11-21Merge branch 'bp/fsmonitor'Libravatar Junio C Hamano33-23/+1570
We learned to talk to watchman to speed up "git status" and other operations that need to see which paths have been modified. * bp/fsmonitor: fsmonitor: preserve utf8 filenames in fsmonitor-watchman log fsmonitor: read entirety of watchman output fsmonitor: MINGW support for watchman integration fsmonitor: add a performance test fsmonitor: add a sample integration script for Watchman fsmonitor: add test cases for fsmonitor extension split-index: disable the fsmonitor extension when running the split index test fsmonitor: add a test tool to dump the index extension update-index: add fsmonitor support to update-index ls-files: Add support in ls-files to display the fsmonitor valid bit fsmonitor: add documentation for the fsmonitor extension. fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files. update-index: add a new --force-write-index option preload-index: add override to enable testing preload-index bswap: add 64 bit endianness helper get_be64
2017-11-21Almost ready for 2.15.1Libravatar Junio C Hamano1-0/+12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-11-21Merge branch 'rs/sequencer-rewrite-file-cleanup' into maintLibravatar Junio C Hamano1-29/+16
Code cleanup. * rs/sequencer-rewrite-file-cleanup: sequencer.c: check return value of close() in rewrite_file() sequencer: use O_TRUNC to truncate files sequencer: factor out rewrite_file()
2017-11-21Merge branch 'cb/t4201-robustify' into maintLibravatar Junio C Hamano2-5/+7
A test update. * cb/t4201-robustify: t4201: make use of abbreviation in the test more robust
2017-11-21Merge branch 'tz/fsf-address-update' into maintLibravatar Junio C Hamano44-103/+69
Replace the mailing address of FSF to a URL, as FSF prefers. * tz/fsf-address-update: Replace Free Software Foundation address in license notices Replace Free Software Foundation address in license notices
2017-11-21Merge branch 'ad/rebase-i-serie-typofix' into maintLibravatar Junio C Hamano1-1/+1
Typofix. * ad/rebase-i-serie-typofix: rebase -i: fix comment typo
2017-11-21Merge branch 'jk/info-alternates-fix' into maintLibravatar Junio C Hamano1-1/+3
We used to add an empty alternate object database to the system that does not help anything; it has been corrected. * jk/info-alternates-fix: link_alt_odb_entries: make empty input a noop
2017-11-21Merge branch 'ab/pcre-v2' into maintLibravatar Junio C Hamano2-3/+4
Building with NO_LIBPCRE1_JIT did not disable it, which has been fixed. * ab/pcre-v2: grep: fix NO_LIBPCRE1_JIT to fully disable JIT
2017-11-21Merge branch 'sr/wrapper-quote-filenames' into maintLibravatar Junio C Hamano3-6/+6
Some error messages did not quote filenames shown in it, which have been fixed. * sr/wrapper-quote-filenames: wrapper.c: consistently quote filenames in error messages
2017-11-21Merge branch 'bw/rebase-i-ignored-submodule-fix' into maintLibravatar Junio C Hamano2-1/+20
"git rebase -i" recently started misbehaving when a submodule that is configured with 'submodule.<name>.ignore' is dirty; this has been corrected. * bw/rebase-i-ignored-submodule-fix: wt-status: actually ignore submodules when requested
2017-11-21git-jump: give contact instructions in the READMELibravatar Jeff King1-0/+7
Let's make it clear how patches should flow into contrib/git-jump. The normal Git maintainer does not necessarily care about things in contrib/, and authors of individual components should be the ones giving the final review/ack for a patch. Ditto for bug reports, which are likely to get more attention from the area expert. Signed-off-by: Jeff King <peff@peff.net> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-11-21contrib/git-jump: allow to configure the grep commandLibravatar Beat Bolli2-2/+8
Add the configuration option "jump.grepCmd" that allows to configure the command that is used to search in grep mode. This allows the users of git-jump to use ag(1) or ack(1) as search engines. Signed-off-by: Beat Bolli <dev+git@drbeat.li> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-11-21pull: pass -4/-6 option to 'git fetch'Libravatar Shuyu Wei1-0/+12
The -4/-6 option should be passed through to 'git fetch' to be consistent with the man page. Signed-off-by: Wei Shuyu <wsy@dogben.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>