1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Jul 2014, #06; Tue, 29)
4 X-master-at: 583b61c1af1bac12d6b48b2583ad508b5ab9964c
5 X-next-at: fbdcabe3ee4652186b0b2370eb0646ec0abf433e
7 What's cooking in git.git (Jul 2014, #06; Tue, 29)
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 You can find the changes described here in the integration branches
15 of the repositories listed at
17 http://git-blame.blogspot.com/p/git-public-repositories.html
19 --------------------------------------------------
20 [Graduated to "master"]
22 * cc/replace-graft (2014-07-21) 9 commits
23 (merged to 'next' on 2014-07-22 at 9b14090)
24 + replace: add test for --graft with a mergetag
25 + replace: check mergetags when using --graft
26 + replace: add test for --graft with signed commit
27 + replace: remove signature when using --graft
28 + contrib: add convert-grafts-to-replace-refs.sh
29 + Documentation: replace: add --graft option
30 + replace: add test for --graft
31 + replace: add --graft option
32 + replace: cleanup redirection style in tests
34 "git replace" learned a "--graft" option to rewrite parents of a
38 * jk/misc-fixes-maint (2014-07-24) 5 commits
39 (merged to 'next' on 2014-07-27 at 321a77c)
40 + apply: avoid possible bogus pointer
41 + fix memory leak parsing core.commentchar
42 + transport: fix leaks in refs_from_alternate_cb
43 + free ref string returned by dwim_ref
44 + receive-pack: don't copy "dir" parameter
49 * jk/rebase-am-fork-point (2014-07-16) 2 commits
50 (merged to 'next' on 2014-07-22 at 7648293)
51 + rebase: omit patch-identical commits with --fork-point
52 + rebase--am: use --cherry-pick instead of --ignore-if-in-upstream
54 "git rebase --fork-point" did not filter out patch-identical
58 * jk/stable-prio-queue (2014-07-15) 4 commits
59 (merged to 'next' on 2014-07-22 at 46e9bc3)
60 + t5539: update a flaky test
61 + paint_down_to_common: use prio_queue
62 + prio-queue: make output stable with respect to insertion
63 + prio-queue: factor out compare and swap operations
65 --------------------------------------------------
68 * ep/avoid-test-a-o (2014-07-25) 1 commit
69 (merged to 'next' on 2014-07-27 at 45de31d)
70 + t9814: fix misconversion from test $a -o $b to test $a || test $b
72 Will merge to 'master'.
75 * mm/config-edit-global (2014-07-25) 3 commits
76 - commit: advertise config --global --edit on guessed identity
77 - home_config_paths(): let the caller ignore xdg path
78 - config --global --edit: create a template file if needed
83 * rs/init-no-duplicate-real-path (2014-07-28) 1 commit
84 - init: avoid superfluous real_path() calls
88 --------------------------------------------------
91 * jk/tag-contains (2014-06-30) 8 commits
92 . perf: add tests for tag --contains
93 . tag: use commit_contains
94 . commit: provide a fast multi-tip contains function
95 . string-list: add pos to iterator callback
96 . add functions for memory-efficient bitmaps
97 . paint_down_to_common: use prio_queue
98 . tag: factor out decision to stream tags
99 . tag: allow --sort with -n
104 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
105 - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
106 - git-add--interactive: Preserve diff heading when splitting hunks
108 Waiting for a reroll.
111 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
112 - gitweb: Harden UTF-8 handling in generated links
117 * rh/prompt-tests (2014-06-05) 11 commits
118 - t9904: new __git_ps1 tests for Zsh
119 - test-lib: make it possible to override how test code is eval'd
120 - lib-prompt-tests.sh: add variable for string that encodes percent in PS1
121 - lib-prompt-tests.sh: put all tests inside a function
122 - t9903: move prompt tests to a new lib-prompt-tests.sh file
123 - t9903: move PS1 color code variable definitions to lib-bash.sh
124 - t9903: include "Bash" in test names via new $shellname var
125 - t9903: run pc mode tests again with PS1 expansion disabled
126 - t9903: move test name prefix to a separate variable
127 - t9903: put the Bash pc mode prompt test cases in a function
128 - t9903: remove Zsh test from the suite of Bash prompt tests
130 Expecting a reroll to limit the damage to test_eval_; also reported
131 to be broken with older zsh that are still in the field ($gmane/251231).
134 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
135 - userdiff: support Java try keyword
136 - userdiff: support C# async methods and correct C# keywords
138 Reviews sent; waiting for a response.
141 * cc/interpret-trailers (2014-05-28) 11 commits
142 - Documentation: add documentation for 'git interpret-trailers'
143 - trailer: add tests for commands in config file
144 - trailer: execute command from 'trailer.<name>.command'
145 - trailer: add tests for "git interpret-trailers"
146 - trailer: add interpret-trailers command
147 - trailer: put all the processing together and print
148 - trailer: parse trailers from file or stdin
149 - trailer: process command line trailer arguments
150 - trailer: read and process config information
151 - trailer: process trailers from input message and arguments
152 - trailer: add data structures and basic functions
154 A new filter to programatically edit the tail end of the commit log
157 What is the status of this one? I think I saw reviews by Michael
158 but after that I do not recall seeing any updates.
161 * mh/lockfile (2014-04-15) 25 commits
162 . trim_last_path_elm(): replace last_path_elm()
163 . resolve_symlink(): take a strbuf parameter
164 . resolve_symlink(): use a strbuf for internal scratch space
165 . change lock_file::filename into a strbuf
166 . commit_lock_file(): use a strbuf to manage temporary space
167 . try_merge_strategy(): use a statically-allocated lock_file object
168 . try_merge_strategy(): remove redundant lock_file allocation
169 . struct lock_file: declare some fields volatile
170 . lockfile: avoid transitory invalid states
171 . commit_lock_file(): die() if called for unlocked lockfile object
172 . commit_lock_file(): inline temporary variable
173 . remove_lock_file(): call rollback_lock_file()
174 . lock_file(): exit early if lockfile cannot be opened
175 . write_packed_entry_fn(): convert cb_data into a (const int *)
176 . prepare_index(): declare return value to be (const char *)
177 . delete_ref_loose(): don't muck around in the lock_file's filename
178 . cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
179 . lockfile.c: document the various states of lock_file objects
180 . lock_file(): always add lock_file object to lock_file_list
181 . hold_lock_file_for_append(): release lock on errors
182 . lockfile: unlock file if lockfile permissions cannot be adjusted
183 . rollback_lock_file(): set fd to -1
184 . rollback_lock_file(): do not clear filename redundantly
185 . api-lockfile: expand the documentation
186 . unable_to_lock_die(): rename function from unable_to_lock_index_die()
188 Ejected from 'pu' to unclutter.
192 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
193 - git-rebase: print name of rev when using shorthand
195 Teach "git rebase -" to report the concrete name of the branch
196 (i.e. the previous one).
198 But it stops short and does not do the same for "git rebase @{-1}".
202 * tr/merge-recursive-index-only (2014-02-05) 3 commits
203 - merge-recursive: -Xindex-only to leave worktree unchanged
204 - merge-recursive: internal flag to avoid touching the worktree
205 - merge-recursive: remove dead conditional in update_stages()
206 (this branch is used by tr/remerge-diff.)
209 * tr/remerge-diff (2014-02-26) 5 commits
210 . log --remerge-diff: show what the conflict resolution changed
211 . name-hash: allow dir hashing even when !ignore_case
212 . merge-recursive: allow storing conflict hunks in index
213 . revision: fold all merge diff variants into an enum merge_diff_mode
214 . combine-diff: do not pass revs->dense_combined_merges redundantly
215 (this branch uses tr/merge-recursive-index-only.)
217 "log -p" output learns a new way to let users inspect a merge
218 commit by showing the differences between the automerged result
219 with conflicts the person who recorded the merge would have seen
220 and the final conflict resolution that was recorded in the merge.
222 Needs to be rebased, now kb/fast-hashmap topic is in.
225 * jk/makefile (2014-02-05) 16 commits
227 . move LESS/LV pager environment to Makefile
228 . Makefile: teach scripts to include make variables
230 . Makefile: auto-build C strings from make variables
231 . Makefile: drop *_SQ variables
233 . Makefile: add c-quote helper function
234 . Makefile: introduce sq function for shell-quoting
235 . Makefile: always create files via make-var
236 . Makefile: store GIT-* sentinel files in MAKE/
237 . Makefile: prefer printf to echo for GIT-*
238 . Makefile: use tempfile/mv strategy for GIT-*
239 . Makefile: introduce make-var helper function
240 . Makefile: fix git-instaweb dependency on gitweb
241 . Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
243 Simplify the Makefile rules and macros that exist primarily for
244 quoting purposes, and make it easier to robustly express the
250 * po/everyday-doc (2014-01-27) 1 commit
251 - Make 'git help everyday' work
253 This may make the said command to emit something, but the source is
254 not meant to be formatted into a manual pages to begin with, and
255 also its contents are a bit stale. It may be a good first step in
256 the right direction, but needs more work to at least get the
257 mark-up right before public consumption.
262 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
263 - merge: drop unused arg from abort_commit method signature
264 - merge: make prepare_to_commit responsible for write_merge_state
265 - t7505: ensure cleanup after hook blocks merge
266 - t7505: add missing &&
268 Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
269 run during "git merge". The log message stresses too much on one
270 hook, prepare-commit-msg, but it would equally apply to other hooks
271 like post-merge, I think.
273 Waiting for a reroll.
276 * jc/graph-post-root-gap (2013-12-30) 3 commits
277 - WIP: document what we want at the end
278 - graph: remove unused code a bit
279 - graph: stuff the current commit into graph->columns[]
281 This was primarily a RFH ($gmane/239580).
284 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
285 - perf-lib: add test_perf_cleanup target
286 - perf-lib: split starting the test from the execution
288 Add test_perf_cleanup shell function to the perf suite, that allows
289 the script writers to define a test with a clean-up action.
294 * jc/show-branch (2014-03-24) 5 commits
295 - show-branch: use commit slab to represent bitflags of arbitrary width
296 - show-branch.c: remove "all_mask"
297 - show-branch.c: abstract out "flags" operation
298 - show-branch.c: lift all_mask/all_revs to a global static
299 - show-branch.c: update comment style
301 Waiting for the final step to lift the hard-limit before sending it out.
303 --------------------------------------------------
306 * nd/multiple-work-trees-1 (2014-07-29) 8 commits
307 - checkout --to: do not touch existing target directory
308 - checkout: prefix --to argument properly when cwd is moved
309 - environment.c: fix incorrect git_graft_file initialization
310 - checkout --to: fix dangling pointers in remove_junk()
311 - checkout: no auto-detach if the ref is already checked out
312 - prune --repos: fix uninitialized access
313 - checkout: no need to call check_linked_checkouts if head_ref is NULL
314 - gitrepository-layout.txt: s/ignored/ignored if/
315 (this branch uses nd/multiple-work-trees.)
317 Continue polishing nd/multiple-work-trees topic in 'next'.
320 * rs/ref-transaction-reflog (2014-07-23) 15 commits
321 - refs.c: allow deleting refs with a broken sha1
322 - refs.c: remove lock_any_ref_for_update
323 - refs.c: make unlock_ref/close_ref/commit_ref static
324 - refs.c: rename log_ref_setup to create_reflog
325 - reflog.c: use a reflog transaction when writing during expire
326 - refs.c: allow multiple reflog updates during a single transaction
327 - refs.c: only write reflog update if msg is non-NULL
328 - refs.c: add a flag to allow reflog updates to truncate the log
329 - refs.c: add a transaction function to append a reflog entry
330 - lockfile.c: make hold_lock_file_for_append preserve meaningful errno
331 - refs.c: add a function to append a reflog entry to a fd
332 - refs.c: add a new update_type field to ref_update
333 - refs.c: rename the transaction functions
334 - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
335 - refs.c: make ref_transaction_create a wrapper to ref_transaction_update
336 (this branch is used by rs/ref-transaction-multi and rs/ref-transaction-rename; uses rs/ref-transaction and rs/ref-transaction-1.)
338 Cover updates to reflog with the same transaction mechanism as used
339 for reflog manipulations.
342 * nd/path-max-is-better-than-hardcoded-magic-1024 (2014-07-17) 1 commit
343 - abspath.c: use PATH_MAX in real_path_internal()
345 Will drop; rs/strbuf-getcwd topic covers this codepath.
348 * sk/mingw-uni-fix-more (2014-07-21) 14 commits
349 (merged to 'next' on 2014-07-28 at 0945196)
350 + Win32: enable color output in Windows cmd.exe
351 + Win32: patch Windows environment on startup
352 + Win32: keep the environment sorted
353 + Win32: use low-level memory allocation during initialization
354 + Win32: reduce environment array reallocations
355 + Win32: don't copy the environment twice when spawning child processes
356 + Win32: factor out environment block creation
357 + Win32: unify environment function names
358 + Win32: unify environment case-sensitivity
359 + Win32: fix environment memory leaks
360 + Win32: Unicode environment (incoming)
361 + Win32: Unicode environment (outgoing)
362 + Revert "Windows: teach getenv to do a case-sensitive search"
363 + tests: do not pass iso8859-1 encoded parameter
365 Most of these are battle-tested in msysgit and are needed to
366 complete what has been merged to 'master' already.
368 Will merge to 'master'.
371 * sk/mingw-tests-workaround (2014-07-21) 6 commits
372 (merged to 'next' on 2014-07-28 at 2f3b7ac)
373 + t800[12]: work around MSys limitation
374 + t9902: mingw-specific fix for gitfile link files
375 + t4210: skip command-line encoding tests on mingw
376 + MinGW: disable legacy encoding tests
377 + t0110/MinGW: skip tests that pass arbitrary bytes on the command line
378 + MinGW: Skip test redirecting to fd 4
379 (this branch is used by jc/not-mingw-cygwin.)
381 Make tests pass on msysgit by mostly disabling ones that are
382 infeasible on that platform.
384 Will merge to 'master'.
387 * cb/mergetool-difftool (2014-07-21) 2 commits
388 - difftool: don't assume that default sh is sane
389 - mergetool: don't require a work tree for --tool-help
392 * rs/strbuf-getcwd (2014-07-29) 10 commits
393 - use strbuf_add_absolute_path() to add absolute paths
394 - abspath: convert absolute_path() to strbuf
395 - use xgetcwd() to set $GIT_DIR
396 - use xgetcwd() to get the current directory or die
397 - wrapper: add xgetcwd()
398 - abspath: convert real_path_internal() to strbuf
399 - abspath: use strbuf_getcwd() to remember original working directory
400 - setup: convert setup_git_directory_gently_1 et al. to strbuf
401 - unix-sockets: use strbuf_getcwd()
402 - strbuf: add strbuf_getcwd()
404 Will merge to 'next'.
407 * jc/not-mingw-cygwin (2014-07-21) 2 commits
408 - test prerequisites: enumerate with commas
409 - test prerequisites: eradicate NOT_FOO
410 (this branch uses sk/mingw-tests-workaround.)
412 We have been using NOT_{MINGW,CYGWIN} test prerequisites long
413 before Peff invented support for negated prerequisites e.g. !MINGW
414 and we still add more uses of the former. Convert them to the
415 latter to avoid confusion.
418 * jk/more-push-completion (2014-07-22) 3 commits
419 (merged to 'next' on 2014-07-28 at d1d4c27)
420 + completion: complete `git push --force-with-lease=`
421 + completion: add some missing options to `git push`
422 + completion: complete "unstuck" `git push --recurse-submodules`
424 Will merge to 'master'.
427 * ta/config-set (2014-07-29) 2 commits
428 - test-config: add tests for the config_set API
429 - add `config_set` API for caching config-like files
431 More or less solidified enough to be built other enhancements upon.
432 Will merge to 'next'.
435 * rs/ref-transaction-1 (2014-07-16) 20 commits
436 - refs.c: make delete_ref use a transaction
437 - refs.c: make prune_ref use a transaction to delete the ref
438 - refs.c: remove lock_ref_sha1
439 - refs.c: remove the update_ref_write function
440 - refs.c: remove the update_ref_lock function
441 - refs.c: make lock_ref_sha1 static
442 - walker.c: use ref transaction for ref updates
443 - fast-import.c: use a ref transaction when dumping tags
444 - receive-pack.c: use a reference transaction for updating the refs
445 - refs.c: change update_ref to use a transaction
446 - branch.c: use ref transaction for all ref updates
447 - fast-import.c: change update_branch to use ref transactions
448 - sequencer.c: use ref transactions for all ref updates
449 - commit.c: use ref transactions for updates
450 - replace.c: use the ref transaction functions for updates
451 - tag.c: use ref transactions when doing updates
452 - refs.c: add transaction.status and track OPEN/CLOSED/ERROR
453 - refs.c: make ref_transaction_begin take an err argument
454 - refs.c: update ref_transaction_delete to check for error and return status
455 - refs.c: change ref_transaction_create to do error checking and return status
456 (this branch is used by rs/ref-transaction, rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
458 The second batch of the transactional ref update series.
461 * jc/reopen-lock-file (2014-07-14) 1 commit
462 (merged to 'next' on 2014-07-21 at 8277dc9)
463 + lockfile: allow reopening a closed but still locked file
465 Needed in the "commit -p" code path to update the cache tree in the
469 * nd/multiple-work-trees (2014-07-17) 31 commits
470 (merged to 'next' on 2014-07-17 at a29d310)
471 + checkout: don't require a work tree when checking out into a new one
472 + git_path(): keep "info/sparse-checkout" per work-tree
473 + count-objects: report unused files in $GIT_DIR/repos/...
474 + gc: support prune --repos
475 + gc: factor out gc.pruneexpire parsing code
476 + gc: style change -- no SP before closing parenthesis
477 + prune: strategies for linked checkouts
478 + checkout: detach if the branch is already checked out elsewhere
479 + checkout: clean up half-prepared directories in --to mode
480 + checkout: support checking out into a new working directory
481 + use new wrapper write_file() for simple file writing
482 + wrapper.c: wrapper to open a file, fprintf then close
483 + setup.c: support multi-checkout repo setup
484 + setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
485 + setup.c: convert check_repository_format_gently to use strbuf
486 + setup.c: detect $GIT_COMMON_DIR in is_git_directory()
487 + setup.c: convert is_git_directory() to use strbuf
488 + git-stash: avoid hardcoding $GIT_DIR/logs/....
489 + *.sh: avoid hardcoding $GIT_DIR/hooks/...
490 + git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
491 + $GIT_COMMON_DIR: a new environment variable
492 + commit: use SEQ_DIR instead of hardcoding "sequencer"
493 + fast-import: use git_path() for accessing .git dir instead of get_git_dir()
494 + reflog: avoid constructing .lock path with git_path
495 + *.sh: respect $GIT_INDEX_FILE
496 + git_path(): be aware of file relocation in $GIT_DIR
497 + path.c: group git_path(), git_pathdup() and strbuf_git_path() together
498 + path.c: rename vsnpath() to do_git_path()
499 + git_snpath(): retire and replace with strbuf_git_path()
500 + path.c: make get_pathname() call sites return const char *
501 + path.c: make get_pathname() return strbuf instead of static buffer
502 (this branch is used by nd/multiple-work-trees-1.)
504 A replacement for contrib/workdir/git-new-workdir that does not
505 rely on symbolic links and make sharing of objects and refs safer
506 by making the borrowee and borrowers aware of each other.
511 * dt/cache-tree-repair (2014-07-14) 4 commits
512 (merged to 'next' on 2014-07-21 at e83db34)
513 + cache-tree: Write updated cache-tree after commit
514 + cache-tree: subdirectory tests
515 + test-dump-cache-tree: invalid trees are not errors
516 + cache-tree: create/update cache-tree on checkout
518 Add a few more places in "commit" and "checkout" that make sure
519 that the cache-tree is fully populated in the index.
524 * hv/submodule-config (2014-06-30) 4 commits
525 (merged to 'next' on 2014-07-17 at 5e0ce45)
526 + do not die on error of parsing fetchrecursesubmodules option
527 + use new config API for worktree configurations of submodules
528 + extract functions for submodule config set and lookup
529 + implement submodule config cache for lookup of submodule names
534 * rs/ref-transaction (2014-07-17) 12 commits
535 - refs.c: fix handling of badly named refs
536 - refs.c: make write_ref_sha1 static
537 - fetch.c: change s_update_ref to use a ref transaction
538 - refs.c: propagate any errno==ENOTDIR from _commit back to the callers
539 - refs.c: pass a skip list to name_conflict_fn
540 - refs.c: call lock_ref_sha1_basic directly from commit
541 - refs.c: move the check for valid refname to lock_ref_sha1_basic
542 - refs.c: pass NULL as *flags to read_ref_full
543 - refs.c: pass the ref log message to _create/delete/update instead of _commit
544 - refs.c: add an err argument to delete_ref_loose
545 - wrapper.c: add a new function unlink_or_msg
546 - wrapper.c: simplify warn_if_unremovable
547 (this branch is used by rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename; uses rs/ref-transaction-1.)
550 * jc/test-lazy-prereq (2014-06-13) 1 commit
551 - tests: drop GIT_*_TIMING_TESTS environment variable support
553 Test-script clean-up.
558 * mt/patch-id-stable (2014-06-10) 1 commit
559 - patch-id: change default to stable
561 Teaches "git patch-id" to compute the patch ID that does not change
562 when the files in a single patch is reordered. As this new algorithm
563 is backward incompatible, the last bit to flip it to be the default
564 is left out of 'master' for now.
568 --------------------------------------------------
571 * jh/submodule-tests (2014-04-17) 1 commit
572 . t7410: 210 tests for various 'git submodule update' scenarios