What's cooking

Junio C Hamano committed Sep 22, 2009 at 23:51 UTC b5e877ab43931b2593caa4adcdf2ea37a9d8808b
1 file changed +345
whats/cooking/2009/09/05.txt new
+345
@@ -0,0 +1,345 @@
1 +To: git@vger.kernel.org
2 +Subject: What's cooking in git.git (Sep 2009, #05; Wed, 23)
3 +X-master-at: a6dbf8814f433a7fbfa9cde6333c98019f6db1e4
4 +X-next-at: a9dd6c4e8ab38f5c4af9c0710381d3844f1d904f
5 +
6 +What's cooking in git.git (Sep 2009, #05; Wed, 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 +In 1.7.0, we plan to correct handful of warts in the interfaces everybody
15 +agrees that they were mistakes. The resulting system may not be strictly
16 +backward compatible. Currently planeed changes are:
17 +
18 + * refuse push to update the checked out branch in a non-bare repo by
19 + default
20 +
21 + Make "git push" into a repository to update the branch that is checked
22 + out fail by default. You can countermand this default by setting a
23 + configuration variable in the receiving repository.
24 +
25 + http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
26 +
27 + * refuse push to delete the current branch by default
28 +
29 + Make "git push $there :$killed" to delete the branch that is pointed at
30 + by its HEAD fail by default. You can countermand this default by
31 + setting a configuration variable in the receiving repository.
32 +
33 + http://thread.gmane.org/gmane.comp.version-control.git/108862/focus=108936
34 +
35 + * git-send-email won't make deep threads by default
36 +
37 + Many people said that by default when sending more than 2 patches the
38 + threading git-send-email makes by default is hard to read, and they
39 + prefer the default be one cover letter and each patch as a direct
40 + follow-up to the cover letter. You can countermand this by setting a
41 + configuration variable.
42 +
43 + http://article.gmane.org/gmane.comp.version-control.git/109790
44 +
45 + * git-status won't be "git-commit --dry-run" anymore
46 +
47 + http://thread.gmane.org/gmane.comp.version-control.git/125989/focus=125993
48 +
49 + * "git-diff -w --exit-code" will exit success if only differences it
50 + found are whitespace changes that are stripped away from the output.
51 +
52 + http://thread.gmane.org/gmane.comp.version-control.git/119731/focus=119751
53 +
54 +We are in pre-release feature freeze. 'next' will hold topics meant for
55 +1.6.6 and 1.7.0.
56 +
57 +Tonight's tip of 'master' is 1.6.5-rc2, and I'll disappear for about a
58 +week. Hopefully when I come back in early October all the regressions are
59 +found and already squashed ;-)
60 +
61 +--------------------------------------------------
62 +[New Topics]
63 +
64 +* jc/fix-tree-walk (2009-09-14) 9 commits
65 + - read-tree --debug-unpack
66 + - unpack-trees.c: look ahead in the index
67 + - unpack-trees.c: prepare for looking ahead in the index
68 + - traverse_trees(): handle D/F conflict case sanely
69 + - more D/F conflict tests
70 + - tests: move convenience regexp to match object names to test-lib.sh
71 + - unpack_callback(): use unpack_failed() consistently
72 + - unpack-trees: typofix
73 + - diff-lib.c: fix misleading comments on oneway_diff()
74 +
75 +This is my replacement for Linus's lt/maint-traverse-trees-fix patch. It
76 +is not so much as a counter-proposal; I originally thought it might make
77 +sense to walk the index and drive the walker to return the entries from
78 +trees to match entries from the index, but I ended up doing pretty much
79 +what Linus outlined --- walk the trees, and have the index walker follow
80 +it. It turned out that the index side also needed some hairy look-ahead,
81 +and I am only half satisfied with the current status of the series.
82 +
83 +To fix the resolve merge regression seen in t6035, git-merge-resolve needs
84 +to be rewritten not to use the one-path-at-a-time "git merge-index".
85 +
86 +* jp/fetch-tag-match (2009-09-17) 1 commit
87 + - fetch: Speed up fetch by rewriting find_non_local_tags
88 +
89 +I did not have much energy left while dealing with the "fix-tree-walk"
90 +series, so I just queued this without reading nor thinking about it very
91 +much. I personally liked my version that had far smaller number of lines
92 +changed (which means I can be fairly certain that it did not introduce any
93 +regression), but perhaps the majorly rewritten logic this patch gives us
94 +may be easier to follow and maintain. We'll see.
95 +
96 +* jg/log-format-body-indent (2009-09-19) 1 commit
97 + - [NEEDSWORK: tests] git-log --format: Add %B tag with %B(x) option
98 +
99 +* jl/submodule-add-noname (2009-09-22) 1 commit
100 + - git submodule add: make the <path> parameter optional
101 +
102 +--------------------------------------------------
103 +[Stalled]
104 +
105 +* je/send-email-no-subject (2009-08-05) 1 commit
106 + (merged to 'next' on 2009-08-30 at b6455c2)
107 + + send-email: confirm on empty mail subjects
108 +
109 +The existing tests cover the positive case (i.e. as long as the user says
110 +"yes" to the "do you really want to send this message that lacks subject",
111 +the message is sent) of this feature, but the feature itself needs its own
112 +test to verify the negative case (i.e. does it correctly stop if the user
113 +says "no"?)
114 +
115 +* jh/cvs-helper (2009-08-18) 8 commits
116 + - More fixes to the git-remote-cvs installation procedure
117 + - Fix the Makefile-generated path to the git_remote_cvs package in git-remote-cvs
118 + - Add simple selftests of git-remote-cvs functionality
119 + - git-remote-cvs: Remote helper program for CVS repositories
120 + - 2/2: Add Python support library for CVS remote helper
121 + - 1/2: Add Python support library for CVS remote helper
122 + - Basic build infrastructure for Python scripts
123 + - Allow helpers to request marks for fast-import
124 + (this branch uses db/vcs-helper-rest.)
125 +
126 +Builds on db/vcs-helper. There is a re-roll planned.
127 +
128 +* ne/rev-cache (2009-09-07) 7 commits
129 + - support for commit grafts, slight change to general mechanism
130 + - support for path name caching in rev-cache
131 + - full integration of rev-cache into git, completed test suite
132 + - administrative functions for rev-cache, start of integration into git
133 + - support for non-commit object caching in rev-cache
134 + - basic revision cache system, no integration or features
135 + - man page and technical discussion for rev-cache
136 +
137 +Tonight's 'pu' ships with this and this series seems to break a few
138 +tests. I didn't debug.
139 +
140 +--------------------------------------------------
141 +[Cooking]
142 +
143 +* jc/maint-blank-at-eof (2009-09-15) 0 commits.
144 + (this branch uses jc/maint-1.6.0-blank-at-eof.)
145 +
146 +The series does not have a commit of its own but is a preparation for
147 +merging the original jc/1.6.0-maint-blank-at-eof topic to 'maint' and then
148 +'master'. It is a fix for longstanding bug and 1.6.5 will not contain
149 +this topic.
150 +
151 +* db/vcs-helper-rest (2009-09-03) 6 commits
152 + - Allow helpers to report in "list" command that the ref is unchanged
153 + - Add support for "import" helper command
154 + - Add a config option for remotes to specify a foreign vcs
155 + - Allow programs to not depend on remotes having urls
156 + - Allow fetch to modify refs
157 + - Use a function to determine whether a remote is valid
158 + (this branch is used by jh/cvs-helper.)
159 +
160 +This holds the remainder of the db/vcs-helper topic that has already
161 +merged for 1.6.5.
162 +
163 +* jh/notes (2009-09-12) 13 commits
164 + - Selftests verifying semantics when loading notes trees with various fanouts
165 + - Teach the notes lookup code to parse notes trees with various fanout schemes
166 + - notes.[ch] fixup: avoid old-style declaration
167 + - Teach notes code to free its internal data structures on request.
168 + - Add '%N'-format for pretty-printing commit notes
169 + - Add flags to get_commit_notes() to control the format of the note string
170 + - t3302-notes-index-expensive: Speed up create_repo()
171 + - fast-import: Add support for importing commit notes
172 + - Teach "-m <msg>" and "-F <file>" to "git notes edit"
173 + - Add an expensive test for git-notes
174 + - Speed up git notes lookup
175 + - Add a script to edit/inspect notes
176 + - Introduce commit notes
177 + (this branch uses sr/gfi-options.)
178 +
179 +Rerolled and queued.
180 +
181 +* jn/gitweb-show-size (2009-09-07) 1 commit
182 + - gitweb: Add 'show-sizes' feature to show blob sizes in tree view
183 +
184 +* lt/maint-traverse-trees-fix (2009-09-06) 1 commit.
185 + . Prepare 'traverse_trees()' for D/F conflict lookahead
186 +
187 +Ejected from 'pu' (see jc/fix-tree-walk above).
188 +
189 +* jc/maint-1.6.0-blank-at-eof (2009-09-14) 15 commits.
190 + (merged to 'next' on 2009-09-15 at 9cbfa00)
191 + + diff -B: colour whitespace errors
192 + + diff.c: emit_add_line() takes only the rest of the line
193 + + diff.c: split emit_line() from the first char and the rest of the line
194 + + diff.c: shuffling code around
195 + + diff --whitespace: fix blank lines at end
196 + (merged to 'next' on 2009-09-07 at 165dc3c)
197 + + core.whitespace: split trailing-space into blank-at-{eol,eof}
198 + + diff --color: color blank-at-eof
199 + + diff --whitespace=warn/error: fix blank-at-eof check
200 + + diff --whitespace=warn/error: obey blank-at-eof
201 + + diff.c: the builtin_diff() deals with only two-file comparison
202 + + apply --whitespace: warn blank but not necessarily empty lines at EOF
203 + + apply --whitespace=warn/error: diagnose blank at EOF
204 + + apply.c: split check_whitespace() into two
205 + + apply --whitespace=fix: detect new blank lines at eof correctly
206 + + apply --whitespace=fix: fix handling of blank lines at the eof
207 + (this branch is used by jc/maint-blank-at-eof.)
208 +
209 +This is a fix for an ancient bug (or inconsistent set of features); the
210 +topic is based on an ancient codebase and is designed to be merged
211 +upwards. jc/maint-blank-at-eof serves that purpose.
212 +
213 +Will not be in 1.6.5.
214 +
215 +* jn/gitweb-blame (2009-09-01) 5 commits
216 + - gitweb: Minify gitweb.js if JSMIN is defined
217 + - gitweb: Create links leading to 'blame_incremental' using JavaScript
218 + (merged to 'next' on 2009-09-07 at 3622199)
219 + + gitweb: Colorize 'blame_incremental' view during processing
220 + + gitweb: Incremental blame (using JavaScript)
221 + + gitweb: Add optional "time to generate page" info in footer
222 +
223 +Ajax-y blame.
224 +
225 +* sr/gfi-options (2009-09-06) 6 commits
226 + (merged to 'next' on 2009-09-07 at 5f6b0ff)
227 + + fast-import: test the new option command
228 + + fast-import: add option command
229 + + fast-import: test the new feature command
230 + + fast-import: add feature command
231 + + fast-import: put marks reading in it's own function
232 + + fast-import: put option parsing code in separate functions
233 + (this branch is used by jh/notes.)
234 +
235 +Ping?
236 +
237 +* nd/sparse (2009-08-20) 19 commits
238 + - sparse checkout: inhibit empty worktree
239 + - Add tests for sparse checkout
240 + - read-tree: add --no-sparse-checkout to disable sparse checkout support
241 + - unpack-trees(): ignore worktree check outside checkout area
242 + - unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
243 + - unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
244 + - unpack-trees.c: generalize verify_* functions
245 + - unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
246 + - Introduce "sparse checkout"
247 + - dir.c: export excluded_1() and add_excludes_from_file_1()
248 + - excluded_1(): support exclude files in index
249 + - unpack-trees(): carry skip-worktree bit over in merged_entry()
250 + - Read .gitignore from index if it is skip-worktree
251 + - Avoid writing to buffer in add_excludes_from_file_1()
252 + - Teach Git to respect skip-worktree bit (writing part)
253 + - Teach Git to respect skip-worktree bit (reading part)
254 + - Introduce "skip-worktree" bit in index, teach Git to get/set this bit
255 + - Add test-index-version
256 + - update-index: refactor mark_valid() in preparation for new options
257 +
258 +--------------------------------------------------
259 +[For 1.7.0]
260 +
261 +* jk/1.7.0-status (2009-09-05) 5 commits
262 + - docs: note that status configuration affects only long format
263 + (merged to 'next' on 2009-09-07 at 8a7c563)
264 + + commit: support alternate status formats
265 + + status: add --porcelain output format
266 + + status: refactor format option parsing
267 + + status: refactor short-mode printing to its own function
268 + (this branch uses jc/1.7.0-status.)
269 +
270 +Gives the --short output format to post 1.7.0 "git commit --dry-run" that
271 +is similar to that of post 1.7.0 "git status".
272 +
273 +* jc/1.7.0-status (2009-09-05) 4 commits
274 + (merged to 'next' on 2009-09-06 at 19d4beb)
275 + + status: typo fix in usage
276 + (merged to 'next' on 2009-08-22 at b3507bb)
277 + + git status: not "commit --dry-run" anymore
278 + + git stat -s: short status output
279 + + git stat: the beginning of "status that is not a dry-run of commit"
280 + (this branch is used by jk/1.7.0-status.)
281 +
282 +With this, "git status" is no longer "git commit --dry-run".
283 +
284 +* jc/1.7.0-send-email-no-thread-default (2009-08-22) 1 commit
285 + (merged to 'next' on 2009-08-22 at 5106de8)
286 + + send-email: make --no-chain-reply-to the default
287 +
288 +* jc/1.7.0-diff-whitespace-only-status (2009-08-30) 4 commits.
289 + (merged to 'next' on 2009-08-30 at 0623572)
290 + + diff.c: fix typoes in comments
291 + (merged to 'next' on 2009-08-27 at 81fb2bd)
292 + + Make test case number unique
293 + (merged to 'next' on 2009-08-02 at 9c08420)
294 + + diff: Rename QUIET internal option to QUICK
295 + + diff: change semantics of "ignore whitespace" options
296 +
297 +This changes exit code from "git diff --ignore-whitespace" and friends
298 +when there is no actual output. It is a backward incompatible change, but
299 +we could argue that it is a bugfix.
300 +
301 +* jc/1.7.0-push-safety (2009-02-09) 2 commits
302 + (merged to 'next' on 2009-08-02 at 38b82fe)
303 + + Refuse deleting the current branch via push
304 + + Refuse updating the current branch in a non-bare repository via push
305 +
306 +--------------------------------------------------
307 +[I have been too busy to purge these]
308 +
309 +* jc/log-tz (2009-03-03) 1 commit.
310 + - Allow --date=local --date=other-format to work as expected
311 +
312 +Maybe some people care about this. I dunno.
313 +
314 +* jc/mailinfo-remove-brackets (2009-07-15) 1 commit.
315 + - mailinfo: -b option keeps [bracketed] strings that is not a [PATCH] marker
316 +
317 +Maybe some people care about this. I dunno.
318 +
319 +* lt/read-directory (2009-05-15) 3 commits.
320 + . Add initial support for pathname conversion to UTF-8
321 + . read_directory(): infrastructure for pathname character set conversion
322 + . Add 'fill_directory()' helper function for directory traversal
323 +
324 +* cc/reset-merge (2009-09-16) 4 commits
325 + . reset: add test cases for "--merge-safe" option
326 + . reset: add option "--merge-safe" to "git reset"
327 + . reset: use "unpack_trees()" directly instead of "git read-tree"
328 + . reset: add a few tests for "git reset --merge"
329 +
330 +* cc/sequencer-rebase-i (2009-08-28) 15 commits
331 + . rebase -i: use "git sequencer--helper --cherry-pick"
332 + . sequencer: add "--cherry-pick" option to "git sequencer--helper"
333 + . sequencer: add "do_commit()" and related functions working on "next_commit"
334 + . pick: libify "pick_help_msg()"
335 + . revert: libify cherry-pick and revert functionnality
336 + . rebase -i: use "git sequencer--helper --fast-forward"
337 + . sequencer: let "git sequencer--helper" callers set "allow_dirty"
338 + . sequencer: add "--fast-forward" option to "git sequencer--helper"
339 + . sequencer: add "do_fast_forward()" to perform a fast forward
340 + . rebase -i: use "git sequencer--helper --reset-hard"
341 + . sequencer: add "--reset-hard" option to "git sequencer--helper"
342 + . sequencer: add "reset_almost_hard()" and related functions
343 + . rebase -i: use "git sequencer--helper --make-patch"
344 + . sequencer: add "make_patch" function to save a patch
345 + . sequencer: add "builtin-sequencer--helper.c"