AgeCommit message (Collapse)Author
2014-06-06Merge branch 'wk/doc-clarify-upstream'Junio C Hamano
* wk/doc-clarify-upstream: Documentation: mention config sources for @{upstream}
2014-06-06Merge branch 'tb/unicode-6.3-zero-width'Junio C Hamano
Update the logic to compute the display width needed for utf8 strings and allow us to more easily maintain the tables used in that logic. We may want to let the users choose if codepoints with ambiguous widths are treated as a double or single width in a follow-up patch. * tb/unicode-6.3-zero-width: utf8: make it easier to auto-update git_wcwidth() utf8.c: use a table for double_width
2014-06-06Merge branch 'jk/index-pack-report-missing'Junio C Hamano
* jk/index-pack-report-missing: index-pack: distinguish missing objects from type errors
2014-06-06Merge branch 'bc/blame-crlf-test'Junio C Hamano
If a file contained CRLF line endings in a repository with core.autocrlf=input, then blame always marked lines as "Not Committed Yet", even if they were unmodified. * bc/blame-crlf-test: blame: correctly handle files regardless of autocrlf
2014-06-06Merge branch 'sk/submodules-absolute-path-on-windows'Junio C Hamano
* sk/submodules-absolute-path-on-windows: Revert "submodules: fix ambiguous absolute paths under Windows"
2014-06-06Merge branch 'dk/blame-reorg'Junio C Hamano
"git blame" has been optimized greatly by reorganising the data structure that is used to keep track of the work to be done, thanks to David Karstrup <>. * dk/blame-reorg: blame: large-scale performance rewrite
2014-06-06Merge branch 'wg/svn-fe-style-fixes'Junio C Hamano
* wg/svn-fe-style-fixes: svn-fe: conform to pep8
2014-06-06Merge branch 'jn/contrib-remove-vim'Junio C Hamano
Spring cleaning of contrib/. * jn/contrib-remove-vim: contrib: remove vim support instructions
2014-06-06Merge branch 'jn/contrib-remove-diffall'Junio C Hamano
Spring cleaning of contrib/. * jn/contrib-remove-diffall: contrib: remove git-diffall
2014-06-06Merge branch 'dt/merge-recursive-case-insensitive'Junio C Hamano
On a case insensitive filesystem, merge-recursive incorrectly deleted the file that is to be renamed to a name that is the same except for case differences. * dt/merge-recursive-case-insensitive: mv: allow renaming to fix case on case insensitive filesystems merge-recursive.c: fix case-changing merge bug
2014-06-06Merge branch 'rs/reflog-exists'Junio C Hamano
* rs/reflog-exists: checkout.c: use ref_exists instead of file_exist refs.c: add new functions reflog_exists and delete_reflog
2014-06-06Merge branch 'tg/tag-state-tag-name-in-editor-hints'Junio C Hamano
* tg/tag-state-tag-name-in-editor-hints: builtin/tag.c: show tag name to hint in the message editor
2014-06-06Merge branch 'jk/grep-tell-run-command-to-cd-when-running-pager'Junio C Hamano
* jk/grep-tell-run-command-to-cd-when-running-pager: grep: use run-command's "dir" option for --open-files-in-pager
2014-06-06Merge branch 'fc/status-printf-squelch-format-zero-length-warnings'Junio C Hamano
* fc/status-printf-squelch-format-zero-length-warnings: silence a bunch of format-zero-length warnings
2014-06-06Merge branch 'jk/squelch-compiler-warning-from-funny-error-macro'Junio C Hamano
* jk/squelch-compiler-warning-from-funny-error-macro: let clang use the constant-return error() macro inline constant return from error() function
2014-06-06Merge branch 'dk/raise-core-deltabasecachelimit'Junio C Hamano
The `core.deltabasecachelimit` used to default to 16 MiB , but this proved to be too small, and has been bumped to 96 MiB. * dk/raise-core-deltabasecachelimit: Bump core.deltaBaseCacheLimit to 96m
2014-06-06Merge branch 'tl/relax-in-poll-emulation'Junio C Hamano
* tl/relax-in-poll-emulation: compat/poll: sleep 1 millisecond to avoid busy wait
2014-06-06Merge branch 'jk/utf8-switch-between-nfd-and-nfc'Junio C Hamano
Document a known breakage with a test. * jk/utf8-switch-between-nfd-and-nfc: t3910: show failure of core.precomposeunicode with decomposed filenames
2014-06-06Merge branch 'da/imap-send-use-credential-helper'Junio C Hamano
"git imap-send" learns to ask the credential helper for authentication material. * da/imap-send-use-credential-helper: imap-send: use git-credential
2014-06-06Merge branch 'je/pager-do-not-recurse'Junio C Hamano
We used to unconditionally disable the pager in the pager process we spawn to feed out output, but that prevented people who want to run "less" within "less" from doing so. * je/pager-do-not-recurse: pager: do allow spawning pager recursively
2014-06-06Merge branch 'jk/commit-C-pick-empty'Junio C Hamano
"git commit --allow-empty-message -C $commit" did not work when the commit did not have any log message. * jk/commit-C-pick-empty: commit: do not complain of empty messages from -C
2014-06-06Merge branch 'mm/pager-less-sans-S'Junio C Hamano
Since the very beginning of Git, we gave the LESS environment a default value "FRSX" when we spawn "less" as the pager. "S" (chop long lines instead of wrapping) has been removed from this default set of options, because it is more or less a personal taste thing, as opposed to others that have good justifications (i.e. "R" is very much justified because many kinds of output we produce are colored and "FX" is justified because output we produce is often shorter than a page). Existing users who prefer not to see line-wrapped output may want to set $ git config core.pager "less -S" to restore the traditional behaviour. It is expected that people find output from the most subcommands easier to read with the new default, except for "blame" which tends to produce really long lines. To override the new default only for "git blame", you can do this: $ git config pager.blame "less -S" * mm/pager-less-sans-S: pager: remove 'S' from $LESS by default
2014-06-03First batch for 2.1Junio C Hamano
Signed-off-by: Junio C Hamano <>
2014-06-03Merge branch 'sk/msvc-dynlink-crt'Junio C Hamano
* sk/msvc-dynlink-crt: MSVC: link dynamically to the CRT
2014-06-03Merge branch 'ew/config-protect-mode'Junio C Hamano
* ew/config-protect-mode: config: preserve config file permissions on edits
2014-06-03Merge branch 'bg/strbuf-trim'Junio C Hamano
* bg/strbuf-trim: api-strbuf.txt: add docs for _trim and _ltrim strbuf: use _rtrim and _ltrim in strbuf_trim
2014-06-03Merge branch 'jk/commit-date-approxidate'Junio C Hamano
* jk/commit-date-approxidate: commit: accept more date formats for "--date" commit: print "Date" line when the user has set date pretty: make show_ident_date public commit: use split_ident_line to compare author/committer
2014-06-03Merge branch 'ep/shell-command-substitution'Junio C Hamano
Adjust shell scripts to use $(cmd) instead of `cmd`. * ep/shell-command-substitution: (41 commits) use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution use the $( ... ) construct for command substitution ...
2014-06-03Merge branch 'fc/rerere-conflict-style'Junio C Hamano
* fc/rerere-conflict-style: rerere: fix for merge.conflictstyle
2014-06-03Merge branch 'dt/api-doc-setup-gently'Junio C Hamano
* dt/api-doc-setup-gently: docs: document RUN_SETUP_GENTLY and clarify RUN_SETUP
2014-06-03Merge branch 'fc/mergetool-prompt'Junio C Hamano
mergetool.prompt used to default to 'true', always causing a confirmation "do you really want to run the tool on this path" to be shown. Among the two purposes the prompt serves, ignore the use case to confirm that the user wants to view particular path with the named tool, and make the prompt only to confirm the choice of the tool made by autodetection and defaulting. For those who configured the tool explicitly, the prompt shown for the latter purpose is simply annoying. Strictly speaking, this is a backward incompatible change and the users need to explicitly set the variable to 'true' if they want to resurrect the now-ignored use case. * fc/mergetool-prompt: mergetool: document the default for --[no-]prompt mergetool: run prompt only if guessed tool
2014-06-03Merge branch 'mm/mediawiki-encoding-fix'Junio C Hamano
* mm/mediawiki-encoding-fix: git-remote-mediawiki: fix encoding issue for UTF-8 media files git-remote-mediawiki: allow stop/start-ing the test server
2014-06-03Merge branch 'sk/tag-contains-wo-recursion'Junio C Hamano
* sk/tag-contains-wo-recursion: git tag --contains: avoid stack overflow
2014-06-03Merge branch 'ef/send-email-absolute-path-to-the-command'Junio C Hamano
* ef/send-email-absolute-path-to-the-command: send-email: windows drive prefix (e.g. C:) appears only at the beginning send-email: recognize absolute path on Windows
2014-06-03Merge branch 'jx/blame-align-relative-time'Junio C Hamano
"git blame" miscounted number of columns needed to show localized timestamps, resulting in jaggy left-side-edge of the source code lines in its output. * jx/blame-align-relative-time: blame: dynamic blame_date_width for different locales blame: fix broken time_buf paddings in relative timestamp
2014-06-03Merge branch 'lr/git-run-setup-gently'Junio C Hamano
* lr/git-run-setup-gently: git.c: treat RUN_SETUP_GENTLY and RUN_SETUP as mutually exclusive
2014-06-03Merge branch 'fc/mergetools-vimdiff3'Junio C Hamano
* fc/mergetools-vimdiff3: mergetools: add vimdiff3 mode
2014-06-03Merge branch 'fc/merge-default-to-upstream'Junio C Hamano
"git merge" without argument, even when there is an upstream defined for the current branch, refused to run until merge.defaultToUpstream is set to true. Flip the default of that configuration variable to true. * fc/merge-default-to-upstream: merge: enable defaulttoupstream by default
2014-06-03Merge branch 'jk/external-diff-use-argv-array'Junio C Hamano
Code clean-up (and a bugfix which has been merged for 2.0). * jk/external-diff-use-argv-array: run_external_diff: refactor cmdline setup logic run_external_diff: hoist common bits out of conditional run_external_diff: drop fflush(NULL) run_external_diff: clean up error handling run_external_diff: use an argv_array for the environment
2014-06-03Merge branch 'sk/svn-parse-datestamp'Junio C Hamano
* sk/svn-parse-datestamp: allow timestamps with a single-digit hour
2014-06-03Merge branch 'rs/ref-update-check-errors-early'Junio C Hamano
* rs/ref-update-check-errors-early: commit.c: check for lock error and return early sequencer.c: check for lock failure and bail early in fast_forward_to
2014-06-03Merge branch 'nd/index-pack-one-fd-per-thread'Junio C Hamano
Enable threaded index-pack on platforms without thread-unsafe pread() emulation. * nd/index-pack-one-fd-per-thread: index-pack: work around thread-unsafe pread()
2014-06-03Merge branch 'ym/fix-opportunistic-index-update-race'Junio C Hamano
Read-only operations such as "git status" that internally refreshes the index write out the refreshed index to the disk to optimize future accesses to the working tree, but this could race with a "read-write" operation that modify the index while it is running. Detect such a race and avoid overwriting the index. Duy raised a good point that we may need to do the same for the normal writeout codepath, not just the "opportunistic" update codepath. While that is true, nobody sane would be running two simultaneous operations that are clearly write-oriented competing with each other against the same index file. So in that sense that can be done as a less urgent follow-up for this topic. * ym/fix-opportunistic-index-update-race: read-cache.c: verify index file before we opportunistically update it wrapper.c: add xpread() similar to xread()
2014-06-03Merge branch 'mh/ref-transaction'Junio C Hamano
Update "update-ref --stdin [-z]" and then introduce a transactional support for (multi-)reference updates. * mh/ref-transaction: (27 commits) ref_transaction_commit(): work with transaction->updates in place struct ref_update: add a type field struct ref_update: add a lock field ref_transaction_commit(): simplify code using temporary variables struct ref_update: store refname as a FLEX_ARRAY struct ref_update: rename field "ref_name" to "refname" refs: remove API function update_refs() update-ref --stdin: reimplement using reference transactions refs: add a concept of a reference transaction update-ref --stdin: harmonize error messages update-ref --stdin: improve the error message for unexpected EOF t1400: test one mistake at a time update-ref --stdin -z: deprecate interpreting the empty string as zeros update-ref.c: extract a new function, parse_next_sha1() t1400: test that stdin -z update treats empty <newvalue> as zeros update-ref --stdin: simplify error messages for missing oldvalues update-ref --stdin: make error messages more consistent update-ref --stdin: improve error messages for invalid values update-ref.c: extract a new function, parse_refname() parse_cmd_verify(): copy old_sha1 instead of evaluating <oldvalue> twice ...
2014-06-03Merge branch 'ks/tree-diff-nway'Junio C Hamano
Instead of running N pair-wise diff-trees when inspecting a N-parent merge, find the set of paths that were touched by walking N+1 trees in parallel. These set of paths can then be turned into N pair-wise diff-tree results to be processed through rename detections and such. And N=2 case nicely degenerates to the usual 2-way diff-tree, which is very nice. * ks/tree-diff-nway: mingw: activate alloca combine-diff: speed it up, by using multiparent diff tree-walker directly tree-diff: rework diff_tree() to generate diffs for multiparent cases as well Portable alloca for Git tree-diff: reuse base str(buf) memory on sub-tree recursion tree-diff: no need to call "full" diff_tree_sha1 from show_path() tree-diff: rework diff_tree interface to be sha1 based tree-diff: diff_tree() should now be static tree-diff: remove special-case diff-emitting code for empty-tree cases tree-diff: simplify tree_entry_pathcmp tree-diff: show_path prototype is not needed anymore tree-diff: rename compare_tree_entry -> tree_entry_pathcmp tree-diff: move all action-taking code out of compare_tree_entry() tree-diff: don't assume compare_tree_entry() returns -1,0,1 tree-diff: consolidate code for emitting diffs and recursion in one place tree-diff: show_tree() is not needed tree-diff: no need to pass match to skip_uninteresting() tree-diff: no need to manually verify that there is no mode change for a path combine-diff: move changed-paths scanning logic into its own function combine-diff: move show_log_first logic/action out of paths scanning
2014-06-03Merge branch 'jc/apply-ignore-whitespace'Junio C Hamano
"--ignore-space-change" option of "git apply" ignored the spaces at the beginning of line too aggressively, which is inconsistent with the option of the same name "diff" and "git diff" have. * jc/apply-ignore-whitespace: apply --ignore-space-change: lines with and without leading whitespaces do not match
2014-06-03Merge branch 'as/grep-fullname-config'Junio C Hamano
Add a configuration variable to force --full-name to be default for "git grep". This may cause regressions on scripted users that do not expect this new behaviour. * as/grep-fullname-config: grep: add grep.fullName config variable
2014-05-30Sync with 1.9.4Junio C Hamano
2014-05-30Git 1.9.4v1.9.4Junio C Hamano
This is expected to be the final maintenance release for 1.9 series, merging the remaining fixes that are relevant and are already in 2.0. Signed-off-by: Junio C Hamano <>
2014-05-30t5537: re-drop http testsJeff King
These were originally removed by 0232852 (t5537: move http tests out to t5539, 2014-02-13). However, they were accidentally re-added in 1ddb4d7 (Merge branch 'nd/upload-pack-shallow', 2014-03-21). This looks like an error in manual conflict resolution. Here's what happened: 1. v1.9.0 shipped with the http tests in t5537. 2. We realized that this caused problems, and built 0232852 on top to move the tests to their own file. This fix made it into v1.9.1. 3. We later had another fix in nd/upload-pack-shallow that also touched t5537. It was built directly on v1.9.0. When we merged nd/upload-pack-shallow to master, we got a conflict; it was built on a version with the http tests, but we had since removed them. The correct resolution was to drop the http tests and keep the new ones, but instead we kept everything. Signed-off-by: Jeff King <> Signed-off-by: Junio C Hamano <>