What's cooking update
[git/spearce.git] / whats / cooking / 2009 / 02 / 01.txt
blob68bde5112a1b54f9a9de67bd858f07c9fee2fa82
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Feb 2009, #01; Sun, 01)
3 X-master-at: 2ea3c17189bf9ca459879129ca190792b5451f05
4 X-next-at: 5bad675db98a79d08ce5abadd3347d829c6c5b36
6 What's cooking in git.git (Feb 2009, #01; Sun, 01)
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 * gt/utf8-width (Fri Jan 30 04:41:29 2009 -0500) 2 commits
21  - builtin-blame.c: Use utf8_strwidth for author's names
22  - utf8: add utf8_strwidth()
24 I am not sure if utf8_strwidth() behaves sensibly when fed a non-UTF8
25 string (a possible failure mode is utf8_width() says "no" and it returns
26 0, resulting in width of all zero and causing division by zero somewhere
27 downstream, or something silly like that), but other than that, I do not
28 think it would hurt, and will actively improve the current code.
30 * jc/refuse-push-to-current (Sat Jan 31 17:34:05 2009 -0800) 2 commits
31  - Set receive.denyCurrentBranch to true in a new non-bare repository
32  - receive-pack: explain what to do when push updates the current
33    branch
35 This prepares to finally switch the default for receive.denyCurrentBranch
36 to "refuse".  The idea is to issue a big warning to people who push into
37 currently checked out branch when the configuration is unset and we
38 default to "warn", and explain in detail (1) why it is not likely to be
39 what they want to do (to help new people), (2) if it is what they want,
40 how to squelch that annoyingly long message, and (3) the default will be
41 changed to "refuse" in a future release of git.  The tip commit also sets
42 the configuration to refuse in a newly created repository, but with a
43 twist.  People who get the "refusal" configuration this way may be
44 expecting the recipe they picked up to push into a live repository,
45 perhaps a website, and let its post-update hook to "reset --hard" the
46 deployment, and we will explain that (1) it will no longer work (because
47 we default to "refuse" in a newly created repository), (2) how to
48 configure it to work again, and (3) how to squelch the annoying message.
50 I personally do not think anything short of an approach like this would
51 work without a huge fallout like we had when yanked git-foo commands from
52 people's $PATH in 1.6.0, but I can still be pursuaded by a better
53 alternative, and that is why they are not in 'next' yet.  Saying "old
54 timers can flip a single switch just once" is not a better alternative, as
55 I explained already.
57 * jc/fsck (Fri Jan 30 02:44:13 2009 -0800) 7 commits
58  - fsck: revert --quick to the default and introduce --medium
59  - fsck: three levels of validation
60  - verify-pack: add --quick
61  - verify_pack(): allow a quicker verification for a pack with
62    version 2 idx
63  - pack-check.c: minor formatting fix to match coding style
64  + fsck: check loose objects from alternate object stores by default
65  + fsck: HEAD is part of refs
67 I haven't heard anything positive nor negative about this series.  I
68 consider the bottom two changes are pure bugfixes and should probably be
69 in 1.6.2.
71 I think the tip two commits should be squashed (and perhaps the option
72 parser cleaned up as suggested on the list) if we were to take the
73 remainder.
75 * rc/http-push (Sat Jan 31 07:51:55 2009 +0800) 1 commit
76  + http-push: refactor request url creation
78 Looked fine for 1.6.2.
80 * jk/head-symref (Thu Jan 29 03:33:02 2009 -0500) 2 commits
81  + symbolic ref: refuse non-ref targets in HEAD
82  + validate_headref: tighten ref-matching to just branches
84 Looked fine for 1.6.2.
86 * kb/checkout-optim (Sun Feb 1 21:23:39 2009 +0100) 7 commits
87  - unpack-trees.c: introduce schedule_dir_for_removal()
88  - lstat_cache(): print a warning if doing ping-pong between cache
89    types
90  - combine-diff.c: remove a call to fstat() inside show_patch_diff()
91  - write_entry(): use fstat() instead of lstat() when file is open
92  - cleanup of write_entry() in entry.c
93  - remove some memcpy() and strchr() calls inside
94    create_directories()
95  - symlinks.c: small cleanup and optimisation
97 Love to have in 1.6.2
99 ----------------------------------------------------------------
100 [Stalled and may need help and prodding to go forward]
102 * jc/merge-convert (Mon Jan 26 16:45:01 2009 -0800) 1 commit
103  - git-merge-file: allow converting the results for the work tree
105 This is a feature waiting for a user.  I do not need it in 1.6.2
107 We did not give scripted Porcelains a way to say "this temporary file I am
108 using for merging is for this path, so use the core.autocrlf and attributes
109 rules for that final path".  Instead, merge-file simply wrote out the
110 data in the canonical repository representation.
112 rerere has the same issue, but it is a lot worse.  It reads the three
113 files (preimage, postimage and thisimage) from the work tree in the work
114 tree representation, merges them without converting them to the canonical
115 representation first but inserts the conflict markers with the canonical
116 representation and writes the resulting mess out.  It needs to be fixed to
117 read with convert_to_git(), merge them while they are still in the
118 canonical representation and possibly add conflict markers, and then write
119 the results out after convert_to_working_tree().  It also needs to write
120 in binary mode as well.
122 * jc/blame (Wed Jun 4 22:58:40 2008 -0700) 2 commits
123  + blame: show "previous" information in --porcelain/--incremental
124    format
125  + git-blame: refactor code to emit "porcelain format" output
127 This gives Porcelains (like gitweb) the information on the commit _before_
128 the one that the final blame is laid on, which should save them one
129 rev-parse to dig further.  The line number in the "previous" information
130 may need refining, and sanity checking code for reference counting may
131 need to be resurrected before this can move forward.
133 * db/foreign-scm (Sun Jan 11 15:12:10 2009 -0500) 3 commits
134  - Support fetching from foreign VCSes
135  - Add specification of git-vcs helpers
136  - Add "vcs" config option in remotes
138 The "spec" did not seem quite well cooked yet, but in the longer term I
139 think something like this to allow interoperating with other SCMs as if
140 the other end is a native git repository is a very worthy goal.
142 * cc/replace (Mon Feb 2 06:13:06 2009 +0100) 11 commits
143  - builtin-replace: use "usage_msg_opt" to give better error messages
144  - parse-options: add new function "usage_msg_opt"
145  - builtin-replace: teach "git replace" to actually replace
146  - Add new "git replace" command
147  - environment: add global variable to disable replacement
148  - mktag: call "check_sha1_signature" with the replacement sha1
149  - replace_object: add a test case
150  - object: call "check_sha1_signature" with the replacement sha1
151  - sha1_file: add a "read_sha1_file_repl" function
152  - replace_object: add mechanism to replace objects found in
153    "refs/replace/"
154  - refs: add a "for_each_replace_ref" function
156 I think the code is much cleaner than the first round, but I am not
157 convinced it is doing the right thing in the connectivity traverser.  
158 I'd like to keep this out of 1.6.2.
160 * lh/submodule-tree-traversal (Sun Jan 25 01:52:06 2009 +0100) 6 commits
161  - archive.c: add support for --submodules[=(all|checkedout)]
162  - tree.c: allow read_tree_recursive() to traverse gitlink entries
163  + Revert round #1 of the series
164  + builtin-ls-tree: enable traversal of submodules
165  + archive.c: enable traversal of submodules
166  + tree.c: add support for traversal of submodules
168 Sorry, but what's the status of this one?  I am not particularly
169 interested in this new feature myself, so unless I hear otherwise from
170 people, I'd like to keep this out of 1.6.2.  That would have the added
171 benefit of being able to discard the first four that is already in 'next'
172 to get a fresh start post 1.6.2 ;-)
174 * sc/gitweb-category (Fri Dec 12 00:45:12 2008 +0100) 3 commits
175  - gitweb: Optional grouping of projects by category
176  - gitweb: Split git_project_list_body in two functions
177  - gitweb: Modularized git_get_project_description to be more generic
179 Design discussion between Jakub and Sebastien seems to have stalled.
181 ----------------------------------------------------------------
182 [Reverted]
184 * mh/unify-color (Fri Jan 23 01:25:23 2009 -0800) 3 commits
185  ? Revert previous two commits
186  ? move the color variables to color.c
187  ? handle color.ui at a central place
189 This broke git-format-patch badly.
191 ----------------------------------------------------------------
192 [Actively cooking]
194 * wp/add-patch-find (Thu Nov 27 04:08:03 2008 +0000) 3 commits
195  + In add --patch, Handle K,k,J,j slightly more gracefully.
196  + Add / command in add --patch
197  + git-add -i/-p: Change prompt separater from slash to comma
199 I think this is Ok to have in 1.6.2
201 * cb/mergetool (Fri Jan 30 23:20:11 2009 +0000) 3 commits
202  - mergetool: fix running mergetool in sub-directories
203  - mergetool: Add a test for running mergetool in a sub-directory
204  + mergetool: respect autocrlf by using checkout-index
206 The fix to its subdirectory behaviour looked somewhat iffy and may have a
207 potential for cleaning up.  But we should have it in 1.6.2.
209 * js/valgrind (Wed Jan 21 02:36:40 2009 +0100) 2 commits
210  - valgrind: ignore ldso errors
211  - Add valgrind support in test scripts
213 Dscho and Peff had further exchanges on the list; I am sort of waiting for
214 the conclusion before picking any intermediate version up.
216 * js/notes (Tue Jan 13 20:57:16 2009 +0100) 6 commits
217  + git-notes: fix printing of multi-line notes
218  + notes: fix core.notesRef documentation
219  + Add an expensive test for git-notes
220  + Speed up git notes lookup
221  + Add a script to edit/inspect notes
222  + Introduce commit notes
224 It would be nice to hear a real world success story using the notes
225 mechanism; Dscho says he also wants to make sure the current choice
226 of the structure scales well before casting it in stone.
228 ----------------------------------------------------------------
229 [Graduated to "master"]
231 * jc/maint-1.6.0-split-diff-metainfo (Mon Jan 26 00:08:24 2009 -0800) 1 commit
232  + diff.c: output correct index lines for a split diff
234 This is slated for maintenance series 1.6.0.X.
236 * jc/maint-split-diff-metainfo (Tue Jan 27 01:08:02 2009 -0800) 2 commits
237  + Merge branch 'jc/maint-1.6.0-split-diff-metainfo' into jc/maint-
238    split-diff-metainfo
239  + diff.c: output correct index lines for a split diff
241 Early conflict resolution branch for the above to carry it to 1.6.1.X
242 series.
244 * js/maint-rebase-i-submodule (Tue Jan 27 12:42:31 2009 +0100) 2 commits
245  + Fix submodule squashing into unrelated commit
246  + rebase -i squashes submodule changes into unrelated commit
248 * jg/tag-contains (Mon Jan 26 09:13:25 2009 -0500) 3 commits
249  + git-tag: Add --contains option
250  + Make has_commit() non-static
251  + Make opt_parse_with_commit() non-static
253 * jc/maint-allow-uninteresting-missing (Tue Jan 27 23:19:30 2009 -0800) 1 commit
254  + revision traversal: allow UNINTERESTING objects to be missing
256 This is a small follow-up to the fix to send-pack in 1.6.1; meant to go in
257 1.6.1.X maintenance series and newer.
259 * am/maint-push-doc (Mon Jan 26 00:45:33 2009 +0100) 3 commits
260  + Documentation: rework src/dst description in git push
261  + Documentation: more git push examples
262  + Documentation: simplify refspec format description
264 * jc/maint-apply-fix (Sun Jan 25 23:41:26 2009 -0800) 1 commit
265  + builtin-apply.c: do not set bogus mode in check_preimage() for
266    deleted path
268 * ks/maint-mailinfo-folded (Tue Jan 13 01:21:04 2009 +0300) 4 commits
269  + mailinfo: tests for RFC2047 examples
270  + mailinfo: add explicit test for mails like '<a.u.thor@example.com>
271    (A U Thor)'
272  + mailinfo: 'From:' header should be unfold as well
273  + mailinfo: correctly handle multiline 'Subject:' header
275 Graduated with a follow-up patch from the original author.
277 * jg/mergetool (Sat Jan 24 00:12:45 2009 +0100) 1 commit
278  + mergetool: Don't repeat merge tool candidates
280 * jk/signal-cleanup (Thu Jan 22 01:03:28 2009 -0500) 5 commits
281  + pager: do wait_for_pager on signal death
282  + refactor signal handling for cleanup functions
283  + chain kill signals for cleanup functions
284  + diff: refactor tempfile cleanup handling
285  + Windows: Fix signal numbers
287 * sp/runtime-prefix (Sun Jan 18 13:00:15 2009 +0100) 7 commits
288  + Windows: Revert to default paths and convert them by
289    RUNTIME_PREFIX
290  + Compute prefix at runtime if RUNTIME_PREFIX is set
291  + Modify setup_path() to only add git_exec_path() to PATH
292  + Add calls to git_extract_argv0_path() in programs that call
293    git_config_*
294  + git_extract_argv0_path(): Move check for valid argv0 from caller
295    to callee
296  + Refactor git_set_argv0_path() to git_extract_argv0_path()
297  + Move computation of absolute paths from Makefile to runtime (in
298    preparation for RUNTIME_PREFIX)
300 There was a report that this breaks with older GNU Make.
302 ----------------------------------------------------------------
303 [Will merge to "master" soon]
305 * jc/maint-add-u-remove-conflicted (Wed Jan 28 14:24:53 2009 -0800) 1 commit
306  - add -u: do not fail to resolve a path as deleted
308 This has been updated from the posted version with a correction.  We
309 should have it in 1.6.2
311 * jk/maint-cleanup-after-exec-failure (Wed Jan 28 02:38:14 2009 -0500) 4 commits
312  + git: use run_command() to execute dashed externals
313  + run_command(): help callers distinguish errors
314  + run_command(): handle missing command errors more gracefully
315  + git: s/run_command/run_builtin/
317 Looked good for 1.6.2.
319 * ns/am-slacker (Sat Jan 24 10:18:02 2009 +0900) 2 commits
320  + git-am: Add --ignore-date option
321  + am: Add --committer-date-is-author-date option
323 It is a (probably) useful new feature with a sort-of cute explanation.
324 I am not sure if it needs further work (such as hooking it to rebase),
325 but other than that, I think it is Ok to have in 1.6.2.
327 ----------------------------------------------------------------
328 [On Hold]
330 * jc/commit-assume-also-during-merge (Thu Jan 22 22:21:49 2009 -0800) 3 commits
331  - git commit: pathspec without -i/-o implies -i semantics during a
332    merge
333  - builtin-commit: shorten eye-sore overlong lines
334  - Add "partial commit" tests during a conflicted merge
336 This is only meant as a weatherballoon to help facilitate discussion.
338 * jk/renamelimit (Sat May 3 13:58:42 2008 -0700) 1 commit
339  . diff: enable "too large a rename" warning when -M/-C is explicitly
340    asked for
342 * jc/stripspace (Sun Mar 9 00:30:35 2008 -0800) 6 commits
343  . git-am --forge: add Signed-off-by: line for the author
344  . git-am: clean-up Signed-off-by: lines
345  . stripspace: add --log-clean option to clean up signed-off-by:
346    lines
347  . stripspace: use parse_options()
348  . Add "git am -s" test
349  . git-am: refactor code to add signed-off-by line for the committer
351 * jc/post-simplify (Fri Aug 15 01:34:51 2008 -0700) 2 commits
352  . revision --simplify-merges: incremental simplification
353  . revision --simplify-merges: prepare for incremental simplification