What's cooking (2014/11 #01)
[alt-git.git] / whats-cooking.txt
blob77f28ece66854d3d0b9d56cf08b2bdb73c5086eb
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Nov 2014, #01; Wed, 5)
4 X-master-at: f745acb028ee8f7dcd1c8f10127b8feeaa255cf7
5 X-next-at: e7f43d631f3874d59f665b70a7bf5ea08e113c3b
7 What's cooking in git.git (Nov 2014, #01; Wed, 5)
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 * jk/fetch-reflog-df-conflict (2014-11-04) 2 commits
23   (merged to 'next' on 2014-11-05 at b0476c9)
24  + ignore stale directories when checking reflog existence
25  + fetch: load all default config at startup
27  Corner-case bugfixes for "git fetch" around reflog handling.
29  Will merge to 'master'.
32 * js/diff-highlight-avoid-sigpipe (2014-11-04) 1 commit
33   (merged to 'next' on 2014-11-05 at b0fadd3)
34  + diff-highlight: exit when a pipe is broken
36  Will merge to 'master'.
39 * ms/submodule-update-config-doc (2014-11-03) 1 commit
40  - submodule: clarify documentation for update subcommand
43 * nd/lockfile-absolute (2014-11-03) 1 commit
44  - lockfile.c: store absolute path
46  The lockfile API can get confused which file to clean up when the
47  process moved the $cwd after creating a lockfile.
49  Will merge to 'next' and cook throughout the remainder of the cycle.
52 * tm/line-log-first-parent (2014-11-04) 1 commit
53   (merged to 'next' on 2014-11-05 at 8a6f650)
54  + line-log: fix crash when --first-parent is used
56  "git log --first-parent -L..." used to crash.
58  Will merge to 'master'.
61 * jh/empty-notes (2014-11-05) 3 commits
62  - notes: add --allow-empty, to allow storing empty notes
63  - t3312-notes-empty: test that 'git notes' removes empty notes by default
64  - builtin/notes: fix premature failure when trying to add the empty blob
67 * nd/gitignore-trailing-whitespace (2014-11-04) 1 commit
68   (merged to 'next' on 2014-11-05 at e7f43d6)
69  + gitignore.txt: fix spelling of "backslash"
71  Will merge to 'master'.
73 --------------------------------------------------
74 [Stalled]
76 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
77  - git-quiltimport: flip the default not to allow fuzz
78  - git-quiltimport.sh: allow declining fuzz with --exact option
80  "quiltimport" drove "git apply" always with -C1 option to reduce
81  context of the patch in order to give more chance to somewhat stale
82  patches to apply.  Add an "--exact" option to disable, and also
83  "-C$n" option to customize this behaviour.  The top patch
84  optionally flips the default to "--exact".
86  Waiting for an Ack.
89 * jc/push-cert-hmac-optim (2014-09-25) 2 commits
90  - receive-pack: truncate hmac early and convert only necessary bytes
91  - sha1_to_hex: split out "hex-format n bytes" helper and use it
93  This is "we could do this if we wanted to", not "we measured and it
94  improves performance critical codepath".
96  Will perhaps drop.
99 * nd/multiple-work-trees (2014-09-27) 32 commits
100  . t2025: add a test to make sure grafts is working from a linked checkout
101  . checkout: don't require a work tree when checking out into a new one
102  . git_path(): keep "info/sparse-checkout" per work-tree
103  . count-objects: report unused files in $GIT_DIR/worktrees/...
104  . gc: support prune --worktrees
105  . gc: factor out gc.pruneexpire parsing code
106  . gc: style change -- no SP before closing parenthesis
107  . checkout: clean up half-prepared directories in --to mode
108  . checkout: reject if the branch is already checked out elsewhere
109  . prune: strategies for linked checkouts
110  . checkout: support checking out into a new working directory
111  . use new wrapper write_file() for simple file writing
112  . wrapper.c: wrapper to open a file, fprintf then close
113  . setup.c: support multi-checkout repo setup
114  . setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
115  . setup.c: convert check_repository_format_gently to use strbuf
116  . setup.c: detect $GIT_COMMON_DIR in is_git_directory()
117  . setup.c: convert is_git_directory() to use strbuf
118  . git-stash: avoid hardcoding $GIT_DIR/logs/....
119  . *.sh: avoid hardcoding $GIT_DIR/hooks/...
120  . git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
121  . $GIT_COMMON_DIR: a new environment variable
122  . commit: use SEQ_DIR instead of hardcoding "sequencer"
123  . fast-import: use git_path() for accessing .git dir instead of get_git_dir()
124  . reflog: avoid constructing .lock path with git_path
125  . *.sh: respect $GIT_INDEX_FILE
126  . git_path(): be aware of file relocation in $GIT_DIR
127  . path.c: group git_path(), git_pathdup() and strbuf_git_path() together
128  . path.c: rename vsnpath() to do_git_path()
129  . git_snpath(): retire and replace with strbuf_git_path()
130  . path.c: make get_pathname() call sites return const char *
131  . path.c: make get_pathname() return strbuf instead of static buffer
133  A replacement for contrib/workdir/git-new-workdir that does not
134  rely on symbolic links and make sharing of objects and refs safer
135  by making the borrowee and borrowers aware of each other.
137  A few tests need some tweaks for MinGW ($gmane/{257756,257757}).
138  Conflicts with rs/ref-transaction so ejected for now, waiting for a
139  reroll.
142 * mt/patch-id-stable (2014-06-10) 1 commit
143  - patch-id: change default to stable
145  Teaches "git patch-id" to compute the patch ID that does not change
146  when the files in a single patch is reordered. As this new algorithm
147  is backward incompatible, the last bit to flip it to be the default
148  is left out of 'master' for now.
150  Nobody seems to be jumping up & down requesting this last step,
151  which makes the result somewhat backward incompatible.
152  Will perhaps drop.
155 * tr/remerge-diff (2014-09-08) 8 commits
156  - log --remerge-diff: show what the conflict resolution changed
157  - name-hash: allow dir hashing even when !ignore_case
158  - merge-recursive: allow storing conflict hunks in index
159  - merge_diff_mode: fold all merge diff variants into an enum
160  - combine-diff: do not pass revs->dense_combined_merges redundantly
161  - merge-recursive: -Xindex-only to leave worktree unchanged
162  - merge-recursive: internal flag to avoid touching the worktree
163  - merge-recursive: remove dead conditional in update_stages()
165  "log -p" output learns a new way to let users inspect a merge
166  commit by showing the differences between the automerged result
167  with conflicts the person who recorded the merge would have seen
168  and the final conflict resolution that was recorded in the merge.
170  Waiting for a reroll ($gmane/256591).
173 * hv/submodule-config (2014-06-30) 4 commits
174  - do not die on error of parsing fetchrecursesubmodules option
175  - use new config API for worktree configurations of submodules
176  - extract functions for submodule config set and lookup
177  - implement submodule config cache for lookup of submodule names
179  Kicked back to 'pu' per request ($gmane/255610).
182 * jt/timer-settime (2014-08-29) 6 commits
183  - use timer_settime() for new platforms
184  - autoconf: check for timer_settime()
185  - autoconf: check for struct itimerspec
186  - autoconf: check for struct sigevent
187  - autoconf: check for struct timespec
188  - autoconf: check for timer_t
190  Reviewed, discussed and wanting for a reroll.
193 * jk/pack-bitmap (2014-08-04) 1 commit
194  - pack-bitmap: do not use gcc packed attribute
196  Hold, waiting for Karsten's replacement.
199 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
200  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
201  - git-add--interactive: Preserve diff heading when splitting hunks
203  Waiting for a reroll.
206 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
207  - gitweb: Harden UTF-8 handling in generated links
209  $gmane/250758?
212 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
213  - userdiff: support Java try keyword
214  - userdiff: support C# async methods and correct C# keywords
216  Reviews sent; waiting for a response.
219 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
220  - git-rebase: print name of rev when using shorthand
222  Teach "git rebase -" to report the concrete name of the branch
223  (i.e. the previous one).
225  But it stops short and does not do the same for "git rebase @{-1}".
226  Expecting a reroll.
229 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
230  - merge: drop unused arg from abort_commit method signature
231  - merge: make prepare_to_commit responsible for write_merge_state
232  - t7505: ensure cleanup after hook blocks merge
233  - t7505: add missing &&
235  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
236  run during "git merge".  The log message stresses too much on one
237  hook, prepare-commit-msg, but it would equally apply to other hooks
238  like post-merge, I think.
240  Waiting for a reroll.
243 * jc/graph-post-root-gap (2013-12-30) 3 commits
244  - WIP: document what we want at the end
245  - graph: remove unused code a bit
246  - graph: stuff the current commit into graph->columns[]
248  This was primarily a RFH ($gmane/239580).
251 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
252  - perf-lib: add test_perf_cleanup target
253  - perf-lib: split starting the test from the execution
255  Add test_perf_cleanup shell function to the perf suite, that allows
256  the script writers to define a test with a clean-up action.
258  Will hold.
261 * jc/show-branch (2014-03-24) 5 commits
262  - show-branch: use commit slab to represent bitflags of arbitrary width
263  - show-branch.c: remove "all_mask"
264  - show-branch.c: abstract out "flags" operation
265  - show-branch.c: lift all_mask/all_revs to a global static
266  - show-branch.c: update comment style
268  Waiting for the final step to lift the hard-limit before sending it out.
270 --------------------------------------------------
271 [Cooking]
273 * jc/merge-bases (2014-10-30) 2 commits
274  - get_merge_bases(): always clean-up object flags
275  - bisect: clean flags after checking merge bases
277  Will merge to 'next' and cook throughout the remainder of the cycle.
280 * jk/cache-tree-protect-from-broken-libgit2 (2014-10-30) 1 commit
281   (merged to 'next' on 2014-11-03 at 6ebd88d)
282  + cache-tree: avoid infinite loop on zero-entry tree
284  Will merge to 'master'.
287 * jc/strbuf-add-lines-avoid-sp-ht-sequence (2014-10-27) 1 commit
288   (merged to 'next' on 2014-10-29 at 9167582)
289  + strbuf_add_commented_lines(): avoid SP-HT sequence in commented lines
291  The commented output used to blindly add a SP before the payload
292  line, resulting in "# \t<indented text>\n" when the payload began
293  with a HT.  Instead, produce "#\t<indented text>\n".
295  Will cook in 'next' throughout the remainder of the cycle.
298 * nd/untracked-cache (2014-10-27) 19 commits
299  - t7063: tests for untracked cache
300  - update-index: test the system before enabling untracked cache
301  - update-index: manually enable or disable untracked cache
302  - status: enable untracked cache
303  - untracked cache: mark index dirty if untracked cache is updated
304  - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
305  - untracked cache: avoid racy timestamps
306  - read-cache.c: split racy stat test to a separate function
307  - untracked cache: invalidate at index addition or removal
308  - untracked cache: load from UNTR index extension
309  - untracked cache: save to an index extension
310  - untracked cache: don't open non-existent .gitignore
311  - untracked cache: mark what dirs should be recursed/saved
312  - untracked cache: record/validate dir mtime and reuse cached output
313  - untracked cache: make a wrapper around {open,read,close}dir()
314  - untracked cache: invalidate dirs recursively if .gitignore changes
315  - untracked cache: initial untracked cache validation
316  - untracked cache: record .gitignore information and dir hierarchy
317  - dir.c: optionally compute sha-1 of a .gitignore file
320 * rs/use-child-process-init-more (2014-10-30) 4 commits
321   (merged to 'next' on 2014-11-03 at a82d885)
322  + bundle: split out ref writing from bundle_create
323  + bundle: split out a helper function to compute and write prerequisites
324  + bundle: split out a helper function to create pack data
325  + use child_process_init() to initialize struct child_process variables
327  Will merge to 'master'.
330 * zk/grep-color-words (2014-10-27) 2 commits
331   (merged to 'next' on 2014-10-28 at 4d0457c)
332  + Revert "grep: fix match highlighting for combined patterns with context lines"
333   (merged to 'next' on 2014-10-24 at 2d2f8f8)
334  + grep: fix match highlighting for combined patterns with context lines
336  rs/grep-color-words topic solves it in a different way.
338  Will discard.
341 * jc/conflict-hint (2014-10-28) 4 commits
342   (merged to 'next' on 2014-10-29 at 693250f)
343  + merge & sequencer: turn "Conflicts:" hint into a comment
344  + builtin/commit.c: extract ignore_non_trailer() helper function
345  + merge & sequencer: unify codepaths that write "Conflicts:" hint
346  + builtin/merge.c: drop a parameter that is never used
348  Unlike all the other hints given in the commit log editor, the list
349  of conflicted paths were appended at the end without commented out.
351  Will cook in 'next' throughout the remainder of the cycle.
354 * jc/diff-b-m (2014-10-23) 1 commit
355   (merged to 'next' on 2014-10-28 at 4daedb1)
356  + diff -B -M: fix output for "copy and then rewrite" case
358  Fix long-standing bug in "diff -B -M" output.
360  Will cook in 'next' throughout the remainder of the cycle.
363 * rs/ref-transaction-reflog (2014-11-03) 15 commits
364  - refs.c: allow deleting refs with a broken sha1
365  - refs.c: remove lock_any_ref_for_update
366  - refs.c: make unlock_ref/close_ref/commit_ref static
367  - refs.c: rename log_ref_setup to create_reflog
368  - reflog.c: use a reflog transaction when writing during expire
369  - refs.c: allow multiple reflog updates during a single transaction
370  - refs.c: only write reflog update if msg is non-NULL
371  - refs.c: add a flag to allow reflog updates to truncate the log
372  - refs.c: add a transaction function to append a reflog entry
373  - copy.c: make copy_fd preserve meaningful errno
374  - refs.c: add a function to append a reflog entry to a fd
375  - refs.c: add a new update_type field to ref_update
376  - refs.c: rename the transaction functions
377  - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
378  - refs.c make ref_transaction_create a wrapper to ref_transaction_update
379  (this branch is used by rs/ref-transaction-rename and rs/ref-transaction-send-pack.)
381  Reviews and comments?
384 * rs/ref-transaction-rename (2014-11-03) 17 commits
385  - refs.c: add an err argument to pack_refs
386  - refs.c: make lock_packed_refs take an err argument
387  - refs.c: make add_packed_ref return an error instead of calling die
388  - refs.c: replace the onerr argument in update_ref with a strbuf err
389  - refs.c: make the *_packed_refs functions static
390  - refs.c: make repack_without_refs static
391  - remote.c: use a transaction for deleting refs
392  - refs.c: write updates to packed refs when a transaction has more than one ref
393  - refs.c: move reflog updates into its own function
394  - refs.c: rollback the lockfile before we die() in repack_without_refs
395  - refs.c: update rename_ref to use a transaction
396  - refs.c: add new function copy_reflog_into_strbuf
397  - refs.c: add transaction support for replacing a reflog
398  - refs.c: use a stringlist for repack_without_refs
399  - refs.c: use packed refs when deleting refs during a transaction
400  - refs.c: return error instead of dying when locking fails during transaction
401  - refs.c: allow passing raw git_committer_info as email to _update_reflog
402  (this branch is used by rs/ref-transaction-send-pack; uses rs/ref-transaction-reflog.)
404  Reviews and comments?
407 * rs/ref-transaction-send-pack (2014-11-03) 7 commits
408  - refs.c: add an err argument to create_symref
409  - refs.c: add an err argument to create_reflog
410  - t5543-atomic-push.sh: add basic tests for atomic pushes
411  - push.c: add an --atomic-push argument
412  - receive-pack.c: use a single transaction when atomic-push is negotiated
413  - send-pack.c: add an --atomic-push command line argument
414  - receive-pack.c: add protocol support to negotiate atomic-push
415  (this branch uses rs/ref-transaction-reflog and rs/ref-transaction-rename.)
417  Reviews and comments?
420 * jc/checkout-local-track-report (2014-10-14) 1 commit
421   (merged to 'next' on 2014-10-21 at f636a00)
422  + checkout: report upstream correctly even with loosely defined branch.*.merge
424  The report from "git checkout" on a branch that builds on another
425  local branch by setting its branch.*.merge to branch name (not a
426  full refname) incorrectly said that the upstream is gone.
428  Will cook in 'next' throughout the remainder of the cycle.
431 * jc/clone-borrow (2014-10-15) 1 commit
432   (merged to 'next' on 2014-10-21 at b76ea34)
433  + clone: --dissociate option to mark that reference is only temporary
435  Allow "git clone --reference" to be used more safely.
437  Will cook in 'next' throughout the remainder of the cycle.