What's cooking
[git] / whats / cooking / 2009 / 08 / 04.txt
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Aug 2009, #04; Sun, 23)
3 X-master-at: 2e1176d51ef4fc07f487818acdfcf2fc4b789203
4 X-next-at: 38eb7501aaddd72a8e6007f281d6a3cfa42a2a02
5
6 What's cooking in git.git (Aug 2009, #04; Sun, 23)
7 --------------------------------------------------
8
9 Here are the topics that have been cooking.  Commits prefixed with '-' are
10 only in 'pu' while commits prefixed with '+' are in 'next'.  The ones
11 marked with '.' do not appear in any of the integration branches, but I am
12 still holding onto them.
13
14 After the 1.6.5 cycle, the next release will be 1.7.0, and we will push
15 out the planned "push safety" change.  1.7.0 would be a good time to
16 introduce "justifiable" changes that are not strictly backward compatible.
17
18 During 1.6.5 cycle, 'next' will hold topics meant for 1.6.5 and 1.7.0.
19
20 --------------------------------------------------
21 [Graduated to "master"]
22
23 * bc/mailsplit-cr-at-eol (2009-08-04) 4 commits
24   (merged to 'next' on 2009-08-06 at 6bc7c5c)
25  + Allow mailsplit (and hence git-am) to handle mails with CRLF line-endings
26  + builtin-mailsplit.c: remove read_line_with_nul() since it is no longer used
27  + builtin-mailinfo,builtin-mailsplit: use strbufs
28  + strbuf: add new function strbuf_getwholeline()
29
30 * gb/apply-ignore-whitespace (2009-08-04) 1 commit
31   (merged to 'next' on 2009-08-06 at 59e2c86)
32  + git apply: option to ignore whitespace differences
33
34 * cc/replace (2009-05-27) 14 commits.
35   (merged to 'next' on 2009-08-02 at b9c4bc0)
36  + t6050: check pushing something based on a replaced commit
37  + Documentation: add documentation for "git replace"
38  + Add git-replace to .gitignore
39  + builtin-replace: use "usage_msg_opt" to give better error messages
40  + parse-options: add new function "usage_msg_opt"
41  + builtin-replace: teach "git replace" to actually replace
42  + Add new "git replace" command
43  + environment: add global variable to disable replacement
44  + mktag: call "check_sha1_signature" with the replacement sha1
45  + replace_object: add a test case
46  + object: call "check_sha1_signature" with the replacement sha1
47  + sha1_file: add a "read_sha1_file_repl" function
48  + replace_object: add mechanism to replace objects found in "refs/replace/"
49  + refs: add a "for_each_replace_ref" function
50
51 * ld/p4 (2009-07-30) 1 commit
52   (merged to 'next' on 2009-08-14 at 36d310d)
53  + git-p4: stream from perforce to speed up clones
54
55 * mr/gitweb-xz (2009-08-06) 3 commits
56   (merged to 'next' on 2009-08-14 at b63b8e6)
57  + gitweb: add support for XZ compressed snapshots
58  + gitweb: update INSTALL regarding specific snapshot settings
59  + gitweb: support to globally disable a snapshot format
60
61 * jc/verify-pack-stat (2009-08-07) 1 commit
62   (merged to 'next' on 2009-08-10 at f80d0e9)
63  + verify-pack --stat-only: show histogram without verifying
64 --------------------------------------------------
65 [New Topics]
66
67 * jc/mailinfo-scissors (2009-08-23) 1 commit
68  - Teach mailinfo to ignore everything before -- >8 -- mark
69
70 * tf/diff-whitespace-incomplete-line (2009-08-23) 2 commits.
71  - xutils: Fix xdl_recmatch() on incomplete lines
72  - xutils: Fix hashing an incomplete line with whitespaces at the end
73
74 * jc/1.7.0-send-email-no-thread-default (2009-08-22) 1 commit
75   (merged to 'next' on 2009-08-22 at 5106de8)
76  + send-email: make --no-chain-reply-to the default
77
78 * lt/approxidate (2009-08-22) 2 commits
79  - Further 'approxidate' improvements
80  - Improve on 'approxidate'
81
82 * mm/reset-report (2009-08-21) 2 commits
83  - reset: make the reminder output consistent with "checkout"
84  - Rename REFRESH_SAY_CHANGED to REFRESH_IN_PORCELAIN.
85
86 * wl/insta-mongoose (2009-08-21) 1 commit
87  - Add support for the Mongoose web server.
88 --------------------------------------------------
89 [Stalled]
90
91 * sr/gfi-options (2009-08-13) 3 commits
92  - fast-import: test the new option command
93  - fast-import: add option command
94  - fast-import: put option parsing code in seperate functions
95
96 What is this used by?
97
98 * lt/block-sha1 (2009-08-17) 4 commits
99   (merged to 'next' on 2009-08-18 at 67a1ce8)
100  + remove ARM and Mozilla SHA1 implementations
101  + block-sha1: guard gcc extensions with __GNUC__
102  + make sure byte swapping is optimal for git
103  + block-sha1: make the size member first in the context struct
104
105 Finishing touches ;-)  There were a few Solaris portability patches
106 floated around that I didn't pick up, waiting for them to finalize.
107
108 * js/stash-dwim (2009-07-27) 1 commit.
109   (merged to 'next' on 2009-08-16 at 67896c4)
110  + Make 'git stash -k' a short form for 'git stash save --keep-index'
111  (this branch is used by tr/reset-checkout-patch.)
112
113 * tr/reset-checkout-patch (2009-08-18) 8 commits.
114   (merged to 'next' on 2009-08-18 at e465bb3)
115  + tests: disable interactive hunk selection tests if perl is not available
116   (merged to 'next' on 2009-08-16 at 67896c4)
117  + DWIM 'git stash save -p' for 'git stash -p'
118  + Implement 'git stash save --patch'
119  + Implement 'git checkout --patch'
120  + Implement 'git reset --patch'
121  + builtin-add: refactor the meat of interactive_add()
122  + Add a small patch-mode testing library
123  + git-apply--interactive: Refactor patch mode code
124  (this branch uses js/stash-dwim.)
125
126 There was a discussion on better DWIMmery for the above two topics to (1)
127 forbid "git stash save --anything-with-dash" and (2) redirect with any
128 option "git stash --opt" to "git stash save --opt", to keep it flexible
129 and safe at the same time.  I think it is a sane thing to do, but nothing
130 has happened lately.
131
132 * jn/gitweb-blame (2009-08-06) 3 commits
133  - gitweb: Create links leading to 'blame_incremental' using JavaScript
134  - gitweb: Incremental blame (WIP)
135  - gitweb: Add optional "time to generate page" info in footer
136
137 Ajax-y blame WIP
138
139 * db/vcs-helper (2009-08-09) 17 commits
140  - Allow helpers to request marks for fast-import
141  - Allow helpers to report in "list" command that the ref is unchanged
142  - Add support for "import" helper command
143  - transport-helper_init(): fix a memory leak in error path
144  - Add a config option for remotes to specify a foreign vcs
145  - Allow programs to not depend on remotes having urls
146  - Allow fetch to modify refs
147  - Use a function to determine whether a remote is valid
148  - Use a clearer style to issue commands to remote helpers
149   (merged to 'next' on 2009-08-07 at f3533ba)
150  + Makefile: install hardlinks for git-remote-<scheme> supported by libcurl if possible
151  + Makefile: do not link three copies of git-remote-* programs
152  + Makefile: git-http-fetch does not need expat
153   (merged to 'next' on 2009-08-06 at 15da79d)
154  + http-fetch: Fix Makefile dependancies
155  + Add transport native helper executables to .gitignore
156   (merged to 'next' on 2009-08-05 at 33d491e)
157  + git-http-fetch: not a builtin
158  + Use an external program to implement fetching with curl
159  + Add support for external programs for handling native fetches
160  (this branch is used by jh/cvs-helper.)
161
162 There was a discussion that suggests that the use of colon ':' before vcs
163 helper name needs to be corrected.  Nothing happened since.
164
165 * je/send-email-no-subject (2009-08-05) 1 commit
166  - send-email: confirm on empty mail subjects
167
168 This seems to break t9001.  Near the tip of 'pu' I have a iffy
169 workaround.
170
171 --------------------------------------------------
172 [Cooking]
173
174 * cc/sequencer-rebase-i (2009-08-21) 17 commits.
175  - rebase -i: use "git sequencer--helper --cherry-pick"
176  - sequencer: add "--cherry-pick" option to "git sequencer--helper"
177  - sequencer: add "do_commit()" and related functions
178  - pick: libify "pick_help_msg()"
179  - revert: libify pick
180  - rebase -i: use "git sequencer--helper --fast-forward"
181  - sequencer: let "git sequencer--helper" callers set "allow_dirty"
182  - sequencer: add "--fast-forward" option to "git sequencer--helper"
183  - sequencer: add "do_fast_forward()" to perform a fast forward
184  - rebase -i: use "git sequencer--helper --reset-hard"
185  - sequencer: add "--reset-hard" option to "git sequencer--helper"
186  - sequencer: add comments about reset_almost_hard()
187  - sequencer: add "reset_almost_hard()" and related functions
188  - rebase -i: use "git sequencer--helper --make-patch"
189  - sequencer: free memory used in "make_patch" function
190  - sequencer: add "make_patch" function to save a patch
191  - sequencer: add "builtin-sequencer--helper.c"
192
193 Migrating "rebase -i" bit by bit to C.  I am inclined to agree with Dscho
194 that maybe this approach forces the migration to follow the structure of
195 the shell script too much, and could force a suboptimal end result, but
196 we'll see.
197
198 * aj/fix-read-tree-from-scratch (2009-08-17) 1 commit
199   (merged to 'next' on 2009-08-20 at 7a04133)
200  + read-tree: Fix regression with creation of a new index file.
201
202 Will merge.
203
204 * as/maint-graph-interesting-fix (2009-08-18) 1 commit.
205  - graph API: fix bug in graph_is_interesting()
206
207 I need to queue the associated test after getting it signed-off.
208
209 * jc/1.7.0-status (2009-08-15) 3 commits
210   (merged to 'next' on 2009-08-22 at b3507bb)
211  + git status: not "commit --dry-run" anymore
212  + git stat -s: short status output
213  + git stat: the beginning of "status that is not a dry-run of commit"
214  (this branch uses jc/shortstatus.)
215
216 As promised, I squashed incremental "fix-up" into the commits they fix;
217 this will be kept in 'next' until 1.7.0
218
219 * jc/shortstatus (2009-08-15) 11 commits
220   (merged to 'next' on 2009-08-15 at 7e40766)
221  + git commit --dry-run -v: show diff in color when asked
222  + Documentation/git-commit.txt: describe --dry-run
223   (merged to 'next' on 2009-08-12 at 53bda17)
224  + wt-status: collect untracked files in a separate "collect" phase
225  + Make git_status_config() file scope static to builtin-commit.c
226  + wt-status: move wt_status_colors[] into wt_status structure
227  + wt-status: move many global settings to wt_status structure
228  + commit: --dry-run
229   (merged to 'next' on 2009-08-06 at fe8cb94)
230  + status: show worktree status of conflicted paths separately
231  + wt-status.c: rework the way changes to the index and work tree are summarized
232  + diff-index: keep the original index intact
233  + diff-index: report unmerged new entries
234  (this branch is used by jc/1.7.0-status.)
235
236 Will cook for a bit more and then merge.
237
238 * jc/maint-checkout-index-to-prefix (2009-08-16) 1 commit
239   (merged to 'next' on 2009-08-20 at 2f6aea2)
240  + check_path(): allow symlinked directories to checkout-index --prefix
241
242 Will merge.
243
244 * jc/maint-unpack-objects-strict (2009-08-13) 1 commit.
245   (merged to 'next' on 2009-08-23 at 38eb750)
246  + Fix "unpack-objects --strict"
247
248 * jh/submodule-foreach (2009-08-20) 9 commits
249   (merged to 'next' on 2009-08-20 at 671bea4)
250  + git clone: Add --recursive to automatically checkout (nested) submodules
251  + t7407: Use 'rev-parse --short' rather than bash's substring expansion notation
252   (merged to 'next' on 2009-08-18 at f4a881d)
253  + git submodule status: Add --recursive to recurse into nested submodules
254  + git submodule update: Introduce --recursive to update nested submodules
255  + git submodule foreach: Add --recursive to recurse into nested submodules
256  + git submodule foreach: test access to submodule name as '$name'
257  + Add selftest for 'git submodule foreach'
258  + git submodule: Cleanup usage string and add option parsing to cmd_foreach()
259  + git submodule foreach: Provide access to submodule name, as '$name'
260
261 * jl/submodule-summary-diff-files (2009-08-15) 2 commits
262   (merged to 'next' on 2009-08-15 at 165bd8e)
263  + Documentaqtion/git-submodule.txt: Typofix
264   (merged to 'next' on 2009-08-14 at a702e78)
265  + git submodule summary: add --files option
266
267 Will merge.
268
269 * lh/short-decorate (2009-08-15) 1 commit
270   (merged to 'next' on 2009-08-18 at b8c1d96)
271  + git-log: allow --decorate[=short|full]
272
273 Will merge.
274
275 * oa/stash-na (2009-08-11) 1 commit
276   (merged to 'next' on 2009-08-14 at 12c2e2b)
277  + git stash: Give friendlier errors when there is nothing to apply
278
279 Will merge.
280
281 * jh/notes (2009-07-29) 8 commits.
282  - t3302-notes-index-expensive: Speed up create_repo()
283  - fast-import: Add support for importing commit notes
284  - First draft of notes tree parser with support for fanout subtrees
285  - Teach "-m <msg>" and "-F <file>" to "git notes edit"
286  - Add an expensive test for git-notes
287  - Speed up git notes lookup
288  - Add a script to edit/inspect notes
289  - Introduce commit notes
290
291 The cvs-helper series depends on this one.
292
293 * ne/rev-cache (2009-08-21) 6 commits
294  . support for path name caching in rev-cache
295  . full integration of rev-cache into git, completed test suite
296  . administrative functions for rev-cache, start of integration into git
297  . support for non-commit object caching in rev-cache
298  . basic revision cache system, no integration or features
299  . man page and technical discussion for rev-cache
300
301 Updated but seems to break tests when merged to 'pu'; didn't look at the
302 issue deeply.
303
304 * jh/cvs-helper (2009-08-18) 7 commits
305  - More fixes to the git-remote-cvs installation procedure
306  - Fix the Makefile-generated path to the git_remote_cvs package in git-remote-cvs
307  - Add simple selftests of git-remote-cvs functionality
308  - git-remote-cvs: Remote helper program for CVS repositories
309  - 2/2: Add Python support library for CVS remote helper
310  - 1/2: Add Python support library for CVS remote helper
311  - Basic build infrastructure for Python scripts
312  (this branch uses db/vcs-helper.)
313
314 Builds on db/vcs-helper.  The testing of Python part seemed to be
315 still fragile even with the latest fix on one of my boches with an
316 earlier round already installed, but I didn't look very deeply before
317 removing the older installation.
318
319 * nd/sparse (2009-08-20) 20 commits
320  - sparse checkout: inhibit empty worktree
321  - Add tests for sparse checkout
322  - read-tree: add --no-sparse-checkout to disable sparse checkout support
323  - unpack-trees(): ignore worktree check outside checkout area
324  - unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
325  - unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
326  - unpack-trees.c: generalize verify_* functions
327  - unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
328  - Introduce "sparse checkout"
329  - dir.c: export excluded_1() and add_excludes_from_file_1()
330  - excluded_1(): support exclude files in index
331  - unpack-trees(): carry skip-worktree bit over in merged_entry()
332  - Read .gitignore from index if it is skip-worktree
333  - Avoid writing to buffer in add_excludes_from_file_1()
334  - Teach Git to respect skip-worktree bit (writing part)
335  - Teach Git to respect skip-worktree bit (reading part)
336  - Introduce "skip-worktree" bit in index, teach Git to get/set this bit
337  - Add test-index-version
338  - update-index: refactor mark_valid() in preparation for new options
339   (merged to 'next' on 2009-08-20 at ea167d7)
340  + Prevent diff machinery from examining assume-unchanged entries on worktree
341
342 The first one was an independent fix; the rest has been replaced with the
343 "return of no-checkout" series.
344
345 * jc/1.7.0-diff-whitespace-only-status (2009-05-23) 2 commits.
346   (merged to 'next' on 2009-08-02 at 9c08420)
347  + diff: Rename QUIET internal option to QUICK
348  + diff: change semantics of "ignore whitespace" options
349
350 For 1.7.0.  This changes exit code from "git diff --ignore-whitespace" and
351 friends when there is no actual output.  It is a backward incompatible
352 change, but we could argue that it is a bugfix.
353
354 * jc/1.7.0-push-safety (2009-02-09) 2 commits
355   (merged to 'next' on 2009-08-02 at 38b82fe)
356  + Refuse deleting the current branch via push
357  + Refuse updating the current branch in a non-bare repository via push
358
359 For 1.7.0.
360
361 * jc/log-tz (2009-03-03) 1 commit.
362  - Allow --date=local --date=other-format to work as expected
363
364 * jc/mailinfo-remove-brackets (2009-07-15) 1 commit.
365  - mailinfo: -b option keeps [bracketed] strings that is not a [PATCH] marker
366 --------------------------------------------------
367 [I have been too busy to purge these]
368
369 * ar/maint-1.6.2-merge-recursive-d-f (2009-05-11) 2 commits.
370  . Fix for a merge where a branch has an F->D transition
371  . Add a reminder test case for a merge with F/D transition
372
373 * jc/merge-convert (2009-01-26) 1 commit.
374  . git-merge-file: allow converting the results for the work tree
375
376 * lt/read-directory (2009-05-15) 3 commits.
377  . Add initial support for pathname conversion to UTF-8
378  . read_directory(): infrastructure for pathname character set conversion
379  . Add 'fill_directory()' helper function for directory traversal
380
381 * ps/blame (2009-03-12) 1 commit.
382  . blame.c: start libifying the blame infrastructure
383
384 * pb/tracking (2009-07-16) 7 commits.
385  . branch.c: if remote is not config'd for branch, don't try delete push config
386  . branch, checkout: introduce autosetuppush
387  . move deletion of merge configuration to branch.c
388  . remote: add per-remote autosetupmerge and autosetuprebase configuration
389  . introduce a struct tracking_config
390  . branch: install_branch_config and struct tracking refactoring
391  . config: allow false and true values for branch.autosetuprebase
392
393 Has been ejected from 'pu' for some time, expecting a reroll.