diff --git a/whats-cooking.txt b/whats-cooking.txt index 55b4a9935f..4062d696a2 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 (Jan 2016, #04; Wed, 20) -X-master-at: 3ee1e0fe11e2eb617170d0487fccfffc67f2b82b -X-next-at: 9df04547ff2623b1b0f211cc82ef42c01b6dd101 +Subject: What's cooking in git.git (Jan 2016, #05; Tue, 26) +X-master-at: d10e2cb9d0299a26f43d57dd5bdcf2b3f86a30b3 +X-next-at: 2d793f61b3b211a574b86fbf9750d86a2ebf6ae1 -What's cooking in git.git (Jan 2016, #04; Wed, 20) +What's cooking in git.git (Jan 2016, #05; Tue, 26) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,11 +12,14 @@ 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 'master' now has second batch of topics merged, some of +The tip of 'master' now has a few batches of topics merged, some of which should later be merged to 'maint'. There are a few topics that are v2.7.0 regression fixes still cooking outside 'master', which also need to be merged to 'maint' for the maintenance release. +A big thank-you to Elia Pinto for resurrecting a long-stalled http +proxy-auth topic. + You can find the changes described here in the integration branches of the repositories listed at @@ -25,482 +28,14 @@ repositories listed at -------------------------------------------------- [Graduated to "master"] -* dk/reflog-walk-with-non-commit (2016-01-05) 1 commit - (merged to 'next' on 2016-01-12 at 5f7b10e) - + reflog-walk: don't segfault on non-commit sha1's in the reflog - - "git reflog" incorrectly assumed that all objects that used to be - at the tip of a ref must be commits, which caused it to segfault. - - -* dw/signoff-doc (2016-01-05) 1 commit - (merged to 'next' on 2016-01-12 at 1b08b48) - + Expand documentation describing --signoff - - The documentation has been updated to hint the connection between - the '--signoff' option and DCO. - - -* ew/for-each-ref-doc (2016-01-05) 1 commit - (merged to 'next' on 2016-01-12 at e5c4e75) - + for-each-ref: document `creatordate` and `creator` fields - - -* ew/send-email-mutt-alias-fix (2016-01-04) 1 commit - (merged to 'next' on 2016-01-12 at 84d1329) - + git-send-email: do not double-escape quotes from mutt - - "git send-email" was confused by escaped quotes stored in the alias - files saved by "mutt", which has been corrected. - - -* ho/gitweb-squelch-undef-warning (2016-01-12) 1 commit - (merged to 'next' on 2016-01-12 at ef4fc5f) - + gitweb: squelch "uninitialized value" warning - - Asking gitweb for a nonexistent commit left a warning in the server - log. - - Somebody may want to follow this up with a new test, perhaps? - IIRC, we do test that no Perl warnings are given to the server log, - so this should have been caught if our test coverage were good. - - -* jk/clang-pedantic (2016-01-04) 2 commits - (merged to 'next' on 2016-01-12 at b5be271) - + bswap: add NO_UNALIGNED_LOADS define - + avoid shifting signed integers 31 bits - - A few unportable C construct have been spotted by clang compiler - and have been fixed. - - -* jk/pack-revindex (2015-12-21) 2 commits - (merged to 'next' on 2016-01-12 at 2e39a16) - + pack-revindex: store entries directly in packed_git - + pack-revindex: drop hash table - - In-core storage of the reverse index for .pack files (which lets - you go from a pack offset to an object name) has been streamlined. - - -* js/fopen-harder (2016-01-11) 2 commits - (merged to 'next' on 2016-01-12 at c6ef194) - + Handle more file writes correctly in shared repos - + commit: allow editing the commit message even in shared repos - - Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR - (e.g. COMMIT_EDITMSG) that is meant to be left after the command is - done. This however did not work well if the repository is set to - be shared with core.sharedRepository and the umask of the previous - user is tighter. They have been made to work better by calling - unlink(2) and retrying after fopen(3) fails with EPERM. - - -* mh/notes-allow-reading-treeish (2016-01-12) 1 commit - (merged to 'next' on 2016-01-12 at 7aa311f) - + notes: allow treeish expressions as notes ref - - Originally merged to 'next' on 2015-10-23 - - Some "git notes" operations, e.g. "git log --notes=", should - be able to read notes from any tree-ish that is shaped like a notes - tree, but the notes infrastructure required that the argument must - be a ref under refs/notes/. Loosen it to require a valid ref only - when the operation would update the notes (in which case we must - have a place to store the updated notes tree, iow, a ref). - - -* nd/clear-gitenv-upon-use-of-alias (2015-12-29) 5 commits - (merged to 'next' on 2016-01-12 at 696b1f5) - + run-command: don't warn on SIGPIPE deaths - + git.c: make sure we do not leak GIT_* to alias scripts - + setup.c: re-fix d95138e (setup: set env $GIT_WORK_TREE when .. - + git.c: make it clear save_env() is for alias handling only - + Merge branch 'nd/stop-setenv-work-tree' into nd/clear-gitenv-upon-use-of-alias - - d95138e6 (setup: set env $GIT_WORK_TREE when work tree is set, like - $GIT_DIR, 2015-06-26) attempted to work around a glitch in alias - handling by overwriting GIT_WORK_TREE environment variable to - affect subprocesses when set_git_work_tree() gets called, which - resulted in a rather unpleasant regression to "clone" and "init". - Try to address the same issue by always restoring the environment - and respawning the real underlying command when handling alias. - - -* nd/dir-exclude-cleanup (2015-12-28) 1 commit - (merged to 'next' on 2016-01-12 at e6584c9) - + dir.c: clean the entire struct in clear_exclude_list() - - The "exclude_list" structure has the usual "alloc, nr" pair of - fields to be used by ALLOC_GROW(), but clear_exclude_list() forgot - to reset 'alloc' to 0 when it cleared 'nr' to discard the managed - array. - - -* nd/exclusion-regression-fix (2016-01-08) 1 commit - (merged to 'next' on 2016-01-12 at 0eb98a5) - + Revert "dir.c: don't exclude whole dir prematurely if neg pattern may match" - - The ignore mechanism saw a few regressions around untracked file - listing and sparse checkout selection areas in 2.7.0; the change - that is responsible for the regression has been reverted. - - -* nd/ita-cleanup (2015-12-28) 3 commits - (merged to 'next' on 2016-01-12 at 008a6e3) - + grep: make it clear i-t-a entries are ignored - + add and use a convenience macro ce_intent_to_add() - + blame: remove obsolete comment - - Paths that have been told the index about with "add -N" are not - quite yet in the index, but a few commands behaved as if they - already are in a harmful way. - - -* sg/t6050-failing-editor-test-fix (2016-01-05) 1 commit - (merged to 'next' on 2016-01-12 at dc08a19) - + t6050-replace: make failing editor test more robust - - -* ss/clone-depth-single-doc (2016-01-08) 3 commits - (merged to 'next' on 2016-01-12 at 16ded8c) - + docs: clarify that --depth for git-fetch works with newly initialized repos - + docs: say "commits" in the --depth option wording for git-clone - + docs: clarify that passing --depth to git-clone implies --single-branch - - Documentation for "git fetch --depth" has been updated for clarity. - - -* ss/user-manual (2015-12-30) 4 commits - (merged to 'next' on 2016-01-12 at c7f0328) - + user-manual: add addition gitweb information - + user-manual: add section documenting shallow clones - + glossary: define the term shallow clone - + user-manual: remove temporary branch entry from todo list - - Drop a few old "todo" items by deciding that the change one of them - suggests is not such a good idea, and doing the change the other - one suggested to do. - - -* tg/grep-no-index-fallback (2016-01-12) 2 commits - (merged to 'next' on 2016-01-12 at 8960bdd) - + builtin/grep: add grep.fallbackToNoIndex config - + t7810: correct --no-index test - - "git grep" by default does not fall back to its "--no-index" - behaviour outside a directory under Git's control (otherwise the - user may by mistake end up running a huge recursive search); with a - new configuration (set in $HOME/.gitconfig--by definition this - cannot be set in the config file per project), this safety can be - disabled. - --------------------------------------------------- -[New Topics] - -* 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) - - -* jk/shortlog (2016-01-19) 7 commits - - shortlog: don't warn on empty author - - shortlog: optimize out useless string list - - shortlog: optimize out useless "" normalization - - shortlog: optimize "--summary" mode - - shortlog: replace hand-parsing of author with pretty-printer - - shortlog: use strbufs to read from stdin - - shortlog: match both "Author:" and "author" on stdin - - "git shortlog" used to accumulate various pieces of information - regardless of what was asked to be shown in the final output. It - has been optimized by noticing what need not to be collected - (e.g. there is no need to collect the log messages when showing - only the number of changes). - - Will merge to 'next'. - - -* jc/peace-with-crlf (2016-01-15) 12 commits - - test-sha1-array: read command stream with strbuf_getline() - - grep: read -f file with strbuf_getline() - - send-pack: read list of refs with strbuf_getline() - - column: read lines with strbuf_getline() - - cat-file: read batch stream with strbuf_getline() - - transport-helper: read helper response with strbuf_getline() - - clone/sha1_file: read info/alternates with strbuf_getline() - - remote.c: read $GIT_DIR/remotes/* with strbuf_getline() - - ident.c: read /etc/mailname with strbuf_getline() - - rev-parse: read parseopt spec with strbuf_getline() - - revision: read --stdin with strbuf_getline() - - hash-object: read --stdin-paths with strbuf_getline() - (this branch uses jc/strbuf-getline.) - - Teach codepaths that communicate with users by reading text files - to be more lenient to editors that write CRLF-terminated lines. - Note that this is only about communication with Git, like feeding - list of object names from the standard input instead of from the - command line, and does not involve files in the working tree. - - Will merge to 'next'. - - -* dg/subtree-test (2016-01-19) 1 commit - - contrib/subtree: Make testing easier - - Needs review. - ($gmane/284277) - - -* jk/filter-branch-no-index (2016-01-19) 1 commit - - filter-branch: resolve $commit^{tree} in no-index case - - A recent optimization to filter-branch in v2.7.0 introduced a - regression when --prune-empty filter is used, which has been - corrected. - - Will merge to 'next'. - - -* jk/sanity (2016-01-19) 1 commit - - test-lib: clarify and tighten SANITY - - The description for SANITY prerequisite the test suite uses has - been clarified both in the comment and in the implementation. - - Will merge to 'next'. - - -* ls/travis-prove-order (2016-01-19) 1 commit - - travis-ci: run previously failed tests first, then slowest to fastest - - By persisting runtime statistics of previous "prove" run, execute - tests that take longer before other ones, to reduce the total - wallclock time when running with Travis CI. - - Waiting for a reroll. - ($gmane/284431) - - -* nd/do-not-move-worktree-manually (2016-01-19) 2 commits - - worktree: stop supporting moving worktrees manually - - worktree.c: fix indentation - - "git worktree" had a broken code that attempted to auto-fix - possible inconsistency that results from end-users moving a - worktree to different places without telling Git (the original - repository needs to maintain backpointers to its worktrees, but - "mv" run by end-users who are not familiar with that fact will - obviously not adjust them), which actually made things worse - when triggered. - - Will merge to 'next'. - - -* sb/submodule-init (2016-01-20) 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.) - - Needs review. - ($gmane/284419) - --------------------------------------------------- -[Stalled] - -* kf/http-proxy-auth-methods (2015-11-04) 3 commits - . SQUASH??? - . http: use credential API to handle proxy authentication - . http: allow selection of proxy authentication method - - New http.proxyAuthMethod configuration variable can be used to - specify what authentication method to use, as a way to work around - proxies that do not give error response expected by libcurl when - CURLAUTH_ANY is used. Also, the codepath for proxy authentication - has been taught to use credential API to store the authentication - material in user's keyrings. - - I ejected this from pu for the moment, as it conflicts with the - pt/http-socks-proxy topic. That is now in master, so it can - be re-rolled on top. - - Anybody wants to help rerolling this? Otherwise will discard. - - -* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits - - t/lib-git-svn: check same httpd module dirs as lib-httpd - - t/lib-httpd: load mod_unixd - - This is the first two commits in a three-patch series $gmane/266962 - - Becoming tired of waiting for a reroll. - with updated log message ($gmane/268061). - Will discard. - - -* 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 - - "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. - - The fix in this patch is broken, unfortunately. - Will discard. - --------------------------------------------------- -[Cooking] - -* js/pull-rebase-i (2016-01-13) 3 commits - (merged to 'next' on 2016-01-20 at a0c5440) - + completion: add missing branch.*.rebase values - + remote: handle the config setting branch.*.rebase=interactive - + pull: allow interactive rebase with --rebase=interactive - - "git pull --rebase" has been extended to allow invoking - "rebase -i". - - Will merge to 'master'. - - -* jk/ok-to-fail-gc-auto-in-rebase (2016-01-13) 1 commit - (merged to 'next' on 2016-01-20 at c9a8e82) - + rebase: ignore failures from "gc --auto" - - "git rebase", unlike all other callers of "gc --auto", did not - ignore the exit code from "gc --auto". - - Will merge to 'master'. - - -* js/close-packs-before-gc (2016-01-13) 4 commits - (merged to 'next' on 2016-01-20 at 16cf87b) - + receive-pack: release pack files before garbage-collecting - + merge: release pack files before garbage-collecting - + am: release pack files before garbage-collecting - + fetch: release pack files before garbage-collecting - - Many codepaths that run "gc --auto" before exiting kept packfiles - mapped and left the file descriptors to them open, which was not - friendly to systems that cannot remove files that are open. They - now close the packs before doing so. - - Will merge to 'master'. - - -* js/msys2 (2016-01-15) 9 commits - - mingw: uglify (a, 0) definitions to shut up warnings - - mingw: squash another warning about a cast - - mingw: avoid warnings when casting HANDLEs to int - - mingw: avoid redefining S_* constants - - compat/winansi: support compiling with MSys2 - - compat/mingw: support MSys2-based MinGW build - - nedmalloc: allow compiling with MSys2's compiler - - config.mak.uname: supporting 64-bit MSys2 - - config.mak.uname: support MSys2 - - Beginning of the upstreaming process of Git for Windows effort. - - Will merge to 'next'. - - -* rp/p4-filetype-change (2016-01-13) 1 commit - (merged to 'next' on 2016-01-20 at 7b5954b) - + git-p4.py: add support for filetype change - - Will merge to 'master'. - - -* tk/interpret-trailers-in-place (2016-01-14) 2 commits - - interpret-trailers: add option for in-place editing - - trailer: allow to write to files other than stdout - - "interpret-trailers" has been taught to optionally update a file in - place, instead of always writing the result to the standard output. - - Will merge to 'next'. - - -* js/dirname-basename (2016-01-15) 5 commits - (merged to 'next' on 2016-01-20 at d198512) - + t0060: loosen overly strict expectations - (merged to 'next' on 2016-01-12 at c3c970a) - + t0060: verify that basename() and dirname() work as expected - + compat/basename.c: provide a dirname() compatibility function - + compat/basename: make basename() conform to POSIX - + Refactor skipping DOS drive prefixes - - dirname() emulation has been added, as Msys2 lacks it. - - Will merge to 'master'. - - -* wp/sha1-name-negative-match (2016-01-13) 2 commits - - object name: introduce '^{/!-}' notation - - test for '!' handling in rev-parse's named commits - - Introduce "^{/!-}" notation to name a commit - reachable from that does not match the given . - - A questionable corner case where commit has no message remains. - - Waiting for review. - ($gmane/283971) - - * ak/format-patch-odir-config (2016-01-13) 1 commit (merged to 'next' on 2016-01-20 at 97c699b) + format-patch: introduce format.outputDirectory configuration - Allow "-o " option to be omitted on the command line of "git - format-patch" if you always use the same directory in your - workflow. - - Will merge to 'master'. - - -* jk/notes-merge-from-anywhere (2016-01-17) 1 commit - - notes: allow merging from arbitrary references - - "git notes merge" used to limit the source of the merged notes tree - to somewhere under refs/notes/ hierarchy, which was too limiting - when inventing a workflow to exchange notes with remote - repositories using remote-tracking notes trees (located in e.g. - refs/remote-notes/ or somesuch). - - Will merge to 'next'. - - -* dt/unpack-compare-entry-optim (2016-01-05) 1 commit - (merged to 'next' on 2016-01-20 at 180dccf) - + do_compare_entry: use already-computed path - - Will merge to 'master'. - - -* jk/symbolic-ref (2016-01-13) 6 commits - (merged to 'next' on 2016-01-20 at 30b5408) - + lock_ref_sha1_basic: handle REF_NODEREF with invalid refs - + lock_ref_sha1_basic: always fill old_oid while holding lock - + checkout,clone: check return value of create_symref - + create_symref: write reflog while holding lock - + create_symref: use existing ref-lock code - + create_symref: modernize variable names - - The low-level code that is used to create symbolic references has - been updated to share more code with the code that deals with - normal references. - - Will merge to 'master'. + "git format-patch" learned to notice format.outputDirectory + configuration variable. This allows "-o " option to be + omitted on the command line if you always use the same directory in + your workflow. * ep/shell-command-substitution-style (2016-01-12) 92 commits @@ -602,10 +137,465 @@ repositories listed at $(command substitution). Coverts contrib/ and much of the t/ directory contents. + +* jk/ok-to-fail-gc-auto-in-rebase (2016-01-13) 1 commit + (merged to 'next' on 2016-01-20 at c9a8e82) + + rebase: ignore failures from "gc --auto" + + "git rebase", unlike all other callers of "gc --auto", did not + ignore the exit code from "gc --auto". + + +* jk/symbolic-ref (2016-01-13) 6 commits + (merged to 'next' on 2016-01-20 at 30b5408) + + lock_ref_sha1_basic: handle REF_NODEREF with invalid refs + + lock_ref_sha1_basic: always fill old_oid while holding lock + + checkout,clone: check return value of create_symref + + create_symref: write reflog while holding lock + + create_symref: use existing ref-lock code + + create_symref: modernize variable names + + The low-level code that is used to create symbolic references has + been updated to share more code with the code that deals with + normal references. + + +* js/close-packs-before-gc (2016-01-13) 4 commits + (merged to 'next' on 2016-01-20 at 16cf87b) + + receive-pack: release pack files before garbage-collecting + + merge: release pack files before garbage-collecting + + am: release pack files before garbage-collecting + + fetch: release pack files before garbage-collecting + + Many codepaths that run "gc --auto" before exiting kept packfiles + mapped and left the file descriptors to them open, which was not + friendly to systems that cannot remove files that are open. They + now close the packs before doing so. + + +* js/pull-rebase-i (2016-01-13) 3 commits + (merged to 'next' on 2016-01-20 at a0c5440) + + completion: add missing branch.*.rebase values + + remote: handle the config setting branch.*.rebase=interactive + + pull: allow interactive rebase with --rebase=interactive + + "git pull --rebase" has been extended to allow invoking + "rebase -i". + + +* rm/subtree-unwrap-tags (2015-11-24) 1 commit + (merged to 'next' on 2016-01-20 at 6373d95) + + contrib/subtree: unwrap tag refs + + "git subtree" (in contrib/) records the tag object name in the + commit log message when a subtree is added using a tag, without + peeling it down to the underlying commit. The tag needs to be + peeled when "git subtree split" wants to work on the commit, but + the command forgot to do so. + + +* rp/p4-filetype-change (2016-01-13) 1 commit + (merged to 'next' on 2016-01-20 at 7b5954b) + + git-p4.py: add support for filetype change + + "git p4" learned to cope with the type of a file getting changed. + +-------------------------------------------------- +[New Topics] + +* lv/add-doc-working-tree (2016-01-21) 1 commit + (merged to 'next' on 2016-01-26 at c5b1ab1) + + git-add doc: do not say working directory when you mean working tree + Will merge to 'master'. -* cc/untracked (2016-01-20) 11 commits +* mk/asciidoctor-bq-workaround (2016-01-20) 1 commit + (merged to 'next' on 2016-01-26 at 19a742a) + + Documentation: remove unnecessary backslashes + + Will merge to 'master'. + + +* nd/diff-with-path-params (2016-01-21) 2 commits + (merged to 'next' on 2016-01-26 at b29a363) + + diff: make -O and --output work in subdirectory + + diff-no-index: do not take a redundant prefix argument + + A few options of "git diff" did not work well when the command was + run from a subdirectory. + + Will merge to 'master'. + + +* tb/complete-word-diff-regex (2016-01-20) 1 commit + (merged to 'next' on 2016-01-26 at a5beecc) + + completion: complete "diff --word-diff-regex=" + + Will merge to 'master'. + + +* tg/ls-remote-symref (2016-01-19) 5 commits + (merged to 'next' on 2016-01-26 at e466ee2) + + ls-remote: add support for showing symrefs + + ls-remote: use parse-options api + + ls-remote: fix synopsis + + ls-remote: document --refs option + + ls-remote: document --quiet option + + Teach "ls-remote" an option to show which branch the remote + repository advertises as its primary by pointing its HEAD at. + + Will merge to 'master'. + + +* jk/ref-cache-non-repository-optim (2016-01-25) 2 commits + (merged to 'next' on 2016-01-26 at 09057bc) + + resolve_gitlink_ref: ignore non-repository paths + + clean: make is_git_repository a public function + + Teach the underlying machinery used by "ls-files -o" and other + commands not to create empty submodule ref cache for a directory + that is not a submodule. This removes a ton of wasted CPU cycles. + + Will merge to 'master'. + + +* jk/completion-rebase (2016-01-25) 1 commit + (merged to 'next' on 2016-01-26 at def3e0b) + + completion: add missing git-rebase options + + Will merge to 'master'. + + +* jk/list-tag-2.7-regression (2016-01-26) 2 commits + (merged to 'next' on 2016-01-26 at fb9ccee) + + tag: do not show ambiguous tag names as "tags/foo" + + t6300: use test_atom for some un-modern tests + + "git tag" started listing a tag "foo" as "tags/foo" when a branch + named "foo" exists in the same repository; remove this unnecessary + disambiguation, which is a regression introduced in v2.7.0. + + Will merge to 'master'. + + +* pw/completion-show-branch (2016-01-25) 1 commit + (merged to 'next' on 2016-01-26 at d0d7735) + + completion: complete show-branch "--date-order" + + Will merge to 'master'. + + +* js/mingw-tests (2016-01-26) 20 commits + - mingw: skip a test in t9130 that cannot pass on Windows + - mingw: do not bother to test funny file names + - mingw: handle the missing POSIXPERM prereq in t9124 + - mingw: avoid illegal filename in t9118 + - mingw: mark t9100's test cases with appropriate prereqs + - Avoid absolute path in t0008 + - mingw: work around pwd issues in the tests + - mingw: fix t9700's assumption about directory separators + - mingw: skip test in t1508 that fails due to path conversion + - tests: turn off git-daemon tests if FIFOs are not available + - mingw: disable mkfifo-based tests + - mingw: accomodate t0060-path-utils for MSYS2 + - mingw: fix t5601-clone.sh + - mingw: let lstat() fail with errno == ENOTDIR when appropriate + - mingw: try to delete target directory before renaming + - mingw: prepare the TMPDIR environment variable for shell scripts + - mingw: factor out Windows specific environment setup + - Git.pm: stop assuming that absolute paths start with a slash + - mingw: do not trust MSYS2's MinGW gettext.sh + - mingw: let's use gettext with MSYS2 + (this branch uses js/msys2.) + + Updates test scripts to remove assumptions that are not portable + between Git for POSIX and Git for Windows, or to skip ones with + expectations that are not satisfiable on Git for Windows. + + Looks mostly done, but I had to tweak a few things, so + Waiting for re-test. + + +* js/xmerge-maker-eol (2016-01-26) 2 commits + - merge-file: ensure that conflict sections match eol style + - merge-file: let conflict markers match end-of-line style of the context + + The low-level merge machinery has been taught to use CRLF line + termination when inserting conflict markers to merged contents that + are themselves CRLF line-terminated. + + Will merge to 'next'. + + +* nd/clear-gitenv-upon-use-of-alias (2016-01-26) 3 commits + - git: simplify environment save/restore logic + - git: protect against unbalanced calls to {save,restore}_env() + - git: remove an early return from save_env_before_alias() + + The automatic typo correction applied to an alias was broken + with a recent change already in 'master'. + + Waiting for a response. + This is my attempt to clarify an original from Duy by splitting it + into a minimal fix and clean-up. + + +* pw/completion-stash (2016-01-26) 1 commit + (merged to 'next' on 2016-01-26 at e41153c) + + completion: update completion arguments for stash + + Will merge to 'master'. + +-------------------------------------------------- +[Stalled] + +* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits + - t/lib-git-svn: check same httpd module dirs as lib-httpd + - t/lib-httpd: load mod_unixd + + This is the first two commits in a three-patch series $gmane/266962 + + Becoming tired of waiting for a reroll. + with updated log message ($gmane/268061). + Will discard. + + +* 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 + + "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. + + The fix in this patch is broken, unfortunately. + Will discard. + +-------------------------------------------------- +[Cooking] + +* kf/http-proxy-auth-methods (2016-01-26) 2 commits + - http: use credential API to handle proxy authentication + - http: allow selection of proxy authentication method + + New http.proxyAuthMethod configuration variable can be used to + specify what authentication method to use, as a way to work around + proxies that do not give error response expected by libcurl when + CURLAUTH_ANY is used. Also, the codepath for proxy authentication + has been taught to use credential API to store the authentication + material in user's keyrings. + + Will merge to 'next'. + + +* 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) + + +* jk/shortlog (2016-01-19) 7 commits + (merged to 'next' on 2016-01-22 at f1c688c) + + shortlog: don't warn on empty author + + shortlog: optimize out useless string list + + shortlog: optimize out useless "" normalization + + shortlog: optimize "--summary" mode + + shortlog: replace hand-parsing of author with pretty-printer + + shortlog: use strbufs to read from stdin + + shortlog: match both "Author:" and "author" on stdin + + "git shortlog" used to accumulate various pieces of information + regardless of what was asked to be shown in the final output. It + has been optimized by noticing what need not to be collected + (e.g. there is no need to collect the log messages when showing + only the number of changes). + + Will merge to 'master'. + + +* jc/peace-with-crlf (2016-01-15) 12 commits + (merged to 'next' on 2016-01-26 at 08724bc) + + test-sha1-array: read command stream with strbuf_getline() + + grep: read -f file with strbuf_getline() + + send-pack: read list of refs with strbuf_getline() + + column: read lines with strbuf_getline() + + cat-file: read batch stream with strbuf_getline() + + transport-helper: read helper response with strbuf_getline() + + clone/sha1_file: read info/alternates with strbuf_getline() + + remote.c: read $GIT_DIR/remotes/* with strbuf_getline() + + ident.c: read /etc/mailname with strbuf_getline() + + rev-parse: read parseopt spec with strbuf_getline() + + revision: read --stdin with strbuf_getline() + + hash-object: read --stdin-paths with strbuf_getline() + (this branch uses jc/strbuf-getline.) + + Teach codepaths that communicate with users by reading text files + to be more lenient to editors that write CRLF-terminated lines. + Note that this is only about communication with Git, like feeding + list of object names from the standard input instead of from the + command line, and does not involve files in the working tree. + + Will merge to 'master'. + + +* dg/subtree-test (2016-01-19) 1 commit + (merged to 'next' on 2016-01-26 at 81f1356) + + contrib/subtree: Make testing easier + + Will merge to 'master'. + + +* jk/filter-branch-no-index (2016-01-19) 1 commit + (merged to 'next' on 2016-01-22 at 312aa2c) + + filter-branch: resolve $commit^{tree} in no-index case + + A recent optimization to filter-branch in v2.7.0 introduced a + regression when --prune-empty filter is used, which has been + corrected. + + Will merge to 'master'. + + +* jk/sanity (2016-01-19) 1 commit + (merged to 'next' on 2016-01-22 at 612cc5f) + + test-lib: clarify and tighten SANITY + + The description for SANITY prerequisite the test suite uses has + been clarified both in the comment and in the implementation. + + Will merge to 'master'. + + +* ls/travis-prove-order (2016-01-26) 2 commits + (merged to 'next' on 2016-01-26 at d8e2a4a) + + travis-ci: explicity use container-based infrastructure + + travis-ci: run previously failed tests first, then slowest to fastest + + By persisting runtime statistics of previous "prove" run, execute + tests that take longer before other ones, to reduce the total + wallclock time when running with Travis CI. + + Will merge to 'master'. + + +* nd/do-not-move-worktree-manually (2016-01-22) 2 commits + (merged to 'next' on 2016-01-26 at c539221) + + worktree: stop supporting moving worktrees manually + + worktree.c: fix indentation + + "git worktree" had a broken code that attempted to auto-fix + possible inconsistency that results from end-users moving a + worktree to different places without telling Git (the original + repository needs to maintain backpointers to its worktrees, but + "mv" run by end-users who are not familiar with that fact will + obviously not adjust them), which actually made things worse + when triggered. + + Will merge to 'master'. + + +* sb/submodule-init (2016-01-25) 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.) + + Major part of "git submodule init" has been ported to C. + + Will have to wait for 'sb/submodule-parallel-update'. + + +* js/msys2 (2016-01-15) 9 commits + (merged to 'next' on 2016-01-22 at 8bab6ab) + + mingw: uglify (a, 0) definitions to shut up warnings + + mingw: squash another warning about a cast + + mingw: avoid warnings when casting HANDLEs to int + + mingw: avoid redefining S_* constants + + compat/winansi: support compiling with MSys2 + + compat/mingw: support MSys2-based MinGW build + + nedmalloc: allow compiling with MSys2's compiler + + config.mak.uname: supporting 64-bit MSys2 + + config.mak.uname: support MSys2 + (this branch is used by js/mingw-tests.) + + Beginning of the upstreaming process of Git for Windows effort. + + Will merge to 'master'. + + +* tk/interpret-trailers-in-place (2016-01-14) 2 commits + (merged to 'next' on 2016-01-22 at 5db0cf8) + + interpret-trailers: add option for in-place editing + + trailer: allow to write to files other than stdout + + "interpret-trailers" has been taught to optionally update a file in + place, instead of always writing the result to the standard output. + + Will merge to 'master'. + + +* js/dirname-basename (2016-01-25) 6 commits + (merged to 'next' on 2016-01-26 at b16b2b8) + + mingw: avoid linking to the C library's isalpha() + (merged to 'next' on 2016-01-20 at d198512) + + t0060: loosen overly strict expectations + (merged to 'next' on 2016-01-12 at c3c970a) + + t0060: verify that basename() and dirname() work as expected + + compat/basename.c: provide a dirname() compatibility function + + compat/basename: make basename() conform to POSIX + + Refactor skipping DOS drive prefixes + + dirname() emulation has been added, as Msys2 lacks it. + + Will merge to 'master'. + + +* wp/sha1-name-negative-match (2016-01-13) 2 commits + - object name: introduce '^{/!-}' notation + - test for '!' handling in rev-parse's named commits + + Introduce "^{/!-}" notation to name a commit + reachable from that does not match the given . + + A questionable corner case where commit has no message remains. + + Waiting for review. + ($gmane/283971) + + +* jk/notes-merge-from-anywhere (2016-01-17) 1 commit + (merged to 'next' on 2016-01-26 at c60ac66) + + notes: allow merging from arbitrary references + + "git notes merge" used to limit the source of the merged notes tree + to somewhere under refs/notes/ hierarchy, which was too limiting + when inventing a workflow to exchange notes with remote + repositories using remote-tracking notes trees (located in e.g. + refs/remote-notes/ or somesuch). + + Will merge to 'master'. + + +* dt/unpack-compare-entry-optim (2016-01-22) 2 commits + (merged to 'next' on 2016-01-26 at 110e053) + + unpack-trees: fix accidentally quadratic behavior + (merged to 'next' on 2016-01-20 at 180dccf) + + do_compare_entry: use already-computed path + + "git checkout $branch" (and other operations that share the same + underlying machinery) has been optimized. + + Will merge to 'master'. + + +* cc/untracked (2016-01-25) 11 commits - t7063: add tests for core.untrackedCache - test-dump-untracked-cache: don't modify the untracked cache - config: add core.untrackedCache @@ -655,47 +645,41 @@ repositories listed at * dw/subtree-split-do-not-drop-merge (2016-01-20) 1 commit - - contrib/subtree: fix "subtree split" skipped-merge bug + (merged to 'next' on 2016-01-26 at 3cfefef) + + contrib/subtree: fix "subtree split" skipped-merge bug The "split" subcommand of "git subtree" (in contrib/) incorrectly skipped merges when it shouldn't, which was corrected. - Will merge to 'next'. + Will merge to 'master'. * kn/ref-filter-atom-parsing (2016-01-05) 15 commits - - ref-filter: introduce objectname_atom_parser() - - ref-filter: introduce contents_atom_parser() - - ref-filter: introduce remote_ref_atom_parser() - - ref-filter: align: introduce long-form syntax - - ref-filter: convert variable 'width' to an unsigned int - - ref-filter: introduce parse_align_position() - - ref-filter: introduce align_atom_parser() - - ref-filter: introduce color_atom_parser() - - ref-filter: skip deref specifier in match_atom_name() - - ref-fitler: bump match_atom() name to the top - - ref-filter: introduce parsing functions for each valid atom - - ref-filter: introduce struct used_atom - - ref-filter: bump 'used_atom' and related code to the top - - ref-filter: use strbuf_split_str_omit_term() - - strbuf: introduce strbuf_split_str_omit_term() + . ref-filter: introduce objectname_atom_parser() + . ref-filter: introduce contents_atom_parser() + . ref-filter: introduce remote_ref_atom_parser() + . ref-filter: align: introduce long-form syntax + . ref-filter: convert variable 'width' to an unsigned int + . ref-filter: introduce parse_align_position() + . ref-filter: introduce align_atom_parser() + . ref-filter: introduce color_atom_parser() + . ref-filter: skip deref specifier in match_atom_name() + . ref-fitler: bump match_atom() name to the top + . ref-filter: introduce parsing functions for each valid atom + . ref-filter: introduce struct used_atom + . ref-filter: bump 'used_atom' and related code to the top + . ref-filter: use strbuf_split_str_omit_term() + . strbuf: introduce strbuf_split_str_omit_term() Refactoring of ref-filter's format-parsing code, in preparation for "branch --format" and friends. - This replaces (for now) kn/for-each-ref-remainder, which will be built - on top. + Ejected as this will need to be rerolled on top of regression fix + for "git tag" that started sharing the internal machinery with + ref-filter that happened in v2.7.0. - Still being discussed and worked on. - - -* bb/merge-marker-crlf (2015-11-24) 1 commit - - merge-file: consider core.crlf when writing merge markers - - Write out merge markers using system end-of-line convention. - - Waiting for a re-roll to handle gitattributes. - ($gmane/281701) + Needs reroll. + ($gmane/284776). * dk/gc-more-wo-pack (2016-01-13) 4 commits @@ -711,38 +695,13 @@ repositories listed at ($gmane/284368). -* rm/subtree-unwrap-tags (2015-11-24) 1 commit - (merged to 'next' on 2016-01-20 at 6373d95) - + contrib/subtree: unwrap tag refs - - "git subtree" (in contrib/) records the tag object name in the - commit log message when a subtree is added using a tag, without - peeling it down to the underlying commit. The tag needs to be - peeled when "git subtree split" wants to work on the commit, but - the command forgot to do so. - - Will merge to 'master'. - - -* sg/sh-require-clean-orphan (2015-11-24) 2 commits - - sh-setup: make require_clean_work_tree() work on orphan branches - - Add tests for git-sh-setup's require_clean_work_tree() - - Allow users of git-sh-setup to handle orphan branch state. - - This series takes the conservative route of requiring scripts to opt - into the looser behavior, at the expense of carrying around a new - option-flag forever. I'm not sure if we need to do so. - - Needs review. - - * tb/ls-files-eol (2016-01-18) 1 commit - - ls-files: add eol diagnostics + (merged to 'next' on 2016-01-26 at bc9246f) + + ls-files: add eol diagnostics Add options to ls-files to help diagnose end-of-line problems. - Will merge to 'next'. + Will merge to 'master'. * ec/annotate-deleted (2015-11-20) 1 commit @@ -772,20 +731,21 @@ repositories listed at * jc/strbuf-getline (2016-01-15) 9 commits - - strbuf: give strbuf_getline() to the "most text friendly" variant - - checkout-index: there are only two possible line terminations - - update-index: there are only two possible line terminations - - check-ignore: there are only two possible line terminations - - check-attr: there are only two possible line terminations - - mktree: there are only two possible line terminations - - strbuf: introduce strbuf_getline_{lf,nul}() - - strbuf: make strbuf_getline_crlf() global - - strbuf: miniscule style fix + (merged to 'next' on 2016-01-22 at 8c4e051) + + strbuf: give strbuf_getline() to the "most text friendly" variant + + checkout-index: there are only two possible line terminations + + update-index: there are only two possible line terminations + + check-ignore: there are only two possible line terminations + + check-attr: there are only two possible line terminations + + mktree: there are only two possible line terminations + + strbuf: introduce strbuf_getline_{lf,nul}() + + strbuf: make strbuf_getline_crlf() global + + strbuf: miniscule style fix (this branch is used by jc/peace-with-crlf.) The preliminary clean-up for jc/peace-with-crlf topic. - Will merge to 'next'. + Will merge to 'master'. * js/am-3-merge-recursive-direct (2015-10-12) 2 commits @@ -818,7 +778,7 @@ repositories listed at ($gmane/275680). -* jc/rerere-multi (2015-09-14) 7 commits +* jc/rerere-multi (2016-01-21) 7 commits - rerere: do use multiple variants - t4200: rerere a merge with two identical conflicts - rerere: allow multiple variants to exist @@ -831,7 +791,7 @@ repositories listed at signature that have to be resolved in different ways, but there was no way to record these separate resolutions. - Needs review. + Needs further work on forget/gc. * jc/merge-drop-old-syntax (2015-04-29) 1 commit @@ -842,3 +802,19 @@ repositories listed at git-gui still uses the deprecated syntax, which needs to be fixed before this final step can proceed. ($gmane/282594) + +-------------------------------------------------- +[Discarded] + +* bb/merge-marker-crlf (2015-11-24) 1 commit + . merge-file: consider core.crlf when writing merge markers + + Resurrected as 'js/xmerge-maker-eol'. + + +* sg/sh-require-clean-orphan (2015-11-24) 2 commits + . sh-setup: make require_clean_work_tree() work on orphan branches + . Add tests for git-sh-setup's require_clean_work_tree() + + Allow users of git-sh-setup to handle orphan branch state. + ($gmane/284488)