What's in

Junio C Hamano committed Mar 3, 2009 at 01:01 UTC c8b60850d01d2babb49fa1dc07abe142fc52f098
1 file changed +436
whats/cooking/2009/03/01.txt new
+436
@@ -0,0 +1,436 @@
1 +To: git@vger.kernel.org
2 +Subject: What's cooking in git.git (Mar 2009, #01; Tue, 03)
3 +X-master-at: 1d035f85649cbb0a4fcc3e341f7e854acf9cf3c1
4 +X-next-at: 23381c887989ea63153c562061b1c4703ee75baf
5 +
6 +What's cooking in git.git (Mar 2009, #01; Tue, 03)
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 branches, but I am still
12 +holding onto them.
13 +
14 +The topics list the commits in reverse chronological order. The topics
15 +meant to be merged to the maintenance series have "maint-" in their names.
16 +
17 +The master branch is slightly past 1.6.2-rc2. It's been a week and I
18 +think I can declare the final on this Wednesday, *if* I am not too mired
19 +by the day job, but I do not know what would happen yet.
20 +
21 +As an experiment, 'next' and 'pu' stayed open during this release freeze;
22 +new topics have been accepted. I have to say that the experiment was a
23 +moderate success, and many topics in 'next' seem to be of fairly high
24 +quality already, which would mean that we will have a shorter cycle before
25 +1.6.3.
26 +
27 +----------------------------------------------------------------
28 +[New Topics]
29 +
30 +* jk/clone-post-checkout (Tue Mar 3 00:37:51 2009 -0500) 1 commit
31 + - clone: run post-checkout hook when checking out
32 +
33 +* hv/cvsimport (Mon Mar 2 18:59:36 2009 +0100) 1 commit
34 + - cvsimport: add test illustrating a bug in cvsps
35 +
36 +* jc/push-to-create (Mon Mar 2 22:36:16 2009 -0800) 1 commit
37 + - Push to create
38 +
39 +* fc/parseopt-config (Sat Feb 21 02:49:29 2009 +0200) 11 commits
40 + - git config: don't allow --get-color* and variable type
41 + - git config: don't allow extra arguments for -e or -l.
42 + - git config: don't allow multiple variable types
43 + - git config: don't allow multiple config file locations
44 + - git config: reorganize to use parseopt
45 + - git config: reorganize get_color*
46 + - git config: trivial rename in preparation for parseopt
47 + - git_config(): not having a per-repo config file is not an error
48 + + git config: trivial cleanup for editor action
49 + + git config: codestyle cleanups
50 + + config: Add new option to open an editor.
51 +
52 +* tr/format-patch-thread (Thu Feb 19 22:26:33 2009 +0100) 4 commits
53 + - format-patch: support deep threading
54 + - format-patch: thread as reply to cover letter even with in-reply-
55 + to
56 + - format-patch: track several references
57 + - format-patch: threading test reactivation
58 +
59 +* ns/pretty-format (Tue Feb 24 15:33:29 2009 +0200) 5 commits
60 + + bash completion: add --format= and --oneline options for "git log"
61 + + Add tests for git log --pretty, --format and --oneline.
62 + + Add --oneline that is a synonym to "--pretty=oneline --abbrev-
63 + commit"
64 + + Give short-hands to --pretty=tformat:%formatstring
65 + + Add --format that is a synonym to --pretty
66 +
67 +* mh/cvsimport-tests (Mon Feb 23 06:08:14 2009 +0100) 5 commits
68 + - Add a test of "git cvsimport"'s handling of tags and branches
69 + - Add some tests of git-cvsimport's handling of vendor branches
70 + - Test contents of entire cvsimported "master" tree contents
71 + - Use CVS's -f option if available (ignore user's ~/.cvsrc file)
72 + - Start a library for cvsimport-related tests
73 +
74 +* tr/maint-1.6.0-send-email-irt (Sun Mar 1 23:45:41 2009 +0100) 1 commit
75 + - send-email: respect in-reply-to regardless of threading
76 +
77 +* jc/maint-1.6.0-keep-pack (Sat Feb 28 00:37:19 2009 -0800) 6 commits
78 + + is_kept_pack(): final clean-up
79 + + Simplify is_kept_pack()
80 + + Consolidate ignore_packed logic more
81 + + has_sha1_kept_pack(): take "struct rev_info"
82 + + has_sha1_pack(): refactor "pretend these packs do not exist"
83 + interface
84 + + git-repack: resist stray environment variable
85 +
86 +* en/maint-hash-object (Sat Feb 28 12:56:49 2009 -0700) 1 commit
87 + + Ensure proper setup of git_dir for git-hash-object
88 +
89 +* el/blame-date (Fri Feb 20 14:51:11 2009 -0800) 1 commit
90 + - Make git blame's date output format configurable, like git log
91 +
92 +* js/remote-improvements (Wed Feb 25 03:32:28 2009 -0500) 22 commits
93 + - builtin-remote: new show output style for push refspecs
94 + - builtin-remote: new show output style
95 + - remote: make guess_remote_head() use exact HEAD lookup if it is
96 + available
97 + - builtin-remote: add set-head subcommand
98 + - builtin-remote: teach show to display remote HEAD
99 + - builtin-remote: fix two inconsistencies in the output of "show
100 + <remote>"
101 + - builtin-remote: make get_remote_ref_states() always populate
102 + states.tracked
103 + - builtin-remote: rename variables and eliminate redundant function
104 + call
105 + - builtin-remote: remove unused code in get_ref_states
106 + - builtin-remote: refactor duplicated cleanup code
107 + - string-list: new for_each_string_list() function
108 + - remote: make match_refs() not short-circuit
109 + - remote: make match_refs() copy src ref before assigning to
110 + peer_ref
111 + - remote: let guess_remote_head() optionally return all matches
112 + - remote: make copy_ref() perform a deep copy
113 + - remote: simplify guess_remote_head()
114 + - move locate_head() to remote.c
115 + - move duplicated ref_newer() to remote.c
116 + - move duplicated get_local_heads() to remote.c
117 + - refactor find_ref_by_name() to accept const list
118 + - add basic http clone/fetch tests
119 + - test scripts: refactor start_httpd helper
120 +
121 +* js/clone-depth-local (Fri Feb 27 00:04:06 2009 -0800) 3 commits
122 + . parse_options(): do not "increment" boolean
123 + . clone: ignore --depth when cloning locally (implicitly --local)
124 + . clone: do not ignore --no-local option
125 +
126 +Jeff had a good suggestion for this series but it was tripped by
127 +a misfeature in parse_options().
128 +
129 +* rs/memmem (Tue Mar 3 00:19:30 2009 +0100) 2 commits
130 + - optimize compat/ memmem()
131 + - diffcore-pickaxe: use memmem()
132 +
133 +As always with patches from René, this is already next material.
134 +
135 +* mv/parseopt-ls-files (Tue Feb 17 15:27:11 2009 +0100) 2 commits
136 + - parse-opt: migrate builtin-ls-files.
137 + - Turn the flags in struct dir_struct into a single variable
138 +
139 +* jk/sane-relative-time (Tue Feb 24 00:42:16 2009 -0500) 1 commit
140 + + never fallback relative times to absolute
141 +
142 +* tv/rebase-stat (Sun Mar 1 22:28:28 2009 +0100) 2 commits
143 + - git-pull: Allow --stat and --no-stat to be used with --rebase
144 + - git-rebase: Add --stat and --no-stat for producing diffstat on
145 + rebase
146 +
147 +----------------------------------------------------------------
148 +[Discarded]
149 +
150 +* jc/fsck (Fri Jan 30 02:33:47 2009 -0800) 4 commits
151 + - fsck: three levels of validation
152 + - verify-pack: add --quick
153 + - verify_pack(): allow a quicker verification for a pack with
154 + version 2 idx
155 + - pack-check.c: minor formatting fix to match coding style
156 +
157 +J6t has a good point that if this had any value then medium level should
158 +replace the default. I am tempted to actually dropping this as a failed
159 +experiment.
160 +
161 +* js/remote-set-head (Sat Feb 14 05:30:30 2009 -0500) 5 commits
162 + - builtin-remote: better handling of multiple remote HEADs
163 + - builtin-remote: add set-head subcommand
164 + - builtin-remote: teach show to display remote HEAD
165 + - builtin-remote: move duplicated cleanup code its own function
166 + - builtin-clone: move locate_head() to remote.c so it can be re-used
167 +
168 +* jk/head-lookup (Sun Feb 15 01:18:18 2009 -0500) 5 commits
169 + - remote: use exact HEAD lookup if it is available
170 + - remote: refactor guess_remote_head
171 + - refactor find_refs_by_name to accept const list
172 + - add basic http clone/fetch tests
173 + - test scripts: refactor start_httpd helper
174 +
175 +These two are now consolidated into Jay's remove-improvements series
176 +listed above.
177 +
178 +----------------------------------------------------------------
179 +[Stalled and may need help and prodding to go forward]
180 +
181 +* gb/gitweb-base (Sun Feb 15 10:18:36 2009 +0100) 1 commit
182 + - gitweb: fix wrong base URL when non-root DirectoryIndex
183 +
184 +* ns/stash-keep (Thu Feb 12 06:25:14 2009 +0900) 1 commit
185 + - stash: --keep option just saves
186 +
187 +Do we want to keep this one?
188 +
189 +* lh/submodule-tree-traversal (Sun Jan 25 01:52:06 2009 +0100) 1 commit
190 + - archive.c: add support for --submodules[=(all|checkedout)]
191 +
192 +Discussion stalled on the submodule selection criteria.
193 +
194 +* jc/blame (Wed Jun 4 22:58:40 2008 -0700) 2 commits
195 + + blame: show "previous" information in --porcelain/--incremental
196 + format
197 + + git-blame: refactor code to emit "porcelain format" output
198 +
199 +This gives Porcelains (like gitweb) the information on the commit _before_
200 +the one that the final blame is laid on, which should save them one
201 +rev-parse to dig further. The line number in the "previous" information
202 +may need refining, and sanity checking code for reference counting may
203 +need to be resurrected before this can move forward.
204 +
205 +I thought recent tig discussion may blow new life into it, but is this
206 +unneeded? If so I'd rather revert it (or discard after 1.6.2).
207 +
208 +* db/foreign-scm (Sun Jan 11 15:12:10 2009 -0500) 3 commits
209 + - Support fetching from foreign VCSes
210 + - Add specification of git-vcs helpers
211 + - Add "vcs" config option in remotes
212 +
213 +The "spec" did not seem quite well cooked yet, but in the longer term I
214 +think something like this to allow interoperating with other SCMs as if
215 +the other end is a native git repository is a very worthy goal.
216 +
217 +* cc/replace (Mon Feb 2 06:13:06 2009 +0100) 11 commits
218 + - builtin-replace: use "usage_msg_opt" to give better error messages
219 + - parse-options: add new function "usage_msg_opt"
220 + - builtin-replace: teach "git replace" to actually replace
221 + - Add new "git replace" command
222 + - environment: add global variable to disable replacement
223 + - mktag: call "check_sha1_signature" with the replacement sha1
224 + - replace_object: add a test case
225 + - object: call "check_sha1_signature" with the replacement sha1
226 + - sha1_file: add a "read_sha1_file_repl" function
227 + - replace_object: add mechanism to replace objects found in
228 + "refs/replace/"
229 + - refs: add a "for_each_replace_ref" function
230 +
231 +I think the code is much cleaner than the first round, but I am not
232 +convinced it is doing the right thing in the connectivity traverser.
233 +Independent review sorely needed.
234 +
235 +* sc/gitweb-category (Fri Dec 12 00:45:12 2008 +0100) 3 commits
236 + - gitweb: Optional grouping of projects by category
237 + - gitweb: Split git_project_list_body in two functions
238 + - gitweb: Modularized git_get_project_description to be more generic
239 +
240 +Design discussion between Jakub and Sebastien seems to have stalled, but
241 +Jakub seems to be taking this over.
242 +
243 +----------------------------------------------------------------
244 +[Reverted]
245 +
246 +* mh/unify-color (Fri Jan 23 01:25:23 2009 -0800) 3 commits
247 + ? Revert previous two commits
248 + ? move the color variables to color.c
249 + ? handle color.ui at a central place
250 +
251 +This broke git-format-patch badly.
252 +
253 +* js/rebase-error-a-bit-more-verbose (Sun Feb 8 21:22:18 2009 -0800) 2 commits
254 + ? Revert "rebase: explain why when the HEAD could not be detached"
255 + ? rebase: explain why when the HEAD could not be detached
256 +
257 +This turned out to be unnecessary.
258 +
259 +* rs/maint-1.6.0-windows-ceiling (Sat Feb 7 12:40:40 2009 -0800) 2 commits
260 + ? Revert "fix t1504 on Windows"
261 + ? fix t1504 on Windows
262 +
263 +I'm giving a fresh start to J6t's series which contains this.
264 +
265 +* lh/reverted-submodule-tree-traversal (Sun Jan 25 18:39:55 2009 -0800) 4 commits
266 + ? Revert round #1 of the series
267 + ? builtin-ls-tree: enable traversal of submodules
268 + ? archive.c: enable traversal of submodules
269 + ? tree.c: add support for traversal of submodules
270 +
271 +I'm giving a fresh start to Lars's second iteration.
272 +
273 +----------------------------------------------------------------
274 +[Will merge to 'next' soon]
275 +
276 +* js/send-email (Mon Mar 2 23:52:18 2009 -0500) 5 commits
277 + - send-email: add --confirm option and configuration setting
278 + + send-email: don't create temporary compose file until it is needed
279 + + send-email: --suppress-cc improvements
280 + + send-email: handle multiple Cc addresses when reading mbox message
281 + + send-email: allow send-email to run outside a repo
282 +
283 +----------------------------------------------------------------
284 +[Ready for 'master' after 1.6.2]
285 +
286 +* sg/rerere-cleanup (Sat Feb 14 23:21:04 2009 +0100) 1 commit
287 + + rerere: remove duplicated functions
288 +
289 +* jc/add-p-unquote (Mon Feb 16 22:43:43 2009 -0800) 1 commit
290 + + git-add -i/-p: learn to unwrap C-quoted paths
291 +
292 +* jw/imap-preformatted-html (Thu Feb 12 08:58:12 2009 -0600) 1 commit
293 + + imap.preformattedHTML to tell Thunderbird to send non-flowed text
294 +
295 +The patch text should be identical to Jeremy's "Virtual Patch", except
296 +that the configuration variable was renamed per list discussion.
297 +
298 +* jw/format-patch-attach (Thu Feb 12 09:51:55 2009 -0600) 1 commit
299 + + Enable setting attach as the default in .gitconfig for git-format-
300 + patch.
301 +
302 +* sr/force-rebase (Fri Feb 13 23:48:01 2009 +0100) 1 commit
303 + + Teach rebase to rebase even if upstream is up to date
304 +
305 +* fg/exclude-bq (Tue Feb 10 15:20:17 2009 +0100) 1 commit
306 + + Support "\" in non-wildcard exclusion entries
307 +
308 +* dm/add-i-edit-abort (Thu Feb 12 00:19:41 2009 -0500) 1 commit
309 + + add -i: revisit hunk on editor failure
310 +
311 +* tp/completion (Sat Feb 21 15:48:43 2009 +0100) 6 commits
312 + + Fixup: Add bare repository indicator for __git_ps1
313 + + Add bare repository indicator for __git_ps1
314 + + completion: More fixes to prevent unbound variable errors
315 + + completion: Better __git_ps1 support when not in working directory
316 + + completion: Use consistent if [...] convention, not "test"
317 + + completion: For consistency, change "git rev-parse" to __gitdir
318 + calls
319 +
320 +* js/branch-symref (Wed Feb 18 22:34:44 2009 -0500) 4 commits
321 + + add basic branch display tests
322 + + branch: clean up repeated strlen
323 + + Avoid segfault with 'git branch' when the HEAD is detached
324 + + builtin-branch: improve output when displaying remote branches
325 +
326 +* al/ansi-color (Fri Feb 13 22:53:41 2009 +0100) 2 commits
327 + + builtin-branch.c: Rename branch category color names
328 + + Clean up use of ANSI color sequences
329 +
330 +* kb/checkout-optim (Mon Feb 23 19:02:57 2009 +0100) 14 commits
331 + + write_index(): update index_state->timestamp after flushing to
332 + disk
333 + + verify_uptodate(): add ce_uptodate(ce) test
334 + + make USE_NSEC work as expected
335 + + fix compile error when USE_NSEC is defined
336 + + check_updates(): effective removal of cache entries marked
337 + CE_REMOVE
338 + + lstat_cache(): print a warning if doing ping-pong between cache
339 + types
340 + + show_patch_diff(): remove a call to fstat()
341 + + write_entry(): use fstat() instead of lstat() when file is open
342 + + write_entry(): cleanup of some duplicated code
343 + + create_directories(): remove some memcpy() and strchr() calls
344 + + unlink_entry(): introduce schedule_dir_for_removal()
345 + + lstat_cache(): swap func(length, string) into func(string, length)
346 + + lstat_cache(): generalise longest_match_lstat_cache()
347 + + lstat_cache(): small cleanup and optimisation
348 +
349 +* js/valgrind (Thu Feb 5 22:03:00 2009 +0100) 9 commits
350 + + valgrind: do not require valgrind 3.4.0 or newer
351 + + test-lib: avoid assuming that templates/ are in the GIT_EXEC_PATH
352 + + Tests: let --valgrind imply --verbose and --tee
353 + + Add a script to coalesce the valgrind outputs
354 + + t/Makefile: provide a 'valgrind' target
355 + + test-lib.sh: optionally output to test-results/$TEST.out, too
356 + + Valgrind support: check for more than just programming errors
357 + + valgrind: ignore ldso and more libz errors
358 + + Add valgrind support in test scripts
359 +
360 +----------------------------------------------------------------
361 +[Actively cooking]
362 +
363 +* tr/gcov (Thu Feb 19 12:13:42 2009 +0100) 8 commits
364 + - Test git-patch-id
365 + - Test rev-list --parents/--children
366 + - Test log --decorate
367 + - Test fsck a bit harder
368 + - Test log --graph
369 + - Test diff --dirstat functionality
370 + - Test that diff can read from stdin
371 + - Support coverage testing with GCC/gcov
372 +
373 +* js/notes (Sat Feb 14 21:23:25 2009 +0100) 13 commits
374 + - notes: refuse to edit notes outside refs/notes/
375 + - t3301: use test_must_fail instead of !
376 + - t3301: fix confusing quoting in test for valid notes ref
377 + - notes: use GIT_EDITOR and core.editor over VISUAL/EDITOR
378 + - notes: only clean up message file when editing
379 + - handle empty notes gracefully
380 + + git notes show: test empty notes
381 + + git-notes: fix printing of multi-line notes
382 + + notes: fix core.notesRef documentation
383 + + Add an expensive test for git-notes
384 + + Speed up git notes lookup
385 + + Add a script to edit/inspect notes
386 + + Introduce commit notes
387 +
388 +Earlier part was merged to master and then reverted there. Will be
389 +rebased 1.6.2 to keep my sanity.
390 +
391 +* fc/config-editor (Sat Feb 21 02:48:54 2009 +0200) 3 commits
392 + + git config: trivial cleanup for editor action
393 + + git config: codestyle cleanups
394 + + config: Add new option to open an editor.
395 +
396 +Rerolled and looked sane.
397 +
398 +----------------------------------------------------------------
399 +[On Hold]
400 +
401 +* jc/deny-delete-current-1.7.0 (Mon Feb 9 00:19:46 2009 -0800) 1 commit
402 + - receive-pack: default receive.denyDeleteCurrent to refuse
403 +
404 +* jc/refuse-push-to-current-1.7.0 (Wed Feb 11 02:28:03 2009 -0800) 1 commit
405 + - Refuse updating the current branch in a non-bare repository via
406 + push
407 +
408 +This is for 1.7.0.
409 +
410 +* jc/commit-assume-also-during-merge (Thu Jan 22 22:21:49 2009 -0800) 3 commits
411 + - git commit: pathspec without -i/-o implies -i semantics during a
412 + merge
413 + - builtin-commit: shorten eye-sore overlong lines
414 + - Add "partial commit" tests during a conflicted merge
415 +
416 +This was only meant as a weatherballoon to help facilitate discussion.
417 +
418 +* jc/merge-convert (Mon Jan 26 16:45:01 2009 -0800) 1 commit
419 + - git-merge-file: allow converting the results for the work tree
420 +
421 +This is a feature waiting for a user. I do not need it in 1.6.2
422 +
423 +We did not give scripted Porcelains a way to say "this temporary file I am
424 +using for merging is for this path, so use the core.autocrlf and attributes
425 +rules for that final path". Instead, merge-file simply wrote out the
426 +data in the canonical repository representation.
427 +
428 +rerere has the same issue, but it is a lot worse. It reads the three
429 +files (preimage, postimage and thisimage) from the work tree in the work
430 +tree representation, merges them without converting them to the canonical
431 +representation first but inserts the conflict markers with the canonical
432 +representation and writes the resulting mess out. It needs to be fixed to
433 +read with convert_to_git(), merge them while they are still in the
434 +canonical representation and possibly add conflict markers, and then write
435 +the results out after convert_to_working_tree(). It also needs to write
436 +in binary mode as well.