What's cooking (2009/03 #04)
[git/dscho.git] / whats-cooking.txt
blobb977e9db4df64902a22b7c41e9313dce3def7255
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Mar 2009, #04; Sat, 14)
3 X-master-at: bba2a7b22fdde7a214516e93d957a950571a2026
4 X-next-at: 333522ea3cea320f865fda2140ad362fbf46932f
6 What's cooking in git.git (Mar 2009, #04; Sat, 14)
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 branches, but I am still
12 holding onto them.
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.
17 ----------------------------------------------------------------
18 [New Topics]
20 * bw/autoconf (Thu Mar 12 15:20:12 2009 -0400) 7 commits
21  - configure: rework pthread handling to allow for user defined flags
22  - configure: make iconv tests aware of user arguments
23  - configure: asciidoc version test cleanup
24  - configure: wrap some library tests with GIT_STASH_FLAGS
25  - configure: add macros to stash FLAG variables
26  - configure: reorganize flow of argument checks
27  - configure: ensure settings from user are also usable in the script
29 Looked quite expertly done but I do not use autoconf myself, so I'd merge
30 this to 'next' soon and see anybody screams.
32 * jc/maint-1.6.0-read-tree-overlay (Thu Mar 12 00:02:12 2009 -0700) 1 commit
33  - read-tree A B C: do not create a bogus index and do not segfault
35 * fg/push-default (Wed Mar 11 23:01:45 2009 +0100) 1 commit
36  - New config push.default to decide default behavior for push
38 Replaced the old series with the first step to allow a smooth transition.
39 Some might argue that this should not give any warning but just give users
40 this new configuration to play with first, and after we know we are going
41 to switch default some day, start the warning.
43 * ps/blame (Thu Mar 12 21:30:03 2009 +1100) 1 commit
44  - blame.c: start libifying the blame infrastructure
46 * jc/attributes-checkout (Fri Mar 13 21:24:08 2009 -0700) 1 commit
47  - Read attributes from the index that is being checked out
49 ----------------------------------------------------------------
50 [Graduated to "master"]
52 * mg/maint-submodule-normalize-path (Tue Mar 3 16:08:21 2009 +0100) 2 commits
53  + git submodule: Fix adding of submodules at paths with ./, .. and
54    //
55  + git submodule: Add test cases for git submodule add
57 * rs/memmem (Tue Mar 3 00:19:30 2009 +0100) 2 commits
58  + optimize compat/ memmem()
59  + diffcore-pickaxe: use memmem()
61 * tv/rebase-stat (Sun Mar 1 22:28:28 2009 +0100) 2 commits
62  + git-pull: Allow --stat and --no-stat to be used with --rebase
63  + git-rebase: Add --stat and --no-stat for producing diffstat on
64    rebase
66 * jk/clone-post-checkout (Tue Mar 3 00:37:51 2009 -0500) 1 commit
67  + clone: run post-checkout hook when checking out
69 * jc/maint-1.6.0-keep-pack (Sat Feb 28 00:37:19 2009 -0800) 6 commits
70  + is_kept_pack(): final clean-up
71  + Simplify is_kept_pack()
72  + Consolidate ignore_packed logic more
73  + has_sha1_kept_pack(): take "struct rev_info"
74  + has_sha1_pack(): refactor "pretend these packs do not exist"
75    interface
76  + git-repack: resist stray environment variable
78 This is in response to Linus's "Really slow 'git gc'" ($gmane/110743)
80 * el/blame-date (Fri Feb 20 14:51:11 2009 -0800) 1 commit
81  + Make git blame's date output format configurable, like git log
83 * tr/gcov (Thu Feb 19 12:13:42 2009 +0100) 8 commits
84  + Test git-patch-id
85  + Test rev-list --parents/--children
86  + Test log --decorate
87  + Test fsck a bit harder
88  + Test log --graph
89  + Test diff --dirstat functionality
90  + Test that diff can read from stdin
91  + Support coverage testing with GCC/gcov
93 * tr/format-patch-thread (Thu Feb 19 22:26:33 2009 +0100) 4 commits
94  + format-patch: support deep threading
95  + format-patch: thread as reply to cover letter even with in-reply-
96    to
97  + format-patch: track several references
98  + format-patch: threading test reactivation
100 ----------------------------------------------------------------
101 [Will merge to 'master' soon]
103 * kb/checkout-optim (Sun Mar 8 17:22:51 2009 -0400) 18 commits
104  + Makefile: Set compiler switch for USE_NSEC
105  + Create USE_ST_TIMESPEC and turn it on for Darwin
106  + Not all systems use st_[cm]tim field for ns resolution file
107    timestamp
108  + Record ns-timestamps if possible, but do not use it without
109    USE_NSEC
110  + write_index(): update index_state->timestamp after flushing to
111    disk
112  + verify_uptodate(): add ce_uptodate(ce) test
113  + make USE_NSEC work as expected
114  + fix compile error when USE_NSEC is defined
115  + check_updates(): effective removal of cache entries marked
116    CE_REMOVE
117  + lstat_cache(): print a warning if doing ping-pong between cache
118    types
119  + show_patch_diff(): remove a call to fstat()
120  + write_entry(): use fstat() instead of lstat() when file is open
121  + write_entry(): cleanup of some duplicated code
122  + create_directories(): remove some memcpy() and strchr() calls
123  + unlink_entry(): introduce schedule_dir_for_removal()
124  + lstat_cache(): swap func(length, string) into func(string, length)
125  + lstat_cache(): generalise longest_match_lstat_cache()
126  + lstat_cache(): small cleanup and optimisation
128 Kjetil has another fix-up patch for ctime/mtime gotcha that is not on this
129 list but after that is applied this series can go to 'master'.
131 * tr/maint-1.6.0-send-email-irt (Wed Mar 11 23:40:13 2009 +0100) 2 commits
132  + send-email: test --no-thread --in-reply-to combination
133  + send-email: respect in-reply-to regardless of threading
135 * js/remote-improvements (Sun Mar 8 00:10:33 2009 -0800) 23 commits
136  + builtin-remote.c: no "commented out" code, please
137  + builtin-remote: new show output style for push refspecs
138  + builtin-remote: new show output style
139  + remote: make guess_remote_head() use exact HEAD lookup if it is
140    available
141  + builtin-remote: add set-head subcommand
142  + builtin-remote: teach show to display remote HEAD
143  + builtin-remote: fix two inconsistencies in the output of "show
144    <remote>"
145  + builtin-remote: make get_remote_ref_states() always populate
146    states.tracked
147  + builtin-remote: rename variables and eliminate redundant function
148    call
149  + builtin-remote: remove unused code in get_ref_states
150  + builtin-remote: refactor duplicated cleanup code
151  + string-list: new for_each_string_list() function
152  + remote: make match_refs() not short-circuit
153  + remote: make match_refs() copy src ref before assigning to
154    peer_ref
155  + remote: let guess_remote_head() optionally return all matches
156  + remote: make copy_ref() perform a deep copy
157  + remote: simplify guess_remote_head()
158  + move locate_head() to remote.c
159  + move duplicated ref_newer() to remote.c
160  + move duplicated get_local_heads() to remote.c
161  + refactor find_ref_by_name() to accept const list
162  + add basic http clone/fetch tests
163  + test scripts: refactor start_httpd helper
165 ----------------------------------------------------------------
166 [Discarded]
168 * jc/commit-assume-also-during-merge (Thu Jan 22 22:21:49 2009 -0800) 3 commits
169  . git commit: pathspec without -i/-o implies -i semantics during a
170    merge
171  . builtin-commit: shorten eye-sore overlong lines
172  . Add "partial commit" tests during a conflicted merge
174 This was only meant as a weatherballoon to help facilitate discussion.
176 ----------------------------------------------------------------
177 [Stalled and may need help and prodding to go forward]
179 * jc/log-tz (Tue Mar 3 00:45:37 2009 -0800) 1 commit
180  - Allow --date=local --date=other-format to work as expected
182 The one I posted had a few corner-case bugs that was caught with the test
183 suite; this one has them fixed.  People did not like the UI so it is kept
184 out of 'next'
186 * lh/submodule-tree-traversal (Sun Jan 25 01:52:06 2009 +0100) 1 commit
187  - archive.c: add support for --submodules[=(all|checkedout)]
189 Discussion stalled on the submodule selection criteria.
191 * jc/merge-convert (Mon Jan 26 16:45:01 2009 -0800) 1 commit
192  - git-merge-file: allow converting the results for the work tree
194 This is a feature waiting for a user.
196 We did not give scripted Porcelains a way to say "this temporary file I am
197 using for merging is for this path, so use the core.autocrlf and attributes
198 rules for that final path".  Instead, merge-file simply wrote out the
199 data in the canonical repository representation.
201 rerere has the same issue, but it is a lot worse.  It reads the three
202 files (preimage, postimage and thisimage) from the work tree in the work
203 tree representation, merges them without converting them to the canonical
204 representation first but inserts the conflict markers with the canonical
205 representation and writes the resulting mess out.  It needs to be fixed to
206 read with convert_to_git(), merge them while they are still in the
207 canonical representation and possibly add conflict markers, and then write
208 the results out after convert_to_working_tree().  It also needs to write
209 in binary mode as well.
211 * db/foreign-scm (Sun Jan 11 15:12:10 2009 -0500) 3 commits
212  - Support fetching from foreign VCSes
213  - Add specification of git-vcs helpers
214  - Add "vcs" config option in remotes
216 The "spec" did not seem quite well cooked yet, but in the longer term I
217 think something like this to allow interoperating with other SCMs as if
218 the other end is a native git repository is a very worthy goal.
220 * cc/replace (Mon Feb 2 06:13:06 2009 +0100) 11 commits
221  - builtin-replace: use "usage_msg_opt" to give better error messages
222  - parse-options: add new function "usage_msg_opt"
223  - builtin-replace: teach "git replace" to actually replace
224  - Add new "git replace" command
225  - environment: add global variable to disable replacement
226  - mktag: call "check_sha1_signature" with the replacement sha1
227  - replace_object: add a test case
228  - object: call "check_sha1_signature" with the replacement sha1
229  - sha1_file: add a "read_sha1_file_repl" function
230  - replace_object: add mechanism to replace objects found in
231    "refs/replace/"
232  - refs: add a "for_each_replace_ref" function
234 ----------------------------------------------------------------
235 [Actively cooking]
237 * mg/http-auth (Thu Mar 12 22:34:43 2009 -0700) 4 commits
238  + http.c: CURLOPT_NETRC_OPTIONAL is not available in ancient
239    versions of cURL
240  + http authentication via prompts
241  + http_init(): Fix config file parsing
242  + http.c: style cleanups
244 This does only the fetch side but without any additional configuration
245 variables that looked like band-aid.
247 * db/maint-missing-origin (Wed Mar 11 01:47:20 2009 -0400) 1 commit
248  + Give error when no remote is configured
250 * js/sideband-stderr (Tue Mar 10 22:58:09 2009 +0100) 2 commits
251  + winansi: support ESC [ K (erase in line)
252  + recv_sideband: Bands #2 and #3 always go to stderr
254 * js/rsync-local (Mon Mar 9 19:44:55 2009 +0100) 1 commit
255  + rsync transport: allow local paths, and fix tests
257 * rs/color-grep (Sun Mar 8 18:22:44 2009 -0700) 6 commits
258  + grep: cast printf %.*s "precision" argument explicitly to int
259  + grep: add support for coloring with external greps
260  + grep: color patterns in output
261  + grep: add pmatch and eflags arguments to match_one_pattern()
262  + grep: remove grep_opt argument from match_expr_eval()
263  + grep: micro-optimize hit collection for AND nodes
265 * db/refspec-wildcard-in-the-middle (Sat Mar 7 01:11:39 2009 -0500) 5 commits
266  + Support '*' in the middle of a refspec
267  + Keep '*' in pattern refspecs
268  + Use the matching function to generate the match results
269  + Use a single function to match names against patterns
270  + Make clone parse the default refspec with the normal code
272 * db/push-cleanup (Sun Mar 8 21:06:07 2009 -0400) 2 commits
273  - Move push matching and reporting logic into transport.c
274  - Use a common function to get the pretty name of refs
276 * xx/db-refspec-vs-js-remote (Sun Mar 8 00:12:33 2009 -0800) 1 commit
277  + Adjust js/remote-improvements and db/refspec-wildcard-in-the-
278    middle
280 * hv/cvsimport-tests (Mon Mar 2 18:59:36 2009 +0100) 1 commit
281  + cvsimport: add test illustrating a bug in cvsps
283 Yet more tests without fixing anything...
285 * jc/clone-branch-rebase (Tue Mar 10 01:20:42 2009 -0700) 2 commits
286  + Improve "git branch --tracking" output
287  + Make git-clone respect branch.autosetuprebase
289 This is a rewrite of a patch from Pat Notz.
291 * kb/tracking-count-no-merges (Wed Mar 4 18:47:39 2009 +0100) 1 commit
292  + stat_tracking_info(): only count real commits
294 This gives the merge commits zero weight when talking about how many
295 commits you have ahead (or behind) of the branch you are tracking.  Even
296 though I agree that they should carry much less weight than the "real"
297 commits, because your repeated merge from the other branch does not really
298 add any real value to the end result, giving them absolute zero weight
299 somehow feels wrong. At least it shows that your have been _active_ on the
300 branch.  But I do not feel very strongly about it.
302 * js/rebase-i-opt (Tue Mar 3 10:55:31 2009 +0100) 1 commit
303  + rebase -i: avoid 'git reset' when possible
305 * mv/parseopt-ls-files (Sat Mar 7 20:27:22 2009 -0500) 4 commits
306  + ls-files: fix broken --no-empty-directory
307  + t3000: use test_cmp instead of diff
308  + parse-opt: migrate builtin-ls-files.
309  + Turn the flags in struct dir_struct into a single variable
311 The tip one was a subject for further discussion, but nothing is queued
312 yet.
314 * fc/parseopt-config (Sat Mar 7 12:14:05 2009 -0500) 9 commits
315  + config: set help text for --bool-or-int
316  + git config: don't allow --get-color* and variable type
317  + git config: don't allow extra arguments for -e or -l.
318  + git config: don't allow multiple variable types
319  + git config: don't allow multiple config file locations
320  + git config: reorganize to use parseopt
321  + git config: reorganize get_color*
322  + git config: trivial rename in preparation for parseopt
323  + git_config(): not having a per-repo config file is not an error
325 * mh/cvsimport-tests (Mon Feb 23 06:08:14 2009 +0100) 5 commits
326  + Add a test of "git cvsimport"'s handling of tags and branches
327  + Add some tests of git-cvsimport's handling of vendor branches
328  + Test contents of entire cvsimported "master" tree contents
329  + Use CVS's -f option if available (ignore user's ~/.cvsrc file)
330  + Start a library for cvsimport-related tests
332 Tests without fixes are of dubious value.  Any takers?
334 * js/notes (Wed Feb 18 11:17:27 2009 -0800) 14 commits
335  - tests: fix "export var=val"
336  - notes: refuse to edit notes outside refs/notes/
337  - t3301: use test_must_fail instead of !
338  - t3301: fix confusing quoting in test for valid notes ref
339  - notes: use GIT_EDITOR and core.editor over VISUAL/EDITOR
340  - notes: only clean up message file when editing
341  - handle empty notes gracefully
342  - git notes show: test empty notes
343  - git-notes: fix printing of multi-line notes
344  - notes: fix core.notesRef documentation
345  - Add an expensive test for git-notes
346  - Speed up git notes lookup
347  - Add a script to edit/inspect notes
348  - Introduce commit notes
350 Rebased and then kicked back to 'pu' to give the author a chance to
351 rearrange if necessary.  Nothing happened yet, but I see Dscho has been
352 busy on msysgit side of the world, so it is understandable.
354 ----------------------------------------------------------------
355 [On Hold]
357 * jc/deny-delete-current-1.7.0 (Mon Feb 9 00:19:46 2009 -0800) 1 commit
358  - receive-pack: default receive.denyDeleteCurrent to refuse
360 * jc/refuse-push-to-current-1.7.0 (Wed Feb 11 02:28:03 2009 -0800) 1 commit
361  - Refuse updating the current branch in a non-bare repository via
362    push
364 These are for 1.7.0, but the messages when they trigger together may need
365 to be rethought.