36438dc | Junio C Hamano | 05 January 2018, 21:45:17 UTC | Git 2.16-rc1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 January 2018, 21:45:17 UTC |
8c8ddbd | Junio C Hamano | 05 January 2018, 21:28:11 UTC | Merge branch 'js/sequencer-cleanups' Code cleanup. * js/sequencer-cleanups: sequencer: do not invent whitespace when transforming OIDs sequencer: report when noop has an argument sequencer: remove superfluous conditional sequencer: strip bogus LF at end of error messages rebase: do not continue when the todo list generation failed | 05 January 2018, 21:28:12 UTC |
bc27a2e | Junio C Hamano | 05 January 2018, 21:28:11 UTC | Merge branch 'jh/memihash-opt' Squelch compiler warning. * jh/memihash-opt: t/helper/test-lazy-name-hash: fix compilation | 05 January 2018, 21:28:11 UTC |
e82bbcb | Junio C Hamano | 05 January 2018, 21:28:11 UTC | Merge branch 'tb/test-lint-wc-l' Test update. * tb/test-lint-wc-l: check-non-portable-shell.pl: `wc -l` may have leading WS | 05 January 2018, 21:28:11 UTC |
0956eaa | Junio C Hamano | 05 January 2018, 21:28:10 UTC | Merge branch 'rs/use-argv-array-in-child-process' Code cleanup. * rs/use-argv-array-in-child-process: send-pack: use internal argv_array of struct child_process http: use internal argv_array of struct child_process | 05 January 2018, 21:28:10 UTC |
a778ba1 | Junio C Hamano | 05 January 2018, 21:28:10 UTC | Merge branch 'ld/p4-multiple-shelves' "git p4" update. * ld/p4-multiple-shelves: git-p4: update multiple shelved change lists | 05 January 2018, 21:28:10 UTC |
a741e28 | Junio C Hamano | 05 January 2018, 21:28:10 UTC | Merge branch 'jd/fix-strbuf-add-urlencode-bytes' Bytes with high-bit set were encoded incorrectly and made credential helper fail. * jd/fix-strbuf-add-urlencode-bytes: strbuf: fix urlencode format string on signed char | 05 January 2018, 21:28:10 UTC |
843d94b | Junio C Hamano | 05 January 2018, 21:28:09 UTC | Merge branch 'ew/empty-merge-with-dirty-index' "git merge -s recursive" did not correctly abort when the index is dirty, if the merged tree happened to be the same as the current HEAD, which has been fixed. * ew/empty-merge-with-dirty-index: merge-recursive: avoid incorporating uncommitted changes in a merge move index_has_changes() from builtin/am.c to merge.c for reuse t6044: recursive can silently incorporate dirty changes in a merge | 05 January 2018, 21:28:09 UTC |
fa62d03 | Junio C Hamano | 05 January 2018, 21:28:09 UTC | Merge branch 'db/doc-config-section-names-with-bs' Doc update. * db/doc-config-section-names-with-bs: config.txt: document behavior of backslashes in subsections | 05 January 2018, 21:28:09 UTC |
07b747d | Junio C Hamano | 05 January 2018, 21:28:09 UTC | Merge branch 'jk/test-suite-tracing' Assorted fixes around running tests with "-x" tracing option. * jk/test-suite-tracing: t/Makefile: introduce TEST_SHELL_PATH test-lib: make "-x" work with "--verbose-log" t5615: avoid re-using descriptor 4 test-lib: silence "-x" cleanup under bash | 05 January 2018, 21:28:09 UTC |
1eaabe3 | Junio C Hamano | 28 December 2017, 22:12:06 UTC | Git 2.16-rc0 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 December 2017, 22:12:06 UTC |
556de1a | Junio C Hamano | 28 December 2017, 22:08:50 UTC | Merge branch 'sb/describe-blob' "git describe" was taught to dig trees deeper to find a <commit-ish>:<path> that refers to a given blob object. * sb/describe-blob: builtin/describe.c: describe a blob builtin/describe.c: factor out describe_commit builtin/describe.c: print debug statements earlier builtin/describe.c: rename `oid` to avoid variable shadowing revision.h: introduce blob/tree walking in order of the commits list-objects.c: factor out traverse_trees_and_blobs t6120: fix typo in test name | 28 December 2017, 22:08:50 UTC |
0433d53 | Junio C Hamano | 28 December 2017, 22:08:50 UTC | Merge branch 'hi/merge-verify-sig-config' "git merge" learned to pay attention to merge.verifySignatures configuration variable and pretend as if '--verify-signatures' option was given from the command line. * hi/merge-verify-sig-config: t5573, t7612: clean up after unexpected success of 'pull' and 'merge' t: add tests for pull --verify-signatures merge: add config option for verifySignatures | 28 December 2017, 22:08:50 UTC |
fc4a226 | Junio C Hamano | 28 December 2017, 22:08:50 UTC | Merge branch 'ws/curl-http-proxy-over-https' Git has been taught to support an https:// URL used for http.proxy when using recent versions of libcurl. * ws/curl-http-proxy-over-https: http: support CURLPROXY_HTTPS | 28 December 2017, 22:08:50 UTC |
f53edaf | Junio C Hamano | 28 December 2017, 22:08:49 UTC | Merge branch 'ks/doc-previous-checkout' Doc update. * ks/doc-previous-checkout: Doc/check-ref-format: clarify information about @{-N} syntax | 28 December 2017, 22:08:50 UTC |
594672d | Junio C Hamano | 28 December 2017, 22:08:49 UTC | Merge branch 'ks/rebase-error-messages' Error messages from "git rebase" have been somewhat cleaned up. * ks/rebase-error-messages: rebase: rebasing can also be done when HEAD is detached rebase: distinguish user input by quoting it rebase: consistently use branch_name variable | 28 December 2017, 22:08:49 UTC |
593fdcc | Junio C Hamano | 28 December 2017, 22:08:49 UTC | Merge branch 'sr/http-sslverify-config-doc' Docfix. * sr/http-sslverify-config-doc: config: document default value of http.sslVerify | 28 December 2017, 22:08:49 UTC |
9368a3d | Junio C Hamano | 28 December 2017, 22:08:48 UTC | Merge branch 'nm/imap-send-quote-server-folder-name' "git imap-send" did not correctly quote the folder name when making a request to the server, which has been corrected. * nm/imap-send-quote-server-folder-name: imap-send: URI encode server folder | 28 December 2017, 22:08:48 UTC |
8e777af | Junio C Hamano | 28 December 2017, 22:08:48 UTC | Merge branch 'bp/fsmonitor' Test fix. * bp/fsmonitor: p7519: improve check for prerequisite WATCHMAN | 28 December 2017, 22:08:48 UTC |
f40e83d | Junio C Hamano | 28 December 2017, 22:08:47 UTC | Merge branch 'jh/partial-clone-doc' * jh/partial-clone-doc: partial-clone: design doc | 28 December 2017, 22:08:47 UTC |
2546de2 | Junio C Hamano | 28 December 2017, 22:08:47 UTC | Merge branch 'jt/transport-hide-vtable' Code clean-up. * jt/transport-hide-vtable: transport: make transport vtable more private clone, fetch: remove redundant transport check | 28 December 2017, 22:08:47 UTC |
58d1772 | Junio C Hamano | 28 December 2017, 22:08:47 UTC | Merge branch 'js/enhanced-version-info' "git version --build-options" learned to report the host CPU and the exact commit object name the binary was built from. * js/enhanced-version-info: version --build-options: report commit, too, if possible version --build-options: also report host CPU | 28 December 2017, 22:08:47 UTC |
deeb2fc | Junio C Hamano | 28 December 2017, 22:08:46 UTC | Merge branch 'tz/lib-git-svn-svnserve-tests' * tz/lib-git-svn-svnserve-tests: t/lib-git-svn.sh: improve svnserve tests with parallel make test t/lib-git-svn: cleanup inconsistent tab/space usage | 28 December 2017, 22:08:46 UTC |
63dd544 | Junio C Hamano | 28 December 2017, 22:08:46 UTC | Merge branch 'ew/svn-crlf' "git svn" has been updated to strip CRs in the commit messages, as recent versions of Subversion rejects them. * ew/svn-crlf: git-svn: convert CRLF to LF in commit message to SVN | 28 December 2017, 22:08:46 UTC |
f427b94 | Junio C Hamano | 28 December 2017, 22:08:46 UTC | Merge branch 'cc/skip-to-optional-val' Introduce a helper to simplify code to parse a common pattern that expects either "--key" or "--key=<something>". * cc/skip-to-optional-val: t4045: reindent to make helpers readable diff: add tests for --relative without optional prefix value diff: use skip_to_optional_arg_default() in parsing --relative diff: use skip_to_optional_arg_default() diff: use skip_to_optional_arg() index-pack: use skip_to_optional_arg() git-compat-util: introduce skip_to_optional_arg() | 28 December 2017, 22:08:46 UTC |
5abbdbb | Junio C Hamano | 28 December 2017, 22:08:45 UTC | Merge branch 'ra/prompt-eread-fix' Update the shell prompt script (in contrib/) to strip trailing CR from strings read from various "state" files. * ra/prompt-eread-fix: git-prompt: fix reading files with windows line endings git-prompt: make __git_eread intended use explicit | 28 December 2017, 22:08:45 UTC |
1f24cad | Junio C Hamano | 28 December 2017, 22:08:45 UTC | Merge branch 'bw/path-doc' Doc updates. * bw/path-doc: path: document path functions | 28 December 2017, 22:08:45 UTC |
c7b4d79 | Johannes Schindelin | 22 December 2017, 23:56:00 UTC | sequencer: do not invent whitespace when transforming OIDs For commands that do not have an argument, there is no need to append a trailing space at the end of the line. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 December 2017, 20:33:38 UTC |
66afa24 | Johannes Schindelin | 22 December 2017, 23:55:57 UTC | sequencer: report when noop has an argument The noop command cannot accept any argument, but we never told the user about any bogus argument. Fix that. while at it, mention clearly when an argument is required but missing (for commands *other* than noop). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 December 2017, 20:33:38 UTC |
5f8f927 | Johannes Schindelin | 22 December 2017, 23:55:53 UTC | sequencer: remove superfluous conditional In a conditional block that is only reached when handling a TODO_REWORD (as seen even from a 3-line context), there is absolutely no need to nest another block under the identical condition. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 December 2017, 20:33:38 UTC |
aee42e1 | Johannes Schindelin | 22 December 2017, 23:55:43 UTC | sequencer: strip bogus LF at end of error messages Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 December 2017, 20:33:38 UTC |
9336281 | Johannes Schindelin | 22 December 2017, 23:55:38 UTC | rebase: do not continue when the todo list generation failed This is a *really* long-standing bug. As a matter of fact, this bug has been with us from the very beginning of `rebase -i`: 1b1dce4bae7 (Teach rebase an interactive mode, 2007-06-25), where the output of `rev-list` was piped to `sed` (and any failure of the `rev-list` process would go completely undetected). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 December 2017, 20:33:38 UTC |
29533fb | Junio C Hamano | 27 December 2017, 19:20:27 UTC | RelNotes: the eleventh batch Hopefully the last one before -rc0 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 December 2017, 19:20:27 UTC |
dc8fb4d | Junio C Hamano | 27 December 2017, 19:16:30 UTC | Merge branch 'rb/quick-install-doc' The build procedure now allows not just the repositories but also the refs to be used to take pre-formatted manpages and html documents to install. * rb/quick-install-doc: install-doc-quick: allow specifying what ref to install | 27 December 2017, 19:16:30 UTC |
d22114a | Junio C Hamano | 27 December 2017, 19:16:30 UTC | Merge branch 'jt/transport-no-more-rsync' Code clean-up. * jt/transport-no-more-rsync: transport: remove unused "push" in vtable | 27 December 2017, 19:16:30 UTC |
f62b471 | Junio C Hamano | 27 December 2017, 19:16:30 UTC | Merge branch 'sg/travis-fixes' Assorted updates for TravisCI integration. * sg/travis-fixes: travis-ci: use 'set -x' in 'ci/*' scripts for extra tracing output travis-ci: set GIT_TEST_HTTPD in 'ci/lib-travisci.sh' travis-ci: move setting environment variables to 'ci/lib-travisci.sh' travis-ci: introduce a $jobname variable for 'ci/*' scripts | 27 December 2017, 19:16:30 UTC |
0635812 | Junio C Hamano | 27 December 2017, 19:16:29 UTC | Merge branch 'sb/test-helper-excludes' Simplify the ignore rules for t/helper directory. * sb/test-helper-excludes: t/helper: ignore everything but sources | 27 December 2017, 19:16:29 UTC |
6bd396b | Junio C Hamano | 27 December 2017, 19:16:29 UTC | Merge branch 'ot/pretty' Code clean-up. * ot/pretty: format: create docs for pretty.h format: create pretty.h file | 27 December 2017, 19:16:29 UTC |
00c4d2b | Junio C Hamano | 27 December 2017, 19:16:28 UTC | Merge branch 'bw/submodule-sans-cache-compat' Code clean-up. * bw/submodule-sans-cache-compat: submodule: convert get_next_submodule to not rely on the_index submodule: used correct index in is_staging_gitmodules_ok submodule: convert stage_updated_gitmodules to take a struct index_state | 27 December 2017, 19:16:28 UTC |
237aa99 | Junio C Hamano | 27 December 2017, 19:16:28 UTC | Merge branch 'es/clone-shared-worktree' "git clone --shared" to borrow from a (secondary) worktree did not work, even though "git clone --local" did. Both are now accepted. * es/clone-shared-worktree: clone: support 'clone --shared' from a worktree | 27 December 2017, 19:16:28 UTC |
e2e2bf2 | Junio C Hamano | 27 December 2017, 19:16:27 UTC | Merge branch 'tb/delimit-pretty-trailers-args-with-comma' Doc updates. * tb/delimit-pretty-trailers-args-with-comma: docs/pretty-formats: mention commas in %(trailers) syntax | 27 December 2017, 19:16:27 UTC |
54b1335 | Junio C Hamano | 27 December 2017, 19:16:26 UTC | Merge branch 'rs/fmt-merge-msg-leakfix' Leakfix. * rs/fmt-merge-msg-leakfix: transport-helper: plug strbuf and string_list leaks | 27 December 2017, 19:16:26 UTC |
eacf669 | Junio C Hamano | 27 December 2017, 19:16:26 UTC | Merge branch 'jt/decorate-api' A few structures and variables that are implementation details of the decorate API have been renamed and then the API got documented better. * jt/decorate-api: decorate: clean up and document API | 27 December 2017, 19:16:26 UTC |
6ae1868 | Junio C Hamano | 27 December 2017, 19:16:26 UTC | Merge branch 'jk/cvsimport-quoting' Typo/Logico fix. * jk/cvsimport-quoting: cvsimport: apply shell-quoting regex globally | 27 December 2017, 19:16:26 UTC |
f7bbca1 | Junio C Hamano | 27 December 2017, 19:16:25 UTC | Merge branch 'db/doc-workflows-neuter-the-maintainer' Docfix. * db/doc-workflows-neuter-the-maintainer: doc: reword gitworkflows.txt for neutrality | 27 December 2017, 19:16:25 UTC |
0faff98 | Junio C Hamano | 27 December 2017, 19:16:25 UTC | Merge branch 'ks/branch-cleanup' Code clean-up. * ks/branch-cleanup: builtin/branch: strip refs/heads/ using skip_prefix branch: update warning message shown when copying a misnamed branch branch: group related arguments of create_branch() branch: improve documentation and naming of create_branch() parameters | 27 December 2017, 19:16:25 UTC |
a13e45f | Junio C Hamano | 27 December 2017, 19:16:24 UTC | Merge branch 'rs/strbuf-read-once-reset-length' Leakfix. * rs/strbuf-read-once-reset-length: strbuf: release memory on read error in strbuf_read_once() | 27 December 2017, 19:16:24 UTC |
1f9ce78 | Junio C Hamano | 27 December 2017, 19:16:23 UTC | Merge branch 'rs/fmt-merge-msg-string-leak-fix' Leakfix. * rs/fmt-merge-msg-string-leak-fix: fmt-merge-msg: avoid leaking strbuf in shortlog() | 27 December 2017, 19:16:23 UTC |
5c14bd6 | Junio C Hamano | 27 December 2017, 19:16:22 UTC | Merge branch 'rs/am-builtin-leakfix' Leakfix. * rs/am-builtin-leakfix: am: release strbuf after use in split_mail_mbox() | 27 December 2017, 19:16:23 UTC |
e87f9fc | Junio C Hamano | 27 December 2017, 19:16:21 UTC | Merge branch 'es/worktree-checkout-hook' "git worktree add" learned to run the post-checkout hook, just like "git checkout" does, after the initial checkout. * es/worktree-checkout-hook: worktree: invoke post-checkout hook (unless --no-checkout) | 27 December 2017, 19:16:21 UTC |
0da2ba4 | Junio C Hamano | 27 December 2017, 19:16:21 UTC | Merge branch 'lb/rebase-i-short-command-names' With a configuration variable rebase.abbreviateCommands set, "git rebase -i" produces the todo list with a single-letter command names. * lb/rebase-i-short-command-names: sequencer.c: drop 'const' from function return type t3404: add test case for abbreviated commands rebase -i: learn to abbreviate command names rebase -i -x: add exec commands via the rebase--helper rebase -i: update functions to use a flags parameter rebase -i: replace reference to sha1 with oid rebase -i: refactor transform_todo_ids rebase -i: set commit to null in exec commands Documentation: use preferred name for the 'todo list' script Documentation: move rebase.* configs to new file | 27 December 2017, 19:16:21 UTC |
720b176 | Junio C Hamano | 27 December 2017, 19:16:21 UTC | Merge branch 'tb/check-crlf-for-safe-crlf' The "safe crlf" check incorrectly triggered for contents that does not use CRLF as line endings, which has been corrected. * tb/check-crlf-for-safe-crlf: t0027: Adapt the new MIX tests to Windows convert: tighten the safe autocrlf handling | 27 December 2017, 19:16:21 UTC |
61061ab | Junio C Hamano | 27 December 2017, 19:16:20 UTC | Merge branch 'jh/object-filtering' In preparation for implementing narrow/partial clone, the object walking machinery has been taught a way to tell it to "filter" some objects from enumeration. * jh/object-filtering: rev-list: support --no-filter argument list-objects-filter-options: support --no-filter list-objects-filter-options: fix 'keword' typo in comment pack-objects: add list-objects filtering rev-list: add list-objects filtering support list-objects: filter objects in traverse_commit_list oidset: add iterator methods to oidset oidmap: add oidmap iterator methods dir: allow exclusions from blob in addition to file | 27 December 2017, 19:16:21 UTC |
ee5462d | Junio C Hamano | 27 December 2017, 19:12:45 UTC | sequencer.c: drop 'const' from function return type With -Werror=ignored-qualifiers, a function that claims to return "const char" gets this error: CC sequencer.o sequencer.c:798:19: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers] static const char command_to_char(const enum todo_command command) ^ Reported-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 December 2017, 19:12:45 UTC |
4c267f2 | Julien Dusser | 22 December 2017, 17:24:37 UTC | strbuf: fix urlencode format string on signed char Git credential fails with special char in password with remote: Invalid username or password. fatal: Authentication failed for File ~/.git-credential contains badly urlencoded characters %ffffffXX%ffffffYY instead of %XX%YY. Add a cast to an unsigned char to fix urlencode use of %02x on a char. Signed-off-by: Julien Dusser <julien.dusser@free.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 December 2017, 21:43:19 UTC |
a923e05 | René Scharfe | 22 December 2017, 08:14:10 UTC | send-pack: use internal argv_array of struct child_process Avoid a magic number of NULL placeholder values and a magic index by constructing the command line for pack-objects using the embedded argv_array of the child_process. The resulting code is shorter and easier to extend. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 December 2017, 21:33:53 UTC |
c7191fa | René Scharfe | 22 December 2017, 11:56:59 UTC | http: use internal argv_array of struct child_process Avoid a strangely magic array size (it's slightly too big) and explicit index numbers by building the command line for index-pack using the embedded argv_array of the child_process. Add the flag -o and its argument with argv_array_pushl() to make it obvious that they belong together. The resulting code is shorter and easier to extend. Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 December 2017, 21:33:48 UTC |
8cf422d | Luke Diamand | 21 December 2017, 11:06:14 UTC | git-p4: update multiple shelved change lists --update-shelve can now be specified multiple times on the command-line, to update multiple shelved changelists in a single submit. This then means that a git patch series can be mirrored to a sequence of shelved changelists, and (relatively easily) kept in sync as changes are made in git. Note that Perforce does not really support overlapping shelved changelists where one change touches the files modified by another. Trying to do this will result in merge conflicts. Signed-off-by: Luke Diamand <luke@diamand.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 December 2017, 21:30:52 UTC |
7dbe8c8 | Torsten Bögershausen | 21 December 2017, 21:26:46 UTC | check-non-portable-shell.pl: `wc -l` may have leading WS Test scripts count number of lines in an output and check it againt its expectation. fb3340a6 ("test-lib: introduce test_line_count to measure files", 2010-10-31) introduced a helper to show a failure in such a test in a more readable way than comparing `wc -l` output with a number. Besides, on some platforms, "$(wc -l <file)" is padded with leading whitespace on the left, so test "$(wc -l <file)" = 4 would not work (most notably on macosX); the users of test_line_count helper would not suffer from such a portability glitch. Add a check in check-non-portable-shell.pl to find '"' between `wc -l` and '=' and hint the user about test_line_count(). Signed-off-by: Torsten Bögershausen <tboegi@web.de> Reviewed-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 December 2017, 21:00:51 UTC |
1feb061 | Dave Borowitz | 21 December 2017, 13:10:42 UTC | config.txt: document behavior of backslashes in subsections Unrecognized escape sequences are invalid in values: $ git config -f - --list <<EOF [foo] bar = "\t\\\y\"\u" EOF fatal: bad config line 2 in standard input But in subsection names, the backslash is simply dropped if the following character does not produce a recognized escape sequence: $ git config -f - --list <<EOF [foo "\t\\\y\"\u"] bar = baz EOF foo.t\y"u.bar=baz Although it would be nice for subsection names and values to have consistent behavior, changing the behavior for subsection names is a nonstarter since it would cause existing, valid config files to suddenly be interpreted differently. Signed-off-by: Dave Borowitz <dborowitz@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 December 2017, 20:51:43 UTC |
b6825b5 | Junio C Hamano | 22 December 2017, 20:48:38 UTC | Merge branch 'ew/empty-merge-with-dirty-index-maint' into ew/empty-merge-with-dirty-index * ew/empty-merge-with-dirty-index-maint: merge-recursive: avoid incorporating uncommitted changes in a merge move index_has_changes() from builtin/am.c to merge.c for reuse t6044: recursive can silently incorporate dirty changes in a merge | 22 December 2017, 20:48:38 UTC |
65170c0 | Elijah Newren | 21 December 2017, 19:19:07 UTC | merge-recursive: avoid incorporating uncommitted changes in a merge builtin/merge.c contains this important requirement for merge strategies: /* * At this point, we need a real merge. No matter what strategy * we use, it would operate on the index, possibly affecting the * working tree, and when resolved cleanly, have the desired * tree in the index -- this means that the index must be in * sync with the head commit. The strategies are responsible * to ensure this. */ merge-recursive does not do this check directly, instead it relies on unpack_trees() to do it. However, merge_trees() has a special check for the merge branch exactly matching the merge base; when it detects that situation, it returns early without calling unpack_trees(), because it knows that the HEAD commit already has the correct result. Unfortunately, it didn't check that the index matched HEAD, so after it returned, the outer logic ended up creating a merge commit that included something other than HEAD. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 December 2017, 20:20:38 UTC |
b101793 | Elijah Newren | 21 December 2017, 19:19:06 UTC | move index_has_changes() from builtin/am.c to merge.c for reuse index_has_changes() is a function we want to reuse outside of just am, making it also available for merge-recursive and merge-ort. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 December 2017, 20:20:29 UTC |
eab3f28 | Elijah Newren | 21 December 2017, 19:19:05 UTC | t6044: recursive can silently incorporate dirty changes in a merge The recursive merge strategy has some special handling when the tree for the merge branch exactly matches the merge base, but that code path is missing checks for the index having changes relative to HEAD. Add a testcase covering this scenario. Reported-by: Andreas Krey <a.krey@gmx.de> Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 December 2017, 20:14:16 UTC |
74dea0e | Stefan Beller | 18 December 2017, 21:49:47 UTC | t/helper/test-lazy-name-hash: fix compilation I was compiling origin/master today with DEVELOPER compiler flags and was greeted by: t/helper/test-lazy-init-name-hash.c: In function ‘cmd_main’: t/helper/test-lazy-init-name-hash.c:172:5: error: ‘nr_threads_used’ may be used uninitilized in this function [-Werror=maybe-uninitialized] printf("avg [size %8d] [single %f] %c [multi %f %d]\n", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nr, ~~~ (double)avg_single/1000000000, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (avg_single < avg_multi ? '<' : '>'), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (double)avg_multi/1000000000, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nr_threads_used); ~~~~~~~~~~~~~~~~ t/helper/test-lazy-init-name-hash.c:115:6: note: ‘nr_threads_used’ was declared here int nr_threads_used; ^~~~~~~~~~~~~~~ I do not see how we can arrive at that line without having `nr_threads_used` initialized, as we'd have `count > 1` (which asserts that we ran the loop above at least once, such that it *should* be initialized). Just clear the variable at the beginning of the function to squelch the warning. Signed-off-by: Stefan Beller <sbeller@google.com> Acked-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 December 2017, 18:42:04 UTC |
fb2afea | Junio C Hamano | 15 December 2017, 19:42:36 UTC | t5573, t7612: clean up after unexpected success of 'pull' and 'merge' The previous steps added test_when_finished to tests that run 'git pull' or 'git merge' with expectation of success, so that the test after them can start from a known state even when their 'git pull' invocation unexpectedly fails. However, tests that run 'git pull' or 'git merge' expecting it not to succeed forgot to protect later tests the same way---if they unexpectedly succeed, the test after them would start from an unexpected state. Reset and checkout the initial commit after all these tests, whether they expect their invocations to succeed or fail. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 December 2017, 20:58:57 UTC |
936d1b9 | Junio C Hamano | 19 December 2017, 19:34:35 UTC | RelNotes: the tenth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 December 2017, 19:34:35 UTC |
0c69a13 | Junio C Hamano | 19 December 2017, 19:33:59 UTC | Merge branch 'ls/editor-waiting-message' Git shows a message to tell the user that it is waiting for the user to finish editing when spawning an editor, in case the editor opens to a hidden window or somewhere obscure and the user gets lost. * ls/editor-waiting-message: launch_editor(): indicate that Git waits for user input refactor "dumb" terminal determination | 19 December 2017, 19:33:59 UTC |
bdae4af | Junio C Hamano | 19 December 2017, 19:33:58 UTC | Merge branch 'sg/setup-doc-update' Comment update. * sg/setup-doc-update: setup.c: fix comment about order of .git directory discovery | 19 December 2017, 19:33:58 UTC |
8d7fefa | Junio C Hamano | 19 December 2017, 19:33:58 UTC | Merge branch 'ar/unconfuse-three-dots' Ancient part of codebase still shows dots after an abbreviated object name just to show that it is not a full object name, but these ellipses are confusing to people who newly discovered Git who are used to seeing abbreviated object names and find them confusing with the range syntax. * ar/unconfuse-three-dots: t2020: test variations that matter t4013: test new output from diff --abbrev --raw diff: diff_aligned_abbrev: remove ellipsis after abbreviated SHA-1 value t4013: prepare for upcoming "diff --raw --abbrev" output format change checkout: describe_detached_head: remove ellipsis after committish print_sha1_ellipsis: introduce helper Documentation: user-manual: limit usage of ellipsis Documentation: revisions: fix typo: "three dot" ---> "three-dot" (in line with "two-dot"). | 19 December 2017, 19:33:58 UTC |
66d3f19 | Junio C Hamano | 19 December 2017, 19:33:57 UTC | Merge branch 'tg/worktree-create-tracking' The way "git worktree add" determines what branch to create from where and checkout in the new worktree has been updated a bit. * tg/worktree-create-tracking: add worktree.guessRemote config option worktree: add --guess-remote flag to add subcommand worktree: make add <path> <branch> dwim worktree: add --[no-]track option to the add subcommand worktree: add can be created from any commit-ish checkout: factor out functions to new lib file | 19 December 2017, 19:33:57 UTC |
1974f47 | Junio C Hamano | 19 December 2017, 19:33:57 UTC | Merge branch 'gk/tracing-optimization' The tracing infrastructure has been optimized for cases where no tracing is requested. * gk/tracing-optimization: trace: improve performance while category is disabled trace: remove trace key normalization | 19 December 2017, 19:33:57 UTC |
6f3a0b6 | Junio C Hamano | 19 December 2017, 19:33:57 UTC | Merge branch 'bw/submodule-config-cleanup' Recent update to the submodule configuration code broke "diff-tree" by accidentally stopping to read from the index upfront. * bw/submodule-config-cleanup: diff-tree: read the index so attribute checks work in bare repositories | 19 December 2017, 19:33:57 UTC |
a328b2c | Junio C Hamano | 19 December 2017, 19:33:56 UTC | Merge branch 'sb/clone-recursive-submodule-doc' Doc update. * sb/clone-recursive-submodule-doc: Documentation/git-clone: improve description for submodule recursing | 19 December 2017, 19:33:56 UTC |
e7d1b52 | Junio C Hamano | 19 December 2017, 19:33:56 UTC | Merge branch 'ls/git-gui-no-double-utf8-author-name' Amending commits in git-gui broke the author name that is non-ascii due to incorrect enconding conversion. * ls/git-gui-no-double-utf8-author-name: git-gui: prevent double UTF-8 conversion | 19 December 2017, 19:33:56 UTC |
f4f233e | Junio C Hamano | 19 December 2017, 19:33:56 UTC | Merge branch 'bw/pathspec-match-submodule-boundary' An v2.12-era regression in pathspec match logic, which made it look into submodule tree even when it is not desired, has been fixed. * bw/pathspec-match-submodule-boundary: pathspec: only match across submodule boundaries when requested | 19 December 2017, 19:33:56 UTC |
d7c6c23 | Junio C Hamano | 19 December 2017, 19:33:56 UTC | Merge branch 'jt/diff-anchored-patience' "git diff" learned a variant of the "--patience" algorithm, to which the user can specify which 'unique' line to be used as anchoring points. * jt/diff-anchored-patience: diff: support anchoring line(s) | 19 December 2017, 19:33:56 UTC |
6d2c461 | Junio C Hamano | 19 December 2017, 19:33:55 UTC | Merge branch 'en/merge-recursive-icase-removal' The code internal to the recursive merge strategy was not fully prepared to see a path that is renamed to try overwriting another path that is only different in case on case insensitive systems. This does not matter in the current code, but will start to matter once the rename detection logic starts taking hints from nearby paths moving to some directory and moves a new path along with them. * en/merge-recursive-icase-removal: merge-recursive: ignore_case shouldn't reject intentional removals | 19 December 2017, 19:33:55 UTC |
6466854 | Junio C Hamano | 19 December 2017, 19:33:55 UTC | Merge branch 'en/rename-progress' Historically, the diff machinery for rename detection had a hardcoded limit of 32k paths; this is being lifted to allow users trade cycles with a (possibly) easier to read result. * en/rename-progress: diffcore-rename: make diff-tree -l0 mean -l<large> sequencer: show rename progress during cherry picks diff: remove silent clamp of renameLimit progress: fix progress meters when dealing with lots of work sequencer: warn when internal merge may be suboptimal due to renameLimit | 19 December 2017, 19:33:55 UTC |
644eb60 | Stefan Beller | 16 November 2017, 02:00:39 UTC | builtin/describe.c: describe a blob Sometimes users are given a hash of an object and they want to identify it further (ex.: Use verify-pack to find the largest blobs, but what are these? or [1]) When describing commits, we try to anchor them to tags or refs, as these are conceptually on a higher level than the commit. And if there is no ref or tag that matches exactly, we're out of luck. So we employ a heuristic to make up a name for the commit. These names are ambiguous, there might be different tags or refs to anchor to, and there might be different path in the DAG to travel to arrive at the commit precisely. When describing a blob, we want to describe the blob from a higher layer as well, which is a tuple of (commit, deep/path) as the tree objects involved are rather uninteresting. The same blob can be referenced by multiple commits, so how we decide which commit to use? This patch implements a rather naive approach on this: As there are no back pointers from blobs to commits in which the blob occurs, we'll start walking from any tips available, listing the blobs in-order of the commit and once we found the blob, we'll take the first commit that listed the blob. For example git describe --tags v0.99:Makefile conversion-901-g7672db20c2:Makefile tells us the Makefile as it was in v0.99 was introduced in commit 7672db20. The walking is performed in reverse order to show the introduction of a blob rather than its last occurrence. [1] https://stackoverflow.com/questions/223678/which-commit-has-this-blob Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 December 2017, 19:17:16 UTC |
82b6803 | Wei Shuyu | 19 December 2017, 17:24:01 UTC | http: support CURLPROXY_HTTPS HTTP proxy over SSL is supported by curl since 7.52.0. This is very useful for networks with protocol whitelist. Signed-off-by: Wei Shuyu <wsy@dogben.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 December 2017, 18:20:14 UTC |
08e6670 | Kaartic Sivaraam | 16 December 2017, 09:03:19 UTC | rebase: rebasing can also be done when HEAD is detached Attempting to rebase when the HEAD is detached and is already up to date with upstream (so there's nothing to do), the following message is shown Current branch HEAD is up to date. which is clearly wrong as HEAD is not a branch. Handle the special case of HEAD correctly to give a more precise error message. Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 December 2017, 18:02:47 UTC |
ca7de7b | Kaartic Sivaraam | 16 December 2017, 09:03:18 UTC | rebase: distinguish user input by quoting it Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 December 2017, 18:02:44 UTC |
3a9156a | Kaartic Sivaraam | 16 December 2017, 09:03:17 UTC | rebase: consistently use branch_name variable The variable "branch_name" holds the <branch> parameter in "git rebase <upstream> <branch>", but one codepath did not use it after assigning $1 to it (instead it kept using $1). Make it use the variable consistently. Also, update an error message to say there is no such branch or commit, as we are expecting either of them, and not limiting ourselves to a branch name. Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 December 2017, 18:02:14 UTC |
c6342e0 | Kaartic Sivaraam | 16 December 2017, 08:13:49 UTC | Doc/check-ref-format: clarify information about @{-N} syntax When the N-th previous thing checked out syntax (@{-N}) is used with '--branch' option of check-ref-format the result may not be the name of a branch that currently exists or ever existed. This is because @{-N} is used to refer to the N-th last checked out "thing", which might be a commit object name if the previous check out was a detached HEAD state; or a branch name, otherwise. The documentation thus does a wrong thing by promoting it as the "previous branch syntax". State that @{-N} is the syntax for specifying "N-th last thing checked out" and also state that the result of using @{-N} might also result in an commit object name. Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 December 2017, 18:00:45 UTC |
dec366c | Simon Ruderich | 16 December 2017, 12:32:02 UTC | config: document default value of http.sslVerify Remove any doubt that certificates might not be verified by default. Signed-off-by: Simon Ruderich <simon@ruderich.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 December 2017, 22:03:04 UTC |
b4f61b7 | René Scharfe | 16 December 2017, 12:12:23 UTC | p7519: improve check for prerequisite WATCHMAN The return code of command -v with a non-existing command is 1 in bash and 127 in dash. Use that return code directly to allow the script to work with dash and without watchman (e.g. on Debian). While at it stop redirecting the output. stderr is redirected to /dev/null by test_lazy_prereq already, and stdout can actually be useful -- the path of the found watchman executable is sent there, but it's shown only if the script was run with --verbose. Signed-off-by: Rene Scharfe <l.s.r@web.de> Acked-by: Ben Peart <benpeart@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 December 2017, 22:00:45 UTC |
77eac3f | Nicolas Morey-Chaisemartin | 18 December 2017, 19:11:13 UTC | imap-send: URI encode server folder When trying to send a patch using 'imap-send' with 'curl' and the following configuration: [imap] folder = "[Gmail]/Drafts" host = imaps://imap.gmail.com port = 993 sslverify = false results in the following error, curl_easy_perform() failed: URL using bad/illegal format or missing URL This is a consequence of not URI-encoding the folder portion of the URL which contains characters such as '[' which are not allowed in a URI. According to RFC3986, these characters should be URI-encoded. So, URI-encode the folder before adding it to the URI to ensure it doesn't contain characters that aren't allowed in a URI. Reported-by: Doron Behar <doron.behar@gmail.com> Signed-off-by: Nicolas Morey-Chaisemartin <NMoreyChaisemartin@suse.com> Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 December 2017, 21:57:06 UTC |
ed32b78 | Johannes Schindelin | 14 December 2017, 23:34:38 UTC | version --build-options: report commit, too, if possible In particular when local tags are used (or tags that are pushed to some fork) to build Git, it is very hard to figure out from which particular revision a particular Git executable was built. It gets worse when those tags are deleted, or even updated. Let's just report an exact, unabbreviated commit name in our build options. We need to be careful, though, to report when the current commit cannot be determined, e.g. when building from a tarball without any associated Git repository. This could be the case also when extracting Git's source code into an unrelated Git worktree. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 December 2017, 06:53:04 UTC |
b228940 | Eric Sunshine | 14 December 2017, 23:34:34 UTC | version --build-options: also report host CPU It can be helpful for bug reports to include information about the environment in which the bug occurs. "git version --build-options" can help to supplement this information. In addition to the size of 'long' already reported by --build-options, also report the host's CPU type. Example output: $ git version --build-options git version 2.9.3.windows.2.826.g06c0f2f cpu: x86_64 sizeof-long: 4 New Makefile variable HOST_CPU supports cross-compiling. Suggested-by: Adric Norris <landstander668@gmail.com> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 December 2017, 06:52:49 UTC |
e967ca3 | Jonathan Tan | 14 December 2017, 21:44:45 UTC | transport: make transport vtable more private Move the definition of the transport-specific functions provided by transports, whether declared in transport.c or transport-helper.c, into an internal header. This means that transport-using code (as opposed to transport-declaring code) can no longer access these functions (without importing the internal header themselves), making it clear that they should use the transport_*() functions instead, and also allowing the interface between the transport mechanism and an individual transport to independently evolve. This is superficially a reversal of commit 824d5776c3f2 ("Refactor struct transport_ops inlined into struct transport", 2007-09-19). However, the scope of the involved variables was neither affected nor discussed in that commit, and I think that the advantages in making those functions more private outweigh the advantages described in that commit's commit message. A minor additional point is that the code has gotten more complicated since then, in that the function-pointer variables are potentially mutated twice (once initially and once if transport_take_over() is invoked), increasing the value of corralling them into their own struct. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 December 2017, 22:28:04 UTC |
245abe3 | Jonathan Tan | 14 December 2017, 21:44:44 UTC | clone, fetch: remove redundant transport check Prior to commit a2d725b7bdf7 ("Use an external program to implement fetching with curl", 2009-08-05), if Git was compiled with NO_CURL, the get_refs_list and fetch methods in struct transport might not be populated, hence the checks in clone and fetch. After that commit, all transports populate get_refs_list and fetch, making the checks in clone and fetch redundant. Remove those checks. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 December 2017, 22:28:02 UTC |
637fc44 | Jeff Hostetler | 14 December 2017, 21:09:23 UTC | partial-clone: design doc Design document for partial clone feature. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 December 2017, 21:10:57 UTC |
52015aa | Todd Zullinger | 14 December 2017, 02:42:44 UTC | RelNotes: minor typo fixes in 2.16.0 draft Signed-off-by: Todd Zullinger <tmz@pobox.com> | 14 December 2017, 18:46:09 UTC |
bf9d7df | Todd Zullinger | 01 December 2017, 15:56:53 UTC | t/lib-git-svn.sh: improve svnserve tests with parallel make test Setting SVNSERVE_PORT enables several tests which require a local svnserve daemon to be run (in t9113 & t9126). The tests share setup of the local svnserve via `start_svnserve()`. The function uses svnserve's `--listen-once` option, which causes svnserve to accept one connection on the port, serve it, and exit. When running the tests in parallel this fails if one test tries to start svnserve while the other is still running. Use the test number as the svnserve port (similar to httpd tests) to avoid port conflicts. Developers can set GIT_TEST_SVNSERVE to any value other than 'false' or 'auto' to enable these tests. Acked-by: Eric Wong <e@80x24.org> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Todd Zullinger <tmz@pobox.com> | 14 December 2017, 18:41:55 UTC |
7810977 | Todd Zullinger | 01 December 2017, 15:56:52 UTC | t/lib-git-svn: cleanup inconsistent tab/space usage Acked-by: Eric Wong <e@80x24.org> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Todd Zullinger <tmz@pobox.com> | 14 December 2017, 18:41:54 UTC |
73d8c35 | Junio C Hamano | 14 December 2017, 17:26:32 UTC | Merge branch 'svn-crlf' of git://bogomips.org/git-svn into ew/svn-crlf * 'svn-crlf' of git://bogomips.org/git-svn: git-svn: convert CRLF to LF in commit message to SVN | 14 December 2017, 17:26:32 UTC |
95450bb | Eric Wong | 14 December 2017, 00:05:08 UTC | git-svn: convert CRLF to LF in commit message to SVN Subversion since 1.6 does not accept CR characters in the commit message, so filter it out on our end before 'git svn dcommit' sets the svn:log property. Reported-by: Brian Bennett <Brian.Bennett@Transamerica.com> Signed-off-by: Eric Wong <e@80x24.org> | 14 December 2017, 00:09:38 UTC |
d9a3764 | Junio C Hamano | 13 December 2017, 21:32:34 UTC | RelNotes: the ninth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 December 2017, 21:32:34 UTC |
d919598 | Junio C Hamano | 13 December 2017, 21:28:58 UTC | Merge branch 'js/hashmap-update-sample' Code comment update. * js/hashmap-update-sample: hashmap: adjust documentation to reflect reality | 13 December 2017, 21:28:58 UTC |