2016-06-15 0:08 GMT+02:00 Junio C Hamano <gitster@xxxxxxxxx>: > Here are the topics that have been cooking. Commits prefixed with > '-' are only in 'pu' (proposed updates) while 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. > > Git 2.9 has been tagged. Let's wait for a few days to clean up > possible fallout and then start a new cycle by rewinding the tip of > 'next'. I expect I'd eject a few premature topics out of 'next' > while doing so. > > You can find the changes described here in the integration branches > of the repositories listed at > > http://git-blame.blogspot.com/p/git-public-repositories.html > > -------------------------------------------------- > [Graduated to "master"] > > * jc/t2300-setup (2016-06-01) 1 commit > (merged to 'next' on 2016-06-06 at 20f7f83) > + t2300: run git-sh-setup in an environment that better mimics the real life > (this branch is used by va/i18n-even-more.) > > A test fix. > > > * jk/diff-compact-heuristic (2016-06-10) 1 commit > - diff: disable compaction heuristic for now > > It turns out that the earlier effort to update the heuristics may > want to use a bit more time to mature. Turn it off by default. > > > * jk/shell-portability (2016-06-01) 2 commits > (merged to 'next' on 2016-06-06 at 5de784e) > + t5500 & t7403: lose bash-ism "local" > + test-lib: add in-shell "env" replacement > > test fixes. > > -------------------------------------------------- > [New Topics] > > * lv/status-say-working-tree-not-directory (2016-06-09) 1 commit > - Use "working tree" instead of "working directory" for git status > > "git status" used to say "working directory" when it meant "working > tree". > > Will merge to 'next'. > > > * jk/parseopt-string-list (2016-06-13) 3 commits > - blame,shortlog: don't make local option variables static > - interpret-trailers: don't duplicate option strings > - parse_opt_string_list: stop allocating new strings > (this branch is used by jk/string-list-static-init.) > > The command line argument parsing that uses OPT_STRING_LIST() often > made a copy of the argv[] element, which was unnecessary. > > Will merge to 'next'. > > > * jk/repack-keep-unreachable (2016-06-14) 3 commits > - repack: extend --keep-unreachable to loose objects > - repack: add --keep-unreachable option > - repack: document --unpack-unreachable option > > "git repack" learned the "--keep-unreachable" option, which sends > loose unreachable objects to a pack instead of leaving them loose. > This helps heuristics based on the number of loose objects > (e.g. "gc --auto"). > > Will merge to 'next'. > > > * lf/recv-sideband-cleanup (2016-06-13) 1 commit > - sideband.c: refactor recv_sideband() > > Code simplification. It however loses the atomicity of the output > 9ac13ec9 (atomic write for sideband remote messages, 2006-10-11) > tried to add to an once-much-simpler codebase. > > Expecting a reroll. > > > * nd/test-lib-httpd-show-error-log-in-verbose (2016-06-13) 1 commit > - lib-httpd.sh: print error.log on error > > Debugging aid. > > Will merge to 'next'. > > > * pc/occurred (2016-06-10) 2 commits > - config.c: fix misspelt "occurred" in an error message > - refs.h: fix misspelt "occurred" in a comment > > Will merge to 'next'. > > > * sb/submodule-clone-retry (2016-06-13) 2 commits > - submodule update: continue when a clone fails > - submodule--helper: initial clone learns retry logic > (this branch uses sb/submodule-recommend-shallowness.) > > "git submodule update" that drives many "git clone" could > eventually hit flaky servers/network conditions on one of the > submodules; the command learned to retry the attempt. > > > * jc/blame-reverse (2016-06-14) 2 commits > - blame: dwim "blame --reverse OLD" as "blame --reverse OLD.." > - blame: improve diagnosis for "--reverse NEW" > > > * jc/deref-tag (2016-06-14) 1 commit > - blame, line-log: do not loop around deref_tag() > > Code clean-up. > > Will merge to 'next'. > > > * jk/fetch-prune-doc (2016-06-14) 1 commit > - fetch: document that pruning happens before fetching > > Will merge to 'next'. > > > * km/fetch-do-not-free-remote-name (2016-06-14) 1 commit > - builtin/fetch.c: don't free remote->name after fetch > > Will merge to 'next'. > > > * nb/gnome-keyring-build (2016-06-14) 1 commit > - gnome-keyring: Don't hard-code pkg-config executable > > Build improvements for gnome-keyring (in contrib/) > > Will merge to 'next'. > > > * pb/strbuf-read-file-doc (2016-06-14) 1 commit > - strbuf: describe the return value of strbuf_read_file > > Will merge to 'next'. > > -------------------------------------------------- > [Stalled] > > * sb/bisect (2016-04-15) 22 commits > - SQUASH??? > - bisect: get back halfway shortcut > - bisect: compute best bisection in compute_relevant_weights() > - bisect: use a bottom-up traversal to find relevant weights > - bisect: prepare for different algorithms based on find_all > - bisect: rename count_distance() to compute_weight() > - bisect: make total number of commits global > - bisect: introduce distance_direction() > - bisect: extract get_distance() function from code duplication > - bisect: use commit instead of commit list as arguments when appropriate > - bisect: replace clear_distance() by unique markers > - bisect: use struct node_data array instead of int array > - bisect: get rid of recursion in count_distance() > - bisect: make algorithm behavior independent of DEBUG_BISECT > - bisect: make bisect compile if DEBUG_BISECT is set > - bisect: plug the biggest memory leak > - bisect: add test for the bisect algorithm > - t6030: generalize test to not rely on current implementation > - t: use test_cmp_rev() where appropriate > - t/test-lib-functions.sh: generalize test_cmp_rev > - bisect: allow 'bisect run' if no good commit is known > - bisect: write about `bisect next` in documentation > > The internal algorithm used in "git bisect" to find the next commit > to check has been optimized greatly. > > Expecting a reroll. > ($gmane/291163) > > > * 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 <path>' > . completion: fix completion after 'git -C <path>' > . 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=<path>' when listing remote refs > . completion: fix most spots not respecting 'git --git-dir=<path>' > . 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) > > > * 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. > > Needs a better explanation. > > > * 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 grep -i" has been taught to fold case in non-ascii locales. > > Needs review. > ($gmane/286137) > > > * ec/annotate-deleted (2015-11-20) 1 commit > - annotate: skip checking working tree if a revision is provided > > Usability fix for annotate-specific "<file> <rev>" syntax with deleted > files. > > Waiting for review. > > > * 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) > > > * 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 > > 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. > > 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. > > Will be rerolled. > ($gmane/292205) > > > * 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 > > Follow-on to dk/gc-idx-wo-pack topic, to clean up stale > .bitmap and .keep files. > > Waiting for a reroll. > ($gmane/284368). > > > * 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. > > > * jc/merge-impossible-no-commit (2016-04-26) 2 commits > - merge: warn --no-commit merge when no new commit is created > - merge: do not contaminate option_commit with --squash > > "git merge --no-commit" silently succeeded when there is no need to > create any commit, either when you are more recent than the commit > you tried to merge, or you can fast-forward to the commit you tried > to merge. The command gives a warning message in such cases. > > Just tying loose ends in a discussion. Unless somebody else > champions this topic, I'll drop it. > > Will discard. > > -------------------------------------------------- > [Cooking] > > * nd/shallow-deepen (2016-06-13) 27 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.c: mark strings for translating > - 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: make check_non_tip() clean things up on error > - 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=<n>" option was hard to use > correctly when making the history of an existing shallow clone > deeper. A new option, "--deepen=<n>", has been added to make this > easier to use. "git clone" also learned "--shallow-since=<date>" > and "--shallow-exclude=<tag>" 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". > > Rerolled. > > > * jk/avoid-unbounded-alloca (2016-06-07) 1 commit > - tree-diff: avoid alloca for large allocations > > Will merge to 'next'. > > > * jk/send-pack-stdio (2016-06-10) 2 commits > - write_or_die: remove the unused write_or_whine() function > - send-pack: use buffered I/O to talk to pack-objects > > Code clean-up. > > Will merge to 'next'. > > > * pb/commit-editmsg-path (2016-06-09) 1 commit > - builtin/commit.c: memoize git-path for COMMIT_EDITMSG > > Code clean-up. > > Will merge to 'next'. > > > * wd/userdiff-css (2016-06-03) 1 commit > (merged to 'next' on 2016-06-06 at 536102f) > + userdiff: add built-in pattern for CSS > > Update the funcname definition to support css files. > > Will merge to 'master' after 2.9 final. > > > * jc/attr-more (2016-06-09) 8 commits > - attr.c: outline the future plans by heavily commenting > - attr.c: always pass check[] to collect_some_attrs() > - attr.c: introduce empty_attr_check_elems() > - attr.c: correct ugly hack for git_all_attrs() > - attr.c: rename a local variable check > - fixup! d5ad6c13 > - attr.c: pass struct git_attr_check down the callchain > - attr.c: add push_stack() helper > (this branch uses jc/attr; is tangled with sb/pathspec-label and sb/submodule-default-paths.) > > The beginning of long and tortuous journey to clean-up attribute > subsystem implementation. > > > * jk/rev-list-count-with-bitmap (2016-06-03) 2 commits > (merged to 'next' on 2016-06-06 at dd9b30f) > + rev-list: disable bitmaps when "-n" is used with listing objects > + rev-list: "adjust" results of "--count --use-bitmap-index -n" > > "git rev-list --count" whose walk-length is limited with "-n" > option did not work well with the counting optimized to look at the > bitmap index. > > Will merge to 'master' after 2.9 final. > > > * mh/ref-iterators (2016-06-03) 13 commits > (merged to 'next' on 2016-06-06 at c8e79dc) > + for_each_reflog(): reimplement using iterators > + dir_iterator: new API for iterating over a directory tree > + for_each_reflog(): don't abort for bad references > + do_for_each_ref(): reimplement using reference iteration > + refs: introduce an iterator interface > + ref_resolves_to_object(): new function > + entry_resolves_to_object(): rename function from ref_resolves_to_object() > + get_ref_cache(): only create an instance if there is a submodule > + remote rm: handle symbolic refs correctly > + delete_refs(): add a flags argument > + refs: use name "prefix" consistently > + do_for_each_ref(): move docstring to the header file > + refs: remove unnecessary "extern" keywords > (this branch is used by mh/ref-store; uses mh/split-under-lock; is tangled with mh/update-ref-errors.) > > The API to iterate over all the refs (i.e. for_each_ref(), etc.) > has been revamped. > > Will merge to 'master' after 2.9 final. > > > * ew/mboxrd-format-am (2016-06-06) 3 commits > - am: support --patch-format=mboxrd > - mailsplit: support unescaping mboxrd messages > - pretty: support "mboxrd" output format > > Teach format-patch and mailsplit (hence "am") how a line that > happens to begin with "From " in the e-mail message is quoted with > ">", so that these lines can be restored to their original shape. > > > * lf/receive-pack-auto-gc-to-client (2016-06-06) 1 commit > - receive-pack: send auto-gc output over sideband 2 > > Allow messages that are generated by auto gc during "git push" on > the receiving end to be explicitly passed back to the sending end > over sideband, so that they are shown with "remote: " prefix to > avoid confusing the users. > > > * mg/cherry-pick-multi-on-unborn (2016-06-06) 1 commit > - cherry-pick: allow to pick to unborn branches > > "git cherry-pick A" worked on an unborn branch, but "git > cherry-pick A..B" didn't. > > > * mj/log-show-signature-conf (2016-06-06) 2 commits > - log: "--no-show-signature" commmand-line option > - log: add "log.showsignature" configuration variable > > "git log" learns log.showSignature configuration variable, and a > command line option "--no-show-signature" to countermand it. > > The order of the commits in the topic need to be reversed. > > > * nd/i-t-a-commitable (2016-06-06) 3 commits > - commit: don't count i-t-a entries when checking if the new commit is empty > - Resurrect "diff-lib.c: adjust position of i-t-a entries in diff" > - diff.h: extend "flags" field to 64 bits because we're out of bits > > "rm .git/index && git add -N * && git commit" allows you to create > an empty commit without --allow-empty; attempt to forbid it. > > Breaks many tests by completely butchering "git commit", it seems. > > > * sg/reflog-past-root (2016-06-06) 1 commit > - reflog: continue walking the reflog past root commits > > "git reflog" stopped upon seeing an entry that denotes a branch > creation event (aka "unborn"), which made it appear as if the > reflog was truncated. > > > * tb/complete-status (2016-06-10) 3 commits > - completion: add git status > - completion: add __git_get_option_value helper > - completion: factor out untracked file modes into a variable > > The completion script (in contrib/) learned to complete "git > status" options. > > > * tr/doc-tt (2016-06-08) 4 commits > - doc: change configuration variables format > - doc: more consistency in environment variables format > - doc: change environment variables format > - doc: clearer rule about formatting literals > > The documentation set has been updated so that literal commands, > configuration variables and environment variables are consistently > typeset in fixed-width font and bold in manpages. > > Will merge to 'next'. > > > * vs/prompt-avoid-unset-variable (2016-06-06) 1 commit > - git-prompt.sh: Don't error on null ${ZSH,BASH}_VERSION, $short_sha > > The git-prompt scriptlet (in contrib/) was not friendly with those > who uses "set -u", which has been fixed. > > > * rj/compat-regex-size-max-fix (2016-06-06) 1 commit > - regex: fix a SIZE_MAX macro redefinition warning > > A compilation fix. > > Will merge to 'next'. > > > * bc/cocci-object-id (2016-06-06) 8 commits > - merge-recursive: convert merge_recursive_generic to object_id > - merge-recursive: convert leaf functions to use struct object_id > - merge-recursive: convert struct merge_file_info to object_id > - merge-recursive: convert struct stage_data to use object_id > - Rename struct diff_filespec's sha1_valid member. > - Convert struct diff_filespec to struct object_id > - Apply standard object_id Coccinelle transformations. > - Add basic Coccinelle transforms. > > Move from "unsigned char [20]" to "struct object_id" continues, > with help from an automated tool. > > > * et/add-chmod-x (2016-06-07) 1 commit > - add: add --chmod=+x / --chmod=-x options > > "git update-index --add --chmod=+x file" may be usable as an escape > hatch, but not a friendly thing to force for people who do need to > use it regularly. "git add --chmod=+x file" can be used instead. > > Will merge to 'next'. > > > * mh/connect (2016-06-06) 10 commits > - connect: [host:port] is legacy for ssh > - connect: move ssh command line preparation to a separate function > - connect: actively reject git:// urls with a user part > - connect: change the --diag-url output to separate user and host > - connect: make parse_connect_url() return the user part of the url as a separate value > - connect: group CONNECT_DIAG_URL handling code > - connect: make parse_connect_url() return separated host and port > - connect: re-derive a host:port string from the separate host and port variables > - connect: call get_host_and_port() earlier > - connect: document why we sometimes call get_port after get_host_and_port > > Ok, folks, is everybody happy with this version? > > > * aq/upload-pack-use-parse-options (2016-05-31) 1 commit > (merged to 'next' on 2016-06-06 at 505f1ee) > + upload-pack.c: use parse-options API > > "git upload-pack" command has been updated to use the parse-options > API. > > Will merge to 'master' after 2.9 final. > > > * jc/clear-pathspec (2016-06-02) 1 commit > (merged to 'next' on 2016-06-06 at 9e7e291) > + pathspec: rename free_pathspec() to clear_pathspec() > > We usually call a function that clears the contents a data > structure X without freeing the structure itself clear_X(), and > call a function that does clear_X() and also frees it free_X(). > free_pathspec() function has been renamed to clear_pathspec() > to avoid confusion. > > Will merge to 'master' after 2.9 final. > > > * sb/submodule-recommend-shallowness (2016-05-27) 2 commits > (merged to 'next' on 2016-05-31 at 1ee161c) > + submodule update: learn `--[no-]recommend-shallow` option > + submodule-config: keep shallow recommendation around > (this branch is used by sb/submodule-clone-retry.) > > An upstream project can make a recommendation to make only a > shallow clone for some submodules in the .gitmodules file it ship. > > Will merge to 'master' after 2.9 final. > > > * tb/convert-peek-in-index (2016-06-07) 3 commits > - correct ce_compare_data() in a middle of a merge > - read-cache: factor out get_sha1_from_index() helper > - convert: unify the "auto" handling of CRLF > > Needs review. > > > * va/i18n-even-more (2016-06-07) 38 commits > - i18n: branch: mark comment when editing branch description for translation > - i18n: unmark die messages for translation > - i18n: submodule: escape shell variables inside eval_gettext > - i18n: submodule: join strings marked for translation > - i18n: init-db: join message pieces > - i18n: remote: allow translations to reorder message > - i18n: remote: mark URL fallback text for translation > - i18n: standardise messages > - i18n: sequencer: add period to error message > - i18n: merge: change command option help to lowercase > - i18n: merge: mark messages for translation > - i18n: notes: mark options for translation > - i18n: notes: mark strings for translation > - i18n: transport-helper.c: change N_() call to _() > - i18n: bisect: mark strings for translation > - t5523: use test_i18ngrep for negation > - t4153: fix negated test_i18ngrep call > - t9003: become resilient to GETTEXT_POISON > - tests: unpack-trees: update to use test_i18n* functions > - tests: use test_i18n* functions to suppress false positives > - i18n: setup: mark strings for translation > - i18n: rebase-interactive: mark comments of squash for translation > - i18n: rebase-interactive: mark here-doc strings for translation > - i18n: rebase-interactive: mark strings for translation > - i18n: git-sh-setup.sh: mark strings for translation > - t6030: update to use test_i18ncmp > - i18n: bisect: simplify error message for i18n > - i18n: rebase: mark placeholder for translation > - i18n: rebase: fix marked string to use eval_gettext variant > - merge-octupus: use die shell function from git-sh-setup.sh > - i18n: merge-octopus: mark messages for translation > - i18n: sequencer: mark string for translation > - i18n: sequencer: mark entire sentences for translation > - i18n: transport: mark strings for translation > - i18n: advice: internationalize message for conflicts > - i18n: advice: mark string about detached head for translation > - i18n: builtin/remote.c: fix mark for translation > - Merge branch 'jc/t2300-setup' into HEAD > > More markings of messages for i18n, with updates to various tests > to pass GETTEXT_POISON tests. > > One patch from the original submission dropped due to conflicts > with other topics in flight. > > > * jg/dash-is-last-branch-in-worktree-add (2016-05-31) 1 commit > (merged to 'next' on 2016-06-02 at 3959ef6) > + worktree: allow "-" short-hand for @{-1} in add command > > "git worktree add" learned that '-' can be used as a short-hand for > "@{-1}", the previous branch. > > Will merge to 'master' after 2.9 final. > > > * dk/blame-move-no-reason-for-1-line-context (2016-05-29) 1 commit > - blame: require 0 context lines while finding moved lines with -M > > "git blame -M" missed a single line that was moved within the file. > > We may want to squash a test or two to this commit. Volunteers? > > > * nd/worktree-lock (2016-06-13) 6 commits > - worktree.c: find_worktree() search by path suffix > - worktree: add "unlock" command > - worktree: add "lock" command > - worktree.c: add is_worktree_locked() > - worktree.c: add is_main_worktree() > - worktree.c: add find_worktree() > (this branch uses nd/worktree-cleanup-post-head-protection.) > > "git worktree prune" protected worktrees that are marked as > "locked" by creating a file in a known location. "git worktree" > command learned a dedicated command pair to create and remoev such > a file, so that the users do not have to do this with editor. > > Ok, folks, is everybody happy with this version? > > > * et/pretty-format-c-auto (2016-05-27) 1 commit > (merged to 'next' on 2016-05-31 at 1e9c920) > + format_commit_message: honor `color=auto` for `%C(auto)` > > %C(auto) in a custom format string that commands in `git log` > family takes unconditionally turned the color on, ignoring > --no-color or --color=auto with output not connected to a tty; > this was corrected to make the format truly behave as "auto". > > Will merge to 'master' after 2.9 final. > > > * ew/daemon-socket-keepalive (2016-05-25) 1 commit > (merged to 'next' on 2016-05-31 at c32acf1) > + daemon: enable SO_KEEPALIVE for all sockets > > When "git daemon" is run without --[init-]timeout specified, a > connection from a client that silently goes offline can hang around > for a long time, wasting resources. The socket-level KEEPALIVE has > been enabled to allow the OS to notice such failed connections. > > Will merge to 'master' after 2.9 final. > > > * jk/upload-pack-hook (2016-06-02) 7 commits > - upload-pack: provide a hook for running pack-objects > - t1308: do not get fooled by symbolic links to the source tree > - config: add a notion of "scope" > - config: return configset value for current_config_ functions > - config: set up config_source for command-line config > - git_config_parse_parameter: refactor cleanup code > - git_config_with_options: drop "found" counting > > Allow a custom "git upload-pack" replacement to respond to > "fetch/clone" request. > > Still under discussion. > ($gmane/295705). > > > * rs/xdiff-hunk-with-func-line (2016-06-09) 9 commits > (merged to 'next' on 2016-06-10 at 9ff9ba8) > + xdiff: fix merging of appended hunk with -W > (merged to 'next' on 2016-06-02 at 0c2e335) > + grep: -W: don't extend context to trailing empty lines > + t7810: add test for grep -W and trailing empty context lines > + xdiff: don't trim common tail with -W > + xdiff: -W: don't include common trailing empty lines in context > + xdiff: ignore empty lines before added functions with -W > + xdiff: handle appended chunks better with -W > + xdiff: factor out match_func_rec() > + t4051: rewrite, add more tests > > "git show -W" (extend hunks to cover the entire function, delimited > by lines that match the "funcname" pattern) used to show the entire > file when a change added an entire function at the end of the file, > which has been fixed. > > Will merge to 'master' after 2.9 final. > > > * sb/submodule-misc-cleanups (2016-05-25) 1 commit > (merged to 'next' on 2016-05-31 at 0d07b9c) > + submodule update: make use of the existing fetch_in_submodule function > > Minor simplification. > > Will merge to 'master' after 2.9 final. > > > * sb/submodule-default-paths (2016-06-14) 8 commits > - completion: clone can recurse into submodules > - clone: add --init-submodule=<pathspec> switch > - submodule update: add `--init-default-path` switch > - Merge branch 'sb/pathspec-label' into sb/submodule-default-paths > - Merge branch 'jc/attr' into sb/submodule-default-paths > - Merge branch 'sb/clone-shallow-passthru' into sb/submodule-default-paths > - Merge branch 'sb/submodule-deinit-all' into sb/submodule-default-paths > - Merge branch 'sb/submodule-parallel-update' into sb/submodule-default-paths > (this branch uses jc/attr and sb/pathspec-label; is tangled with jc/attr-more.) > > Will hold. > > > * ah/no-verify-signature-with-pull-rebase (2016-05-20) 1 commit > (merged to 'next' on 2016-05-31 at 30add83) > + pull: warn on --verify-signatures with --rebase > > "git pull --rebase --verify-signature" learned to warn the user > that "--verify-signature" is a no-op. > > Will merge to 'master' after 2.9 final. > > > * ep/http-curl-trace (2016-05-24) 2 commits > - imap-send.c: introduce the GIT_TRACE_CURL enviroment variable > - http.c: implement the GIT_TRACE_CURL environment variable > > HTTP transport gained an option to produce more detailed debugging > trace. > > Rerolled. Is everybody happy with this version? > The refs is there http://git.661346.n2.nabble.com/PATCH-v7-0-2-Implement-the-GIT-TRACE-CURL-environment-variable-td7657079.html If kindly someone who has reviewed and helped me to do the patch could give an ack (or a nack eventually). Thanks in advance > > * jc/attr (2016-05-25) 18 commits > (merged to 'next' on 2016-05-31 at 5b2f08b) > + attr: support quoting pathname patterns in C style > + attr: expose validity check for attribute names > + attr: add counted string version of git_attr() > + attr: add counted string version of git_check_attr() > + attr: retire git_check_attrs() API > + attr: convert git_check_attrs() callers to use the new API > + attr: convert git_all_attrs() to use "struct git_attr_check" > + attr: (re)introduce git_check_attr() and struct git_attr_check > + attr: rename function and struct related to checking attributes > + attr.c: plug small leak in parse_attr_line() > + attr.c: tighten constness around "git_attr" structure > + attr.c: simplify macroexpand_one() > + attr.c: mark where #if DEBUG ends more clearly > + attr.c: complete a sentence in a comment > + attr.c: explain the lack of attr-name syntax check in parse_attr() > + attr.c: update a stale comment on "struct match_attr" > + attr.c: use strchrnul() to scan for one line > + commit.c: use strchrnul() to scan for one line > (this branch is used by jc/attr-more, sb/pathspec-label and sb/submodule-default-paths.) > > The attributes API has been updated so that it can later be > optimized using the knowledge of which attributes are queried. > > > * cc/apply-introduce-state (2016-06-06) 50 commits > (merged to 'next' on 2016-06-06 at 9f6bdcb) > + builtin/apply: remove misleading comment on lock_file field > (merged to 'next' on 2016-06-03 at 1ab0cf9) > + builtin/apply: move 'newfd' global into 'struct apply_state' > + builtin/apply: add 'lock_file' pointer into 'struct apply_state' > + builtin/apply: move applying patches into apply_all_patches() > + builtin/apply: move 'state' check into check_apply_state() > + builtin/apply: move 'symlink_changes' global into 'struct apply_state' > + builtin/apply: move 'fn_table' global into 'struct apply_state' > + builtin/apply: move 'state_linenr' global into 'struct apply_state' > + builtin/apply: move 'max_change' and 'max_len' into 'struct apply_state' > + builtin/apply: move 'ws_ignore_action' into 'struct apply_state' > + builtin/apply: move 'ws_error_action' into 'struct apply_state' > + builtin/apply: move 'applied_after_fixing_ws' into 'struct apply_state' > + builtin/apply: move 'squelch_whitespace_errors' into 'struct apply_state' > + builtin/apply: remove whitespace_option arg from set_default_whitespace_mode() > + builtin/apply: move 'whitespace_option' into 'struct apply_state' > + builtin/apply: move 'whitespace_error' global into 'struct apply_state' > + builtin/apply: move 'root' global into 'struct apply_state' > + builtin/apply: move 'p_value_known' global into 'struct apply_state' > + builtin/apply: move 'p_value' global into 'struct apply_state' > + builtin/apply: move 'has_include' global into 'struct apply_state' > + builtin/apply: move 'limit_by_name' global into 'struct apply_state' > + builtin/apply: move 'patch_input_file' global into 'struct apply_state' > + builtin/apply: move 'apply' global into 'struct apply_state' > + builtin/apply: move 'p_context' global into 'struct apply_state' > + builtin/apply: move 'fake_ancestor' global into 'struct apply_state' > + builtin/apply: move 'line_termination' global into 'struct apply_state' > + builtin/apply: move 'unsafe_paths' global into 'struct apply_state' > + builtin/apply: move 'no_add' global into 'struct apply_state' > + builtin/apply: move 'threeway' global into 'struct apply_state' > + builtin/apply: move 'summary' global into 'struct apply_state' > + builtin/apply: move 'numstat' global into 'struct apply_state' > + builtin/apply: move 'diffstat' global into 'struct apply_state' > + builtin/apply: move 'cached' global into 'struct apply_state' > + builtin/apply: move 'allow_overlap' global into 'struct apply_state' > + builtin/apply: move 'update_index' global into 'struct apply_state' > + builtin/apply: move 'apply_verbosely' global into 'struct apply_state' > + builtin/apply: move 'apply_with_reject' global into 'struct apply_state' > + builtin/apply: move 'apply_in_reverse' global into 'struct apply_state' > + builtin/apply: move 'check_index' global into 'struct apply_state' > + builtin/apply: move 'check' global into 'struct apply_state' > + builtin/apply: move 'unidiff_zero' global into 'struct apply_state' > + builtin/apply: move 'state' init into init_apply_state() > + builtin/apply: introduce 'struct apply_state' to start libifying > + builtin/apply: move 'read_stdin' global into cmd_apply() > + builtin/apply: move 'options' variable into cmd_apply() > + builtin/apply: extract line_by_line_fuzzy_match() from match_fragment() > + builtin/apply: avoid local variable shadowing 'len' parameter > + builtin/apply: avoid parameter shadowing 'linenr' global > + builtin/apply: avoid parameter shadowing 'p_value' global > + builtin/apply: make gitdiff_verify_name() return void > > The "git apply" standalone program is being libified; this is the > first step to move many state variables into a structure that can > be explicitly (re)initialized to make the machinery callable more > than once. > > The next step that moves some remaining state variables into the > structure and turns die()s into an error return that propagates up > to the caller is not queued yet but in flight. It would be good to > review the above first and give the remainder of the series a solid > base to build on. > > Will hold. > > > * pb/bisect (2016-05-24) 3 commits > - bisect--helper: `write_terms` shell function in C > - bisect: rewrite `check_term_format` shell function in C > - bisect--helper: use OPT_CMDMODE instead of OPT_BOOL > > Beginning of GSoC "git bisect" project. > > > * sb/pathspec-label (2016-06-03) 6 commits > (merged to 'next' on 2016-06-03 at 362f097) > + pathspec: disable preload-index when attribute pathspec magic is in use > + pathspec: allow escaped query values > (merged to 'next' on 2016-05-31 at e72b604) > + pathspec: allow querying for attributes > + pathspec: move prefix check out of the inner loop > + pathspec: move long magic parsing out of prefix_pathspec > + Documentation: fix a typo > (this branch is used by sb/submodule-default-paths; uses jc/attr; is tangled with jc/attr-more.) > > The pathspec mechanism learned ":(attr:X)$pattern" pathspec magic > to limit paths that match $pattern further by attribute settings. > The preload-index mechanism is disabled when the new pathspec magic > is in use (at least for now), because the attribute subsystem is > not thread-ready. > > Will hold. > > > * nd/worktree-cleanup-post-head-protection (2016-05-24) 6 commits > - worktree: simplify prefixing paths > - worktree: avoid 0{40}, too many zeroes, hard to read > - worktree.c: use is_dot_or_dotdot() > - git-worktree.txt: keep subcommand listing in alphabetical order > - worktree.c: rewrite mark_current_worktree() to avoid strbuf > - completion: support git-worktree > (this branch is used by nd/worktree-lock.) > > Further preparatory clean-up for "worktree" feature. > > Expecting a reroll. > ($gmane/294136, etc.) > > > * mh/split-under-lock (2016-05-13) 33 commits > (merged to 'next' on 2016-06-03 at 2e71330) > + lock_ref_sha1_basic(): only handle REF_NODEREF mode > + commit_ref_update(): remove the flags parameter > + lock_ref_for_update(): don't resolve symrefs > + lock_ref_for_update(): don't re-read non-symbolic references > + refs: resolve symbolic refs first > + ref_transaction_update(): check refname_is_safe() at a minimum > + unlock_ref(): move definition higher in the file > + lock_ref_for_update(): new function > + add_update(): initialize the whole ref_update > + verify_refname_available(): adjust constness in declaration > + refs: don't dereference on rename > + refs: allow log-only updates > + delete_branches(): use resolve_refdup() > + ref_transaction_commit(): correctly report close_ref() failure > + ref_transaction_create(): disallow recursive pruning > + refs: make error messages more consistent > + lock_ref_sha1_basic(): remove unneeded local variable > + read_raw_ref(): move docstring to header file > + read_raw_ref(): improve docstring > + read_raw_ref(): rename symref argument to referent > + read_raw_ref(): clear *type at start of function > + read_raw_ref(): rename flags argument to type > + ref_transaction_commit(): remove local variable n > + rename_ref(): remove unneeded local variable > + commit_ref_update(): write error message to *err, not stderr > + refname_is_safe(): insist that the refname already be normalized > + refname_is_safe(): don't allow the empty string > + refname_is_safe(): use skip_prefix() > + remove_dir_recursively(): add docstring > + safe_create_leading_directories(): improve docstring > + read_raw_ref(): don't get confused by an empty directory > + commit_ref(): if there is an empty dir in the way, delete it > + t1404: demonstrate a bug resolving references > (this branch is used by mh/ref-iterators, mh/ref-store and mh/update-ref-errors.) > > Further preparatory work on the refs API before the pluggable > backend series can land. > > Will merge to 'master' after 2.9 final. > > > * ew/fast-import-unpack-limit (2016-05-29) 2 commits > (merged to 'next' on 2016-05-29 at af32aba) > + fast-import: invalidate pack_id references after loosening > (merged to 'next' on 2016-05-11 at ffd4efb) > + fast-import: implement unpack limit > > "git fast-import" learned the same performance trick to avoid > creating too small a packfile as "git fetch" and "git push" have, > using *.unpackLimit configuration. > > Will hold. > > > * jc/send-email-skip-backup (2016-04-12) 1 commit > - send-email: detect and offer to skip backup files > > A careless invocation of "git send-email directory/" after editing > 0001-change.patch with an editor often ends up sending both > 0001-change.patch and its backup file, 0001-change.patch~, causing > embarrassment and a minor confusion. Detect such an input and > offer to skip the backup files when sending the patches out. > > Needs review. > > > * kn/ref-filter-branch-list (2016-05-17) 17 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 `:dir` and `:base` options for ref printing atoms > - ref-filter: make remote_ref_atom_parser() use refname_atom_parser_internal() > - ref-filter: introduce symref_atom_parser() and refname_atom_parser() > - ref-filter: introduce refname_atom_parser_internal() > - 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=<string>) and %(if:notequals=<string>) > - ref-filter: include reference to 'used_atom' within 'atom_value' > - ref-filter: implement %(if), %(then), and %(else) atoms > > The code to list branches in "git branch" has been consolidated > with the more generic ref-filter API. > > Rerolled. > Needs review. > > > * dt/index-helper (2016-05-20) 20 commits > - index-helper: indexhelper.exitafter config > - trace: measure where the time is spent in the index-heavy operations > - index-helper: optionally automatically run > - index-helper: autorun mode > - index-helper: don't run if already running > - index-helper: kill mode > - watchman: add a config option to enable the extension > - unpack-trees: preserve index extensions > - update-index: enable/disable watchman support > - index-helper: use watchman to avoid refreshing index with lstat() > - watchman: support watchman to reduce index refresh cost > - read-cache: add watchman 'WAMA' extension > - index-helper: log warnings > - 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 > - pkt-line: add gentle version of packet_write > - read-cache: allow to keep mmap'd memory after reading > - read-cache.c: fix constness of verify_hdr() > > A new "index-helper" daemon has been introduced to give newly > spawned Git process a quicker access to the data in the index, and > optionally interface with the watchman daemon to further reduce the > refresh cost. > > Rerolled. > ($gmane/295106). > > > * 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. > > > * jc/merge-drop-old-syntax (2015-04-29) 1 commit > - merge: drop 'git merge <message> HEAD <commit>' syntax > > Stop supporting "git merge <message> HEAD <commit>" syntax that has > 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) > > -------------------------------------------------- > [Discarded] > > * mh/connect-leak (2016-04-28) 1 commit > . git_connect(): fix memory leak with CONNECT_DIAG_URL > > Is already made obsolete with a patch in flight under discussion. > ($gmane/292962) > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html