From: Junio C Hamano Date: Thu, 7 Apr 2016 18:58:17 +0000 (-0700) Subject: What's cooking (2016/04 #03) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1291402d18707419576aa467b49113bbc06cabfa;p=thirdparty%2Fgit.git What's cooking (2016/04 #03) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 6bc4fad10e..e521a56a2f 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Apr 2016, #02; Mon, 4) -X-master-at: 6a269e52a5d0c82567c5b39cc194cc90f9fa9156 -X-next-at: a49ec4a3520e76c257792c73d6347383649ee5c2 +Subject: What's cooking in git.git (Apr 2016, #03; Thu, 7) +X-master-at: 72d917a7f9a5123ef7c0d6db306bbc0d385227e2 +X-next-at: 209d99dbd5bc1cff6fe9618b5ae6dc65a6d421d9 -What's cooking in git.git (Apr 2016, #02; Mon, 4) +What's cooking in git.git (Apr 2016, #03; Thu, 7) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,10 +12,8 @@ Here are the topics that have been cooking. Commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. -The tip of 'next' has been rewound, the first maintenance release -v2.8.1 that most everybody can safely ignore has been tagged, and -the first batch of topics that have been cooking in 'next' during -the pre-2.8 freeze period are now in 'master'. +The 'master' branch now has the second batch of topics of this +cycle. There are a handful of topics that are stuck; they are marked as "Needs review", "Needs an Ack", etc. in the following list. @@ -25,393 +23,285 @@ of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html --------------------------------------------------- -[New Topics] - -* es/format-patch-doc-hide-no-patch (2016-04-04) 1 commit - - git-format-patch.txt: don't show -s as shorthand for multiple options - - "git format-patch --help" showed `-s` and `--no-patch` as if these - are valid options to the command. We already hide `--patch` option - from the documentation, because format-patch is about showing the - diff, and the documentation now hides these options as well. - - Will merge to next. - - -* jk/branch-shortening-funny-symrefs (2016-04-04) 1 commit - - branch: fix shortening of non-remote symrefs - - A change back in version 2.7 to "git branch" broke display of a - symbolic refs in a non-standard place in the refs/ hierarchy (we - expect symbolic refs to appear in refs/remotes/*/HEAD to point at - the primary branch the remote has, and as .git/HEAD to point at the - branch we locally checked out). - - Will merge to next. - and later down to maint-2.7. - -------------------------------------------------- [Graduated to "master"] -* es/test-gpg-tags (2016-03-06) 4 commits - (merged to 'next' on 2016-03-15 at 617119f) - + t6302: skip only signed tags rather than all tests when GPG is missing - + t6302: also test annotated in addition to signed tags - + t6302: normalize names and descriptions of signed tags - + lib-gpg: drop unnecessary "missing GPG" warning - - A test for tags has been restructured so that more parts of it can - easily be run on a platform without a working GnuPG. +* cc/doc-recommend-performance-trace-to-file (2016-03-07) 1 commit + (merged to 'next' on 2016-04-04 at 26f94c0) + + Documentation: talk about pager in api-trace.txt + Originally merged to 'next' on 2016-03-23 -* gf/fetch-pack-direct-object-fetch (2016-03-05) 2 commits - (merged to 'next' on 2016-03-06 at 5628860) - + fetch-pack: update the documentation for "..." arguments - (merged to 'next' on 2016-03-04 at 49199e0) - + fetch-pack: fix object_id of exact sha1 + A minor documentation update. - Fetching of history by naming a commit object name directly didn't - work across remote-curl transport. +* da/mergetool-delete-delete-conflict (2016-03-10) 2 commits + (merged to 'next' on 2016-04-04 at 34e645f) + + mergetool: honor tempfile configuration when resolving delete conflicts + + mergetool: support delete/delete conflicts -* jc/index-pack (2016-03-03) 2 commits - (merged to 'next' on 2016-03-15 at 42efaa7) - + index-pack: add a helper function to derive .idx/.keep filename - + Merge branch 'jc/maint-index-pack-keep' into jc/index-pack - (this branch is used by jc/bundle; uses jc/maint-index-pack-keep; is tangled with jc/index-pack-clone-bundle.) + Originally merged to 'next' on 2016-03-15 - Code clean-up. + "git mergetool" did not work well with conflicts that both sides + deleted. -* jc/maint-index-pack-keep (2016-03-03) 1 commit - (merged to 'next' on 2016-03-04 at bc1d37a) - + index-pack: correct --keep[=] - (this branch is used by jc/bundle, jc/index-pack and jc/index-pack-clone-bundle.) +* jk/credential-cache-comment-exit (2016-03-18) 1 commit + (merged to 'next' on 2016-04-04 at 50427fe) + + credential-cache--daemon: clarify "exit" action semantics - "git index-pack --keep[=] pack-$name.pack" simply did not work. + Originally merged to 'next' on 2016-03-23 + A code clarification. -* jk/add-i-highlight (2016-02-28) 1 commit - (merged to 'next' on 2016-03-04 at 4ac3aa1) - + add--interactive: allow custom diff highlighting programs - A new "interactive.diffFilter" configuration can be used to - customize the diff shown in "git add -i" session. +* jk/send-email-rtrim-mailrc-alias (2016-03-18) 1 commit + (merged to 'next' on 2016-04-04 at 4d54956) + + send-email: ignore trailing whitespace in mailrc alias file + Originally merged to 'next' on 2016-03-23 -* jk/config-get-urlmatch (2016-02-28) 3 commits - (merged to 'next' on 2016-03-04 at feeb192) - + Documentation/git-config: fix --get-all description - + Documentation/git-config: use bulleted list for exit codes - + config: fail if --get-urlmatch finds no value + "git send-email" had trouble parsing alias file in mailrc format + when lines in it had trailing whitespaces on them. - "git config --get-urlmatch", unlike other variants of the "git - config --get" family, did not signal error with its exit status - when there was no matching configuration. +* jk/submodule-c-credential (2016-03-23) 7 commits + (merged to 'next' on 2016-04-04 at 8de8e8c) + + git_config_push_parameter: handle empty GIT_CONFIG_PARAMETERS + + git: submodule honor -c credential.* from command line + + quote: implement sq_quotef() + + submodule: fix segmentation fault in submodule--helper clone + + submodule: fix submodule--helper clone usage + + submodule: check argc count for git submodule--helper clone + + submodule: don't pass empty string arguments to submodule--helper clone -* jk/credential-clear-config (2016-02-26) 1 commit - (merged to 'next' on 2016-03-04 at f7b26b7) - + credential: let empty credential specs reset helper list + Originally merged to 'next' on 2016-03-23 - The credential.helper configuration variable is cumulative and - there is no good way to override it from the command line. As - a special case, giving an empty string as its value now serves - as the signal to clear the values specified in various files. + "git -c credential.= submodule" can now be used to + propagate configuration variables related to credential helper + down to the submodules. -* jk/getwholeline-getdelim-empty (2016-03-05) 1 commit - (merged to 'next' on 2016-03-15 at e70d4bd) - + strbuf_getwholeline: NUL-terminate getdelim buffer on error +* jk/test-httpd-config-nosystem (2016-03-18) 1 commit + (merged to 'next' on 2016-04-04 at 5fa6274) + + t/lib-httpd: pass through GIT_CONFIG_NOSYSTEM env - strbuf_getwholeline() did not NUL-terminate the buffer on certain - corner cases in its error codepath. + Originally merged to 'next' on 2016-03-23 + The tests that involve running httpd leaked the system-wide + configuration in /etc/gitconfig to the tested environment. -* jk/rev-parse-local-env-vars (2016-02-29) 2 commits - (merged to 'next' on 2016-03-04 at a0300d5) - + rev-parse: let some options run outside repository - + t1515: add tests for rev-parse out-of-repo helpers - The "--local-env-vars" and "--resolve-git-dir" options of "git - rev-parse" failed to work outside a repository when the command's - option parsing was rewritten in 1.8.5 era. +* jv/merge-nothing-into-void (2016-03-23) 1 commit + (merged to 'next' on 2016-04-04 at aa37405) + + merge: fix NULL pointer dereference when merging nothing into void + Originally merged to 'next' on 2016-03-23 -* jk/startup-info (2016-03-07) 6 commits - (merged to 'next' on 2016-03-15 at eb95e5f) - + use setup_git_directory() in test-* programs - + grep: turn off gitlink detection for --no-index - + mailmap: do not resolve blobs in a non-repository - + remote: don't resolve HEAD in non-repository - + setup: set startup_info->have_repository more reliably - + setup: make startup_info available everywhere + "git merge FETCH_HEAD" dereferenced NULL pointer when merging + nothing into an unborn history (which is arguably unusual usage, + which perhaps was the reason why nobody noticed it). - The startup_info data, which records if we are working inside a - repository (among other things), are now uniformly available to Git - subcommand implementations, and Git avoids attempting to touch - references when we are not in a repository. +* la/tag-force-signing-annotated-tags (2016-03-22) 1 commit + (merged to 'next' on 2016-04-04 at a49ec4a) + + tag: add the option to force signing of annotated tags -* mm/diff-renames-default (2016-02-25) 5 commits - (merged to 'next' on 2016-02-25 at 947c399) - + diff: activate diff.renames by default - + log: introduce init_log_defaults() - + t: add tests for diff.renames (true/false/unset) - + t4001-diff-rename: wrap file creations in a test - + Documentation/diff-config: fix description of diff.renames + Originally merged to 'next' on 2016-03-24 - The end-user facing Porcelain level commands like "diff" and "log" - now enables the rename detection by default. + "git tag" can create an annotated tag without explicitly given an + "-a" (or "-s") option (i.e. when a tag message is given). A new + configuration variable, tag.forceSignAnnotated, can be used to tell + the command to create signed tag in such a situation. -* mm/lockfile-error-message (2016-03-01) 2 commits - (merged to 'next' on 2016-03-04 at 04ed7e6) - + lockfile: improve error message when lockfile exists - + lockfile: mark strings for translation +* ls/p4-map-user (2016-03-15) 1 commit + (merged to 'next' on 2016-04-04 at a56b011) + + git-p4: map a P4 user to Git author name and email address + Originally merged to 'next' on 2016-03-23 -* mm/readme-markdown (2016-04-01) 2 commits - - git.spec: use README.md, not README - (merged to 'next' on 2016-03-01 at 81f3858) - + README.md: don't take 'commandname' literally + "git p4" now allows P4 author names to be mapped to Git author + names. - The top-level README file has been updated to be more appropriate - for the sign on the front door to welcome new acquaintances to Git - by toning down inside jokes and making it into MarkDown. +* pb/t7502-drop-dup (2016-03-11) 1 commit + (merged to 'next' on 2016-04-04 at 4799cad) + + t/t7502 : drop duplicate test + (this branch is used by pb/commit-verbose-config.) -* mp/upload-pack-use-embedded-args (2016-02-25) 1 commit - (merged to 'next' on 2016-02-26 at f0a54e5) - + upload-pack: use argv_array for pack_objects + Originally merged to 'next' on 2016-03-15 - The embedded args argv-array in the child process is used to build - the command line to run pack-objects instead of using a separate - array of strings. + Code clean-up. -* rj/xdiff-prepare-plug-leak-on-error-codepath (2016-03-04) 2 commits - (merged to 'next' on 2016-03-15 at f72755e) - + xdiff/xprepare: fix a memory leak - + xdiff/xprepare: use the XDF_DIFF_ALG() macro to access flag bits +* sb/clone-t57-t56 (2016-03-16) 1 commit + (merged to 'next' on 2016-04-04 at 5c20247) + + clone tests: rename t57* => t56* - A small memory leak in an error codepath has been plugged in xdiff - code. + Originally merged to 'next' on 2016-03-23 --------------------------------------------------- -[Stalled] + Rename bunch of tests on "git clone" for better organization. -* ec/annotate-deleted (2015-11-20) 1 commit - - annotate: skip checking working tree if a revision is provided - Usability fix for annotate-specific " " syntax with deleted - files. +* sb/rebase-x (2016-03-18) 2 commits + (merged to 'next' on 2016-04-04 at feda620) + + t3404: cleanup double empty lines between tests + + rebase: decouple --exec from --interactive - Waiting for review. + Originally merged to 'next' on 2016-03-23 + "git rebase -x" can be used without passing "-i" option. -* dg/subtree-rebase-test (2016-01-19) 1 commit - - contrib/subtree: Add a test for subtree rebase that loses commits - Reviewed up to v5. - Will be rerolled. - ($gmane/284426) +* sb/submodule-parallel-update (2016-03-01) 10 commits + (merged to 'next' on 2016-04-04 at a0aea8d) + + clone: allow an explicit argument for parallel submodule clones + + submodule update: expose parallelism to the user + + submodule helper: remove double 'fatal: ' prefix + + git submodule update: have a dedicated helper for cloning + + run_processes_parallel: rename parameters for the callbacks + + run_processes_parallel: treat output of children as byte array + + submodule update: direct error message to stderr + + fetching submodules: respect `submodule.fetchJobs` config option + + submodule-config: drop check against NULL + + submodule-config: keep update strategy around + (this branch is used by sb/clone-shallow-passthru and sb/submodule-init.) + Originally merged to 'next' on 2016-03-15 -* js/am-3-merge-recursive-direct (2015-10-12) 2 commits - - am: make a direct call to merge_recursive - - merge_recursive_options: introduce the "gently" flag + A major part of "git submodule update" has been ported to C to take + advantage of the recently added framework to run download tasks in + parallel. - The merge_recursive_generic() function has been made a bit safer to - call from inside a process. "git am -3" was taught to make a direct - call to the function when falling back to three-way merge. - Being able to make a direct call would be good in general, but as a - performance thing, the change needs to be backed up by numbers. +* ss/commit-squash-msg (2016-03-21) 1 commit + (merged to 'next' on 2016-04-04 at d389f19) + + commit: do not lose SQUASH_MSG contents - Needs review. + Originally merged to 'next' on 2016-03-23 - I haven't gone through the "gently" change with fine toothed comb; - I can see that the change avoids calling die(), but I haven't made - sure that the program states (e.g. what's in the in-core index) are - adjusted sensibly when it returns to the caller instead of dying, - or the codepaths that used to die() are free of resource leaks. - The original code certainly did not care the program states at the - point of dying exactly because it knew it is going to exit, but now - they have to care, and they need to be audited. + When "git merge --squash" stopped due to conflict, the concluding + "git commit" failed to read in the SQUASH_MSG that shows the log + messages from all the squashed commits. -* dk/gc-more-wo-pack (2016-01-13) 4 commits - - gc: clean garbage .bitmap files from pack dir - - t5304: ensure non-garbage files are not deleted - - t5304: test .bitmap garbage files - - prepare_packed_git(): find more garbage +* ss/exc-flag-is-a-collection-of-bits (2016-03-01) 1 commit + (merged to 'next' on 2016-04-04 at 9f0207e) + + dir: store EXC_FLAG_* values in unsigned integers - Follow-on to dk/gc-idx-wo-pack topic, to clean up stale - .bitmap and .keep files. + Originally merged to 'next' on 2016-03-04 - Waiting for a reroll. - ($gmane/284368). + Code clean-up. -* jc/diff-b-m (2015-02-23) 5 commits - . WIPWIP - . WIP: diff-b-m - - diffcore-rename: allow easier debugging - - diffcore-rename.c: add locate_rename_src() - - diffcore-break: allow debugging +* ss/receive-pack-parse-options (2016-03-01) 1 commit + (merged to 'next' on 2016-04-04 at fd6ab4c) + + builtin/receive-pack.c: use parse_options API - "git diff -B -M" produced incorrect patch when the postimage of a - completely rewritten file is similar to the preimage of a removed - file; such a resulting file must not be expressed as a rename from - other place. + Originally merged to 'next' on 2016-03-04 - The fix in this patch is broken, unfortunately. - Will discard. + The command line argument parser for "receive-pack" has been + rewritten to use parse-options. -------------------------------------------------- -[Cooking] - -* jn/mergetools-examdiff (2016-04-04) 2 commits - - mergetools: add support for ExamDiff - - mergetools: create mergetool_find_win32_cmd() helper function for winmerge +[New Topics] - "git mergetools" learned to drive ExamDiff. +* jc/drop-git-spec-in (2016-04-06) 1 commit + - Makefile: stop pretending to support rpmbuild - Will merge to 'next'. + As nobody maintains our in-tree git.spec.in and distros use their + own spec file, we stopped pretending that we support "make rpm". -* kn/for-each-tag-branch (2016-03-30) 1 commit - - for-each-ref: fix description of '--contains' in manpage +* jc/makefile-redirection-stderr (2016-04-05) 1 commit + (merged to 'next' on 2016-04-06 at e3f2ded) + + Makefile: fix misdirected redirections - Docfix. + A minor fix in the Makefile. - Will merge to 'next'. + Will merge to 'master'. -* kn/ref-filter-branch-list (2016-03-30) 16 commits - . branch: implement '--format' option - . branch: use ref-filter printing APIs - . branch, tag: use porcelain output - . ref-filter: allow porcelain to translate messages in the output - . ref-filter: add support for %(refname:dir) and %(refname:base) - . ref-filter: introduce refname_atom_parser() - . ref-filter: introduce symref_atom_parser() - . ref-filter: make "%(symref)" atom work with the ':short' modifier - . ref-filter: add support for %(upstream:track,nobracket) - . ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreams - . ref-filter: introduce format_ref_array_item() - . ref-filter: move get_head_description() from branch.c - . ref-filter: modify "%(objectname:short)" to take length - . ref-filter: implement %(if:equals=) and %(if:notequals=) - . ref-filter: include reference to 'used_atom' within 'atom_value' - . ref-filter: implement %(if), %(then), and %(else) atoms +* js/mingw-tests-2.8 (2016-04-04) 1 commit + (merged to 'next' on 2016-04-06 at f85a013) + + Windows: shorten code by re-using convert_slashes() - The code to list branches in "git branch" has been consolidated - with the more generic ref-filter API. + Code clean-up. - Will be rerolled. + Will merge to 'master'. -* oa/doc-diff-check (2016-03-29) 1 commit - - Documentation: git diff --check detects conflict markers +* ar/diff-args-osx-precompose (2016-04-05) 1 commit + - diff: run arguments through precompose_argv - Docfix. + Many commands normalize command line arguments from NFD to NFC + variant of UTF-8 on OSX, but commands in the "diff" family did + not, causing "git diff $path" to complain that no such path is + known to Git. They have been taught to do the normalization. - Will merge to 'next'. + Will be rerolled? + ($gmane/290724) -* rz/worktree-no-checkout (2016-03-29) 1 commit - - worktree: add: introduce --checkout option +* ep/trace-doc-sample-fix (2016-04-05) 1 commit + (merged to 'next' on 2016-04-06 at 0df7357) + + api-trace.txt: fix typo - "git worktree add" can be given "--no-checkout" option to only - create an empty worktree without checking out the files. + Fix a typo in an example in the trace API documentation. - Will merge to 'next'. + Will merge to 'master'. -* sb/misc-cleanups (2016-04-01) 4 commits - - credential-cache, send_request: close fd when done - - bundle: don't leak an fd in case of early return - - abbrev_sha1_in_line: don't leak memory - - notes: don't leak memory in git_config_get_notes_strategy +* ew/send-email-readable-message-id (2016-04-06) 1 commit + - send-email: more meaningful Message-ID - Assorted minor clean-ups. + "git send-email" now uses a more readable timestamps when + formulating a message ID. Will merge to 'next'. -* sb/submodule-helper-clone-regression-fix (2016-04-01) 6 commits - - submodule--helper, module_clone: catch fprintf failure - - submodule--helper: do not borrow absolute_path() result for too long - - submodule--helper, module_clone: always operate on absolute paths - - submodule--helper clone: create the submodule path just once - - submodule--helper: fix potential NULL-dereference - - recursive submodules: test for relative paths - - A partial rewrite of "git submodule" in the 2.7 timeframe changed - the way the gitdir: pointer in the submodules point at the real - repository location to use absolute paths by accident. This has - been corrected. +* mg/complete-cherry-mark-to-log (2016-04-05) 1 commit + (merged to 'next' on 2016-04-06 at 3002be6) + + completion: complete --cherry-mark for git log - Any further comments? Otherwise will merge to 'next'. + The completion scripts (in contrib/) did not include the + "--cherry-mark" option when completing "git log ". + Will merge to 'master'. -* sb/submodule-path-misc-bugs (2016-03-30) 6 commits - - t7407: make expectation as clear as possible - - submodule update: test recursive path reporting from subdirectory - - submodule update: align reporting path for custom command execution - - submodule status: correct path handling in recursive submodules - - submodule update --init: correct path handling in recursive submodules - - submodule foreach: correct path display in recursive submodules - "git submodule" reports the paths of submodules the command - recurses into, but this was incorrect when the command was not run - from the root level of the superproject. +* tb/blame-force-read-cache-to-workaround-safe-crlf (2016-04-05) 1 commit + (merged to 'next' on 2016-04-06 at 263bba8) + + correct blame for files commited with CRLF - Any further comments? Otherwise will merge to 'next'. + When running "git blame $path" with unnormalized data in the index + for the path, the data in the working tree was blamed, even though + "git add" would not have changed what is already in the index, due + to "safe crlf" that disables the line-end conversion. It has been + corrected. + Will merge to 'master'. -* sg/diff-multiple-identical-renames (2016-03-30) 1 commit - - diffcore: fix iteration order of identical files during rename detection - "git diff -M" used to work better when two originally identical - files A and B got renamed to X/A and X/B by pairing A to X/A and B - to X/B, but this was broken in 2.0 timeframe. +* st/verify-tag (2016-04-06) 3 commits + - verify-tag: change variable name for readability + - t7030: test verifying multiple tags + - builtin/verify-tag.c: ignore SIGPIPE in gpg-interface - Will merge to 'next'. + Only the first three patches in a six-patch series. -* sk/send-pack-all-fix (2016-03-31) 1 commit - - git-send-pack: fix --all option when used with directory +* ew/send-email-drop-data-dumper (2016-04-06) 1 commit + - send-email: do not load Data::Dumper - "git send-pack --all " was broken when its command line - option parsing was written in 2.6 timeframe. + Code clean-up. Will merge to 'next'. - -* ss/msvc (2016-03-30) 2 commits - - MSVC: use shipped headers instead of fallback definitions - - MSVC: vsnprintf in Visual Studio 2015 doesn't need SNPRINTF_SIZE_CORR any more - - Will merge to 'next'. - - -* xy/format-patch-base (2016-03-31) 4 commits - - format-patch: introduce format.base configuration - - format-patch: introduce --base=auto option - - format-patch: add '--base' option to record base tree info - - patch-ids: make commit_patch_id() a public helper function - - "git format-patch" learned a new "--base" option to record what - (public, well-known) commit the original series was built on in - its output. - - Will be rerolled. - ($gmane/290365) - +-------------------------------------------------- +[Stalled] * da/user-useconfigonly (2016-04-01) 2 commits - ident: give "please tell me" message upon useConfigOnly error @@ -429,602 +319,658 @@ of the repositories listed at ($gmane/290340) -* tb/safe-crlf-output-fix (2016-04-01) 7 commits - . convert.c: more safer crlf handling with text attribute - . correct blame for files commited with CRLF - . convert: unify the "auto" handling of CRLF - . t0027: test cases for combined attributes - . convert: allow core.autocrlf=input and core.eol=crlf - . convert.c: stream and early out - . read-cache: factor out get_sha1_from_index() helper - - The "safe CRLF" facility disables line-end conversion from CRLF to - LF when checking in if the blob registered to the index already - contains CR, but some codepaths like "git blame" did not know this, - and instead assumed that only the configuration and attribute - settings determined how the data from the working tree is converted. - - Will be rerolled. - ($gmane/290637) - - -* ak/use-hashmap-iter-first-in-submodule-config (2016-03-23) 1 commit - - submodule-config: use hashmap_iter_first() - - Minor code cleanup. - - Will merge to 'next'. - - -* ky/branch-d-worktree (2016-03-29) 1 commit - - branch -d: refuse deleting a branch which is currently checked out - - When "git worktree" feature is in use, "git branch -d" allowed - deletion of a branch that is checked out in another worktree - - Will merge to 'next'. +* sb/clone-shallow-passthru (2016-03-23) 3 commits + - clone: add t5614 to test cloning submodules with shallowness involved + - submodule clone: pass along `local` option + - clone: add `--shallow-submodules` flag + "git clone" learned "--shallow-submodules" option. -* ky/branch-m-worktree (2016-04-04) 2 commits - - branch -m: update all per-worktree HEADs - - refs: add a new function set_worktree_head_symref + Needs review. - When "git worktree" feature is in use, "git branch -m" renamed a - branch that is checked out in another worktree without adjusting - the HEAD symbolic ref for the worktree. - Will merge to 'next'. +* sg/completion-updates (2016-02-28) 21 commits + - completion: cache the path to the repository + - completion: extract repository discovery from __gitdir() + - completion: don't guard git executions with __gitdir() + - completion: consolidate silencing errors from git commands + - completion: don't use __gitdir() for git commands + - completion: respect 'git -C ' + - completion: fix completion after 'git -C ' + - completion: don't offer commands when 'git --opt' needs an argument + - rev-parse: add '--absolute-git-dir' option + - completion: list short refs from a remote given as a URL + - completion: don't list 'HEAD' when trying refs completion outside of a repo + - completion: list refs from remote when remote's name matches a directory + - completion: respect 'git --git-dir=' when listing remote refs + - completion: fix most spots not respecting 'git --git-dir=' + - completion: ensure that the repository path given on the command line exists + - completion tests: add tests for the __git_refs() helper function + - completion tests: check __gitdir()'s output in the error cases + - completion tests: consolidate getting path of current working directory + - completion tests: make the $cur variable local to the test helper functions + - completion tests: don't add test cruft to the test repository + - completion: improve __git_refs()'s in-code documentation + Will be rerolled. + ($gmane/287839) -* nd/apply-doc (2016-03-24) 2 commits - - git-apply.txt: mention the behavior inside a subdir - - git-apply.txt: remove a space - Will merge to 'next'. +* nd/shallow-deepen (2016-02-23) 25 commits + - fetch, upload-pack: --deepen=N extends shallow boundary by N commits + - upload-pack: add get_reachable_list() + - upload-pack: split check_unreachable() in two, prep for get_reachable_list() + - t5500, t5539: tests for shallow depth excluding a ref + - clone: define shallow clone boundary with --shallow-exclude + - fetch: define shallow boundary with --shallow-exclude + - upload-pack: support define shallow boundary by excluding revisions + - refs: add expand_ref() + - t5500, t5539: tests for shallow depth since a specific date + - clone: define shallow clone boundary based on time with --shallow-since + - fetch: define shallow boundary with --shallow-since + - upload-pack: add deepen-since to cut shallow repos based on time + - shallow.c: implement a generic shallow boundary finder based on rev-list + - fetch-pack: use a separate flag for fetch in deepening mode + - fetch-pack: use a common function for verbose printing + - fetch-pack: use skip_prefix() instead of starts_with() + - upload-pack: move rev-list code out of check_non_tip() + - upload-pack: tighten number parsing at "deepen" lines + - upload-pack: use skip_prefix() instead of starts_with() + - upload-pack: move "unshallow" sending code out of deepen() + - upload-pack: remove unused variable "backup" + - upload-pack: move "shallow" sending code out of deepen() + - upload-pack: move shallow deepen code out of receive_needs() + - transport-helper.c: refactor set_helper_option() + - remote-curl.c: convert fetch_git() to use argv_array + The existing "git fetch --depth=" option was hard to use + correctly when making the history of an existing shallow clone + deeper. A new option, "--deepen=", has been added to make this + easier to use. "git clone" also learned "--shallow-since=" + and "--shallow-exclude=" options to make it easier to specify + "I am interested only in the recent N months worth of history" and + "Give me only the history since that version". -* nd/apply-report-skip (2016-03-24) 1 commit - - apply: report patch skipping in verbose mode + Needs review. - "git apply -v" learned to report paths in the patch that were - skipped via --include/--exclude mechanism or being outside the - current working directory. - Will merge to 'next'. +* sb/submodule-init (2016-03-15) 2 commits + . submodule: port init from shell to C + . submodule: port resolve_relative_url from shell to C + Update of "git submodule" to move pieces of logic to C continues. -* pb/opt-cmdmode-doc (2016-03-25) 1 commit - - api-parse-options.txt: document OPT_CMDMODE() + Needs review. + ($gmane/288824) - Minor API documentation update. - Will merge to 'next'. +* az/p4-bare-no-rebase (2016-02-19) 1 commit + - git-p4.py: Don't try to rebase on submit from bare repository + "git p4 submit" attempts to do a rebase, which would fail if done + in a bare repository. Not doing this rebase would paper over the + failure, which is what this patch does, but it is unclear what the + side effect of not rebasing is. -* rt/completion-help (2016-03-24) 2 commits - - completion: add 'revisions' and 'everyday' to 'git help' - - completion: add option '--guides' to 'git help' + Needs a better explanation. - Shell completion (in contrib/) updates. - Will merge to 'next'. +* ss/commit-dry-run-resolve-merge-to-no-op (2016-02-17) 1 commit + - wt-status.c: set commitable bit if there is a meaningful merge. + "git commit --dry-run" reported "No, no, you cannot commit." in one + case where "git commit" would have allowed you to commit, and this + improves it a little bit ("git commit --dry-run --short" still does + not give you the correct answer, for example). -* rt/rebase-i-shorten-stop-report (2016-03-28) 1 commit - - rebase-i: print an abbreviated hash when stop for editing - The commit object name reported when "rebase -i" stops has been - shortened. +* nd/icase (2016-02-15) 12 commits + - grep.c: reuse "icase" variable + - diffcore-pickaxe: support case insensitive match on non-ascii + - diffcore-pickaxe: "share" regex error handling code + - grep/pcre: support utf-8 + - gettext: add is_utf8_locale() + - grep/pcre: prepare locale-dependent tables for icase matching + - grep/icase: avoid kwsset when -F is specified + - grep/icase: avoid kwsset on literal non-ascii strings + - test-regex: expose full regcomp() to the command line + - test-regex: isolate the bug test code + - grep: break down an "if" stmt in preparation for next changes + - grep: allow -F -i combination - Will merge to 'next'. + "git grep -i" has been taught to fold case in non-ascii locales. + Needs review. + ($gmane/286137) -* jk/check-repository-format (2016-03-11) 10 commits - - verify_repository_format: mark messages for translation - - setup: drop repository_format_version global - - setup: unify repository version callbacks - - init: use setup.c's repo version verification - - setup: refactor repo format reading and verification - - config: drop git_config_early - - check_repository_format_gently: stop using git_config_early - - lazily load core.sharedrepository - - wrap shared_repository global in get/set accessors - - setup: document check_repository_format() - The repository set-up sequence has been streamlined (the biggest - change is that there is no longer git_config_early()), so that we - do not attempt to look into refs/* when we know we do not have a - Git repository. +* dt/refs-backend-lmdb (2016-02-25) 45 commits + . SQUASH??? Minimum compilation band-aid + . tests: add ref-storage argument + . refs: tests for lmdb backend + . refs: add LMDB refs storage backend + . refs: break out resolve_ref_unsafe_submodule + . config: read ref storage config on startup + . refs: register ref storage backends + . svn: learn ref-storage argument + . clone: allow ref storage backend to be set for clone + . refs: check submodules' ref storage config + . init: allow alternate ref strorage to be set for new repos + . refs: always handle non-normal refs in files backend + . refs: resolve symbolic refs first + . refs: on symref reflog expire, lock symref not referrent + . refs: don't dereference on rename + . refs: allow log-only updates + . refs: move duplicate check to common code + . refs: make lock generic + . refs: handle non-normal ref renames + . refs: add method to rename refs + . refs: add methods to init refs db + . refs: add method for delete_refs + . refs: add method for initial ref transaction commit + . refs: add methods for reflog + . refs: add do_for_each_per_worktree_ref + . refs: reduce the visibility of do_for_each_ref() + . refs: add method for do_for_each_ref + . refs: add methods for misc ref operations + . refs: add a backend method structure with transaction functions + . refs: move resolve_ref_unsafe into common code + . files-backend: break out ref reading + . refs: move for_each_*ref* functions into common code + . refs: move head_ref{,_submodule} to the common code + . Merge branch 'sb/submodule-parallel-update' into dt/refs-backend-lmdb + . clone: allow an explicit argument for parallel submodule clones + . submodule update: expose parallelism to the user + . git submodule update: have a dedicated helper for cloning + . run_processes_parallel: correctly terminate callbacks with an LF + . run_processes_parallel: rename parameters for the callbacks + . run-command: expose default_{start_failure, task_finished} + . run_processes_parallel: treat output of children as byte array + . submodule update: direct error message to stderr + . fetching submodules: respect `submodule.fetchJobs` config option + . submodule-config: drop check against NULL + . submodule-config: keep update strategy around - Will merge to 'next'. + A reroll exists, but it seems that will further be rerolled. -* mj/pull-rebase-autostash (2016-04-04) 9 commits - - t5520: test --[no-]autostash with pull.rebase=true - - t5520: reduce commom lines of code - - t5520: factor out common "failing autostash" code - - t5520: factor out common "successful autostash" code - - t5520: use better test to check stderr output - - t5520: ensure consistent test conditions - - t5520: use consistent capitalization in test titles - - pull --rebase: add --[no-]autostash flag - - git-pull.c: introduce git_pull_config() +* ec/annotate-deleted (2015-11-20) 1 commit + - annotate: skip checking working tree if a revision is provided - "git pull --rebase" learned "--[no-]autostash" option, so that - the rebase.autostash configuration variable set to true can be - overridden from the command line. + Usability fix for annotate-specific " " syntax with deleted + files. - Will merge to 'next'. + Waiting for review. -* pb/commit-verbose-config (2016-03-14) 1 commit - - commit: add a commit.verbose config variable - (this branch uses pb/t7502-drop-dup.) +* dg/subtree-rebase-test (2016-01-19) 1 commit + - contrib/subtree: Add a test for subtree rebase that loses commits - "git commit" learned to pay attention to "commit.verbose" - configuration variable and act as if "--verbose" option was - given from the command line. + Reviewed up to v5. + Will be rerolled. + ($gmane/284426) - Will merge to 'next'. +* js/am-3-merge-recursive-direct (2015-10-12) 2 commits + - am: make a direct call to merge_recursive + - merge_recursive_options: introduce the "gently" flag -* pb/t7502-drop-dup (2016-03-11) 1 commit - (merged to 'next' on 2016-04-04 at 4799cad) - + t/t7502 : drop duplicate test - (this branch is used by pb/commit-verbose-config.) + The merge_recursive_generic() function has been made a bit safer to + call from inside a process. "git am -3" was taught to make a direct + call to the function when falling back to three-way merge. - Originally merged to 'next' on 2016-03-15 + Being able to make a direct call would be good in general, but as a + performance thing, the change needs to be backed up by numbers. - Code clean-up. + Needs review. - Will merge to 'master' after 2.8 final. + I haven't gone through the "gently" change with fine toothed comb; + I can see that the change avoids calling die(), but I haven't made + sure that the program states (e.g. what's in the in-core index) are + adjusted sensibly when it returns to the caller instead of dying, + or the codepaths that used to die() are free of resource leaks. + The original code certainly did not care the program states at the + point of dying exactly because it knew it is going to exit, but now + they have to care, and they need to be audited. -* ss/commit-squash-msg (2016-03-21) 1 commit - (merged to 'next' on 2016-04-04 at d389f19) - + commit: do not lose SQUASH_MSG contents +* dk/gc-more-wo-pack (2016-01-13) 4 commits + - gc: clean garbage .bitmap files from pack dir + - t5304: ensure non-garbage files are not deleted + - t5304: test .bitmap garbage files + - prepare_packed_git(): find more garbage - Originally merged to 'next' on 2016-03-23 + Follow-on to dk/gc-idx-wo-pack topic, to clean up stale + .bitmap and .keep files. - When "git merge --squash" stopped due to conflict, the concluding - "git commit" failed to read in the SQUASH_MSG that shows the log - messages from all the squashed commits. + Waiting for a reroll. + ($gmane/284368). - Will merge to 'master' after 2.8 final. +* jc/diff-b-m (2015-02-23) 5 commits + . WIPWIP + . WIP: diff-b-m + - diffcore-rename: allow easier debugging + - diffcore-rename.c: add locate_rename_src() + - diffcore-break: allow debugging -* ls/p4-map-user (2016-03-15) 1 commit - (merged to 'next' on 2016-04-04 at a56b011) - + git-p4: map a P4 user to Git author name and email address + "git diff -B -M" produced incorrect patch when the postimage of a + completely rewritten file is similar to the preimage of a removed + file; such a resulting file must not be expressed as a rename from + other place. - Originally merged to 'next' on 2016-03-23 + The fix in this patch is broken, unfortunately. + Will discard. - "git p4" now allows P4 author names to be mapped to Git author - names. +-------------------------------------------------- +[Cooking] - Will merge to 'master' after 2.8 final. +* es/format-patch-doc-hide-no-patch (2016-04-04) 1 commit + (merged to 'next' on 2016-04-06 at 25d79bb) + + git-format-patch.txt: don't show -s as shorthand for multiple options + "git format-patch --help" showed `-s` and `--no-patch` as if these + are valid options to the command. We already hide `--patch` option + from the documentation, because format-patch is about showing the + diff, and the documentation now hides these options as well. -* jc/merge-refuse-new-root (2016-03-23) 1 commit - (merged to 'next' on 2016-04-04 at cd70fd6) - + merge: refuse to create too cool a merge by default + Will merge to 'master'. - Originally merged to 'next' on 2016-03-23 - "git merge" used to allow merging two branches that have no common - base by default, which led to a brand new history of an existing - project created and then get pulled by an unsuspecting maintainer, - which allowed an unnecessary parallel history merged into the - existing project. The command has been taught not to allow this by - default, with an escape hatch "--allow-unrelated-histories" option - to be used in a rare event that merges histories of two projects - that started their lives independently. +* jk/branch-shortening-funny-symrefs (2016-04-04) 1 commit + (merged to 'next' on 2016-04-06 at 1a3f8be) + + branch: fix shortening of non-remote symrefs - Will merge to 'master' after 2.8 final. + A change back in version 2.7 to "git branch" broke display of a + symbolic ref in a non-standard place in the refs/ hierarchy (we + expect symbolic refs to appear in refs/remotes/*/HEAD to point at + the primary branch the remote has, and as .git/HEAD to point at the + branch we locally checked out). + Will merge to 'next' and later down to maint-2.7. -* jk/credential-cache-comment-exit (2016-03-18) 1 commit - (merged to 'next' on 2016-04-04 at 50427fe) - + credential-cache--daemon: clarify "exit" action semantics - Originally merged to 'next' on 2016-03-23 +* jn/mergetools-examdiff (2016-04-04) 2 commits + (merged to 'next' on 2016-04-06 at 819e858) + + mergetools: add support for ExamDiff + + mergetools: create mergetool_find_win32_cmd() helper function for winmerge - A code clarification. + "git mergetools" learned to drive ExamDiff. - Will merge to 'master' after 2.8 final. + Will merge to 'master'. -* jk/send-email-rtrim-mailrc-alias (2016-03-18) 1 commit - (merged to 'next' on 2016-04-04 at 4d54956) - + send-email: ignore trailing whitespace in mailrc alias file +* kn/for-each-tag-branch (2016-03-30) 1 commit + (merged to 'next' on 2016-04-06 at 4595ad3) + + for-each-ref: fix description of '--contains' in manpage - Originally merged to 'next' on 2016-03-23 + A minor documentation update. - "git send-email" had trouble parsing alias file in mailrc format - when lines in it had trailing whitespaces on them. + Will merge to 'master'. - Will merge to 'master' after 2.8 final. +* kn/ref-filter-branch-list (2016-03-30) 16 commits + . branch: implement '--format' option + . branch: use ref-filter printing APIs + . branch, tag: use porcelain output + . ref-filter: allow porcelain to translate messages in the output + . ref-filter: add support for %(refname:dir) and %(refname:base) + . ref-filter: introduce refname_atom_parser() + . ref-filter: introduce symref_atom_parser() + . ref-filter: make "%(symref)" atom work with the ':short' modifier + . ref-filter: add support for %(upstream:track,nobracket) + . ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreams + . ref-filter: introduce format_ref_array_item() + . ref-filter: move get_head_description() from branch.c + . ref-filter: modify "%(objectname:short)" to take length + . ref-filter: implement %(if:equals=) and %(if:notequals=) + . ref-filter: include reference to 'used_atom' within 'atom_value' + . ref-filter: implement %(if), %(then), and %(else) atoms -* jk/test-httpd-config-nosystem (2016-03-18) 1 commit - (merged to 'next' on 2016-04-04 at 5fa6274) - + t/lib-httpd: pass through GIT_CONFIG_NOSYSTEM env + The code to list branches in "git branch" has been consolidated + with the more generic ref-filter API. - Originally merged to 'next' on 2016-03-23 + Will be rerolled. - The tests that involve running httpd leaked the system-wide - configuration in /etc/gitconfig to the tested environment. - Will merge to 'master' after 2.8 final. +* oa/doc-diff-check (2016-03-29) 1 commit + (merged to 'next' on 2016-04-06 at e3d6e8d) + + Documentation: git diff --check detects conflict markers + A minor documentation update. -* lt/pretty-expand-tabs (2016-03-30) 3 commits - - pretty: allow tweaking tabwidth in --expand-tabs - - pretty: enable --expand-tabs by default for selected pretty formats - - pretty: expand tabs in indented logs to make things line up properly + Will merge to 'master'. - Needs tests. +* rz/worktree-no-checkout (2016-03-29) 1 commit + (merged to 'next' on 2016-04-06 at e725216) + + worktree: add: introduce --checkout option -* sb/clone-shallow-passthru (2016-03-23) 3 commits - - clone: add t5614 to test cloning submodules with shallowness involved - - submodule clone: pass along `local` option - - clone: add `--shallow-submodules` flag - (this branch uses sb/submodule-parallel-update; is tangled with sb/submodule-init.) + "git worktree add" can be given "--no-checkout" option to only + create an empty worktree without checking out the files. - "git clone" learned "--shallow-submodules" option. + Will merge to 'master'. - Needs review. +* sb/misc-cleanups (2016-04-01) 4 commits + (merged to 'next' on 2016-04-06 at 4e63691) + + credential-cache, send_request: close fd when done + + bundle: don't leak an fd in case of early return + + abbrev_sha1_in_line: don't leak memory + + notes: don't leak memory in git_config_get_notes_strategy -* sb/clone-t57-t56 (2016-03-16) 1 commit - (merged to 'next' on 2016-04-04 at 5c20247) - + clone tests: rename t57* => t56* + Assorted minor clean-ups. - Originally merged to 'next' on 2016-03-23 + Will merge to 'master'. - Rename bunch of tests on "git clone" for better organization. - Will merge to 'master' after 2.8 final. +* sb/submodule-helper-clone-regression-fix (2016-04-01) 6 commits + - submodule--helper, module_clone: catch fprintf failure + - submodule--helper: do not borrow absolute_path() result for too long + - submodule--helper, module_clone: always operate on absolute paths + - submodule--helper clone: create the submodule path just once + - submodule--helper: fix potential NULL-dereference + - recursive submodules: test for relative paths + A partial rewrite of "git submodule" in the 2.7 timeframe changed + the way the gitdir: pointer in the submodules point at the real + repository location to use absolute paths by accident. This has + been corrected. -* sb/rebase-x (2016-03-18) 2 commits - (merged to 'next' on 2016-04-04 at feda620) - + t3404: cleanup double empty lines between tests - + rebase: decouple --exec from --interactive + Any further comments? Otherwise will merge to 'next'. - Originally merged to 'next' on 2016-03-23 - "git rebase -x" can be used without passing "-i" option. +* sb/submodule-path-misc-bugs (2016-03-30) 6 commits + - t7407: make expectation as clear as possible + - submodule update: test recursive path reporting from subdirectory + - submodule update: align reporting path for custom command execution + - submodule status: correct path handling in recursive submodules + - submodule update --init: correct path handling in recursive submodules + - submodule foreach: correct path display in recursive submodules - Will merge to 'master' after 2.8 final. + "git submodule" reports the paths of submodules the command + recurses into, but this was incorrect when the command was not run + from the root level of the superproject. + Any further comments? Otherwise will merge to 'next'. -* cc/apply (2016-04-01) 4 commits - - builtin/apply: free patch when parse_chunk() fails - - builtin/apply: handle parse_binary() failure - - apply: remove unused call to free() in gitdiff_{old,new}name() - - builtin/apply: get rid of useless 'name' variable - Minor code clean-up. +* sg/diff-multiple-identical-renames (2016-03-30) 1 commit + (merged to 'next' on 2016-04-06 at ac19e48) + + diffcore: fix iteration order of identical files during rename detection - Will merge to 'next'. + "git diff -M" used to work better when two originally identical + files A and B got renamed to X/A and X/B by pairing A to X/A and B + to X/B, but this was broken in the 2.0 timeframe. + Will merge to 'master'. -* dt/index-helper (2016-03-23) 18 commits - - SQUASH - minimum compilation fix - - read-cache: config for waiting for index-helper - - index-helper: optionally automatically run - - index-helper: autorun mode - - index-helper: don't run if already running - - index-helper: kill mode - - unpack-trees: preserve index extensions - - update-index: enable/disable watchman support - - index-helper: use watchman to avoid refreshing index with lstat() - - Add watchman support to reduce index refresh cost - - read-cache: invalidate untracked cache data when reading WAMA - - read-cache: add watchman 'WAMA' extension - - index-helper: add --detach - - daemonize(): set a flag before exiting the main process - - index-helper: add --strict - - index-helper: new daemon for caching index and related stuff - - read-cache: allow to keep mmap'd memory after reading - - read-cache.c: fix constness of verify_hdr() +* sk/send-pack-all-fix (2016-03-31) 1 commit + (merged to 'next' on 2016-04-06 at 31e1e1b) + + git-send-pack: fix --all option when used with directory -* jv/merge-nothing-into-void (2016-03-23) 1 commit - (merged to 'next' on 2016-04-04 at aa37405) - + merge: fix NULL pointer dereference when merging nothing into void + "git send-pack --all " was broken when its command line + option parsing was written in the 2.6 timeframe. - Originally merged to 'next' on 2016-03-23 + Will merge to 'master'. - "git merge FETCH_HEAD" dereferenced NULL pointer when merging - nothing into an unborn history (which is arguably unusual usage, - which perhaps was the reason why nobody noticed it). - Will merge to 'master' after 2.8 final. +* ss/msvc (2016-03-30) 2 commits + (merged to 'next' on 2016-04-06 at 4b53bce) + + MSVC: use shipped headers instead of fallback definitions + + MSVC: vsnprintf in Visual Studio 2015 doesn't need SNPRINTF_SIZE_CORR any more + Build updates for MSVC. -* la/tag-force-signing-annotated-tags (2016-03-22) 1 commit - (merged to 'next' on 2016-04-04 at a49ec4a) - + tag: add the option to force signing of annotated tags + Will merge to 'master'. - Originally merged to 'next' on 2016-03-24 - "git tag" can create an annotated tag without explicitly given an - "-a" (or "-s") option (i.e. when a tag message is given). A new - configuration variable, tag.forceSignAnnotated, can be used to tell - the command to create signed tag in such a situation. +* xy/format-patch-base (2016-03-31) 4 commits + - format-patch: introduce format.base configuration + - format-patch: introduce --base=auto option + - format-patch: add '--base' option to record base tree info + - patch-ids: make commit_patch_id() a public helper function - Will merge to 'master' after 2.8 final. + "git format-patch" learned a new "--base" option to record what + (public, well-known) commit the original series was built on in + its output. + Will be rerolled. + ($gmane/290365) -* cc/doc-recommend-performance-trace-to-file (2016-03-07) 1 commit - (merged to 'next' on 2016-04-04 at 26f94c0) - + Documentation: talk about pager in api-trace.txt - Originally merged to 'next' on 2016-03-23 +* tb/safe-crlf-output-fix (2016-04-01) 7 commits + . convert.c: more safer crlf handling with text attribute + . correct blame for files commited with CRLF + . convert: unify the "auto" handling of CRLF + . t0027: test cases for combined attributes + . convert: allow core.autocrlf=input and core.eol=crlf + . convert.c: stream and early out + . read-cache: factor out get_sha1_from_index() helper - A minor documentation update. + The "safe CRLF" facility disables line-end conversion from CRLF to + LF when checking in if the blob registered to the index already + contains CR, but some codepaths like "git blame" did not know this, + and instead assumed that only the configuration and attribute + settings determined how the data from the working tree is converted. - Will merge to 'master' after 2.8 final. + Will be rerolled. + ($gmane/290637) -* da/mergetool-delete-delete-conflict (2016-03-10) 2 commits - (merged to 'next' on 2016-04-04 at 34e645f) - + mergetool: honor tempfile configuration when resolving delete conflicts - + mergetool: support delete/delete conflicts +* ak/use-hashmap-iter-first-in-submodule-config (2016-03-23) 1 commit + (merged to 'next' on 2016-04-06 at 2aab890) + + submodule-config: use hashmap_iter_first() - Originally merged to 'next' on 2016-03-15 + Minor code cleanup. - "git mergetool" did not work well with conflicts that both sides - deleted. + Will merge to 'master'. - Will merge to 'master' after 2.8 final. +* ky/branch-d-worktree (2016-03-29) 1 commit + (merged to 'next' on 2016-04-06 at 00f9bff) + + branch -d: refuse deleting a branch which is currently checked out -* sg/completion-updates (2016-02-28) 21 commits - - completion: cache the path to the repository - - completion: extract repository discovery from __gitdir() - - completion: don't guard git executions with __gitdir() - - completion: consolidate silencing errors from git commands - - completion: don't use __gitdir() for git commands - - completion: respect 'git -C ' - - completion: fix completion after 'git -C ' - - completion: don't offer commands when 'git --opt' needs an argument - - rev-parse: add '--absolute-git-dir' option - - completion: list short refs from a remote given as a URL - - completion: don't list 'HEAD' when trying refs completion outside of a repo - - completion: list refs from remote when remote's name matches a directory - - completion: respect 'git --git-dir=' when listing remote refs - - completion: fix most spots not respecting 'git --git-dir=' - - completion: ensure that the repository path given on the command line exists - - completion tests: add tests for the __git_refs() helper function - - completion tests: check __gitdir()'s output in the error cases - - completion tests: consolidate getting path of current working directory - - completion tests: make the $cur variable local to the test helper functions - - completion tests: don't add test cruft to the test repository - - completion: improve __git_refs()'s in-code documentation + When "git worktree" feature is in use, "git branch -d" allowed + deletion of a branch that is checked out in another worktree - Will be rerolled. - ($gmane/287839) + Will merge to 'master'. -* ss/exc-flag-is-a-collection-of-bits (2016-03-01) 1 commit - (merged to 'next' on 2016-04-04 at 9f0207e) - + dir: store EXC_FLAG_* values in unsigned integers +* ky/branch-m-worktree (2016-04-04) 2 commits + (merged to 'next' on 2016-04-06 at e7b285c) + + branch -m: update all per-worktree HEADs + + refs: add a new function set_worktree_head_symref - Originally merged to 'next' on 2016-03-04 + When "git worktree" feature is in use, "git branch -m" renamed a + branch that is checked out in another worktree without adjusting + the HEAD symbolic ref for the worktree. - Code clean-up. + Will merge to 'master'. - Will merge to 'master' after 2.8 final. +* nd/apply-doc (2016-03-24) 2 commits + (merged to 'next' on 2016-04-06 at f9bd355) + + git-apply.txt: mention the behavior inside a subdir + + git-apply.txt: remove a space -* jc/bundle (2016-03-03) 6 commits - - index-pack: --clone-bundle option - - Merge branch 'jc/index-pack' into jc/bundle - - bundle v3: the beginning - - bundle: keep a copy of bundle file name in the in-core bundle header - - bundle: plug resource leak - - bundle doc: 'verify' is not about verifying the bundle + A minor documentation update. - The beginning of "split bundle", which could be one of the - ingredients to allow "git clone" traffic off of the core server - network to CDN. + Will merge to 'master'. -* ss/receive-pack-parse-options (2016-03-01) 1 commit - (merged to 'next' on 2016-04-04 at fd6ab4c) - + builtin/receive-pack.c: use parse_options API +* nd/apply-report-skip (2016-03-24) 1 commit + (merged to 'next' on 2016-04-06 at ae2c824) + + apply: report patch skipping in verbose mode - Originally merged to 'next' on 2016-03-04 + "git apply -v" learned to report paths in the patch that were + skipped via --include/--exclude mechanism or being outside the + current working directory. - The command line argument parser for "receive-pack" has been - rewritten to use parse-options. + Will merge to 'master'. - Will merge to 'master' after 2.8 final. +* pb/opt-cmdmode-doc (2016-03-25) 1 commit + (merged to 'next' on 2016-04-06 at a5f3835) + + api-parse-options.txt: document OPT_CMDMODE() -* jk/submodule-c-credential (2016-03-23) 7 commits - (merged to 'next' on 2016-04-04 at 8de8e8c) - + git_config_push_parameter: handle empty GIT_CONFIG_PARAMETERS - + git: submodule honor -c credential.* from command line - + quote: implement sq_quotef() - + submodule: fix segmentation fault in submodule--helper clone - + submodule: fix submodule--helper clone usage - + submodule: check argc count for git submodule--helper clone - + submodule: don't pass empty string arguments to submodule--helper clone + Minor API documentation update. - Originally merged to 'next' on 2016-03-23 + Will merge to 'master'. - "git -c credential.= submodule" can now be used to - propagate configuration variables related to credential helper - down to the submodules. - Will merge to 'master' after 2.8 final. +* rt/completion-help (2016-03-24) 2 commits + (merged to 'next' on 2016-04-06 at 8c3ee08) + + completion: add 'revisions' and 'everyday' to 'git help' + + completion: add option '--guides' to 'git help' + Shell completion (in contrib/) updates. -* nd/shallow-deepen (2016-02-23) 25 commits - - fetch, upload-pack: --deepen=N extends shallow boundary by N commits - - upload-pack: add get_reachable_list() - - upload-pack: split check_unreachable() in two, prep for get_reachable_list() - - t5500, t5539: tests for shallow depth excluding a ref - - clone: define shallow clone boundary with --shallow-exclude - - fetch: define shallow boundary with --shallow-exclude - - upload-pack: support define shallow boundary by excluding revisions - - refs: add expand_ref() - - t5500, t5539: tests for shallow depth since a specific date - - clone: define shallow clone boundary based on time with --shallow-since - - fetch: define shallow boundary with --shallow-since - - upload-pack: add deepen-since to cut shallow repos based on time - - shallow.c: implement a generic shallow boundary finder based on rev-list - - fetch-pack: use a separate flag for fetch in deepening mode - - fetch-pack: use a common function for verbose printing - - fetch-pack: use skip_prefix() instead of starts_with() - - upload-pack: move rev-list code out of check_non_tip() - - upload-pack: tighten number parsing at "deepen" lines - - upload-pack: use skip_prefix() instead of starts_with() - - upload-pack: move "unshallow" sending code out of deepen() - - upload-pack: remove unused variable "backup" - - upload-pack: move "shallow" sending code out of deepen() - - upload-pack: move shallow deepen code out of receive_needs() - - transport-helper.c: refactor set_helper_option() - - remote-curl.c: convert fetch_git() to use argv_array + Will merge to 'master'. - The existing "git fetch --depth=" option was hard to use - correctly when making the history of an existing shallow clone - deeper. A new option, "--deepen=", has been added to make this - easier to use. "git clone" also learned "--shallow-since=" - and "--shallow-exclude=" options to make it easier to specify - "I am interested only in the recent N months worth of history" and - "Give me only the history since that version". - Needs review. +* rt/rebase-i-shorten-stop-report (2016-03-28) 1 commit + (merged to 'next' on 2016-04-06 at 7a766b7) + + rebase-i: print an abbreviated hash when stop for editing + The commit object name reported when "rebase -i" stops has been + shortened. -* sb/submodule-init (2016-03-15) 2 commits - . submodule: port init from shell to C - . submodule: port resolve_relative_url from shell to C - (this branch uses sb/submodule-parallel-update; is tangled with sb/clone-shallow-passthru.) + Will merge to 'master'. - Update of "git submodule" to move pieces of logic to C continues. - Needs review. - ($gmane/288824) +* jk/check-repository-format (2016-03-11) 10 commits + (merged to 'next' on 2016-04-06 at a0dada0) + + verify_repository_format: mark messages for translation + + setup: drop repository_format_version global + + setup: unify repository version callbacks + + init: use setup.c's repo version verification + + setup: refactor repo format reading and verification + + config: drop git_config_early + + check_repository_format_gently: stop using git_config_early + + lazily load core.sharedrepository + + wrap shared_repository global in get/set accessors + + setup: document check_repository_format() + The repository set-up sequence has been streamlined (the biggest + change is that there is no longer git_config_early()), so that we + do not attempt to look into refs/* when we know we do not have a + Git repository. -* az/p4-bare-no-rebase (2016-02-19) 1 commit - - git-p4.py: Don't try to rebase on submit from bare repository + Will merge to 'master'. - "git p4 submit" attempts to do a rebase, which would fail if done - in a bare repository. Not doing this rebase would paper over the - failure, which is what this patch does, but it is unclear what the - side effect of not rebasing is. - Needs a better explanation. +* mj/pull-rebase-autostash (2016-04-04) 9 commits + (merged to 'next' on 2016-04-06 at b4e4f31) + + t5520: test --[no-]autostash with pull.rebase=true + + t5520: reduce commom lines of code + + t5520: factor out common "failing autostash" code + + t5520: factor out common "successful autostash" code + + t5520: use better test to check stderr output + + t5520: ensure consistent test conditions + + t5520: use consistent capitalization in test titles + + pull --rebase: add --[no-]autostash flag + + git-pull.c: introduce git_pull_config() + "git pull --rebase" learned "--[no-]autostash" option, so that + the rebase.autostash configuration variable set to true can be + overridden from the command line. -* ss/commit-dry-run-resolve-merge-to-no-op (2016-02-17) 1 commit - - wt-status.c: set commitable bit if there is a meaningful merge. + Will merge to 'master'. - "git commit --dry-run" reported "No, no, you cannot commit." in one - case where "git commit" would have allowed you to commit, and this - improves it a little bit ("git commit --dry-run --short" still does - not give you the correct answer, for example). +* pb/commit-verbose-config (2016-03-14) 1 commit + (merged to 'next' on 2016-04-06 at e5c744f) + + commit: add a commit.verbose config variable -* nd/icase (2016-02-15) 12 commits - - grep.c: reuse "icase" variable - - diffcore-pickaxe: support case insensitive match on non-ascii - - diffcore-pickaxe: "share" regex error handling code - - grep/pcre: support utf-8 - - gettext: add is_utf8_locale() - - grep/pcre: prepare locale-dependent tables for icase matching - - grep/icase: avoid kwsset when -F is specified - - grep/icase: avoid kwsset on literal non-ascii strings - - test-regex: expose full regcomp() to the command line - - test-regex: isolate the bug test code - - grep: break down an "if" stmt in preparation for next changes - - grep: allow -F -i combination + "git commit" learned to pay attention to "commit.verbose" + configuration variable and act as if "--verbose" option was + given from the command line. - "git grep -i" has been taught to fold case in non-ascii locales. + Will merge to 'master'. - Needs review. - ($gmane/286137) +* jc/merge-refuse-new-root (2016-03-23) 1 commit + (merged to 'next' on 2016-04-04 at cd70fd6) + + merge: refuse to create too cool a merge by default -* sb/submodule-parallel-update (2016-03-01) 10 commits - (merged to 'next' on 2016-04-04 at a0aea8d) - + clone: allow an explicit argument for parallel submodule clones - + submodule update: expose parallelism to the user - + submodule helper: remove double 'fatal: ' prefix - + git submodule update: have a dedicated helper for cloning - + run_processes_parallel: rename parameters for the callbacks - + run_processes_parallel: treat output of children as byte array - + submodule update: direct error message to stderr - + fetching submodules: respect `submodule.fetchJobs` config option - + submodule-config: drop check against NULL - + submodule-config: keep update strategy around - (this branch is used by sb/clone-shallow-passthru and sb/submodule-init.) + Originally merged to 'next' on 2016-03-23 - Originally merged to 'next' on 2016-03-15 + "git merge" used to allow merging two branches that have no common + base by default, which led to a brand new history of an existing + project created and then get pulled by an unsuspecting maintainer, + which allowed an unnecessary parallel history merged into the + existing project. The command has been taught not to allow this by + default, with an escape hatch "--allow-unrelated-histories" option + to be used in a rare event that merges histories of two projects + that started their lives independently. - A major part of "git submodule update" has been ported to C to take - advantage of the recently added framework to run download tasks in - parallel. + Will merge to 'master'. - Will merge to 'master' after 2.8 final. +* lt/pretty-expand-tabs (2016-04-04) 4 commits + (merged to 'next' on 2016-04-06 at 186ac2a) + + pretty: test --expand-tabs + + pretty: allow tweaking tabwidth in --expand-tabs + + pretty: enable --expand-tabs by default for selected pretty formats + + pretty: expand tabs in indented logs to make things line up properly -* dt/refs-backend-lmdb (2016-02-25) 45 commits - . SQUASH??? Minimum compilation band-aid - . tests: add ref-storage argument - . refs: tests for lmdb backend - . refs: add LMDB refs storage backend - . refs: break out resolve_ref_unsafe_submodule - . config: read ref storage config on startup - . refs: register ref storage backends - . svn: learn ref-storage argument - . clone: allow ref storage backend to be set for clone - . refs: check submodules' ref storage config - . init: allow alternate ref strorage to be set for new repos - . refs: always handle non-normal refs in files backend - . refs: resolve symbolic refs first - . refs: on symref reflog expire, lock symref not referrent - . refs: don't dereference on rename - . refs: allow log-only updates - . refs: move duplicate check to common code - . refs: make lock generic - . refs: handle non-normal ref renames - . refs: add method to rename refs - . refs: add methods to init refs db - . refs: add method for delete_refs - . refs: add method for initial ref transaction commit - . refs: add methods for reflog - . refs: add do_for_each_per_worktree_ref - . refs: reduce the visibility of do_for_each_ref() - . refs: add method for do_for_each_ref - . refs: add methods for misc ref operations - . refs: add a backend method structure with transaction functions - . refs: move resolve_ref_unsafe into common code - . files-backend: break out ref reading - . refs: move for_each_*ref* functions into common code - . refs: move head_ref{,_submodule} to the common code - . Merge branch 'sb/submodule-parallel-update' into dt/refs-backend-lmdb - . clone: allow an explicit argument for parallel submodule clones - . submodule update: expose parallelism to the user - . git submodule update: have a dedicated helper for cloning - . run_processes_parallel: correctly terminate callbacks with an LF - . run_processes_parallel: rename parameters for the callbacks - . run-command: expose default_{start_failure, task_finished} - . run_processes_parallel: treat output of children as byte array - . submodule update: direct error message to stderr - . fetching submodules: respect `submodule.fetchJobs` config option - . submodule-config: drop check against NULL - . submodule-config: keep update strategy around + When "git log" shows the log message indented by 4-spaces, the + remainder of a line after a HT does not align in the way the author + originally intended. The command now expands tabs by default in + such a case, and allows the users to override it with a new option, + '--no-expand-tabs'. - A reroll exists, but it seems that will further be rerolled. + Will merge to 'master'. + + +* cc/apply (2016-04-01) 4 commits + (merged to 'next' on 2016-04-06 at 2e23c44) + + builtin/apply: free patch when parse_chunk() fails + + builtin/apply: handle parse_binary() failure + + apply: remove unused call to free() in gitdiff_{old,new}name() + + builtin/apply: get rid of useless 'name' variable + + Minor code clean-up. + + Will merge to 'master'. + + +* dt/index-helper (2016-03-23) 18 commits + - SQUASH - minimum compilation fix + - read-cache: config for waiting for index-helper + - index-helper: optionally automatically run + - index-helper: autorun mode + - index-helper: don't run if already running + - index-helper: kill mode + - unpack-trees: preserve index extensions + - update-index: enable/disable watchman support + - index-helper: use watchman to avoid refreshing index with lstat() + - Add watchman support to reduce index refresh cost + - read-cache: invalidate untracked cache data when reading WAMA + - read-cache: add watchman 'WAMA' extension + - index-helper: add --detach + - daemonize(): set a flag before exiting the main process + - index-helper: add --strict + - index-helper: new daemon for caching index and related stuff + - read-cache: allow to keep mmap'd memory after reading + - read-cache.c: fix constness of verify_hdr() + + Needs review. + + +* jc/bundle (2016-03-03) 6 commits + - index-pack: --clone-bundle option + - Merge branch 'jc/index-pack' into jc/bundle + - bundle v3: the beginning + - bundle: keep a copy of bundle file name in the in-core bundle header + - bundle: plug resource leak + - bundle doc: 'verify' is not about verifying the bundle + + The beginning of "split bundle", which could be one of the + ingredients to allow "git clone" traffic off of the core server + network to CDN. * ad/cygwin-wants-rename (2015-08-07) 1 commit @@ -1034,7 +980,7 @@ of the repositories listed at ($gmane/275680). -* jc/rerere-multi (2016-03-28) 11 commits +* jc/rerere-multi (2016-04-06) 11 commits - rerere: adjust 'forget' to multi-variant world order - rerere: split code to call ll_merge() further - rerere: move code related to "forget" together @@ -1051,14 +997,16 @@ of the repositories listed at signature that have to be resolved in different ways, but there was no way to record these separate resolutions. - Need to send out the final round of review as this should be now complete. + Will merge to 'next'. * jc/merge-drop-old-syntax (2015-04-29) 1 commit - merge: drop 'git merge HEAD ' syntax Stop supporting "git merge HEAD " syntax that has - been deprecated since October 2007. It has been reported that - git-gui still uses the deprecated syntax, which needs to be fixed - before this final step can proceed. + been deprecated since October 2007, and issues a deprecation + warning message since v2.5.0. + + It has been reported that git-gui still uses the deprecated syntax, + which needs to be fixed before this final step can proceed. ($gmane/282594)