What's cooking (2009/12 #04)
[git/dscho.git] / whats-cooking.txt
blob7ed9b6eebaa3111bbdf10d861985227d57877c44
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Dec 2009, #04; Wed, 09)
3 X-master-at: 80d93611c55fec171e0d9aba98db079952f9d7aa
4 X-next-at: 245e2a65f71e0255a90a3c45ea82bcdd19f85eff
6 What's cooking in git.git (Dec 2009, #04; Wed, 09)
7 --------------------------------------------------
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.
14 --------------------------------------------------
15 [Graduated to "master"]
17 * jk/maint-add-p-delete-fix (2009-12-08) 1 commit.
18   (merged to 'next' on 2009-12-08 at 3c2c08a)
19  + add-interactive: fix deletion of non-empty files
21 Fixes a regression in 1.6.5.3.
23 * jn/maint-pull-rebase-error-message (2009-11-27) 1 commit.
24   (merged to 'next' on 2009-12-03 at 2ced03c)
25  + pull: clarify advice for the unconfigured error case
27 Replaces old 'jn/rfc-pull-rebase-error-message' topic.
29 --------------------------------------------------
30 [New Topics]
32 * cc/reset-more (2009-12-08) 6 commits
33  - Documentation: reset: add some tables to describe the different options
34  - Documentation: reset: describe new "--keep-local-changes" option
35  - reset: add test cases for "--keep-local-changes" option
36  - reset: add option "--keep-local-changes" to "git reset"
37  - reset: use "unpack_trees()" directly instead of "git read-tree"
38  - reset: add a few tests for "git reset --merge"
40 The documentation is much clearer than the previous round in describing
41 what it does, but I find it a bit unclear in describing what it is _good_
42 for (iow, scenarios and use cases).
44 Breaks 'pu' and does not pass test on its own yet.
46 * tr/http-push-ref-status (2009-12-08) 3 commits
47  - transport-helper.c::push_refs(): emit "no refs" error message
48  - transport.c::transport_push(): make ref status affect return value
49  - refactor ref status logic for pushing
51 --------------------------------------------------
52 [Stalled]
54 * je/send-email-no-subject (2009-08-05) 1 commit.
55   (merged to 'next' on 2009-10-11 at 1b99c56)
56  + send-email: confirm on empty mail subjects
58 The existing tests cover the positive case (i.e. as long as the user says
59 "yes" to the "do you really want to send this message that lacks subject",
60 the message is sent) of this feature, but the feature itself needs its own
61 test to verify the negative case (i.e. does it correctly stop if the user
62 says "no"?)
64 * jc/checkout-merge-base (2009-11-20) 2 commits
65  - "rebase --onto A...B" replays history on the merge base between A and B
66  - "checkout A...B" switches to the merge base between A and B
68 I've been using the first one for a while myself but do not see many users
69 want this (yet); the new feature is not urgent anyway.
71 * tr/maint-merge-ours-clarification (2009-11-15) 1 commit
72   (merged to 'next' on 2009-11-21 at fadaf7b)
73  + rebase: refuse to rebase with -s ours
75 I do not think we reached a concensus for solving conflicts between "give
76 them rope" and "protect users from clearly meaningless combinations".  The
77 author obviously is for the latter (and I am inclined to agree); Dscho
78 seems to think otherwise.
80 * jc/fix-tree-walk (2009-10-22) 8 commits
81   (merged to 'next' on 2009-10-22 at 10c0c8f)
82  + Revert failed attempt since 353c5ee
83  + read-tree --debug-unpack
84   (merged to 'next' on 2009-10-11 at 0b058e2)
85  + unpack-trees.c: look ahead in the index
86  + unpack-trees.c: prepare for looking ahead in the index
87  + Aggressive three-way merge: fix D/F case
88  + traverse_trees(): handle D/F conflict case sanely
89  + more D/F conflict tests
90  + tests: move convenience regexp to match object names to test-lib.sh
92 This has some stupid bugs and reverted from 'next' until I can fix it, but
93 the "temporarily" turned out to be very loooong.  Sigh.  We won't have a
94 proper fix in 1.6.6.
96 --------------------------------------------------
97 [Cooking]
99 * bg/maint-add-all-doc (2009-12-07) 4 commits.
100  - squash! rm documentation--also mention add-u where we mention commit-a
101  - git-rm doc: Describe how to sync index & work tree
102  - git-add/rm doc: Consistently back-quote
103  - Documentation: 'git add -A' can remove files
105 I didn't like the existing documentation for "add -u" myself (especially
106 because I wrote the initial version) and this neatly fix it as well.
108 * il/vcs-helper (2009-12-09) 8 commits
109  - Remove special casing of http, https and ftp
110  - Support remote archive from all smart transports
111  - Support remote helpers implementing smart transports
112  - Support taking over transports
113  - Refactor git transport options parsing
114  - Pass unknown protocols to external protocol handlers
115  - Support mandatory capabilities
116  - Add remote helper debug mode
117  (this branch uses early parts of sr/vcs-helper.)
119 Yet another round.
121 * jh/commit-status (2009-12-07) 1 commit
122  - [test?] Add commit.status, --status, and --no-status
124 * mm/diag-path-in-treeish (2009-12-07) 1 commit
125  - Detailed diagnosis when parsing an object name fails.
127 * ns/rebase-auto-squash (2009-12-08) 2 commits
128  - fixup! rebase -i --autosquash
129  - rebase -i --autosquash: auto-squash commits
130  (this branch uses mh/rebase-fixup.)
132 * jh/notes (2009-12-07) 11 commits
133  - Refactor notes concatenation into a flexible interface for combining notes
134  - Notes API: Allow multiple concurrent notes trees with new struct notes_tree
135  - Notes API: for_each_note(): Traverse the entire notes tree with a callback
136  - Notes API: get_note(): Return the note annotating the given object
137  - Notes API: add_note(): Add note objects to the internal notes tree structure
138  - Notes API: init_notes(): Initialize the notes tree from the given notes ref
139  - Notes API: get_commit_notes() -> format_note() + remove the commit restriction
140  - Minor style fixes to notes.c
141  - Add more testcases to test fast-import of notes
142  - Rename t9301 to t9350, to make room for more fast-import tests
143  - fast-import: Proper notes tree manipulation
145 Rerolled and under discussion.
147 * fc/opt-quiet-gc-reset (2009-12-02) 1 commit
148  - General --quiet improvements
150 * mv/commit-date (2009-12-03) 2 commits
151  - Document date formats accepted by parse_date()
152  - builtin-commit: add --date option
154 * mh/rebase-fixup (2009-12-07) 2 commits
155  - Add a command "fixup" to rebase --interactive
156  - t3404: Use test_commit to set up test repository
157  (this branch is used by ns/rebase-auto-squash.)
159 Initial round of "fixup" action that is similar to "squash" action in
160 "rebase -i" that excludes the commit log message from follow-up commits
161 when composing the log message for the updated one.  Expected is a further
162 improvement to skip opening the editor if a pick is followed only by
163 "fixup" and no "squash".
165 * sr/gfi-options (2009-12-04) 7 commits
166  - fast-import: add (non-)relative-marks feature
167  - fast-import: allow for multiple --import-marks= arguments
168  - fast-import: test the new option command
169  - fast-import: add option command
170  - fast-import: add feature command
171  - fast-import: put marks reading in its own function
172  - fast-import: put option parsing code in separate functions
174 Rerolled.
176 * ap/merge-backend-opts (2008-07-18) 6 commits
177  - Document that merge strategies can now take their own options
178  - Extend merge-subtree tests to test -Xsubtree=dir.
179  - Make "subtree" part more orthogonal to the rest of merge-recursive.
180  - Teach git-pull to pass -X<option> to git-merge
181  - git merge -X<option>
182  - git-merge-file --ours, --theirs
184 "git pull" patch needs sq-then-eval fix to protect it from $IFS
185 but otherwise seemed good.
187 * mo/bin-wrappers (2009-12-02) 3 commits
188  - INSTALL: document a simpler way to run uninstalled builds
189  - run test suite without dashed git-commands in PATH
190  - build dashless "bin-wrappers" directory similar to installed bindir
192 Rerolled.
194 * tr/http-updates (2009-12-01) 3 commits
195   (merged to 'next' on 2009-12-07 at f08d447)
196  + Allow curl to rewind the RPC read buffer
197  + Add an option for using any HTTP authentication scheme, not only basic
198  + http: maintain curl sessions
200 * jc/diff-whitespace-prepare (2009-11-28) 2 commits
201  - diff: flip the default diff.bwoutputonly to true
202  - diff: optionally allow traditional "-b/-w affects only output" semantics
203  (this branch uses gb/1.7.0-diff-whitespace-only-output and jc/1.7.0-diff-whitespace-only-status; is used by jc/1.7.0-diff-whitespace-prepare.)
205 This was to redo the two -b/-w semantic changes to prepare the migration of
206 existing users before 1.7.0 happens, but I think we should drop it.
208 Comments?
210 * sr/vcs-helper (2009-12-07) 14 commits
211   (merged to 'next' on 2009-12-07 at 8f041bc)
212  + tests: handle NO_PYTHON setting
213   (merged to 'next' on 2009-12-03 at e45b562)
214  + builtin-push: don't access freed transport->url
215   (merged to 'next' on 2009-11-27 at 83268ab)
216  + Add Python support library for remote helpers
217  + Basic build infrastructure for Python scripts
218  + Allow helpers to report in "list" command that the ref is unchanged
219  + Fix various memory leaks in transport-helper.c
220  + Allow helper to map private ref names into normal names
221  + Add support for "import" helper command
222  + Allow specifying the remote helper in the url
223  + Add a config option for remotes to specify a foreign vcs
224  + Allow fetch to modify refs
225  + Use a function to determine whether a remote is valid
226  + Allow programs to not depend on remotes having urls
227  + Fix memory leak in helper method for disconnect
228  (this branch shares commits with il/vcs-helper.)
230 Should be among the first to graduate after 1.6.6 final.
232 * tr/reset-checkout-patch (2009-11-19) 1 commit.
233   (merged to 'next' on 2009-11-22 at b224950)
234  + {checkout,reset} -p: make patch direction configurable
236 I do not particularly like a configuration like this that changes the
237 behaviour of a command in a drastic way---it will make helping others
238 much harder.
240 Comments?
242 * nd/sparse (2009-11-25) 20 commits.
243   (merged to 'next' on 2009-11-25 at 71380f5)
244  + tests: rename duplicate t1009
245   (merged to 'next' on 2009-11-23 at f712a41)
246  + sparse checkout: inhibit empty worktree
247  + Add tests for sparse checkout
248  + read-tree: add --no-sparse-checkout to disable sparse checkout support
249  + unpack-trees(): ignore worktree check outside checkout area
250  + unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
251  + unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
252  + unpack-trees.c: generalize verify_* functions
253  + unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
254  + Introduce "sparse checkout"
255  + dir.c: export excluded_1() and add_excludes_from_file_1()
256  + excluded_1(): support exclude files in index
257  + unpack-trees(): carry skip-worktree bit over in merged_entry()
258  + Read .gitignore from index if it is skip-worktree
259  + Avoid writing to buffer in add_excludes_from_file_1()
260  + Teach Git to respect skip-worktree bit (writing part)
261  + Teach Git to respect skip-worktree bit (reading part)
262  + Introduce "skip-worktree" bit in index, teach Git to get/set this bit
263  + Add test-index-version
264  + update-index: refactor mark_valid() in preparation for new options
266 There were some test glitches reported and at least one test seems to 
267 be broken in the sense that it is not testing what it is trying to.
268 Fix-up expected.
270 --------------------------------------------------
271 [For 1.7.0]
273 * jk/1.7.0-status (2009-12-08) 13 commits.
274   (merged to 'next' on 2009-12-08 at 9b57d84)
275  + t7508-status: test all modes with color
276  + t7508-status: status --porcelain ignores relative paths setting
277   (merged to 'next' on 2009-12-07 at 7723acf)
278  + status: reduce duplicated setup code
279  + status: disable color for porcelain format
280   (merged to 'next' on 2009-12-05 at 44dcefd)
281  + status -s: obey color.status
282  + builtin-commit: refactor short-status code into wt-status.c
283   (merged to 'next' on 2009-11-27 at 91691ec)
284  + t7508-status.sh: Add tests for status -s
285  + status -s: respect the status.relativePaths option
286   (merged to 'next' on 2009-11-21 at 884bb56)
287  + docs: note that status configuration affects only long format
288   (merged to 'next' on 2009-10-11 at 65c8513)
289  + commit: support alternate status formats
290  + status: add --porcelain output format
291  + status: refactor format option parsing
292  + status: refactor short-mode printing to its own function
293  (this branch uses jc/1.7.0-status.)
295 Gives the --short output format to post 1.7.0 "git commit --dry-run" that
296 is similar to that of post 1.7.0 "git status".
298 Immediately after 1.6.6 while rebuilding 'next', we may want to reorder a
299 few commits at the tip, as "docs: affects only long format" describes a
300 limitation that has disappeared.
302 * jc/1.7.0-status (2009-09-05) 4 commits.
303   (merged to 'next' on 2009-10-11 at 9558627)
304  + status: typo fix in usage
305  + git status: not "commit --dry-run" anymore
306  + git stat -s: short status output
307  + git stat: the beginning of "status that is not a dry-run of commit"
308  (this branch is used by jk/1.7.0-status.)
310 With this, "git status" is no longer "git commit --dry-run".
312 * jc/1.7.0-send-email-no-thread-default (2009-08-22) 1 commit.
313   (merged to 'next' on 2009-10-11 at 043acdf)
314  + send-email: make --no-chain-reply-to the default
316 As the title says.
318 * jc/1.7.0-push-safety (2009-02-09) 2 commits.
319   (merged to 'next' on 2009-10-11 at 81b8128)
320  + Refuse deleting the current branch via push
321  + Refuse updating the current branch in a non-bare repository via push
323 * jc/1.7.0-diff-whitespace-only-status (2009-08-30) 4 commits.
324   (merged to 'next' on 2009-10-11 at 546c74d)
325  + diff.c: fix typoes in comments
326  + Make test case number unique
327  + diff: Rename QUIET internal option to QUICK
328  + diff: change semantics of "ignore whitespace" options
329  (this branch is used by jc/1.7.0-diff-whitespace-prepare and jc/diff-whitespace-prepare.)
331 This changes exit code from "git diff --ignore-whitespace" and friends
332 when there is no actual output.  It is a backward incompatible change,
333 and jc/diff-whitespace-prepare topic is meant to ease the transition.
335 * gb/1.7.0-diff-whitespace-only-output (2009-11-19) 1 commit
336   (merged to 'next' on 2009-11-21 at 3375bf4)
337  + No diff -b/-w output for all-whitespace changes
338  (this branch is used by jc/1.7.0-diff-whitespace-prepare and jc/diff-whitespace-prepare.)
340 Likewise but for the output of "diff --git" headers.
342 * jc/1.7.0-diff-whitespace-prepare (2009-11-28) 2 commits
343  - diff: disable diff.bwoutputonly warning
344  - diff: flip the diff.bwoutputonly default to false
345  (this branch uses gb/1.7.0-diff-whitespace-only-output, jc/1.7.0-diff-whitespace-only-status and jc/diff-whitespace-prepare.)
347 And this is to actually flip the default and eventually remove the warning.
348 As I am contemplating of dropping jc/diff-whitespace-prepare, this should
349 also be dropped as well.
351 * ns/1.7.0-send-email-no-chain-reply-to (2009-08-22) 1 commit
352  - send-email: make --no-chain-reply-to the default
354 And this is to actually flip the default in 1.7.0.
356 --------------------------------------------------
357 [Reverted from 'next']
359 * jc/botched-maint-cygwin-count-objects (2009-11-24) 2 commits.
360   (merged to 'next' on 2009-11-25 at 8aa62a0)
361  + Revert "ST_BLOCKS_COUNTS_IN_BLKSIZE to say on-disk size is (st_blksize * st_blocks)"
362   (merged to 'next' on 2009-11-22 at 4ba5880)
363  + ST_BLOCKS_COUNTS_IN_BLKSIZE to say on-disk size is (st_blksize * st_blocks)
365 This is a revert of the tip one I merged prematurely to 'next'.  The real
366 fix from Ramsay is already in 'master'.
368 * ks/precompute-completion (2009-11-15) 4 commits.
369   (merged to 'next' on 2009-11-15 at 23cdb96)
370  + Revert ks/precompute-completion series
371   (merged to 'next' on 2009-10-28 at cd5177f)
372  + completion: ignore custom merge strategies when pre-generating
373   (merged to 'next' on 2009-10-22 at f46a28a)
374  + bug: precomputed completion includes scripts sources
375   (merged to 'next' on 2009-10-14 at adf722a)
376  + Speedup bash completion loading
378 Reverted out of 'next', to be replaced with jn/faster-completion-startup
379 topic.
381 --------------------------------------------------
382 [Haven't been purged from 'pu' yet]
384 * jc/grep-full-tree (2009-11-24) 1 commit.
385  - grep: --full-tree
387 The interaction with this option and pathspecs need to be worked out
388 better.  I _think_ "grep --full-tree -e pattern -- '*.h'" should find from
389 all the header files in the tree, for example.