1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Sep 2014, #01; Tue, 2)
4 X-master-at: 85f083786fe37f280ca30fc0b74498b22b322c6d
5 X-next-at: 7c4bc81ba6302d4dd40821b46578580afbcdf4b5
7 What's cooking in git.git (Sep 2014, #01; Tue, 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
14 The first batch of topics have graduated to 'master'.
16 You can find the changes described here in the integration branches
17 of the repositories listed at
19 http://git-blame.blogspot.com/p/git-public-repositories.html
21 --------------------------------------------------
22 [Graduated to "master"]
24 * bc/archive-pax-header-mode (2014-08-04) 1 commit
25 (merged to 'next' on 2014-08-26 at 51fca1a)
26 + archive: honor tar.umask even for pax headers
28 Originally merged to 'next' on 2014-08-13
30 Implementations of "tar" that do not understand an extended pax
31 header would extract the contents of it in a regular file; make
32 sure the permission bits of this file follows the same tar.umask
33 configuration setting.
36 * jc/reopen-lock-file (2014-07-14) 1 commit
37 (merged to 'next' on 2014-08-26 at c5a5a12)
38 + lockfile: allow reopening a closed but still locked file
40 Originally merged to 'next' on 2014-07-21
42 Needed in the "commit -p" code path to update the cache tree in the
43 index (e.g. for dt/cache-tree-repair topic).
46 * jk/pretty-empty-format (2014-07-30) 3 commits
47 (merged to 'next' on 2014-08-26 at 1eb7cc3)
48 + pretty: make empty userformats truly empty
49 + pretty: treat "--format=" as an empty userformat
50 + revision: drop useless string offset when parsing "--pretty"
52 Originally merged to 'next' on 2014-08-13
54 "git log --pretty/format=" with an empty format string did not mean
55 the more obvious "No output whatsoever" but "Use default format",
56 which was counterintuitive.
59 * mm/config-edit-global (2014-07-25) 3 commits
60 (merged to 'next' on 2014-08-26 at 3a47fc5)
61 + commit: advertise config --global --edit on guessed identity
62 + home_config_paths(): let the caller ignore xdg path
63 + config --global --edit: create a template file if needed
65 Originally merged to 'next' on 2014-07-31
67 Start "git config --edit --global" from a skeletal per-user
68 configuration file contents, instead of a total blank, when the
69 user does not already have any. This immediately reduces the need
70 for a later "Have you forgotten setting core.user?" and we can add
71 more to the template as we gain more experience.
74 * pr/remotes-in-hashmap (2014-07-30) 1 commit
75 (merged to 'next' on 2014-08-26 at 2052a31)
76 + use a hashmap to make remotes faster
78 Originally merged to 'next' on 2014-08-13
80 Optimize remotes configuration look-up in a repository with very
84 * rs/init-no-duplicate-real-path (2014-07-28) 1 commit
85 (merged to 'next' on 2014-08-26 at c66e1c4)
86 + init: avoid superfluous real_path() calls
88 Originally merged to 'next' on 2014-07-31
91 * rs/strbuf-getcwd (2014-08-26) 10 commits
92 (merged to 'next' on 2014-08-26 at 11be0d6)
93 + use strbuf_add_absolute_path() to add absolute paths
94 + abspath: convert absolute_path() to strbuf
95 + use xgetcwd() to set $GIT_DIR
96 + use xgetcwd() to get the current directory or die
97 + wrapper: add xgetcwd()
98 + abspath: convert real_path_internal() to strbuf
99 + abspath: use strbuf_getcwd() to remember original working directory
100 + setup: convert setup_git_directory_gently_1 et al. to strbuf
101 + unix-sockets: use strbuf_getcwd()
102 + strbuf: add strbuf_getcwd()
103 (this branch is tangled with nd/lock-paths-absolute.)
105 Originally merged to 'next' on 2014-08-18
107 Reduce the use of fixed sized buffer passed to getcwd() calls
108 by introducing xgetcwd() helper.
111 * ta/config-set (2014-07-29) 2 commits
112 (merged to 'next' on 2014-08-26 at 81395f9)
113 + test-config: add tests for the config_set API
114 + add `config_set` API for caching config-like files
115 (this branch is used by ta/config-set-1 and ta/config-set-2.)
117 Originally merged to 'next' on 2014-08-13
119 Add in-core caching layer to let us avoid reading the same
120 configuration files number of times.
123 * ta/pretty-parse-config (2014-08-04) 1 commit
124 (merged to 'next' on 2014-08-26 at 901e8c2)
125 + pretty.c: make git_pretty_formats_config return -1 on git_config_string failure
127 Originally merged to 'next' on 2014-08-13
129 --------------------------------------------------
132 * bb/date-iso-strict (2014-08-29) 1 commit
133 - pretty: provide a strict ISO 8601 date format
136 * jk/commit-author-parsing (2014-08-29) 6 commits
137 - determine_author_info(): copy getenv output
138 - determine_author_info(): reuse parsing functions
139 - date: use strbufs in date-formatting functions
140 - record_author_date(): use find_commit_header()
141 - record_author_date(): fix memory leak on malformed commit
142 - commit: provide a function to find a header in a buffer
145 * jk/contrib-subtree-make-all (2014-08-18) 1 commit
146 - subtree: make "all" default target of Makefile
149 * jk/fast-export-anonymize (2014-08-28) 2 commits
150 - docs/fast-export: explain --anonymize more completely
151 - teach fast-export an --anonymize option
154 * jk/index-pack-threading-races (2014-08-29) 1 commit
155 - index-pack: fix race condition with duplicate bases
158 * jk/send-pack-many-refspecs (2014-08-26) 1 commit
159 - send-pack: take refspecs over stdin
162 * jp/index-with-corrupt-stages (2014-08-29) 2 commits
163 - read_index_unmerged(): remove unnecessary loop index adjustment
164 - read_index_from(): catch out of order entries when reading an index file
167 * jt/timer-settime (2014-08-29) 9 commits
168 - use timer_settime() for new platforms
169 - autoconf: check for timer_settime()
170 - autoconf: check for struct itimerspec
171 - autoconf: check for struct sigevent
172 - autoconf: check for struct timespec
173 - autoconf: check for timer_t
174 - autoconf: check for setitimer()
175 - autoconf: check for struct itimerval
176 - git-compat-util.h: add missing semicolon after struct itimerval
181 * mb/build-contrib-svn-fe (2014-08-28) 1 commit
182 - contrib/svn-fe: fix Makefile
185 * mb/fast-import-delete-root (2014-08-29) 2 commits
186 - fast-import: fix segfault in store_tree()
187 - t9300: test filedelete command
190 * mm/discourage-commit-a-to-finish-conflict-resolution (2014-08-28) 1 commit
191 - merge, pull: stop advising 'commit -a' in case of conflict
194 * sp/pack-protocol-doc-on-shallow (2014-08-28) 1 commit
195 (merged to 'next' on 2014-08-29 at b1ae451)
196 + Document LF appearing in shallow command during send-pack/receive-pack
198 Will merge to 'master'.
201 * ah/grammofix (2014-09-02) 1 commit
202 - grammofix in user-facing messages
205 * da/styles (2014-09-02) 1 commit
206 - stylefix: asterisks stick to the variable, not the type
209 * da/use-rev-parse-verify-quiet-in-stash (2014-09-02) 1 commit
210 - stash: prefer --quiet over shell redirection
213 * mk/reachable-protect-detached-head (2014-09-02) 2 commits
215 - reachable.c: add HEAD to reachability starting commits
218 * rs/furhter-uses-of-skip-prefix (2014-09-02) 2 commits
219 - pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt()
220 - connect: simplify check_ref() using skip_prefix() and starts_with()
223 * rs/merge-tree-simplify (2014-09-02) 1 commit
224 - merge-tree: remove unused df_conflict arguments
227 * rs/simplify-config-include (2014-09-02) 1 commit
228 - config: simplify git_config_include()
231 * rs/simplify-http-walker (2014-09-02) 1 commit
232 - http-walker: simplify process_alternates_response() using strbuf
235 * tb/crlf-tests (2014-09-02) 3 commits
236 - MinGW: update tests to handle a native eol of crlf
237 - Makefile: propagate NATIVE_CRLF to C
238 - t0027: Tests for core.eol=native, eol=lf, eol=crlf
240 --------------------------------------------------
243 * jk/pack-bitmap (2014-08-04) 1 commit
244 - pack-bitmap: do not use gcc packed attribute
246 Hold, waiting for Karsten's replacement.
249 * nd/multiple-work-trees (2014-07-29) 39 commits
250 . checkout --to: do not touch existing target directory
251 . checkout: prefix --to argument properly when cwd is moved
252 . environment.c: fix incorrect git_graft_file initialization
253 . checkout --to: fix dangling pointers in remove_junk()
254 . checkout: no auto-detach if the ref is already checked out
255 . prune --repos: fix uninitialized access
256 . checkout: no need to call check_linked_checkouts if head_ref is NULL
257 . gitrepository-layout.txt: s/ignored/ignored if/
258 . checkout: don't require a work tree when checking out into a new one
259 . git_path(): keep "info/sparse-checkout" per work-tree
260 . count-objects: report unused files in $GIT_DIR/repos/...
261 . gc: support prune --repos
262 . gc: factor out gc.pruneexpire parsing code
263 . gc: style change -- no SP before closing parenthesis
264 . prune: strategies for linked checkouts
265 . checkout: detach if the branch is already checked out elsewhere
266 . checkout: clean up half-prepared directories in --to mode
267 . checkout: support checking out into a new working directory
268 . use new wrapper write_file() for simple file writing
269 . wrapper.c: wrapper to open a file, fprintf then close
270 . setup.c: support multi-checkout repo setup
271 . setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
272 . setup.c: convert check_repository_format_gently to use strbuf
273 . setup.c: detect $GIT_COMMON_DIR in is_git_directory()
274 . setup.c: convert is_git_directory() to use strbuf
275 . git-stash: avoid hardcoding $GIT_DIR/logs/....
276 . *.sh: avoid hardcoding $GIT_DIR/hooks/...
277 . git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
278 . $GIT_COMMON_DIR: a new environment variable
279 . commit: use SEQ_DIR instead of hardcoding "sequencer"
280 . fast-import: use git_path() for accessing .git dir instead of get_git_dir()
281 . reflog: avoid constructing .lock path with git_path
282 . *.sh: respect $GIT_INDEX_FILE
283 . git_path(): be aware of file relocation in $GIT_DIR
284 . path.c: group git_path(), git_pathdup() and strbuf_git_path() together
285 . path.c: rename vsnpath() to do_git_path()
286 . git_snpath(): retire and replace with strbuf_git_path()
287 . path.c: make get_pathname() call sites return const char *
288 . path.c: make get_pathname() return strbuf instead of static buffer
290 A replacement for contrib/workdir/git-new-workdir that does not
291 rely on symbolic links and make sharing of objects and refs safer
292 by making the borrowee and borrowers aware of each other.
294 Reroll posted, but haven't picked up yet. How would this interact
295 with rr/transaction series which is pretty much all about the refs?
298 * cb/mergetool-difftool (2014-07-21) 2 commits
299 - difftool: don't assume that default sh is sane
300 - mergetool: don't require a work tree for --tool-help
302 Update the way the "difftool --help" shows the help message that is
303 shared with the "mergetool" to reduce one shell dependency.
308 * rr/mergetool-temporary-filename-tweak (2014-08-21) 1 commit
309 - Allow the user to change the temporary file name for mergetool
311 Needs rerolling (new paragraph in doc seems to be in a wrong place)
314 * jk/tag-contains (2014-06-30) 8 commits
315 . perf: add tests for tag --contains
316 . tag: use commit_contains
317 . commit: provide a fast multi-tip contains function
318 . string-list: add pos to iterator callback
319 . add functions for memory-efficient bitmaps
320 . paint_down_to_common: use prio_queue
321 . tag: factor out decision to stream tags
322 . tag: allow --sort with -n
327 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
328 - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
329 - git-add--interactive: Preserve diff heading when splitting hunks
331 Waiting for a reroll.
334 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
335 - gitweb: Harden UTF-8 handling in generated links
340 * rh/prompt-tests (2014-06-05) 11 commits
341 - t9904: new __git_ps1 tests for Zsh
342 - test-lib: make it possible to override how test code is eval'd
343 - lib-prompt-tests.sh: add variable for string that encodes percent in PS1
344 - lib-prompt-tests.sh: put all tests inside a function
345 - t9903: move prompt tests to a new lib-prompt-tests.sh file
346 - t9903: move PS1 color code variable definitions to lib-bash.sh
347 - t9903: include "Bash" in test names via new $shellname var
348 - t9903: run pc mode tests again with PS1 expansion disabled
349 - t9903: move test name prefix to a separate variable
350 - t9903: put the Bash pc mode prompt test cases in a function
351 - t9903: remove Zsh test from the suite of Bash prompt tests
353 Expecting a reroll to limit the damage to test_eval_; also reported
354 to be broken with older zsh that are still in the field ($gmane/251231).
357 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
358 - userdiff: support Java try keyword
359 - userdiff: support C# async methods and correct C# keywords
361 Reviews sent; waiting for a response.
364 * cc/interpret-trailers (2014-05-28) 11 commits
365 - Documentation: add documentation for 'git interpret-trailers'
366 - trailer: add tests for commands in config file
367 - trailer: execute command from 'trailer.<name>.command'
368 - trailer: add tests for "git interpret-trailers"
369 - trailer: add interpret-trailers command
370 - trailer: put all the processing together and print
371 - trailer: parse trailers from file or stdin
372 - trailer: process command line trailer arguments
373 - trailer: read and process config information
374 - trailer: process trailers from input message and arguments
375 - trailer: add data structures and basic functions
377 A new filter to programatically edit the tail end of the commit log
380 Reroll exists, but haven't had time to pick it up yet.
383 * mh/lockfile (2014-04-15) 25 commits
384 . trim_last_path_elm(): replace last_path_elm()
385 . resolve_symlink(): take a strbuf parameter
386 . resolve_symlink(): use a strbuf for internal scratch space
387 . change lock_file::filename into a strbuf
388 . commit_lock_file(): use a strbuf to manage temporary space
389 . try_merge_strategy(): use a statically-allocated lock_file object
390 . try_merge_strategy(): remove redundant lock_file allocation
391 . struct lock_file: declare some fields volatile
392 . lockfile: avoid transitory invalid states
393 . commit_lock_file(): die() if called for unlocked lockfile object
394 . commit_lock_file(): inline temporary variable
395 . remove_lock_file(): call rollback_lock_file()
396 . lock_file(): exit early if lockfile cannot be opened
397 . write_packed_entry_fn(): convert cb_data into a (const int *)
398 . prepare_index(): declare return value to be (const char *)
399 . delete_ref_loose(): don't muck around in the lock_file's filename
400 . cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
401 . lockfile.c: document the various states of lock_file objects
402 . lock_file(): always add lock_file object to lock_file_list
403 . hold_lock_file_for_append(): release lock on errors
404 . lockfile: unlock file if lockfile permissions cannot be adjusted
405 . rollback_lock_file(): set fd to -1
406 . rollback_lock_file(): do not clear filename redundantly
407 . api-lockfile: expand the documentation
408 . unable_to_lock_die(): rename function from unable_to_lock_index_die()
413 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
414 - git-rebase: print name of rev when using shorthand
416 Teach "git rebase -" to report the concrete name of the branch
417 (i.e. the previous one).
419 But it stops short and does not do the same for "git rebase @{-1}".
423 * tr/merge-recursive-index-only (2014-02-05) 3 commits
424 - merge-recursive: -Xindex-only to leave worktree unchanged
425 - merge-recursive: internal flag to avoid touching the worktree
426 - merge-recursive: remove dead conditional in update_stages()
427 (this branch is used by tr/remerge-diff.)
430 * tr/remerge-diff (2014-02-26) 5 commits
431 . log --remerge-diff: show what the conflict resolution changed
432 . name-hash: allow dir hashing even when !ignore_case
433 . merge-recursive: allow storing conflict hunks in index
434 . revision: fold all merge diff variants into an enum merge_diff_mode
435 . combine-diff: do not pass revs->dense_combined_merges redundantly
436 (this branch uses tr/merge-recursive-index-only.)
438 "log -p" output learns a new way to let users inspect a merge
439 commit by showing the differences between the automerged result
440 with conflicts the person who recorded the merge would have seen
441 and the final conflict resolution that was recorded in the merge.
443 Needs to be rebased, now kb/fast-hashmap topic is in.
446 * jk/makefile (2014-02-05) 16 commits
448 . move LESS/LV pager environment to Makefile
449 . Makefile: teach scripts to include make variables
451 . Makefile: auto-build C strings from make variables
452 . Makefile: drop *_SQ variables
454 . Makefile: add c-quote helper function
455 . Makefile: introduce sq function for shell-quoting
456 . Makefile: always create files via make-var
457 . Makefile: store GIT-* sentinel files in MAKE/
458 . Makefile: prefer printf to echo for GIT-*
459 . Makefile: use tempfile/mv strategy for GIT-*
460 . Makefile: introduce make-var helper function
461 . Makefile: fix git-instaweb dependency on gitweb
462 . Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
464 Simplify the Makefile rules and macros that exist primarily for
465 quoting purposes, and make it easier to robustly express the
471 * po/everyday-doc (2014-01-27) 1 commit
472 - Make 'git help everyday' work
474 This may make the said command to emit something, but the source is
475 not meant to be formatted into a manual pages to begin with, and
476 also its contents are a bit stale. It may be a good first step in
477 the right direction, but needs more work to at least get the
478 mark-up right before public consumption.
483 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
484 - merge: drop unused arg from abort_commit method signature
485 - merge: make prepare_to_commit responsible for write_merge_state
486 - t7505: ensure cleanup after hook blocks merge
487 - t7505: add missing &&
489 Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
490 run during "git merge". The log message stresses too much on one
491 hook, prepare-commit-msg, but it would equally apply to other hooks
492 like post-merge, I think.
494 Waiting for a reroll.
497 * jc/graph-post-root-gap (2013-12-30) 3 commits
498 - WIP: document what we want at the end
499 - graph: remove unused code a bit
500 - graph: stuff the current commit into graph->columns[]
502 This was primarily a RFH ($gmane/239580).
505 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
506 - perf-lib: add test_perf_cleanup target
507 - perf-lib: split starting the test from the execution
509 Add test_perf_cleanup shell function to the perf suite, that allows
510 the script writers to define a test with a clean-up action.
515 * jc/show-branch (2014-03-24) 5 commits
516 - show-branch: use commit slab to represent bitflags of arbitrary width
517 - show-branch.c: remove "all_mask"
518 - show-branch.c: abstract out "flags" operation
519 - show-branch.c: lift all_mask/all_revs to a global static
520 - show-branch.c: update comment style
522 Waiting for the final step to lift the hard-limit before sending it out.
524 --------------------------------------------------
527 * ta/config-add-to-empty-or-true-fix (2014-08-18) 1 commit
528 (merged to 'next' on 2014-08-29 at d219212)
529 + make config --add behave correctly for empty and NULL values
531 We may want to undo the "a^" bit along the lines of $gmane/255445
534 * et/spell-poll-infinite-with-minus-one-only (2014-08-22) 1 commit
535 - upload-pack: keep poll(2)'s timeout to -1
537 We used to pass -1000 to poll(2), expecting it to also mean "no
538 timeout", which should be spelled as -1.
540 Will merge to 'next'.
543 * jk/make-simplify-dependencies (2014-08-26) 3 commits
544 - Makefile: drop CHECK_HEADER_DEPENDENCIES code
545 - Makefile: use `find` to determine static header dependencies
546 - i18n: treat "make pot" as an explicitly-invoked target
548 Admit that keeping LIB_H up-to-date, only for those that do not use
549 the automatically generated dependencies, is a losing battle, and
550 make it conservative by making everything depend on anything.
552 Will merge to 'next'.
555 * jk/prompt-stash-could-be-packed (2014-08-25) 1 commit
556 (merged to 'next' on 2014-08-29 at 526e3bd)
557 + git-prompt: do not look for refs/stash in $GIT_DIR
559 The prompt script checked $GIT_DIR/ref/stash file to see if there
560 is a stash, which was a no-no.
562 Will merge to 'master'.
565 * jk/prune-top-level-refs-after-packing (2014-08-25) 1 commit
566 - pack-refs: prune top-level refs like "refs/foo"
568 After "pack-refs --prune" packed refs at the top-level, it failed
571 Will merge to 'next'.
574 * jk/fast-import-fixes (2014-08-25) 2 commits
575 - fast-import: fix buffer overflow in dump_tags
576 - fast-import: clean up pack_data pointer in end_packfile
578 With sufficiently long refnames, fast-import could have overflown
581 Will merge to 'next'.
584 * nd/fetch-pass-quiet-to-gc-child-process (2014-08-18) 2 commits
585 - fetch: silence git-gc if --quiet is given
586 - fetch: convert argv_gc_auto to struct argv_array
588 Progress output from "git gc --auto" was visible in "git fetch -q".
590 Will merge to 'next'.
593 * rs/list-optim (2014-08-25) 2 commits
594 - walker: avoid quadratic list insertion in mark_complete
595 - sha1_name: avoid quadratic list insertion in handle_one_ref
597 Fix a couple of "accumulate into a sorted list" to "accumulate and
600 Will merge to 'next'.
603 * sb/mailsplit-dead-code-removal (2014-08-13) 1 commit
604 (merged to 'next' on 2014-08-29 at 4f9ca4f)
605 + mailsplit.c: remove dead code
607 Will merge to 'master'.
610 * tb/pretty-format-cd-date-format (2014-08-21) 1 commit
611 (merged to 'next' on 2014-08-29 at ab8ccd4)
612 + pretty: note that %cd respects the --date= option
614 Documentation update.
616 Will merge to 'master'.
619 * jk/name-decoration-alloc (2014-08-27) 3 commits
620 - log-tree: use FLEX_ARRAY in name_decoration
621 - log-tree: make name_decoration hash static
622 - log-tree: make add_name_decoration a public function
624 The API to allocate the structure to keep track of commit
625 decoration was cumbersome to use, inviting lazy code to
628 Will merge to 'next'.
631 * br/http-init-fix (2014-08-21) 2 commits
632 - http: style fixes for curl_multi_init error check
633 - http.c: die if curl_*_init fails
635 Will merge to 'next'.
638 * br/imap-send-simplify-tunnel-child-process (2014-09-02) 3 commits
639 - imap-send: simplify v_issue_imap_cmd() and get_cmd_result() using starts_with()
640 - imap-send.c: imap_folder -> imap_server_conf.folder
641 - git-imap-send: simplify tunnel construction
643 Will merge to 'next'.
646 * jc/config-mak-document-darwin-vs-macosx (2014-08-15) 1 commit
647 (merged to 'next' on 2014-08-29 at 55e28af)
648 + config.mak.uname: add hint on uname_R for MacOS X
649 (this branch uses km/no-apple-common-crypto-on-darwin-8-and-below.)
651 Will merge to 'master'.
654 * jn/unpack-trees-checkout-m-carry-deletion (2014-08-25) 3 commits
655 - checkout -m: attempt merge when deletion of path was staged
656 - unpack-trees: use 'cuddled' style for if-else cascade
657 - unpack-trees: simplify 'all other failures' case
659 Will merge to 'next'.
662 * km/no-apple-common-crypto-on-darwin-8-and-below (2014-08-15) 1 commit
663 (merged to 'next' on 2014-08-29 at 8abb416)
664 + config.mak.uname: set NO_APPLE_COMMON_CRYPTO on older systems
665 (this branch is used by jc/config-mak-document-darwin-vs-macosx.)
667 Build automation for older versions of MacOS X.
669 Will merge to 'master'.
672 * nd/large-blobs (2014-08-18) 5 commits
673 - diff: shortcut for diff'ing two binary SHA-1 objects
674 - diff --stat: mark any file larger than core.bigfilethreshold binary
675 - diff.c: allow to pass more flags to diff_populate_filespec
676 - sha1_file.c: do not die failing to malloc in unpack_compressed_entry
677 - wrapper.c: introduce gentle xmallocz that does not die()
679 Will merge to 'next'.
682 * nd/mv-code-cleaning (2014-08-11) 9 commits
684 - mv: no SP between function name and the first opening parenthese
685 - mv: combine two if(s)
686 - mv: unindent one level for directory move code
687 - mv: move index search code out
688 - mv: remove an "if" that's always true
689 - mv: split submodule move preparation code out
690 - mv: flatten error handling code block
691 - mv: mark strings for translations
693 SQUASH!!! Will merge to 'next'.
696 * nd/strbuf-utf8-replace (2014-08-11) 1 commit
697 (merged to 'next' on 2014-08-29 at 5d1ddf4)
698 + utf8.c: fix strbuf_utf8_replace() consuming data beyond input string
700 Will merge to 'master'.
703 * rs/clean-menu-item-defn (2014-08-18) 1 commit
704 (merged to 'next' on 2014-08-29 at 88c1a9d)
705 + clean: use f(void) instead of f() to declare a pointer to a function without arguments
707 Will merge to 'master'.
710 * rs/inline-compat-path-macros (2014-08-18) 1 commit
711 (merged to 'next' on 2014-08-29 at 5705ad5)
712 + turn path macros into inline function
714 Will merge to 'master'.
717 * rs/refresh-beyond-symlink (2014-08-10) 1 commit
718 (merged to 'next' on 2014-08-29 at 90a4a8b)
719 + read-cache: check for leading symlinks when refreshing index
721 "git add x" where x that used to be a directory has become a
722 symbolic link to a directory misbehaved.
724 Will merge to 'master'.
727 * sb/blame-msg-i18n (2014-08-12) 1 commit
728 (merged to 'next' on 2014-08-29 at 5b33466)
729 + builtin/blame.c: add translation to warning about failed revision walk
731 Will merge to 'master'.
734 * sb/plug-leaks (2014-08-10) 2 commits
735 (merged to 'next' on 2014-08-29 at e42f0b8)
736 + clone.c: don't leak memory in cmd_clone
737 + remote.c: don't leak the base branch name in format_tracking_info
739 Will merge to 'master'.
742 * sb/prepare-revision-walk-error-check (2014-08-12) 1 commit
743 (merged to 'next' on 2014-08-29 at fb82508)
744 + prepare_revision_walk(): check for return value in all places
746 Will merge to 'master'.
749 * so/rebase-doc (2014-08-12) 1 commit
750 (merged to 'next' on 2014-08-29 at 77cfce1)
751 + Documentation/git-rebase.txt: -f forces a rebase that would otherwise be a no-op
753 May need description on what makes various modes of operation to
754 decide that the request can become a "no-op".
756 Will merge to 'master'.
759 * sp/stream-clean-filter (2014-08-28) 6 commits
760 - convert: stream from fd to required clean filter to reduce used address space
761 - copy_fd(): do not close the input file descriptor
762 - mmap_limit: introduce GIT_MMAP_LIMIT to allow testing expected mmap size
763 - memory_limit: use git_env_ulong() to parse GIT_ALLOC_LIMIT
764 - config.c: add git_env_ulong() to parse environment variable
765 - convert: drop arguments other than 'path' from would_convert_to_git()
770 * jc/push-cert (2014-08-25) 20 commits
771 - signed push: fortify against replay attacks
772 - signed-push: add "pushee" header to push certificate
773 - signed push: remove duplicated protocol info
774 - send-pack: send feature request on push-cert packet
775 - receive-pack: GPG-validate push certificates
776 - the beginning of the signed push
777 - pack-protocol doc: typofix for PKT-LINE
778 - gpg-interface: move parse_signature() to where it should be
779 - gpg-interface: move parse_gpg_output() to where it should be
780 - send-pack: clarify that cmds_sent is a boolean
781 - send-pack: refactor inspecting and resetting status and sending commands
782 - send-pack: rename "new_refs" to "need_pack_data"
783 - send-pack: factor out capability string generation
784 - send-pack: always send capabilities
785 - send-pack: refactor decision to send update per ref
786 - send-pack: move REF_STATUS_REJECT_NODELETE logic a bit higher
787 - receive-pack: factor out queueing of command
788 - receive-pack: do not reuse old_sha1[] for other things
789 - receive-pack: parse feature request a bit earlier
790 - receive-pack: do not overallocate command structure
792 Allow "git push" request to be signed, so that it can be verified
793 audited, using the GPG signature of the person who pushed, that the
794 tips of branches at a public repository really point the commits
795 the pusher wanted to, without having to "trust" the server.
797 The tip two feels still a bit slushy, but otherwise should be
798 reasonably solid to build upon.
801 * rs/child-process-init (2014-08-20) 4 commits
802 - run-command: inline prepare_run_command_v_opt()
803 - run-command: call run_command_v_opt_cd_env() instead of duplicating it
804 - run-command: introduce child_process_init()
805 - run-command: introduce CHILD_PROCESS_INIT
807 Will merge to 'next'.
810 * tf/imap-send-create (2014-08-25) 2 commits
811 (merged to 'next' on 2014-08-29 at 8390945)
812 + imap-send: create target mailbox if it is missing
813 + imap-send: clarify CRAM-MD5 vs LOGIN documentation
815 Will merge to 'master'.
818 * bc/imap-send-doc (2014-08-05) 1 commit
819 (merged to 'next' on 2014-08-29 at 2ea514b)
820 + imap-send doc: omit confusing "to use imap-send" modifier
822 Will merge to 'master'.
825 * jc/apply-ws-prefix (2014-08-07) 3 commits
826 (merged to 'next' on 2014-08-29 at 67967d3)
827 + apply: omit ws check for excluded paths
828 + apply: hoist use_patch() helper for path exclusion up
829 + apply: use the right attribute for paths in non-Git patches
831 Applying a patch not generated by Git in a subdirectory used to
832 check the whitespace breakage using the attributes for incorrect
833 paths. Also whitespace checks were performed even for paths
834 excluded via "git apply --exclude=<path>" mechanism.
836 Will merge to 'master'.
839 * jk/command-line-config-empty-string (2014-08-05) 1 commit
840 (merged to 'next' on 2014-08-29 at 74f04af)
841 + config: teach "git -c" to recognize an empty string
843 "git -c section.var command" and "git -c section.var= command"
844 should pass the configuration differently (the former should be
845 a boolean true, the latter should be an empty string).
847 Will merge to 'master'.
850 * la/init-doc (2014-08-08) 7 commits
851 (merged to 'next' on 2014-08-29 at 2cf846b)
852 + Documentation: git-init: flesh out example
853 + Documentation: git-init: template directory: reword and cross-reference
854 + Documentation: git-init: reword parenthetical statements
855 + Documentation: git-init: --separate-git-dir: clarify
856 + Documentation: git-init: template directory: reword
857 + Documentation: git-init: list items facelift
858 + Documentation: git-init: typographical fixes
860 Will merge to 'master'.
863 * lf/bundle-exclusion (2014-08-07) 1 commit
864 (merged to 'next' on 2014-08-29 at d84b102)
865 + bundle: fix exclusion of annotated tags
867 Will merge to 'master'.
870 * mm/log-branch-desc-plug-leak (2014-08-07) 1 commit
871 (merged to 'next' on 2014-08-29 at 3580add)
872 + builtin/log.c: fix minor memory leak
874 Will merge to 'master'.
877 * ta/config-set-1 (2014-08-07) 8 commits
878 - add tests for `git_config_get_string_const()`
879 - add a test for semantic errors in config files
880 - rewrite git_config() to use the config-set API
881 - config: add `git_die_config()` to the config-set API
882 - change `git_config()` return value to void
883 - add line number and file name info to `config_set`
884 - config.c: fix accuracy of line number in errors
885 - config.c: mark error and warnings strings for translation
886 (this branch is used by ta/config-set-2.)
888 Will merge to 'next'.
891 * ta/config-set-2 (2014-08-13) 15 commits
892 - builtin/apply.c: replace `git_config()` with `git_config_get_string_const()`
893 - merge-recursive.c: replace `git_config()` with `git_config_get_int()`
894 - ll-merge.c: refactor `read_merge_config()` to use `git_config_string()`
895 - fast-import.c: replace `git_config()` with `git_config_get_*()` family
896 - branch.c: replace `git_config()` with `git_config_get_string()
897 - alias.c: replace `git_config()` with `git_config_get_string()`
898 - imap-send.c: replace `git_config()` with `git_config_get_*()` family
899 - pager.c: replace `git_config()` with `git_config_get_value()`
900 - builtin/gc.c: replace `git_config()` with `git_config_get_*()` family
901 - rerere.c: replace `git_config()` with `git_config_get_*()` family
902 - fetchpack.c: replace `git_config()` with `git_config_get_*()` family
903 - archive.c: replace `git_config()` with `git_config_get_bool()` family
904 - read-cache.c: replace `git_config()` with `git_config_get_*()` family
905 - http-backend.c: replace `git_config()` with `git_config_get_bool()` family
906 - daemon.c: replace `git_config()` with `git_config_get_bool()` family
907 (this branch uses ta/config-set-1.)
909 Will merge to 'next'.
912 * jk/stash-list-p (2014-08-07) 1 commit
913 (merged to 'next' on 2014-08-29 at db94527)
914 + stash: default listing to working-tree diff
916 Teach "git stash list -p" to show the difference between the base
917 commit version and the working tree version, which is in line with
918 what "git show" gives.
920 Will merge to 'master'.
923 * rs/ref-transaction-multi (2014-08-27) 6 commits
924 - ### rs/ref-transaction-multi
925 - refs.c: make the *_packed_refs functions static
926 - refs.c: make repack_without_refs static
927 - remote.c: use a transaction for deleting refs
928 - refs.c: write updates to packed refs when a transaction has more than one ref
929 - refs.c: move reflog updates into its own function
930 (this branch uses rs/ref-transaction, rs/ref-transaction-1, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
932 Follow-up on rs/ref-transaction series to use the packed-ref to
933 achieve atomicity when multiple refs are involved.
935 No more nitpicks and better design suggestions?
938 * rs/ref-transaction-rename (2014-08-27) 6 commits
939 - ### rs/ref-transaction-rename
940 - refs.c: rollback the lockfile before we die() in repack_without_refs
941 - refs.c: update rename_ref to use a transaction
942 - refs.c: use packed refs when deleting refs during a transaction
943 - refs.c: return error instead of dying when locking fails during transaction
944 - refs.c: allow passing raw git_committer_info as email to _update_reflog
945 (this branch is used by rs/ref-transaction-multi; uses rs/ref-transaction, rs/ref-transaction-1 and rs/ref-transaction-reflog.)
947 Follow-up on rs/ref-transaction series to make renaming a ref
948 transactional (i.e. "delete old and create new" should not leave
949 an in-between state behind when it fails).
951 No more nitpicks and better design suggestions?
954 * rs/ref-transaction-reflog (2014-08-27) 16 commits
955 - ### rs/ref-transaction-reflog
956 - refs.c: allow deleting refs with a broken sha1
957 - refs.c: remove lock_any_ref_for_update
958 - refs.c: make unlock_ref/close_ref/commit_ref static
959 - refs.c: rename log_ref_setup to create_reflog
960 - reflog.c: use a reflog transaction when writing during expire
961 - refs.c: allow multiple reflog updates during a single transaction
962 - refs.c: only write reflog update if msg is non-NULL
963 - refs.c: add a flag to allow reflog updates to truncate the log
964 - refs.c: add a transaction function to append a reflog entry
965 - lockfile.c: make hold_lock_file_for_append preserve meaningful errno
966 - refs.c: add a function to append a reflog entry to a fd
967 - refs.c: add a new update_type field to ref_update
968 - refs.c: rename the transaction functions
969 - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
970 - refs.c: make ref_transaction_create a wrapper to ref_transaction_update
971 (this branch is used by rs/ref-transaction-multi and rs/ref-transaction-rename; uses rs/ref-transaction and rs/ref-transaction-1.)
973 Cover updates to reflog with the same transaction mechanism as used
974 for reflog manipulations.
976 No more nitpicks and better design suggestions?
979 * jc/not-mingw-cygwin (2014-07-21) 2 commits
980 (merged to 'next' on 2014-08-29 at 0d00bb7)
981 + test prerequisites: enumerate with commas
982 + test prerequisites: eradicate NOT_FOO
984 We have been using NOT_{MINGW,CYGWIN} test prerequisites long
985 before Peff invented support for negated prerequisites e.g. !MINGW
986 and we still add more uses of the former. Convert them to the
987 latter to avoid confusion.
989 Will merge to 'master'.
992 * rs/ref-transaction-1 (2014-08-27) 20 commits
993 - refs.c: make delete_ref use a transaction
994 - refs.c: make prune_ref use a transaction to delete the ref
995 - refs.c: remove lock_ref_sha1
996 - refs.c: remove the update_ref_write function
997 - refs.c: remove the update_ref_lock function
998 - refs.c: make lock_ref_sha1 static
999 - walker.c: use ref transaction for ref updates
1000 - fast-import.c: use a ref transaction when dumping tags
1001 - receive-pack.c: use a reference transaction for updating the refs
1002 - refs.c: change update_ref to use a transaction
1003 - branch.c: use ref transaction for all ref updates
1004 - fast-import.c: change update_branch to use ref transactions
1005 - sequencer.c: use ref transactions for all ref updates
1006 - commit.c: use ref transactions for updates
1007 - replace.c: use the ref transaction functions for updates
1008 - tag.c: use ref transactions when doing updates
1009 - refs.c: add transaction.status and track OPEN/CLOSED
1010 - refs.c: make ref_transaction_begin take an err argument
1011 - refs.c: update ref_transaction_delete to check for error and return status
1012 - refs.c: change ref_transaction_create to do error checking and return status
1013 (this branch is used by rs/ref-transaction, rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
1015 The second batch of the transactional ref update series.
1016 A hopefully final reroll exists but haven't picked it up yet.
1019 * dt/cache-tree-repair (2014-09-02) 5 commits
1020 - cache-tree: propagate invalidation up when punting
1021 (merged to 'next' on 2014-08-26 at 6faccdb)
1022 + cache-tree: Write updated cache-tree after commit
1023 + cache-tree: subdirectory tests
1024 + test-dump-cache-tree: invalid trees are not errors
1025 + cache-tree: create/update cache-tree on checkout
1027 Originally merged to 'next' on 2014-07-21
1029 Add a few more places in "commit" and "checkout" that make sure
1030 that the cache-tree is fully populated in the index.
1032 The tip one is a proposed fix for $gmane/256285, but it is not
1036 * hv/submodule-config (2014-06-30) 4 commits
1037 - do not die on error of parsing fetchrecursesubmodules option
1038 - use new config API for worktree configurations of submodules
1039 - extract functions for submodule config set and lookup
1040 - implement submodule config cache for lookup of submodule names
1042 Kicked back to 'pu'.
1045 * rs/ref-transaction (2014-08-27) 14 commits
1046 - ### rs/ref-transaction
1047 - refs.c: fix handling of badly named refs
1048 - refs.c: make write_ref_sha1 static
1049 - fetch.c: change s_update_ref to use a ref transaction
1050 - refs.c: propagate any errno==ENOTDIR from _commit back to the callers
1051 - refs.c: pass a skip list to name_conflict_fn
1052 - refs.c: call lock_ref_sha1_basic directly from commit
1053 - refs.c: move the check for valid refname to lock_ref_sha1_basic
1054 - refs.c: pass NULL as *flags to read_ref_full
1055 - refs.c: pass the ref log message to _create/delete/update instead of _commit
1056 - refs.c: add an err argument to delete_ref_loose
1057 - wrapper.c: add a new function unlink_or_msg
1058 - wrapper.c: simplify warn_if_unremovable
1059 - ### rs/ref-transaction-1
1060 (this branch is used by rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename; uses rs/ref-transaction-1.)
1063 * jc/test-lazy-prereq (2014-06-13) 1 commit
1064 - tests: drop GIT_*_TIMING_TESTS environment variable support
1066 Test-script clean-up.
1071 * mt/patch-id-stable (2014-06-10) 1 commit
1072 - patch-id: change default to stable
1074 Teaches "git patch-id" to compute the patch ID that does not change
1075 when the files in a single patch is reordered. As this new algorithm
1076 is backward incompatible, the last bit to flip it to be the default
1077 is left out of 'master' for now.