Retire code.google.com as tarball distribution site
[git/jrn.git] / whats-cooking.txt
bloba62789c4bd8a013882d7c3c0ed5215799ac4e781
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Apr 2014, #02; Mon, 7)
4 X-master-at: e4eef26d985177e4bdd32bf58b6ae40e7ae67289
5 X-next-at: 0306834402c2cffa7f83ae33bcc31a47c1cdccd0
7 What's cooking in git.git (Apr 2014, #02; Mon, 7)
8 --------------------------------------------------
10 Here are the topics that have been cooking.  Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
14 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 [New Topics]
22 * jl/status-added-submodule-is-never-ignored (2014-04-07) 2 commits
23  - commit -m: commit staged submodules regardless of ignore config
24  - status/commit: show staged submodules regardless of ignore config
27 * mh/multimail (2014-04-07) 1 commit
28  - git-multimail: update to version 1.0.0
30 --------------------------------------------------
31 [Stalled]
33 * tr/merge-recursive-index-only (2014-02-05) 3 commits
34  - merge-recursive: -Xindex-only to leave worktree unchanged
35  - merge-recursive: internal flag to avoid touching the worktree
36  - merge-recursive: remove dead conditional in update_stages()
37  (this branch is used by tr/remerge-diff.)
39  Will hold.
42 * tr/remerge-diff (2014-02-26) 5 commits
43  . log --remerge-diff: show what the conflict resolution changed
44  . name-hash: allow dir hashing even when !ignore_case
45  . merge-recursive: allow storing conflict hunks in index
46  . revision: fold all merge diff variants into an enum merge_diff_mode
47  . combine-diff: do not pass revs->dense_combined_merges redundantly
48  (this branch uses tr/merge-recursive-index-only.)
50  "log -p" output learns a new way to let users inspect a merge
51  commit by showing the differences between the automerged result
52  with conflicts the person who recorded the merge would have seen
53  and the final conflict resolution that was recorded in the merge.
55  Needs to be rebased, now kb/fast-hashmap topic is in.
58 * sz/mingw-index-pack-threaded (2014-03-19) 1 commit
59  - Enable index-pack threading in msysgit.
61  What is the status of this topic?  A failure report exists
62  ($gmane/245170), and I am aware of Duy's $gmane/245034 but that was
63  where the discussion stalled.  Is everybody waiting for everybody
64  else to get the discussion unstuck?
67 * bc/blame-crlf-test (2014-02-18) 1 commit
68  - blame: add a failing test for a CRLF issue.
70  I have a feeling that a fix for this should be fairly isolated and
71  trivial (it should be just the matter of paying attention to the
72  crlf settings when synthesizing the fake commit)---perhaps somebody
73  can squash in a fix to this?
76 * jk/makefile (2014-02-05) 16 commits
77  - FIXUP
78  - move LESS/LV pager environment to Makefile
79  - Makefile: teach scripts to include make variables
80  - FIXUP
81  - Makefile: auto-build C strings from make variables
82  - Makefile: drop *_SQ variables
83  - FIXUP
84  - Makefile: add c-quote helper function
85  - Makefile: introduce sq function for shell-quoting
86  - Makefile: always create files via make-var
87  - Makefile: store GIT-* sentinel files in MAKE/
88  - Makefile: prefer printf to echo for GIT-*
89  - Makefile: use tempfile/mv strategy for GIT-*
90  - Makefile: introduce make-var helper function
91  - Makefile: fix git-instaweb dependency on gitweb
92  - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
94  Simplify the Makefile rules and macros that exist primarily for
95  quoting purposes, and make it easier to robustly express the
96  dependency rules.
98  Expecting a reroll.
101 * po/everyday-doc (2014-01-27) 1 commit
102  - Make 'git help everyday' work
104  This may make the said command to emit something, but the source is
105  not meant to be formatted into a manual pages to begin with, and
106  also its contents are a bit stale.  It may be a good first step in
107  the right direction, but needs more work to at least get the
108  mark-up right before public consumption.
110  Will hold.
113 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
114  - t1507 (rev-parse-upstream): fix typo in test title
115  - implement @{publish} shorthand
116  - branch_get: provide per-branch pushremote pointers
117  - branch_get: return early on error
118  - sha1_name: refactor upstream_mark
120  Give an easier access to the tracking branches from "other" side in
121  a triangular workflow by introducing B@{publish} that works in a
122  similar way to how B@{upstream} does.
124  Meant to be used as a basis for whatever Ram wants to build on.
126  Will hold.
129 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
130  - merge: drop unused arg from abort_commit method signature
131  - merge: make prepare_to_commit responsible for write_merge_state
132  - t7505: ensure cleanup after hook blocks merge
133  - t7505: add missing &&
135  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
136  run during "git merge".  The log message stresses too much on one
137  hook, prepare-commit-msg, but it would equally apply to other hooks
138  like post-merge, I think.
140  Waiting for a reroll.
143 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
144  - Teach checkout to recursively checkout submodules
145  - submodule: teach unpack_trees() to update submodules
146  - submodule: teach unpack_trees() to repopulate submodules
147  - submodule: teach unpack_trees() to remove submodule contents
148  - submodule: prepare for recursive checkout of submodules
150  Expecting a reroll.
153 * jc/graph-post-root-gap (2013-12-30) 3 commits
154  - WIP: document what we want at the end
155  - graph: remove unused code a bit
156  - graph: stuff the current commit into graph->columns[]
158  This was primarily a RFH ($gmane/239580).
161 * np/pack-v4 (2013-09-18) 90 commits
162  . packv4-parse.c: add tree offset caching
163  . t1050: replace one instance of show-index with verify-pack
164  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
165  . unpack-objects: decode v4 trees
166  . unpack-objects: allow to save processed bytes to a buffer
167  - ...
169  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
170  primarily for wider distribution of the preview edition.
172  Needs to be rebased, now the pack-bitmap series is in.
175 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
176  - perf-lib: add test_perf_cleanup target
177  - perf-lib: split starting the test from the execution
179  Add test_perf_cleanup shell function to the perf suite, that allows
180  the script writers to define a test with a clean-up action.
182  Will hold.
185 * jc/format-patch (2013-04-22) 2 commits
186  - format-patch: --inline-single
187  - format-patch: rename "no_inline" field
189  A new option to send a single patch to the standard output to be
190  appended at the bottom of a message.  I personally have no need for
191  this, but it was easy enough to cobble together.  Tests, docs and
192  stripping out more MIMEy stuff are left as exercises to interested
193  parties.
196 * jc/show-branch (2014-03-24) 5 commits
197  - show-branch: use commit slab to represent bitflags of arbitrary width
198  - show-branch.c: remove "all_mask"
199  - show-branch.c: abstract out "flags" operation
200  - show-branch.c: lift all_mask/all_revs to a global static
201  - show-branch.c: update comment style
203  Waiting for the final step to lift the hard-limit before sending it out.
205 --------------------------------------------------
206 [Cooking]
208 * ib/rev-parse-parseopt-argh (2014-04-01) 1 commit
209   (merged to 'next' on 2014-04-01 at 025578d)
210  + rev-parse: fix typo in example on manpage
212  Finishing touch to a new topic scheduled for 2.0
214  Will merge to 'master'.
217 * mh/lockfile (2014-04-07) 25 commits
218  - trim_last_path_elm(): replace last_path_elm()
219  - resolve_symlink(): take a strbuf parameter
220  - resolve_symlink(): use a strbuf for internal scratch space
221  - Change lock_file::filename into a strbuf
222  - commit_lock_file(): use a strbuf to manage temporary space
223  - try_merge_strategy(): use a statically-allocated lock_file object
224  - try_merge_strategy(): remove redundant lock_file allocation
225  - lockfile: avoid transitory invalid states
226  - commit_lock_file(): make committing an unlocked lockfile a NOP
227  - commit_lock_file(): inline temporary variable
228  - remove_lock_file(): call rollback_lock_file()
229  - lock_file(): exit early if lockfile cannot be opened
230  - write_packed_entry_fn(): convert cb_data into a (const int *)
231  - prepare_index(): declare return value to be (const char *)
232  - delete_ref_loose(): don't muck around in the lock_file's filename
233  - lockfile: define a constant LOCK_SUFFIX_LEN
234  - lockfile.c: document the various states of lock_file objects
235  - struct lock_file: replace on_list field with flags field
236  - lock_file(): always add lock_file object to lock_file_list
237  - hold_lock_file_for_append(): release lock on errors
238  - lockfile: unlock file if lockfile permissions cannot be adjusted
239  - rollback_lock_file(): set fd to -1
240  - rollback_lock_file(): do not clear filename redundantly
241  - unable_to_lock_die(): rename function from unable_to_lock_index_die()
242  - api-lockfile: expand the documentation
244  Refactor and fix corner-case bugs in the lockfile API.
247 * mh/update-ref-batch-create-fix (2014-04-02) 1 commit
248   (merged to 'next' on 2014-04-04 at 97e3f12)
249  + update-ref: fail create operation over stdin if ref already exists
251  Will merge to 'master'.
254 * jk/pack-bitmap (2014-04-04) 2 commits
255   (merged to 'next' on 2014-04-04 at 0306834)
256  + pack-objects: do not reuse packfiles without --delta-base-offset
257  + add `ignore_missing_links` mode to revwalk
259  Will merge to 'master'.
262 * mr/opt-set-ptr (2014-03-31) 3 commits
263   (merged to 'next' on 2014-04-03 at a26385b)
264  + parse-options: remove unused OPT_SET_PTR
265  + parse-options: add cast to correct pointer type to OPT_SET_PTR
266  + MSVC: fix t0040-parse-options crash
268  OPT_SET_PTR() implementation was broken on IL32P64 platforms;
269  it turns out that the macro is not used by any real user.
271  Will merge to 'master'.
274 * mt/patch-id-stable (2014-03-31) 3 commits
275  - patch-id-test: test --stable and --unstable flags
276  - patch-id: document new behaviour
277  - patch-id: make it stable against hunk reordering
279  Introduce a new way to compute patch-id for a patch that is not
280  affected by the order of the paths that appear in the input.
282  Will merge to 'next' and keep it there for the remainder of this cycle.
285 * jl/nor-or-nand-and (2014-03-31) 4 commits
286   (merged to 'next' on 2014-04-04 at b5d1ac5)
287  + code and test: fix misuses of "nor"
288  + comments: fix misuses of "nor"
289  + contrib: fix misuses of "nor"
290  + Documentation: fix misuses of "nor"
292  Eradicate mistaken use of "nor" (that is, essentially "nor" used
293  not in "neither A nor B" ;-)) from in-code comments, command output
294  strings, and documentations.
296  Will merge to 'master'.
299 * mh/ref-transaction (2014-04-07) 27 commits
300  - ref_transaction_commit(): work with transaction->updates in place
301  - struct ref_update: add a type field
302  - struct ref_update: add a lock field
303  - ref_transaction_commit(): simplify code using temporary variables
304  - struct ref_update: store refname as a FLEX_ARRAY
305  - struct ref_update: rename field "ref_name" to "refname"
306  - refs: remove API function update_refs()
307  - update-ref --stdin: reimplement using reference transactions
308  - refs: add a concept of a reference transaction
309  - update-ref --stdin: harmonize error messages
310  - update-ref --stdin: improve the error message for unexpected EOF
311  - t1400: test one mistake at a time
312  - update-ref --stdin -z: deprecate interpreting the empty string as zeros
313  - update-ref.c: extract a new function, parse_next_sha1()
314  - t1400: test that stdin -z update treats empty <newvalue> as zeros
315  - update-ref --stdin: simplify error messages for missing oldvalues
316  - update-ref --stdin: make error messages more consistent
317  - update-ref --stdin: improve error messages for invalid values
318  - update-ref.c: extract a new function, parse_refname()
319  - parse_cmd_verify(): copy old_sha1 instead of evaluating <oldvalue> twice
320  - update-ref --stdin: read the whole input at once
321  - update_refs(): fix constness
322  - refs.h: rename the action_on_err constants
323  - t1400: add some more tests involving quoted arguments
324  - parse_arg(): really test that argument is properly terminated
325  - t1400: provide more usual input to the command
326  - t1400: fix name and expected result of one test
328  Update "update-ref --stdin [-z]" and then introduce a transactional
329  support for (multi-)reference updates.
332 * jc/apply-ignore-whitespace (2014-03-26) 1 commit
333   (merged to 'next' on 2014-04-04 at 53779a7)
334  + apply --ignore-space-change: lines with and without leading whitespaces do not match
336  "--ignore-space-change" option of "git apply" ignored the
337  spaces at the beginning of line too aggressively, which is
338  inconsistent with the option of the same name "diff" and "git diff"
339  have.
341  Will keep in 'next' for the remainder of this cycle.
344 * jc/rev-parse-argh-dashed-multi-words (2014-03-24) 3 commits
345   (merged to 'next' on 2014-03-31 at 1c48649)
346  + parse-options: make sure argh string does not have SP or _
347  + update-index: teach --cacheinfo a new syntax "mode,sha1,path"
348  + parse-options: multi-word argh should use dash to separate words
350  Make sure that the help text given to describe the "<param>" part
351  of the "git cmd --option=<param>" does not contain SP or _,
352  e.g. "--gpg-sign=<key-id>" option for "git commit" is not spelled
353  as "--gpg-sign=<key id>".
355  Will merge to 'master'.
358 * jk/commit-dates-parsing-fix (2014-04-01) 2 commits
359   (merged to 'next' on 2014-04-04 at c16eeb0)
360  + t4212: loosen far-in-future test for AIX
361  + date: recognize bogus FreeBSD gmtime output
363  Will merge to 'master' and later to 'maint'.
366 * mr/msvc-link-with-invalidcontinue (2014-03-28) 1 commit
367   (merged to 'next' on 2014-03-31 at 051a29e)
368  + MSVC: link in invalidcontinue.obj for better POSIX compatibility
370  Will merge to 'master'.
373 * as/grep-fullname-config (2014-03-20) 1 commit
374   (merged to 'next' on 2014-03-28 at 810a076)
375  + grep: add grep.fullName config variable
377  Add a configuration variable to force --full-name to be default for
378  "git grep".
380  This may cause regressions on scripted users that do not expect
381  this new behaviour.
383  Will keep in 'next' for the remainder of this cycle.
386 * nd/multiple-work-trees (2014-03-25) 28 commits
387  - count-objects: report unused files in $GIT_DIR/repos/...
388  - gc: support prune --repos
389  - gc: style change -- no SP before closing bracket
390  - prune: strategies for linked checkouts
391  - checkout: detach if the branch is already checked out elsewhere
392  - checkout: clean up half-prepared directories in --to mode
393  - checkout: support checking out into a new working directory
394  - use new wrapper write_file() for simple file writing
395  - wrapper.c: wrapper to open a file, fprintf then close
396  - setup.c: support multi-checkout repo setup
397  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
398  - setup.c: convert check_repository_format_gently to use strbuf
399  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
400  - setup.c: convert is_git_directory() to use strbuf
401  - git-stash: avoid hardcoding $GIT_DIR/logs/....
402  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
403  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
404  - $GIT_COMMON_DIR: a new environment variable
405  - commit: use SEQ_DIR instead of hardcoding "sequencer"
406  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
407  - reflog: avoid constructing .lock path with git_path
408  - *.sh: respect $GIT_INDEX_FILE
409  - git_path(): be aware of file relocation in $GIT_DIR
410  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
411  - path.c: rename vsnpath() to do_git_path()
412  - git_snpath(): retire and replace with strbuf_git_path()
413  - path.c: make get_pathname() call sites return const char *
414  - path.c: make get_pathname() return strbuf instead of static buffer
416  A replacement for contrib/workdir/git-new-workdir that does not
417  rely on symbolic links and make sharing of objects and refs safer
418  by making the borrowee and borrowers aware of each other.
420  Will hold.
423 * ks/tree-diff-nway (2014-04-07) 19 commits
424  - combine-diff: speed it up, by using multiparent diff tree-walker directly
425  - tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
426  - Portable alloca for Git
427   (merged to 'next' on 2014-03-31 at 16a7bd4)
428  + tree-diff: reuse base str(buf) memory on sub-tree recursion
429  + tree-diff: no need to call "full" diff_tree_sha1 from show_path()
430  + tree-diff: rework diff_tree interface to be sha1 based
431  + tree-diff: diff_tree() should now be static
432  + tree-diff: remove special-case diff-emitting code for empty-tree cases
433   (merged to 'next' on 2014-03-25 at cfcbdac)
434  + tree-diff: simplify tree_entry_pathcmp
435  + tree-diff: show_path prototype is not needed anymore
436  + tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
437  + tree-diff: move all action-taking code out of compare_tree_entry()
438  + tree-diff: don't assume compare_tree_entry() returns -1,0,1
439   (merged to 'next' on 2014-03-21 at d872679)
440  + tree-diff: consolidate code for emitting diffs and recursion in one place
441  + tree-diff: show_tree() is not needed
442  + tree-diff: no need to pass match to skip_uninteresting()
443  + tree-diff: no need to manually verify that there is no mode change for a path
444  + combine-diff: move changed-paths scanning logic into its own function
445  + combine-diff: move show_log_first logic/action out of paths scanning
447  Instead of running N pair-wise diff-trees when inspecting a
448  N-parent merge, find the set of paths that were touched by walking
449  N+1 trees in parallel.  These set of paths can then be turned into
450  N pair-wise diff-tree results to be processed through rename
451  detections and such.  And N=2 case nicely degenerates to the usual
452  2-way diff-tree, which is very nice.
454  The preparatory steps are all in 'next'.
456  Will merge to 'next' and keep it there for the remainder of this cycle.
459 * cc/interpret-trailers (2014-04-07) 12 commits
460  - trailer: add blank line before the trailers if needed
461  - Documentation: add documentation for 'git interpret-trailers'
462  - trailer: add tests for commands in config file
463  - trailer: execute command from 'trailer.<name>.command'
464  - trailer: add tests for "git interpret-trailers"
465  - trailer: add interpret-trailers command
466  - trailer: put all the processing together and print
467  - trailer: parse trailers from stdin
468  - trailer: process command line trailer arguments
469  - trailer: read and process config information
470  - trailer: process trailers from stdin and arguments
471  - trailer: add data structures and basic functions
473  A new filter to programatically edit the tail end of the commit log
474  messages.
476  Will merge to 'next' and keep it there for the remainder of this cycle.