1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Apr 2015, #02; Tue, 14)
4 X-master-at: e46fe3df01435bf523d2ab4f2755556c0e4e6f78
5 X-next-at: 261bf90abd228250f9684d6ab3165ecae03d793a
7 What's cooking in git.git (Apr 2015, #02; Tue, 14)
8 --------------------------------------------------
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
14 The second release candidate 2.4-rc2 has been tagged. There were a
15 few more topics I felt are safe to merge, but they had updates to
16 translatable strings, which would add last-minute burden to our l10n
17 teams, so they are held back for the remainder of the 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 [Graduated to "master"]
27 * iu/fix-parse-options-h-comment (2015-03-29) 1 commit
28 (merged to 'next' on 2015-04-02 at 7fd3cef)
29 + parse-options.h: OPTION_{BIT,SET_INT} do not store pointer to defval
32 * jc/update-instead-into-void (2015-04-01) 1 commit
33 (merged to 'next' on 2015-04-08 at 8ef4e15)
34 + push-to-deploy: allow pushing into an unborn branch and updating it
36 A push into an unborn branch, with "receive.denyCurrentBranch" set
37 to "updateInstead", did not check out the working tree as expected.
40 * jk/cherry-pick-docfix (2015-03-30) 1 commit
41 (merged to 'next' on 2015-04-02 at 40da1d7)
42 + cherry-pick: fix docs describing handling of empty commits
45 * jk/colors (2015-04-04) 1 commit
46 (merged to 'next' on 2015-04-08 at 9b9e6f2)
47 + diff-highlight: do not split multibyte characters
49 "diff-highlight" (in contrib/) used to show byte-by-byte
50 differences, which meant that multi-byte characters can be chopped
51 in the middle. It learned to pay attention to character boundaries
52 (assuming the UTF-8 payload).
55 * jk/merge-quiet (2015-04-02) 1 commit
56 (merged to 'next' on 2015-04-08 at 6475433)
57 + merge: pass verbosity flag down to merge-recursive
59 "git merge --quiet" did not squelch messages from the underlying
60 merge-recursive strategy.
63 * jk/pack-corruption-post-mortem (2015-04-01) 1 commit
64 (merged to 'next' on 2015-04-08 at 890c04e)
65 + howto: document more tools for recovery corruption
70 * jn/doc-fast-import-no-16-octopus-limit (2015-03-31) 1 commit
71 (merged to 'next' on 2015-04-08 at 341ca70)
72 + fast-import doc: remove suggested 16-parent limit
77 * jz/gitweb-conf-doc-fix (2015-03-31) 1 commit
78 (merged to 'next' on 2015-04-02 at 237d1bc)
79 + gitweb.conf.txt: say "build-time", not "built-time"
84 * pt/enter-repo-comment-fix (2015-03-31) 1 commit
85 (merged to 'next' on 2015-04-02 at 276ad7e)
86 + enter_repo(): fix docs to match code
91 * sb/plug-streaming-leak (2015-03-31) 1 commit
92 (merged to 'next' on 2015-04-08 at 226bdd8)
93 + streaming.c: fix a memleak
96 * sb/plug-wt-shortstatus-tracking-leak (2015-03-30) 1 commit
97 (merged to 'next' on 2015-04-08 at bd6291b)
98 + wt-status.c: fix a memleak
100 --------------------------------------------------
103 * ah/usage-strings (2015-04-02) 2 commits
104 - branch: fix funny-sounding error message
105 - standardize usage strings that were missed the first time
107 A few usage string updates.
112 * jk/reading-packed-refs (2015-04-05) 6 commits
113 - refname_is_safe: avoid expensive normalize_path_copy call
114 - t1430: add another refs-escape test
115 - strbuf: add an optimized 1-character strbuf_grow
116 - strbuf_getwholeline: use getc_unlocked
117 - git-compat-util: add fallbacks for unlocked stdio
118 - strbuf_getwholeline: use getc macro
120 An earlier rewrite to use strbuf_getwholeline() instead of fgets(3)
121 to read packed-refs file revealed that the former is unacceptably
124 There were further discussions on this topic to use getdelim(3).
130 * kk/log-merges-config (2015-04-04) 5 commits
131 - bash-completion: add support for git-log --merges= and log.merges
132 - t4202-log: add tests for --merges=
133 - Documentation: add git-log --merges= option and log.merges config. var
134 - log: honor log.merges= option
135 - revision: add --merges={show|only|hide} option
137 "git log" (but not other commands in the "log" family) learned to
138 pay attention to the log.merges configuration variable that can be
139 set to "show" (the normal behaviour), "only" (hide non-merge
140 commits), or "hide" (hide merge commits). --merges=(show|only|hide)
141 can be used to override the setting from the command line.
143 The documentation may need to be updated once more.
146 * kn/cat-file-literally (2015-04-05) 5 commits
148 - t1006: add tests for git cat-file --literally
149 - cat-file: add documentation for '--literally' option.
150 - cat-file: teach cat-file a '--literally' option
151 - sha1_file.c: support reading from a loose object of unknown type
153 Add the "--literally" option to "cat-file" to allow inspecting
154 loose objects of an experimental or a broken type.
156 This is v7 $gmane/266761; getting closer to the final, I would say.
159 * ld/p4-filetype-detection (2015-04-04) 3 commits
160 (merged to 'next' on 2015-04-08 at da735b4)
161 + git-p4: fix filetype detection on files opened exclusively
162 + git-p4: small fix for locked-file-move-test
163 + git-p4: fix small bug in locked test scripts
168 * mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
169 - t/lib-git-svn: check same httpd module dirs as lib-httpd
170 - t/lib-httpd: load mod_unixd
172 This is the first two commits in a three-patch series $gmane/266962
175 * tb/connect-ipv6-parse-fix (2015-04-08) 1 commit
176 (merged to 'next' on 2015-04-14 at e720918)
177 + connect.c: ignore extra colon after hostname
179 An earlier update to the parser that disects an address broke an
180 address, followed by a colon, followed by an empty string (instead
183 Will merge to 'master' in the first batch of post v2.4 cycle.
186 * lm/squelch-bg-progress (2015-04-14) 1 commit
187 - progress: no progress in background
189 Many long-running operations show progress eye-candy, even when
190 they are later backgrounded. Hide the eye-candy when the process
191 is sent to the background instead.
193 Needs a follow-up compat/ updates for platforms that lack POSIXy
194 process group support before this topic can move forward.
197 * ma/bash-completion-leaking-x (2015-04-12) 1 commit
198 (merged to 'next' on 2015-04-14 at 3a52a6d)
199 + completion: fix global bash variable leak on __gitcompappend
201 Will merge to 'master' in the first batch of post v2.4 cycle.
204 * ps/grep-help-all-callback-arg (2015-04-12) 1 commit
205 (merged to 'next' on 2015-04-14 at e0a8092)
206 + grep: correctly initialize help-all option
210 Will merge to 'master' in the first batch of post v2.4 cycle.
213 * pt/xdg-config-path (2015-04-12) 7 commits
214 - path.c: remove home_config_paths()
215 - git-config: replace use of home_config_paths()
216 - git-commit: replace use of home_config_paths()
217 - credential-store.c: replace home_config_paths() with xdg_config_home()
218 - dir.c: replace home_config_paths() with xdg_config_home()
219 - attr.c: replace home_config_paths() with xdg_config_home()
220 - path.c: implement xdg_config_home()
221 (this branch uses pt/credential-xdg.)
224 * sb/test-bitmap-free-at-end (2015-04-12) 1 commit
225 (merged to 'next' on 2015-04-14 at 0ae4759)
226 + pack-bitmap.c: fix a memleak
228 Will merge to 'master' in the first batch of post v2.4 cycle.
230 --------------------------------------------------
233 * as/userdiff-sh (2015-03-13) 1 commit
234 - userdiff: funcname and word patterns for sh
236 Add a built-in "userdiff" patterns to word-split and identify
237 notable lines in shell scripts to help presentation of diff and
243 * mh/fdopen-with-retry (2015-03-06) 6 commits
244 - buffer_fdinit(): use fdopen_with_retry()
245 - update_info_file(): use fdopen_with_retry()
246 - copy_to_log(): use fdopen_with_retry()
247 - fdopen_lock_file(): use fdopen_with_retry()
248 - SQUASH??? $gmane/264889
249 - xfdopen(): if first attempt fails, free memory and try again
251 Various parts of the code where they call fdopen() can fail when
252 they run out of memory; attempt to proceed by retrying the
253 operation after freeing some resource.
255 Waiting for further comments.
258 * nd/untracked-cache (2015-03-12) 24 commits
259 - git-status.txt: advertisement for untracked cache
260 - untracked cache: guard and disable on system changes
261 - mingw32: add uname()
262 - t7063: tests for untracked cache
263 - update-index: test the system before enabling untracked cache
264 - update-index: manually enable or disable untracked cache
265 - status: enable untracked cache
266 - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
267 - untracked cache: mark index dirty if untracked cache is updated
268 - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
269 - untracked cache: avoid racy timestamps
270 - read-cache.c: split racy stat test to a separate function
271 - untracked cache: invalidate at index addition or removal
272 - untracked cache: load from UNTR index extension
273 - untracked cache: save to an index extension
274 - ewah: add convenient wrapper ewah_serialize_strbuf()
275 - untracked cache: don't open non-existent .gitignore
276 - untracked cache: mark what dirs should be recursed/saved
277 - untracked cache: record/validate dir mtime and reuse cached output
278 - untracked cache: make a wrapper around {open,read,close}dir()
279 - untracked cache: invalidate dirs recursively if .gitignore changes
280 - untracked cache: initial untracked cache validation
281 - untracked cache: record .gitignore information and dir hierarchy
282 - dir.c: optionally compute sha-1 of a .gitignore file
284 Need extra sets of eyes to review this.
287 * jc/diff-b-m (2015-02-23) 5 commits
290 - diffcore-rename: allow easier debugging
291 - diffcore-rename.c: add locate_rename_src()
292 - diffcore-break: allow debugging
294 "git diff -B -M" produced incorrect patch when the postimage of a
295 completely rewritten file is similar to the preimage of a removed
296 file; such a resulting file must not be expressed as a rename from
299 The fix in this patch is broken, unfortunately.
302 * pw/remote-set-url-fetch (2014-11-26) 1 commit
303 - remote: add --fetch and --both options to set-url
308 * tr/remerge-diff (2014-11-10) 9 commits
309 - t4213: avoid "|" in sed regexp
310 - log --remerge-diff: show what the conflict resolution changed
311 - name-hash: allow dir hashing even when !ignore_case
312 - merge-recursive: allow storing conflict hunks in index
313 - merge_diff_mode: fold all merge diff variants into an enum
314 - combine-diff: do not pass revs->dense_combined_merges redundantly
315 - merge-recursive: -Xindex-only to leave worktree unchanged
316 - merge-recursive: internal flag to avoid touching the worktree
317 - merge-recursive: remove dead conditional in update_stages()
319 "log -p" output learns a new way to let users inspect a merge
320 commit by showing the differences between the automerged result
321 with conflicts the person who recorded the merge would have seen
322 and the final conflict resolution that was recorded in the merge.
324 Waiting for a reroll ($gmane/256591).
327 * hv/submodule-config (2014-11-11) 4 commits
328 - do not die on error of parsing fetchrecursesubmodules option
329 - use new config API for worktree configurations of submodules
330 - extract functions for submodule config set and lookup
331 - implement submodule config cache for lookup of submodule names
333 Kicked back to 'pu' per request ($gmane/255610).
336 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
337 - perf-lib: add test_perf_cleanup target
338 - perf-lib: split starting the test from the execution
340 Add test_perf_cleanup shell function to the perf suite, that allows
341 the script writers to define a test with a clean-up action.
346 * jc/show-branch (2014-03-24) 5 commits
347 - show-branch: use commit slab to represent bitflags of arbitrary width
348 - show-branch.c: remove "all_mask"
349 - show-branch.c: abstract out "flags" operation
350 - show-branch.c: lift all_mask/all_revs to a global static
351 - show-branch.c: update comment style
353 Waiting for the final step to lift the hard-limit.
355 --------------------------------------------------
358 * va/fix-git-p4-tests (2015-04-12) 3 commits
359 (merged to 'next' on 2015-04-14 at 261bf90)
360 + t9814: guarantee only one source exists in git-p4 copy tests
361 + git-p4: fix copy detection test
362 + t9814: fix broken shell syntax in git-p4 rename test
364 Test fixes for git-p4
366 Will merge to 'master' in the first batch of post v2.4 cycle.
369 * va/p4-client-path (2015-03-28) 2 commits
370 - git-p4: improve client path detection when branches are used
371 - t9801: check git-p4's branch detection and client view together
373 Attempt to better handle branches in perforce by git p4
374 Reviews by git-p4 experts are very much appreciated.
377 * jk/at-push-sha1 (2015-03-31) 6 commits
378 - sha1_name: implement @{push} shorthand
379 - sha1_name: refactor upstream_mark
380 - remote.c: provide per-branch pushremote name
381 - remote.c: hoist branch.*.remote lookup out of remote_get_1
382 - remote.c: drop "remote" pointer from "struct branch"
383 - remote.c: drop default_remote_name variable
386 * jk/sha1-file-reduce-useless-warnings (2015-03-30) 1 commit
387 - sha1_file: squelch "packfile cannot be accessed" warnings
390 * mh/show-branch-topic (2015-03-31) 1 commit
391 (merged to 'next' on 2015-04-08 at 628ada5)
392 + show-branch: show all local heads when only giving one rev along --topics
394 "git show-branch --topics HEAD" (with no other arguments) did not
395 do anything interesting. Instead, contrast the given revision
396 against all the local branches by default.
398 Will merge to 'master' in the first batch of post v2.4 cycle.
401 * sb/line-log-plug-pairdiff-leak (2015-03-30) 1 commit
402 (merged to 'next' on 2015-04-08 at 6ea8b71)
403 + line-log.c: fix a memleak
405 Will merge to 'master' in the first batch of post v2.4 cycle.
408 * jc/push-cert (2015-04-02) 1 commit
409 (merged to 'next' on 2015-04-08 at aecdd43)
410 + push --signed: tighten what the receiving end can ask to sign
412 The "git push --signed" protocol extension did not limit what the
413 "nonce" that is a server-chosen string can contain or how long it
414 can be, which was unnecessarily lax. Limit both the length and the
415 alphabet to a reasonably small space that can still have enough
418 Will merge to 'master' in the first batch of post v2.4 cycle.
421 * jk/init-core-worktree-at-root (2015-04-02) 1 commit
422 (merged to 'next' on 2015-04-08 at 92a942b)
423 + init: don't set core.worktree when initializing /.git
425 We avoid setting core.worktree when the repository location is the
426 ".git" directory directly at the top level of the working tree, but
427 the code misdetected the case in which the working tree is at the
428 root level of the filesystem (which arguably is a silly thing to
429 do, but still valid).
431 Will merge to 'master' in the first batch of post v2.4 cycle.
434 * ts/checkout-advice-plural (2015-04-02) 1 commit
435 (merged to 'next' on 2015-04-08 at dd5c436)
436 + checkout: call a single commit "it" intead of "them"
438 Will merge to 'master' in the first batch of post v2.4 cycle.
441 * pt/credential-xdg (2015-03-25) 4 commits
442 (merged to 'next' on 2015-03-25 at 765128e)
443 + t0302: "unreadable" test needs POSIXPERM
444 (merged to 'next' on 2015-03-24 at 9a3706e)
445 + t0302: test credential-store support for XDG_CONFIG_HOME
446 + git-credential-store: support XDG_CONFIG_HOME
447 + git-credential-store: support multiple credential files
448 (this branch is used by pt/xdg-config-path.)
450 Tweak the sample "store" backend of the credential helper to honor
451 XDG configuration file locations when specified.
453 As this may see further updates, and also this is not an urgent
454 issue anyway, I'll give it a bit more time for it to simmer.
459 * jc/merge-deprecate-old-syntax (2015-03-26) 1 commit
460 - merge: deprecate 'git merge <message> HEAD <commit>' syntax
461 (this branch is used by jc/merge-drop-old-syntax.)
463 The first step to really start the process of removing the ancient
464 syntax to invoke a two-way merge, which has been deprecated since
468 * jc/merge-drop-old-syntax (2015-03-26) 1 commit
469 - merge: drop 'git merge <message> HEAD <commit>' syntax
470 (this branch uses jc/merge-deprecate-old-syntax.)
472 Stop supporting "git merge <messsage> HEAD <commit>" syntax that
473 has been deprecated since October 2007.
476 * jc/diff-no-index-d-f (2015-03-26) 2 commits
477 (merged to 'next' on 2015-03-27 at 1f270f9)
478 + diff-no-index: align D/F handling with that of normal Git
479 + diff-no-index: DWIM "diff D F" into "diff D/F F"
481 The usual "git diff" when seeing a file turning into a directory
482 showed a patchset to remove the file and create all files in the
483 directory, but "git diff --no-index" simply refused to work. Also,
484 when asked to compare a file and a directory, imitate POSIX "diff"
485 and compare the file with the file with the same name in the
486 directory, instead of refusing to run.
491 * nd/diff-i-t-a (2015-03-23) 1 commit
492 (merged to 'next' on 2015-03-24 at a6be89f)
493 + diff-lib.c: adjust position of i-t-a entries in diff
495 After "git add -N", the path appeared in output of "git diff HEAD"
496 and "git diff --cached HEAD", leading "git status" to classify it
497 as "Changes to be committed". Such a path, however, is not yet to
498 be scheduled to be committed. "git diff" showed the change to the
499 path as modification, not as a "new file", in the header of its
502 Treat such paths as "yet to be added to the index but Git already
503 know about them"; "git diff HEAD" and "git diff --cached HEAD"
504 should not talk about them, and "git diff" should show them as new
505 files yet to be added to the index.
507 Will cook in 'next', as this brings in a new world order.
510 * mh/numparse (2015-03-19) 14 commits
511 - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
512 - diff_opt_parse(): use convert_i() when handling "-l<num>"
513 - opt_arg(): simplify pointer handling
514 - opt_arg(): report errors parsing option values
515 - opt_arg(): use convert_i() in implementation
516 - opt_arg(): val is always non-NULL
517 - builtin_diff(): detect errors when parsing --unified argument
518 - handle_revision_opt(): use convert_ui() when handling "--abbrev="
519 - strtoul_ui(), strtol_i(): remove functions
520 - handle_revision_opt(): use convert_i() when handling "-<digit>"
521 - handle_revision_opt(): use skip_prefix() in many places
522 - write_subdirectory(): use convert_ui() for parsing mode
523 - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
524 - numparse: new module for parsing integral numbers
526 Many codepaths use unchecked use of strtol() and friends (or even
527 worse, atoi()). Introduce a set of wrappers that try to be more
530 Waiting for a reroll ($gmane/266209).
533 * tf/gitweb-project-listing (2015-03-19) 5 commits
534 - gitweb: make category headings into links when they are directories
535 - gitweb: optionally set project category from its pathname
536 - gitweb: add a link under the search box to clear a project filter
537 - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
538 - gitweb: fix typo in man page
540 Update gitweb to make it more pleasant to deal with a hierarchical
541 forest of repositories.
543 Any comments from those who use or have their own code in Gitweb?
546 * jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
547 - "-" and "@{-1}" on various programs
549 Lose special case code to make a lone dash "-" mean the previous
550 branch aka "@{-1}" from a handful subcommands, and instead support
551 the notation throughout the system by reimplementing it at the
554 Needs tests, documentation updates, etc. Also does only a half-way
555 job dealing with range notation, which needs to be fixed before the
556 series goes anywhere.
559 * bc/object-id (2015-03-13) 10 commits
560 (merged to 'next' on 2015-03-24 at 3ec4f83)
561 + apply: convert threeway_stage to object_id
562 + patch-id: convert to use struct object_id
563 + commit: convert parts to struct object_id
564 + diff: convert struct combine_diff_path to object_id
565 + bulk-checkin.c: convert to use struct object_id
566 + zip: use GIT_SHA1_HEXSZ for trailers
567 + archive.c: convert to use struct object_id
568 + bisect.c: convert leaf functions to use struct object_id
569 + define utility functions for object IDs
570 + define a structure for object IDs
572 Identify parts of the code that knows that we use SHA-1 hash to
573 name our objects too much, and use (1) symbolic constants instead
574 of hardcoded 20 as byte count and/or (2) use struct object_id
575 instead of unsigned char [20] for object names.
578 Also waiting for reviews on the follow-up series ($gmane/265939)
579 that seems to have seen no interest X-<.
582 * nd/slim-index-pack-memory-usage (2015-02-27) 2 commits
583 - index-pack: kill union delta_base to save memory
584 - index-pack: reduce object_entry size to save memory
586 Memory usage of "git index-pack" has been trimmed by tens of
589 Waiting for further comments and a final reroll ($gmane/264544).
592 * nd/list-files (2015-02-09) 21 commits
593 - t3080: tests for git-list-files
594 - list-files: -M aka diff-cached
595 - list-files -F: show submodules with the new indicator '&'
596 - list-files: add -F/--classify
597 - list-files: show directories as well as files
598 - list-files: do not show duplicate cached entries
599 - list-files: sort output and remove duplicates
600 - list-files: add -t back
601 - list-files: add -1 short for --no-column
602 - list-files: add -R/--recursive short for --max-depth=-1
603 - list-files: -u does not imply showing stages
604 - list-files: make alias 'ls' default to 'list-files'
605 - list-files: a user friendly version of ls-files and more
606 - ls-files: support --max-depth
607 - ls-files: add --column
608 - ls-files: add --color to highlight file names
609 - ls-files: buffer full item in strbuf before printing
610 - ls_colors.c: highlight submodules like directories
611 - ls_colors.c: add a function to color a file name
612 - ls_colors.c: parse color.ls.* from config file
613 - ls_colors.c: add $LS_COLORS parsing code
615 A new "git list-files" Porcelain command, "ls-files" with bells and
618 Reroll to base on wt-status work ($gmane/265142) has seen some
619 positive discussions.
621 Waiting for a further polished reroll ($gmane/265534).
624 * js/fsck-opt (2015-01-21) 19 commits
625 - fsck: support ignoring objects in `git fsck` via fsck.skiplist
626 - fsck: git receive-pack: support excluding objects from fsck'ing
627 - fsck: introduce `git fsck --quick`
628 - fsck: support demoting errors to warnings
629 - fsck: document the new receive.fsck.* options
630 - fsck: allow upgrading fsck warnings to errors
631 - fsck: optionally ignore specific fsck issues completely
632 - fsck: disallow demoting grave fsck errors to warnings
633 - fsck: add a simple test for receive.fsck.*
634 - fsck: make fsck_tag() warn-friendly
635 - fsck: handle multiple authors in commits specially
636 - fsck: make fsck_commit() warn-friendly
637 - fsck: make fsck_ident() warn-friendly
638 - fsck: report the ID of the error/warning
639 - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
640 - fsck: offer a function to demote fsck errors to warnings
641 - fsck: provide a function to parse fsck message IDs
642 - fsck: introduce identifiers for fsck messages
643 - fsck: introduce fsck options
645 "fsck.warnings = <list of error tokens>" I suggested turned out to
646 be an unpopular choice (sorry Dscho).
651 * nd/multiple-work-trees (2015-03-31) 41 commits
652 (merged to 'next' on 2015-04-02 at 7ea51b4)
653 + prune --worktrees: fix expire vs worktree existence condition
654 (merged to 'next' on 2015-03-24 at 58b5a60)
655 + t1501: fix test with split index
656 (merged to 'next' on 2015-03-20 at cc98ed0)
657 + t2026: fix broken &&-chain
658 (merged to 'next' on 2015-02-18 at b51f696)
659 + t2026 needs procondition SANITY
660 + git-checkout.txt: a note about multiple checkout support for submodules
661 + checkout: add --ignore-other-wortrees
662 + checkout: pass whole struct to parse_branchname_arg instead of individual flags
663 + git-common-dir: make "modules/" per-working-directory directory
664 + checkout: do not fail if target is an empty directory
665 + t2025: add a test to make sure grafts is working from a linked checkout
666 + checkout: don't require a work tree when checking out into a new one
667 + git_path(): keep "info/sparse-checkout" per work-tree
668 + count-objects: report unused files in $GIT_DIR/worktrees/...
669 + gc: support prune --worktrees
670 + gc: factor out gc.pruneexpire parsing code
671 + gc: style change -- no SP before closing parenthesis
672 + checkout: clean up half-prepared directories in --to mode
673 + checkout: reject if the branch is already checked out elsewhere
674 + prune: strategies for linked checkouts
675 + checkout: support checking out into a new working directory
676 + use new wrapper write_file() for simple file writing
677 + wrapper.c: wrapper to open a file, fprintf then close
678 + setup.c: support multi-checkout repo setup
679 + setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
680 + setup.c: convert check_repository_format_gently to use strbuf
681 + setup.c: detect $GIT_COMMON_DIR in is_git_directory()
682 + setup.c: convert is_git_directory() to use strbuf
683 + git-stash: avoid hardcoding $GIT_DIR/logs/....
684 + *.sh: avoid hardcoding $GIT_DIR/hooks/...
685 + git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
686 + $GIT_COMMON_DIR: a new environment variable
687 + commit: use SEQ_DIR instead of hardcoding "sequencer"
688 + fast-import: use git_path() for accessing .git dir instead of get_git_dir()
689 + reflog: avoid constructing .lock path with git_path
690 + *.sh: respect $GIT_INDEX_FILE
691 + git_path(): be aware of file relocation in $GIT_DIR
692 + path.c: group git_path(), git_pathdup() and strbuf_git_path() together
693 + path.c: rename vsnpath() to do_git_path()
694 + git_snpath(): retire and replace with strbuf_git_path()
695 + path.c: make get_pathname() call sites return const char *
696 + path.c: make get_pathname() return strbuf instead of static buffer
698 A replacement for contrib/workdir/git-new-workdir that does not
699 rely on symbolic links and make sharing of objects and refs safer
700 by making the borrowee and borrowers aware of each other.
704 --------------------------------------------------
707 * ak/stash-store-create-help (2015-01-13) 1 commit
708 . stash: show "create" and "store" subcommands in usage-help
711 * bp/diff-relative-config (2015-01-07) 2 commits
712 . diff: teach diff.relative to give default to --relative=<value>
713 . diff: teach --no-relative to override earlier --relative
716 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
717 . git-quiltimport: flip the default not to allow fuzz
718 . git-quiltimport.sh: allow declining fuzz with --exact option
720 "quiltimport" drove "git apply" always with -C1 option to reduce
721 context of the patch in order to give more chance to somewhat stale
722 patches to apply. Add an "--exact" option to disable, and also
723 "-C$n" option to customize this behaviour. The top patch
724 optionally flips the default to "--exact".
727 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
728 . SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
729 . git-add--interactive: Preserve diff heading when splitting hunks
732 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
733 . userdiff: support Java try keyword
734 . userdiff: support C# async methods and correct C# keywords
737 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
738 . git-rebase: print name of rev when using shorthand
740 Teach "git rebase -" to report the concrete name of the branch
741 (i.e. the previous one).
743 But it stops short and does not do the same for "git rebase @{-1}".
746 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
747 . merge: drop unused arg from abort_commit method signature
748 . merge: make prepare_to_commit responsible for write_merge_state
749 . t7505: ensure cleanup after hook blocks merge
750 . t7505: add missing &&
752 Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
753 run during "git merge". The log message stresses too much on one
754 hook, prepare-commit-msg, but it would equally apply to other hooks
755 like post-merge, I think.
758 * jc/graph-post-root-gap (2013-12-30) 3 commits
759 . WIP: document what we want at the end
760 . graph: remove unused code a bit
761 . graph: stuff the current commit into graph->columns[]
763 This was primarily a RFH ($gmane/239580).
766 * ts/man-pdf (2015-03-20) 1 commit
767 . Documentation: make 'make pdf' format manpages to PDF as well
769 For offline consumption of manual pages, a target to produce one
770 pdf document per manual page was added to Documentation/Makefile.
772 Its usefulness is unknown, given that this does not produce a
773 single document with all the manual pages in it, which would be not
774 much better than keeping a bunch of HTML manual pages we already
775 produce and use them instead for offline consumption.
777 Discarded, while leaving a single-document target as an open
781 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
782 . gitweb: Harden UTF-8 handling in generated links