To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jun 2016, #04; Tue, 14)
+Subject: What's cooking in git.git (Jun 2016, #05; Thu, 16)
X-master-at: 05219a1276341e72d8082d76b7f5ed394b7437a4
X-next-at: 3dc84b0c19932ec9947ca4936b6bfd6421ccb1b4
-What's cooking in git.git (Jun 2016, #04; Tue, 14)
+What's cooking in git.git (Jun 2016, #05; Thu, 16)
--------------------------------------------------
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.
-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.
+Let's start a new cycle by rewinding the tip of 'next' soonish. I
+expect I'd eject a few premature topics out of 'next' while doing
+so. There are many topics that need input from the list (look for
+'?' in this document) to decide either to drop them or to move them
+forward.
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
+* ap/git-svn-propset-doc (2016-06-15) 1 commit
+ - git-svn: document the 'git svn propset' command
- "git status" used to say "working directory" when it meant "working
- tree".
+ "git svn propset" subcommand that was added in 2.3 days is
+ documented now.
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.)
+* jk/add-i-diff-compact-heuristics (2016-06-16) 1 commit
+ - add--interactive: respect diff.compactionHeuristic
- The command line argument parsing that uses OPT_STRING_LIST() often
- made a copy of the argv[] element, which was unnecessary.
+ "git add -i/-p" learned to honor diff.compactionHeuristic
+ experimental knob, so that the user can work on the same hunk split
+ as "git diff" output.
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
+* jk/big-and-old-archive-tar (2016-06-16) 2 commits
+ - archive-tar: write extended headers for far-future mtime
+ - archive-tar: write extended headers for file sizes >= 8GB
- "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").
+ "git archive" learned to handle files that are larger than 8GB and
+ commits far in the future than expressible by the traditional US-TAR
+ format.
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.
+* jk/gpg-interface-cleanup (2016-06-16) 7 commits
+ - gpg-interface: check gpg signature creation status
+ - sign_buffer: use pipe_command
+ - verify_signed_buffer: use pipe_command
+ - run-command: add pipe_command helper
+ - verify_signed_buffer: use tempfile object
+ - verify_signed_buffer: drop pbuf variable
+ - gpg-interface: use child_process.args
+ A new run-command API function pipe_command() is introduced to
+ sanely feed data to the standard input while capturing data from
+ the standard output and the standard error of an external process,
+ which is cumbersome to hand-roll correctly without deadlocking.
-* nd/test-lib-httpd-show-error-log-in-verbose (2016-06-13) 1 commit
- - lib-httpd.sh: print error.log on error
-
- Debugging aid.
+ The codepath to sign data in a prepared buffer with GPG has been
+ updated to use this API to read from the status-fd to check for
+ errors (instead of relying on GPG's exit status).
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
+* lf/sideband-returns-void (2016-06-16) 2 commits
+ - upload-pack.c: make send_client_data() return void
+ - sideband.c: make send_sideband() return void
- 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.
+ A small internal API cleanup.
+ Will merge to 'next'.
-* jc/blame-reverse (2016-06-14) 2 commits
- - blame: dwim "blame --reverse OLD" as "blame --reverse OLD.."
- - blame: improve diagnosis for "--reverse NEW"
+* nd/graph-width-padded (2016-06-16) 2 commits
+ - pretty.c: support <direction>|(<negative number>) forms
+ - pretty: pass graph width to pretty formatting for use in '%>|(N)'
-* jc/deref-tag (2016-06-14) 1 commit
- - blame, line-log: do not loop around deref_tag()
-
- Code clean-up.
+ "log --graph --format=" learned that "%>|(N)" specifies the width
+ relative to the terminal's left edge, not relative to the area to
+ draw text that is to the right of the ancestry-graph section. It
+ also now accepts negative N that means the column limit is relative
+ to the right border.
Will merge to 'next'.
-* jk/fetch-prune-doc (2016-06-14) 1 commit
- - fetch: document that pruning happens before fetching
+* dn/gpg-doc (2016-06-16) 1 commit
+ - Documentation: GPG capitalization
- 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
+ The documentation tries to consistently spell "GPG"; when
+ referring to the specific program name, "gpg" is used.
Will merge to 'next'.
-* nb/gnome-keyring-build (2016-06-14) 1 commit
- - gnome-keyring: Don't hard-code pkg-config executable
+* jk/bisect-show-tree (2016-06-16) 1 commit
+ - bisect: always call setup_revisions after init_revisions
- Build improvements for gnome-keyring (in contrib/)
+ "git bisect" makes an internal call to "git diff-tree" when
+ bisection finds the culprit, but this call did not initialize the
+ data structure to pass to the diff-tree API correctly.
Will merge to 'next'.
+--------------------------------------------------
+[Stalled]
-* pb/strbuf-read-file-doc (2016-06-14) 1 commit
- - strbuf: describe the return value of strbuf_read_file
+* mj/log-show-signature-conf (2016-06-06) 2 commits
+ - log: "--no-show-signature" commmand-line option
+ - log: add "log.showsignature" configuration variable
- Will merge to 'next'.
+ "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.
+ Expecting a reroll.
---------------------------------------------------
-[Stalled]
* sb/bisect (2016-04-15) 22 commits
- SQUASH???
($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
"git grep -i" has been taught to fold case in non-ascii locales.
- Needs review.
- ($gmane/286137)
+ This really needs review. What it attempts to achieve is
+ worthwhile, I would think ($gmane/286137).
* ec/annotate-deleted (2015-11-20) 1 commit
($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
The fix in this patch is broken, unfortunately.
Will discard.
+--------------------------------------------------
+[Cooking]
-* 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
+* lv/status-say-working-tree-not-directory (2016-06-09) 1 commit
+ - Use "working tree" instead of "working directory" for git status
- "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.
+ "git status" used to say "working directory" when it meant "working
+ tree".
- Just tying loose ends in a discussion. Unless somebody else
- champions this topic, I'll drop it.
+ Will merge to 'next'.
- Will discard.
---------------------------------------------------
-[Cooking]
+* 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.
+
+ Will merge to 'next'.
+
+
+* jc/blame-reverse (2016-06-14) 2 commits
+ - blame: dwim "blame --reverse OLD" as "blame --reverse OLD.."
+ - blame: improve diagnosis for "--reverse NEW"
+
+ It is a common mistake to say "git blame --reverse OLD path",
+ expecting that the command line is dwimmed as if asking how lines
+ in path in an old revision OLD have survived up to the current
+ commit.
+
+ Any supporters? Otherwise will drop.
+
+
+* 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'.
+
* nd/shallow-deepen (2016-06-13) 27 commits
- fetch, upload-pack: --deepen=N extends shallow boundary by N commits
"Give me only the history since that version".
Rerolled.
+ Needs review. What this topic attempts to achieve is worthwhile, I
+ would think.
* jk/avoid-unbounded-alloca (2016-06-07) 1 commit
Update the funcname definition to support css files.
- Will merge to 'master' after 2.9 final.
+ Will merge to 'master'.
* jc/attr-more (2016-06-09) 8 commits
The beginning of long and tortuous journey to clean-up attribute
subsystem implementation.
+ Needs to be redone.
+
* jk/rev-list-count-with-bitmap (2016-06-03) 2 commits
(merged to 'next' on 2016-06-06 at dd9b30f)
option did not work well with the counting optimized to look at the
bitmap index.
- Will merge to 'master' after 2.9 final.
+ Will merge to 'master'.
* mh/ref-iterators (2016-06-03) 13 commits
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.
+ Will merge to 'master'.
* ew/mboxrd-format-am (2016-06-06) 3 commits
happens to begin with "From " in the e-mail message is quoted with
">", so that these lines can be restored to their original shape.
+ Will merge to 'next'.
+
* lf/receive-pack-auto-gc-to-client (2016-06-06) 1 commit
- receive-pack: send auto-gc output over sideband 2
over sideband, so that they are shown with "remote: " prefix to
avoid confusing the users.
+ Will merge to 'next'.
+
* 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.
+ Will merge to 'next'.
* sg/reflog-past-root (2016-06-06) 1 commit
creation event (aka "unborn"), which made it appear as if the
reflog was truncated.
+ Will merge to 'next'.
+
* tb/complete-status (2016-06-10) 3 commits
- completion: add git status
The completion script (in contrib/) learned to complete "git
status" options.
+ Any further comments? Otherwise will merge to 'next'.
+
* tr/doc-tt (2016-06-08) 4 commits
- doc: change configuration variables format
The git-prompt scriptlet (in contrib/) was not friendly with those
who uses "set -u", which has been fixed.
+ Will merge to 'next'.
+
* rj/compat-regex-size-max-fix (2016-06-06) 1 commit
- regex: fix a SIZE_MAX macro redefinition warning
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
- 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?
+ Rewrite Git-URL parsing routine (hopefully) without changing any
+ behaviour.
+
+ Will merge to 'next'???
* aq/upload-pack-use-parse-options (2016-05-31) 1 commit
"git upload-pack" command has been updated to use the parse-options
API.
- Will merge to 'master' after 2.9 final.
+ Will merge to 'master'.
* jc/clear-pathspec (2016-06-02) 1 commit
free_pathspec() function has been renamed to clear_pathspec()
to avoid confusion.
- Will merge to 'master' after 2.9 final.
+ Will merge to 'master'.
* sb/submodule-recommend-shallowness (2016-05-27) 2 commits
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.
+ Will merge to 'master'.
* tb/convert-peek-in-index (2016-06-07) 3 commits
One patch from the original submission dropped due to conflicts
with other topics in flight.
+ Will merge to 'next'.
+
* jg/dash-is-last-branch-in-worktree-add (2016-05-31) 1 commit
(merged to 'next' on 2016-06-02 at 3959ef6)
"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.
+ Will merge to 'master'.
* dk/blame-move-no-reason-for-1-line-context (2016-05-29) 1 commit
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?
+ Is everybody happy with this version?
+ If so, will merge to 'next'.
* et/pretty-format-c-auto (2016-05-27) 1 commit
--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.
+ Will merge to 'master'.
* ew/daemon-socket-keepalive (2016-05-25) 1 commit
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.
+ Will merge to 'master'.
* jk/upload-pack-hook (2016-06-02) 7 commits
Allow a custom "git upload-pack" replacement to respond to
"fetch/clone" request.
- Still under discussion.
+ Still under discussion???
($gmane/295705).
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.
+ Will merge to 'master'.
* sb/submodule-misc-cleanups (2016-05-25) 1 commit
Minor simplification.
- Will merge to 'master' after 2.9 final.
+ Will merge to 'master'.
* sb/submodule-default-paths (2016-06-14) 8 commits
"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.
+ Will merge to 'master'.
* ep/http-curl-trace (2016-05-24) 2 commits
HTTP transport gained an option to produce more detailed debugging
trace.
- Rerolled. Is everybody happy with this version?
+ Will merge to 'next'.
* jc/attr (2016-05-25) 18 commits
The attributes API has been updated so that it can later be
optimized using the knowledge of which attributes are queried.
+ Will eject from 'next'.
+ The updated API needs further rethinking.
+
* cc/apply-introduce-state (2016-06-06) 50 commits
(merged to 'next' on 2016-06-06 at 9f6bdcb)
Beginning of GSoC "git bisect" project.
+ I know another topic is getting rerolled many times on top of this;
+ are people happy with these three patches? If so, will merge to
+ 'next'.
+
* sb/pathspec-label (2016-06-03) 6 commits
(merged to 'next' on 2016-06-03 at 362f097)
is in use (at least for now), because the attribute subsystem is
not thread-ready.
- Will hold.
+ Will eject from 'next'.
+ The jc/attr topic that this depends on needs to be redone.
* nd/worktree-cleanup-post-head-protection (2016-05-24) 6 commits
Further preparatory clean-up for "worktree" feature.
- Expecting a reroll.
- ($gmane/294136, etc.)
+ Will merge to 'next'.
* mh/split-under-lock (2016-05-13) 33 commits
Further preparatory work on the refs API before the pluggable
backend series can land.
- Will merge to 'master' after 2.9 final.
+ Will merge to 'master'.
* ew/fast-import-unpack-limit (2016-05-29) 2 commits
creating too small a packfile as "git fetch" and "git push" have,
using *.unpackLimit configuration.
- Will hold.
+ Will merge to 'master'.
* jc/send-email-skip-backup (2016-04-12) 1 commit
embarrassment and a minor confusion. Detect such an input and
offer to skip the backup files when sending the patches out.
- Needs review.
+ Will merge to 'next'.
+ Perhaps people will enhance it more once it gains more visibility.
* kn/ref-filter-branch-list (2016-05-17) 17 commits
with the more generic ref-filter API.
Rerolled.
- Needs review.
+ This also really needs review.
* dt/index-helper (2016-05-20) 20 commits
optionally interface with the watchman daemon to further reduce the
refresh cost.
- Rerolled.
+ Are people happy with this version? If so will merge to 'next'.
($gmane/295106).
ingredients to allow "git clone" traffic off of the core server
network to CDN.
+ While I think it would make it easier for people to experiment and
+ build on if the topic is merged to 'next', I am at the same time a
+ bit reluctant to merge an unproven new topic that introduces a new
+ file format, which we may end up having to support til the end of
+ time. Comments?
+
* jc/merge-drop-old-syntax (2015-04-29) 1 commit
- merge: drop 'git merge <message> HEAD <commit>' syntax
--------------------------------------------------
[Discarded]
-* mh/connect-leak (2016-04-28) 1 commit
- . git_connect(): fix memory leak with CONNECT_DIAG_URL
+* 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.
+
+ Has a lot of conflict when merged to 'pu' these days, so let's
+ eject it from our tree for now.
+
+ Will discard.
+ ($gmane/292205)
+
+
+* 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.
+
+ Retracted.
+ Will discard.
+ ($gmane/297362)
+
+
+* 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.
+
+
+* 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.
+
+ Will discard.
+ ($gmane/296749)
+
+
+* 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.
- Is already made obsolete with a patch in flight under discussion.
- ($gmane/292962)
+ Retracted.
+ ($gmane/296722)