What's cooking (2015/04 #01)
[git.git] / whats-cooking.txt
blobeb16a9261c667a77593a869a680c13dde8689ef9
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Apr 2015, #01; Thu, 2)
4 X-master-at: 6ae0d972664134b82a6dd164a01e8adbebeaffe3
5 X-next-at: 85735d76ca4ac11dd4059dfd973b4df8b42f8776
7 What's cooking in git.git (Apr 2015, #01; Thu, 2)
8 --------------------------------------------------
10 Here are the topics that have been cooking.  Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
14 The first release candidate 2.4-rc1 has been tagged.  I'll still
15 take small and trivial fixes and documentation updates but let's
16 really shift our focus to find and fix (or revert) regressions
17 that may have happened during this cycle.
19 You can find the changes described here in the integration branches
20 of the repositories listed at
22     http://git-blame.blogspot.com/p/git-public-repositories.html
24 --------------------------------------------------
25 [New Topics]
27 * va/fix-git-p4-tests (2015-03-28) 2 commits
28  - git-p4: fix copy detection test
29  - t9814: fix broken shell syntax in git-p4 rename test
31  Test fixes for git-p4
33  Will merge to 'next'.
36 * va/p4-client-path (2015-03-28) 2 commits
37  - git-p4: improve client path detection when branches are used
38  - t9801: check git-p4's branch detection and client view together
40  Attempt to better handle branches in perforce by git p4
41  Reviews by git-p4 experts are very much appreciated.
44 * iu/fix-parse-options-h-comment (2015-03-29) 1 commit
45   (merged to 'next' on 2015-04-02 at 7fd3cef)
46  + parse-options.h: OPTION_{BIT,SET_INT} do not store pointer to defval
48  Will merge to 'master'.
51 * jk/at-push-sha1 (2015-03-31) 6 commits
52  - sha1_name: implement @{push} shorthand
53  - sha1_name: refactor upstream_mark
54  - remote.c: provide per-branch pushremote name
55  - remote.c: hoist branch.*.remote lookup out of remote_get_1
56  - remote.c: drop "remote" pointer from "struct branch"
57  - remote.c: drop default_remote_name variable
60 * jk/cherry-pick-docfix (2015-03-30) 1 commit
61   (merged to 'next' on 2015-04-02 at 40da1d7)
62  + cherry-pick: fix docs describing handling of empty commits
64  Will merge to 'master'.
67 * jk/sha1-file-reduce-useless-warnings (2015-03-30) 1 commit
68  - sha1_file: squelch "packfile cannot be accessed" warnings
71 * jz/gitweb-conf-doc-fix (2015-03-31) 1 commit
72   (merged to 'next' on 2015-04-02 at 237d1bc)
73  + gitweb.conf.txt: say "build-time", not "built-time"
75  Will merge to 'master'.
78 * mh/show-branch-topic (2015-03-31) 1 commit
79  - show-branch: show all local heads when only giving one rev along --topics
81  "git show-branch --topics HEAD" (with no other arguments) did not
82  do anything interesting.  Instead, contrast the given revision
83  against all the local branches by default.
85  Will merge to 'next'.
88 * pt/enter-repo-comment-fix (2015-03-31) 1 commit
89   (merged to 'next' on 2015-04-02 at 276ad7e)
90  + enter_repo(): fix docs to match code
92  Will merge to 'master'.
95 * sb/line-log-plug-pairdiff-leak (2015-03-30) 1 commit
96  - line-log.c: fix a memleak
98  Will merge to 'next'.
101 * sb/plug-wt-shortstatus-tracking-leak (2015-03-30) 1 commit
102  - wt-status.c: fix a memleak
104  Will merge to 'next'.
107 * jc/push-cert (2015-04-02) 1 commit
108  - push --signed: tighten what the receiving end can ask to sign
110  The "git push --signed" protocol extension did not limit what the
111  "nonce" that is a server-chosen string can contain or how long it
112  can be, which was unnecessarily lax.  Limit both the length and the
113  alphabet to a reasonably small space that can still have enough
114  entropy.
116  Will merge to 'next'.
119 * jc/update-instead-into-void (2015-04-01) 1 commit
120  - push-to-deploy: allow pushing into an unborn branch and updating it
122  A push into an unborn branch, with "receive.denyCurrentBranch" set
123  to "updateInstead", did not check out the working tree as expected.
125  Will merge to 'next'.
128 * jk/init-core-worktree-at-root (2015-04-02) 1 commit
129  - init: don't set core.worktree when initializing /.git
131  We avoid setting core.worktree when the repository location is the
132  ".git" directory directly at the top level of the working tree, but
133  the code misdetected the case in which the working tree is at the
134  root level of the filesystem (which arguably is a silly thing to
135  do, but still valid).
137  Will merge to 'next'.
140 * jk/pack-corruption-post-mortem (2015-04-01) 1 commit
141  - howto: document more tools for recovery corruption
143  Documentation update.
145  Will merge to 'next'.
148 * jn/doc-fast-import-no-16-octopus-limit (2015-03-31) 1 commit
149  - fast-import doc: remove suggested 16-parent limit
151  Documentation update.
153  Will merge to 'next'.
156 * sb/plug-streaming-leak (2015-03-31) 1 commit
157  - streaming.c: fix a memleak
159  Will merge to 'next'.
162 * ts/checkout-advice-plural (2015-04-01) 1 commit
163  - checkout: call a single commit “it” instead of “th
165  Will merge to 'next'.
167 --------------------------------------------------
168 [Graduated to "master"]
170 * ph/push-doc-cas (2015-03-26) 1 commit
171   (merged to 'next' on 2015-03-27 at 0737697)
172  + git-push.txt: clean up force-with-lease wording
174  Documentation update.
177 * sb/leaks (2015-03-24) 10 commits
178   (merged to 'next' on 2015-03-24 at bdbc0c7)
179  + http: release the memory of a http pack request as well
180   (merged to 'next' on 2015-03-23 at 5397daf)
181  + read-cache: fix memleak
182  + add_to_index(): free unused cache-entry
183  + commit.c: fix a memory leak
184  + http-push: remove unneeded cleanup
185  + merge-recursive: fix memleaks
186  + merge-blobs.c: fix a memleak
187  + builtin/apply.c: fix a memleak
188  + update-index: fix a memleak
189  + read-cache: free cache entry in add_to_index in case of early return
191  Plug minor memory leaks everywhere.
194 * ss/pull-rebase-preserve (2015-03-30) 2 commits
195  + docs: clarify what git-rebase's "-p" / "--preserve-merges" does
196  + docs: clarify "preserve" option wording for git-pull
198  Documentation update.
200 --------------------------------------------------
201 [Stalled]
203 * as/userdiff-sh (2015-03-13) 1 commit
204  - userdiff: funcname and word patterns for sh
206  Add a built-in "userdiff" patterns to word-split and identify
207  notable lines in shell scripts to help presentation of diff and
208  grep output.
210  Will discard.
213 * mh/fdopen-with-retry (2015-03-06) 6 commits
214  - buffer_fdinit(): use fdopen_with_retry()
215  - update_info_file(): use fdopen_with_retry()
216  - copy_to_log(): use fdopen_with_retry()
217  - fdopen_lock_file(): use fdopen_with_retry()
218  - SQUASH??? $gmane/264889
219  - xfdopen(): if first attempt fails, free memory and try again
221  Various parts of the code where they call fdopen() can fail when
222  they run out of memory; attempt to proceed by retrying the
223  operation after freeing some resource.
225  Waiting for further comments.
228 * nd/untracked-cache (2015-03-12) 24 commits
229  - git-status.txt: advertisement for untracked cache
230  - untracked cache: guard and disable on system changes
231  - mingw32: add uname()
232  - t7063: tests for untracked cache
233  - update-index: test the system before enabling untracked cache
234  - update-index: manually enable or disable untracked cache
235  - status: enable untracked cache
236  - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
237  - untracked cache: mark index dirty if untracked cache is updated
238  - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
239  - untracked cache: avoid racy timestamps
240  - read-cache.c: split racy stat test to a separate function
241  - untracked cache: invalidate at index addition or removal
242  - untracked cache: load from UNTR index extension
243  - untracked cache: save to an index extension
244  - ewah: add convenient wrapper ewah_serialize_strbuf()
245  - untracked cache: don't open non-existent .gitignore
246  - untracked cache: mark what dirs should be recursed/saved
247  - untracked cache: record/validate dir mtime and reuse cached output
248  - untracked cache: make a wrapper around {open,read,close}dir()
249  - untracked cache: invalidate dirs recursively if .gitignore changes
250  - untracked cache: initial untracked cache validation
251  - untracked cache: record .gitignore information and dir hierarchy
252  - dir.c: optionally compute sha-1 of a .gitignore file
254  Need extra sets of eyes to review this.
257 * jc/diff-b-m (2015-02-23) 5 commits
258  . WIPWIP
259  . WIP: diff-b-m
260  - diffcore-rename: allow easier debugging
261  - diffcore-rename.c: add locate_rename_src()
262  - diffcore-break: allow debugging
264  "git diff -B -M" produced incorrect patch when the postimage of a
265  completely rewritten file is similar to the preimage of a removed
266  file; such a resulting file must not be expressed as a rename from
267  other place.
269  The fix in this patch is broken, unfortunately.
272 * pw/remote-set-url-fetch (2014-11-26) 1 commit
273  - remote: add --fetch and --both options to set-url
275  Expecting a reroll.
278 * tr/remerge-diff (2014-11-10) 9 commits
279  - t4213: avoid "|" in sed regexp
280  - log --remerge-diff: show what the conflict resolution changed
281  - name-hash: allow dir hashing even when !ignore_case
282  - merge-recursive: allow storing conflict hunks in index
283  - merge_diff_mode: fold all merge diff variants into an enum
284  - combine-diff: do not pass revs->dense_combined_merges redundantly
285  - merge-recursive: -Xindex-only to leave worktree unchanged
286  - merge-recursive: internal flag to avoid touching the worktree
287  - merge-recursive: remove dead conditional in update_stages()
289  "log -p" output learns a new way to let users inspect a merge
290  commit by showing the differences between the automerged result
291  with conflicts the person who recorded the merge would have seen
292  and the final conflict resolution that was recorded in the merge.
294  Waiting for a reroll ($gmane/256591).
297 * hv/submodule-config (2014-11-11) 4 commits
298  - do not die on error of parsing fetchrecursesubmodules option
299  - use new config API for worktree configurations of submodules
300  - extract functions for submodule config set and lookup
301  - implement submodule config cache for lookup of submodule names
303  Kicked back to 'pu' per request ($gmane/255610).
306 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
307  - perf-lib: add test_perf_cleanup target
308  - perf-lib: split starting the test from the execution
310  Add test_perf_cleanup shell function to the perf suite, that allows
311  the script writers to define a test with a clean-up action.
313  Will hold.
316 * jc/show-branch (2014-03-24) 5 commits
317  - show-branch: use commit slab to represent bitflags of arbitrary width
318  - show-branch.c: remove "all_mask"
319  - show-branch.c: abstract out "flags" operation
320  - show-branch.c: lift all_mask/all_revs to a global static
321  - show-branch.c: update comment style
323  Waiting for the final step to lift the hard-limit before sending it out.
325 --------------------------------------------------
326 [Cooking]
328 * pt/credential-xdg (2015-03-25) 4 commits
329   (merged to 'next' on 2015-03-25 at 765128e)
330  + t0302: "unreadable" test needs POSIXPERM
331   (merged to 'next' on 2015-03-24 at 9a3706e)
332  + t0302: test credential-store support for XDG_CONFIG_HOME
333  + git-credential-store: support XDG_CONFIG_HOME
334  + git-credential-store: support multiple credential files
336  Tweak the sample "store" backend of the credential helper to honor
337  XDG configuration file locations when specified.
339  As this may see further updates, and also this is not an urgent
340  issue anyway, I'll give it a bit more time for it to simmer.
342  Will cook in 'next'.
345 * jc/merge-deprecate-old-syntax (2015-03-26) 1 commit
346  - merge: deprecate 'git merge <message> HEAD <commit>' syntax
347  (this branch is used by jc/merge-drop-old-syntax.)
349  The first step to really start the process of removing the ancient
350  syntax to invoke a two-way merge, which has been deprecated since
351  October 2007.
354 * jc/merge-drop-old-syntax (2015-03-26) 1 commit
355  - merge: drop 'git merge <message> HEAD <commit>' syntax
356  (this branch uses jc/merge-deprecate-old-syntax.)
358  Stop supporting "git merge <messsage> HEAD <commit>" syntax that
359  has been deprecated since October 2007.
362 * jc/diff-no-index-d-f (2015-03-26) 2 commits
363   (merged to 'next' on 2015-03-27 at 1f270f9)
364  + diff-no-index: align D/F handling with that of normal Git
365  + diff-no-index: DWIM "diff D F" into "diff D/F F"
367  The usual "git diff" when seeing a file turning into a directory
368  showed a patchset to remove the file and create all files in the
369  directory, but "git diff --no-index" simply refused to work.  Also,
370  when asked to compare a file and a directory, imitate POSIX "diff"
371  and compare the file with the file with the same name in the
372  directory, instead of refusing to run.
374  Will cook in 'next'.
377 * nd/diff-i-t-a (2015-03-23) 1 commit
378   (merged to 'next' on 2015-03-24 at a6be89f)
379  + diff-lib.c: adjust position of i-t-a entries in diff
381  After "git add -N", the path appeared in output of "git diff HEAD"
382  and "git diff --cached HEAD", leading "git status" to classify it
383  as "Changes to be committed".  Such a path, however, is not yet to
384  be scheduled to be committed.  "git diff" showed the change to the
385  path as modification, not as a "new file", in the header of its
386  output.
388  Treat such paths as "yet to be added to the index but Git already
389  know about them"; "git diff HEAD" and "git diff --cached HEAD"
390  should not talk about them, and "git diff" should show them as new
391  files yet to be added to the index.
393  Will cook in 'next', as this brings in a new world order.
396 * mh/numparse (2015-03-19) 14 commits
397  - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
398  - diff_opt_parse(): use convert_i() when handling "-l<num>"
399  - opt_arg(): simplify pointer handling
400  - opt_arg(): report errors parsing option values
401  - opt_arg(): use convert_i() in implementation
402  - opt_arg(): val is always non-NULL
403  - builtin_diff(): detect errors when parsing --unified argument
404  - handle_revision_opt(): use convert_ui() when handling "--abbrev="
405  - strtoul_ui(), strtol_i(): remove functions
406  - handle_revision_opt(): use convert_i() when handling "-<digit>"
407  - handle_revision_opt(): use skip_prefix() in many places
408  - write_subdirectory(): use convert_ui() for parsing mode
409  - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
410  - numparse: new module for parsing integral numbers
412  Many codepaths use unchecked use of strtol() and friends (or even
413  worse, atoi()).  Introduce a set of wrappers that try to be more
414  careful.
416  Waiting for a reroll ($gmane/266209).
419 * tf/gitweb-project-listing (2015-03-19) 5 commits
420  - gitweb: make category headings into links when they are directories
421  - gitweb: optionally set project category from its pathname
422  - gitweb: add a link under the search box to clear a project filter
423  - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
424  - gitweb: fix typo in man page
426  Update gitweb to make it more pleasant to deal with a hierarchical
427  forest of repositories.
429  Any comments from those who use or have their own code in Gitweb?
432 * jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
433  - "-" and "@{-1}" on various programs
435  Lose special case code to make a lone dash "-" mean the previous
436  branch aka "@{-1}" from a handful subcommands, and instead support
437  the notation throughout the system by reimplementing it at the
438  revisions layer.
440  Needs tests, documentation updates, etc.  Also does only a half-way
441  job dealing with range notation, which needs to be fixed before the
442  series goes anywhere.
445 * bc/object-id (2015-03-13) 10 commits
446   (merged to 'next' on 2015-03-24 at 3ec4f83)
447  + apply: convert threeway_stage to object_id
448  + patch-id: convert to use struct object_id
449  + commit: convert parts to struct object_id
450  + diff: convert struct combine_diff_path to object_id
451  + bulk-checkin.c: convert to use struct object_id
452  + zip: use GIT_SHA1_HEXSZ for trailers
453  + archive.c: convert to use struct object_id
454  + bisect.c: convert leaf functions to use struct object_id
455  + define utility functions for object IDs
456  + define a structure for object IDs
458  Identify parts of the code that knows that we use SHA-1 hash to
459  name our objects too much, and use (1) symbolic constants instead
460  of hardcoded 20 as byte count and/or (2) use struct object_id
461  instead of unsigned char [20] for object names.
463  Will cook in 'next'.
464  Also waiting for reviews on the follow-up series ($gmane/265939)
465  that seems to have seen no interest X-<.
468 * nd/slim-index-pack-memory-usage (2015-02-27) 2 commits
469  - index-pack: kill union delta_base to save memory
470  - index-pack: reduce object_entry size to save memory
472  Memory usage of "git index-pack" has been trimmed by tens of
473  per-cent.
475  Waiting for further comments and a final reroll ($gmane/264544).
478 * nd/list-files (2015-02-09) 21 commits
479  - t3080: tests for git-list-files
480  - list-files: -M aka diff-cached
481  - list-files -F: show submodules with the new indicator '&'
482  - list-files: add -F/--classify
483  - list-files: show directories as well as files
484  - list-files: do not show duplicate cached entries
485  - list-files: sort output and remove duplicates
486  - list-files: add -t back
487  - list-files: add -1 short for --no-column
488  - list-files: add -R/--recursive short for --max-depth=-1
489  - list-files: -u does not imply showing stages
490  - list-files: make alias 'ls' default to 'list-files'
491  - list-files: a user friendly version of ls-files and more
492  - ls-files: support --max-depth
493  - ls-files: add --column
494  - ls-files: add --color to highlight file names
495  - ls-files: buffer full item in strbuf before printing
496  - ls_colors.c: highlight submodules like directories
497  - ls_colors.c: add a function to color a file name
498  - ls_colors.c: parse color.ls.* from config file
499  - ls_colors.c: add $LS_COLORS parsing code
501  A new "git list-files" Porcelain command, "ls-files" with bells and
502  whistles.
504  Reroll to base on wt-status work ($gmane/265142) has seen some
505  positive discussions.
507  Waiting for a further polished reroll ($gmane/265534).
510 * js/fsck-opt (2015-01-21) 19 commits
511  - fsck: support ignoring objects in `git fsck` via fsck.skiplist
512  - fsck: git receive-pack: support excluding objects from fsck'ing
513  - fsck: introduce `git fsck --quick`
514  - fsck: support demoting errors to warnings
515  - fsck: document the new receive.fsck.* options
516  - fsck: allow upgrading fsck warnings to errors
517  - fsck: optionally ignore specific fsck issues completely
518  - fsck: disallow demoting grave fsck errors to warnings
519  - fsck: add a simple test for receive.fsck.*
520  - fsck: make fsck_tag() warn-friendly
521  - fsck: handle multiple authors in commits specially
522  - fsck: make fsck_commit() warn-friendly
523  - fsck: make fsck_ident() warn-friendly
524  - fsck: report the ID of the error/warning
525  - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
526  - fsck: offer a function to demote fsck errors to warnings
527  - fsck: provide a function to parse fsck message IDs
528  - fsck: introduce identifiers for fsck messages
529  - fsck: introduce fsck options
531  "fsck.warnings = <list of error tokens>" I suggested turned out to
532  be an unpopular choice (sorry Dscho).
534  Expecting a reroll.
537 * nd/multiple-work-trees (2015-03-31) 41 commits
538   (merged to 'next' on 2015-04-02 at 7ea51b4)
539  + prune --worktrees: fix expire vs worktree existence condition
540   (merged to 'next' on 2015-03-24 at 58b5a60)
541  + t1501: fix test with split index
542   (merged to 'next' on 2015-03-20 at cc98ed0)
543  + t2026: fix broken &&-chain
544   (merged to 'next' on 2015-02-18 at b51f696)
545  + t2026 needs procondition SANITY
546  + git-checkout.txt: a note about multiple checkout support for submodules
547  + checkout: add --ignore-other-wortrees
548  + checkout: pass whole struct to parse_branchname_arg instead of individual flags
549  + git-common-dir: make "modules/" per-working-directory directory
550  + checkout: do not fail if target is an empty directory
551  + t2025: add a test to make sure grafts is working from a linked checkout
552  + checkout: don't require a work tree when checking out into a new one
553  + git_path(): keep "info/sparse-checkout" per work-tree
554  + count-objects: report unused files in $GIT_DIR/worktrees/...
555  + gc: support prune --worktrees
556  + gc: factor out gc.pruneexpire parsing code
557  + gc: style change -- no SP before closing parenthesis
558  + checkout: clean up half-prepared directories in --to mode
559  + checkout: reject if the branch is already checked out elsewhere
560  + prune: strategies for linked checkouts
561  + checkout: support checking out into a new working directory
562  + use new wrapper write_file() for simple file writing
563  + wrapper.c: wrapper to open a file, fprintf then close
564  + setup.c: support multi-checkout repo setup
565  + setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
566  + setup.c: convert check_repository_format_gently to use strbuf
567  + setup.c: detect $GIT_COMMON_DIR in is_git_directory()
568  + setup.c: convert is_git_directory() to use strbuf
569  + git-stash: avoid hardcoding $GIT_DIR/logs/....
570  + *.sh: avoid hardcoding $GIT_DIR/hooks/...
571  + git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
572  + $GIT_COMMON_DIR: a new environment variable
573  + commit: use SEQ_DIR instead of hardcoding "sequencer"
574  + fast-import: use git_path() for accessing .git dir instead of get_git_dir()
575  + reflog: avoid constructing .lock path with git_path
576  + *.sh: respect $GIT_INDEX_FILE
577  + git_path(): be aware of file relocation in $GIT_DIR
578  + path.c: group git_path(), git_pathdup() and strbuf_git_path() together
579  + path.c: rename vsnpath() to do_git_path()
580  + git_snpath(): retire and replace with strbuf_git_path()
581  + path.c: make get_pathname() call sites return const char *
582  + path.c: make get_pathname() return strbuf instead of static buffer
584  A replacement for contrib/workdir/git-new-workdir that does not
585  rely on symbolic links and make sharing of objects and refs safer
586  by making the borrowee and borrowers aware of each other.
588  Will cook in 'next'.
590 --------------------------------------------------
591 [Discarded]
593 * ak/stash-store-create-help (2015-01-13) 1 commit
594  . stash: show "create" and "store" subcommands in usage-help
597 * bp/diff-relative-config (2015-01-07) 2 commits
598  . diff: teach diff.relative to give default to --relative=<value>
599  . diff: teach --no-relative to override earlier --relative
602 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
603  . git-quiltimport: flip the default not to allow fuzz
604  . git-quiltimport.sh: allow declining fuzz with --exact option
606  "quiltimport" drove "git apply" always with -C1 option to reduce
607  context of the patch in order to give more chance to somewhat stale
608  patches to apply.  Add an "--exact" option to disable, and also
609  "-C$n" option to customize this behaviour.  The top patch
610  optionally flips the default to "--exact".
613 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
614  . SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
615  . git-add--interactive: Preserve diff heading when splitting hunks
618 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
619  . userdiff: support Java try keyword
620  . userdiff: support C# async methods and correct C# keywords
623 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
624  . git-rebase: print name of rev when using shorthand
626  Teach "git rebase -" to report the concrete name of the branch
627  (i.e. the previous one).
629  But it stops short and does not do the same for "git rebase @{-1}".
632 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
633  . merge: drop unused arg from abort_commit method signature
634  . merge: make prepare_to_commit responsible for write_merge_state
635  . t7505: ensure cleanup after hook blocks merge
636  . t7505: add missing &&
638  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
639  run during "git merge".  The log message stresses too much on one
640  hook, prepare-commit-msg, but it would equally apply to other hooks
641  like post-merge, I think.
644 * jc/graph-post-root-gap (2013-12-30) 3 commits
645  . WIP: document what we want at the end
646  . graph: remove unused code a bit
647  . graph: stuff the current commit into graph->columns[]
649  This was primarily a RFH ($gmane/239580).
652 * ts/man-pdf (2015-03-20) 1 commit
653  . Documentation: make 'make pdf' format manpages to PDF as well
655  For offline consumption of manual pages, a target to produce one
656  pdf document per manual page was added to Documentation/Makefile.
658  Its usefulness is unknown, given that this does not produce a
659  single document with all the manual pages in it, which would be not
660  much better than keeping a bunch of HTML manual pages we already
661  produce and use them instead for offline consumption.
663  Discarded, while leaving a single-document target as an open
664  possibility.
667 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
668  . gitweb: Harden UTF-8 handling in generated links