Meta/cook --havedone to help updating RelNotes
[git/jnareb-git.git] / whats-cooking.txt
blob6fc9bee8c51290684a17ba3752e19211d089ba91
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Jul 2012, #01; Tue, 3)
3 X-master-at: b12905140a8239ac687450ad43f18b5f0bcfb62e
4 X-next-at: c7ed6b9aeb316c5c29cc1de761d47bbd184a3884
6 What's cooking in git.git (Jul 2012, #01; Tue, 3)
7 --------------------------------------------------
9 Here are the topics that have been cooking.  Commits prefixed with '-' are
10 only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'.
12 You can find the changes described here in the integration branches of the
13 repositories listed at
15     http://git-blame.blogspot.com/p/git-public-repositories.html
17 --------------------------------------------------
18 [New Topics]
20 * jc/maint-blame-unique-abbrev (2012-07-02) 1 commit
21   (merged to 'next' on 2012-07-03 at c7ed6b9)
22  + blame: compute abbreviation width that ensures uniqueness
24 "git blame" did not try to make sure the abbreviated commit object
25 names in its output are unique.
27 * jk/push-delete-ref-error-message (2012-07-03) 1 commit
28  - push: don't guess at qualifying remote refs on deletion
30 The error message from "git push $there :bogo" mentioned we tried
31 and failed to guess what ref is being deleted based on the LHS of
32 the refspec, which we don't.
34 --------------------------------------------------
35 [Stalled]
37 * db/vcs-svn (2012-06-01) 6 commits
38  - vcs-svn: drop no-op reset methods
39  - vcs-svn: fix signedness warnings
40  - vcs-svn: prefer strstr over memmem
41  - vcs-svn: prefer constcmp to prefixcmp
42  - vcs-svn: simplify cleanup in apply_one_window()
43  - vcs-svn: fix clang-analyzer error
45 Waiting for Jonathan's clean-up offered earlier.
47 * jc/apply-3way (2012-06-13) 19 commits
48  - apply --3way: tests
49  - apply: document --3way option
50  - apply: allow rerere() upon --3way results
51  - apply: register conflicted stages to the index
52  - apply: --3way with add/add conflict
53  - apply: move verify_index_match() higher
54  - apply: plug the three-way merge logic in
55  - apply: fall back on three-way merge
56  - apply: accept -3/--3way command line option
57  - apply: move "already exists" logic to check_to_create()
58  - apply: move check_to_create_blob() closer to its sole caller
59  - apply: further split load_preimage()
60  - apply: refactor "previous patch" logic
61  - apply: split load_preimage() helper function out
62  - apply: factor out checkout_target() helper function
63  - apply: refactor read_file_or_gitlink()
64  - apply: clear_image() clears things a bit more
65  - apply: a bit more comments on PATH_TO_BE_DELETED
66  - apply: fix an incomplete comment in check_patch()
68 "git apply" learns to wiggle the base version and perform three-way merge
69 when a patch does not exactly apply to the version you have.
71 Will merge to 'next' after reading it over once again.
73 * jc/maint-push-refs-all (2012-05-04) 2 commits
74  - get_fetch_map(): tighten checks on dest refs
75  - fetch/push: allow refs/*:refs/*
77 Allows pushing and fetching refs/stash.
78 There still seem to be other bugs hiding (e.g. try pushing twice).
80 Not ready.
82 * jc/split-blob (2012-04-03) 6 commits
83  - chunked-object: streaming checkout
84  - chunked-object: fallback checkout codepaths
85  - bulk-checkin: support chunked-object encoding
86  - bulk-checkin: allow the same data to be multiply hashed
87  - new representation types in the packstream
88  - packfile: use varint functions
90 Not ready.
92 I finished the streaming checkout codepath, but as explained in
93 127b177 (bulk-checkin: support chunked-object encoding, 2011-11-30),
94 these are still early steps of a long and painful journey. At least
95 pack-objects and fsck need to learn the new encoding for the series
96 to be usable locally, and then index-pack/unpack-objects needs to
97 learn it to be used remotely.
99 Given that I heard a lot of noise that people want large files, and
100 that I was asked by somebody at GitTogether'11 privately for an
101 advice on how to pay developers (not me) to help adding necessary
102 support, I am somewhat dissapointed that the original patch series
103 that was sent almost two months ago still remains here without much
104 comments and updates from the developer community. I even made the
105 interface to the logic that decides where to split chunks easily
106 replaceable, and I deliberately made the logic in the original patch
107 extremely stupid to entice others, especially the "bup" fanboys, to
108 come up with a better logic, thinking that giving people an easy
109 target to shoot for, they may be encouraged to help out. The plan is
110 not working :-(.
112 --------------------------------------------------
113 [Cooking]
115 * tb/sanitize-decomposed-utf-8-pathname (2012-07-02) 1 commit
116  - git on Mac OS and precomposed unicode
118 Teaches git to normalize pathnames read from readdir(3) and all
119 arguments from the command line into precomposed UTF-8 (assuming
120 that they come as decomposed UTF-8) to work around issues on Mac OS.
122 I think there still are other places that need conversion
123 (e.g. paths that are read from stdin for some commands), but this
124 should be a good first step in the right direction.
126 Will merge to 'next'.
128 * cw/no-detaching-an-unborn (2012-06-26) 1 commit
129   (merged to 'next' on 2012-07-03 at 552c5ca)
130  + git-checkout: disallow --detach on unborn branch
132 "git checkout --detach", when you are still on an unborn branch,
133 should be forbidden, but it wasn't.
135 * cw/rebase-i-root (2012-06-26) 2 commits
136   (merged to 'next' on 2012-07-03 at 231c0a4)
137  + Add tests for rebase -i --root without --onto
138  + rebase -i: support --root without --onto
140 "git rebase [-i] --root $tip" can now be used to rewrite all the
141 history down to the root.
143 * js/fast-export-paths-with-spaces (2012-06-27) 1 commit
144   (merged to 'next' on 2012-07-03 at f9c23e9)
145  + fast-export: quote paths with spaces
147 "git fast-export" produced an input stream for fast-import without
148 properly quoting pathnames when they contain SPs in them.
150 * mm/mediawiki-file-attachments (2012-06-27) 5 commits
151   (merged to 'next' on 2012-07-03 at 90f2f45)
152  + git-remote-mediawiki: import "File:" attachments
153  + git-remote-mediawiki: split get_mw_pages into smaller functions
154  + git-remote-mediawiki: send "File:" attachments to a remote wiki
155  + git-remote-mediawiki: don't "use encoding 'utf8';"
156  + git-remote-mediawiki: don't compute the diff when getting commit message
157  (this branch uses mm/credential-plumbing.)
159 "mediawiki" remote helper (in contrib/) learned to handle file
160 attachments.
162 * mz/rebase-no-mbox (2012-06-26) 4 commits
163   (merged to 'next' on 2012-07-03 at 5bf5c12)
164  + am: don't call mailinfo if $rebasing
165  + am --rebasing: get patch body from commit, not from mailbox
166  + rebase --root: print usage on too many args
167  + rebase: don't source git-sh-setup twice
169 Teach "am --rebasing" codepath to grab authorship, log message and
170 the patch text directly out of existing commits.  This will help
171 rebasing commits that have confusing "diff" output in their log
172 messages.
174 * pw/git-p4-tests (2012-06-27) 10 commits
175   (merged to 'next' on 2012-07-03 at 9bd9cda)
176  + git p4 test: fix badp4dir test
177  + git p4 test: split up big t9800 test
178  + git p4 test: cleanup_git should make a new $git
179  + git p4 test: copy source indeterminate
180  + git p4 test: check for error message in failed test
181  + git p4 test: rename some "git-p4 command" strings
182  + git p4 test: never create default test repo
183  + git p4 test: simplify quoting involving TRASH_DIRECTORY
184  + git p4 test: use real_path to resolve p4 client symlinks
185  + git p4 test: wait longer for p4d to start and test its pid
187 More "git p4" tests.
189 * rj/platform-pread-may-be-thread-unsafe (2012-06-26) 1 commit
190   (merged to 'next' on 2012-06-28 at ce5f79f)
191  + index-pack: Disable threading on cygwin
193 On Cygwin, the platform pread(3) is not thread safe, just like our
194 own compat/ emulation, and cannot be used in the index-pack program.
196 * jc/refactor-diff-stdin (2012-06-28) 3 commits
197  - diff-index.c: "git diff" has no need to read blob from the standard input
198  - diff-index.c: unify handling of command line paths
199  - diff-index.c: do not pretend paths are pathspecs
201 Due to the way "git diff --no-index" is bolted onto by touching the
202 low level code that is shared with the rest of the "git diff" code,
203 even though it has to work in a very different way, any comparison
204 that involves a file "-" at the root level incorrectly tried to read
205 from the standard input.  This cleans up the no-index codepath
206 further to remove code that reads from the standard input from the
207 core side, which is never necessary when git is running its usual
208 diff operation.
210 Will merge to 'next', and later down to older maintenance releases.
212 * mz/empty-rebase-test (2012-06-27) 1 commit
213   (merged to 'next' on 2012-07-03 at 1e7de3f)
214  + add test case for rebase of empty commit
215 We did not have test to make sure "git rebase" without extra options
216 filters out an empty commit in the original history.
218 * cw/help-over-network (2012-06-28) 2 commits
219   (merged to 'next' on 2012-07-03 at 99e8d28)
220  + Allow help.htmlpath to be a URL prefix
221  + Add config variable to set HTML path for git-help --web
223 "git help -w $cmd" can show HTML version of documentation for
224 "git-$cmd" by setting help.htmlpath to somewhere other than the
225 default location where the build procedure installs them locally;
226 the variable can even point at a http:// URL.
228 * lt/commit-tree-guess-utf-8 (2012-06-28) 1 commit
229  - commit/commit-tree: correct latin1 to utf-8
231 Teaches "git commit" and "git commit-tree" the "we are told to use
232 utf-8 in log message, but this does not look like utf-8---attempt to
233 pass it through convert-from-latin1-to-utf8 and see if it makes
234 sense" heuristics "git mailinfo" already uses.
236 A draft from Linus received privately without a log message.
237 Hopefully it will be rerolled.
239 * jc/test-lib-source-build-options-early (2012-06-24) 1 commit
240  - test-lib: reorder and include GIT-BUILD-OPTIONS a lot earlier
241  (this branch uses vr/use-our-perl-in-tests.)
243 Reorders t/test-lib.sh so that we dot-source GIT-BUILD-OPTIONS that
244 records the shell and Perl the user told us to use with Git a lot
245 early, so that test-lib.sh script itself can use "$PERL_PATH" in
246 one of its early operations.
248 Needs to be eyeballed by people who run tests with exotic options
249 like valgrind, --root=/dev/shm/somewhere, etc.
251 * mm/config-xdg (2012-06-25) 4 commits
252   (merged to 'next' on 2012-06-28 at 57049d1)
253  + config: write to $XDG_CONFIG_HOME/git/config file when appropriate
254  + Let core.attributesfile default to $XDG_CONFIG_HOME/git/attributes
255  + Let core.excludesfile default to $XDG_CONFIG_HOME/git/ignore
256  + config: read (but not write) from $XDG_CONFIG_HOME/git/config file
258 Teach git to read various information from $XDG_CONFIG_HOME/git/ to allow
259 the user to avoid cluttering $HOME.
261 * mm/credential-plumbing (2012-06-25) 3 commits
262   (merged to 'next' on 2012-06-28 at 6e6fe9f)
263  + git-remote-mediawiki: add credential support
264  + git credential fill: output the whole 'struct credential'
265  + add 'git credential' plumbing command
266  (this branch is used by mm/mediawiki-file-attachments.)
268 Expose the credential API to scripted Porcelain writers.
270 * th/diff-no-index-fixes (2012-06-22) 2 commits
271   (merged to 'next' on 2012-06-26 at 450e781)
272  + diff-no-index: exit(1) if 'diff --quiet <repo file> <external file>' finds changes
273  + diff: handle relative paths in no-index
275 "git diff --no-index" did not correctly handle relative paths and
276 did not correctly give exit codes when run under "--quiet" option.
278 Will merge to 'master'.
280 * nd/clone-single-fix (2012-06-22) 1 commit
281   (merged to 'next' on 2012-06-26 at c9fff5e)
282  + clone: fix ref selection in --single-branch --branch=xxx
284 "git clone --single-branch" to clone a single branch did not limit
285 the cloning to the specified branch.
287 Will merge to 'master'.
289 * vr/use-our-perl-in-tests (2012-06-24) 4 commits
290   (merged to 'next' on 2012-07-03 at 90dfcf0)
291  + t/README: add a bit more Don'ts
292  + tests: enclose $PERL_PATH in double quotes
293  + t/test-lib.sh: export PERL_PATH for use in scripts
294  + t: Replace 'perl' by $PERL_PATH
295  (this branch is used by jc/test-lib-source-build-options-early.)
297 Some implementations of Perl terminates "lines" with CRLF even when
298 the script is operating on just a sequence of bytes.  Make sure to
299 use "$PERL_PATH", the version of Perl the user told Git to use, in
300 our tests to avoid unnecessary breakages in tests.
302 * jc/sha1-name-more (2012-07-03) 25 commits
303  - rev-parse --disambiguate=<prefix>
304  - rev-parse: A and B in "rev-parse A..B" refer to committish
305  - reset: the command takes committish
306  - commit-tree: the command wants a tree and commits
307  - apply: --build-fake-ancestor expects blobs
308  - sha1_name.c: add support for disambiguating other types
309  - revision.c: the "log" family, except for "show", takes committish
310  - revision.c: allow handle_revision_arg() to take other flags
311  - sha1_name.c: introduce get_sha1_committish()
312  - sha1_name.c: teach lookup context to get_sha1_with_context()
313  - sha1_name.c: many short names can only be committish
314  - sha1_name.c: get_sha1_1() takes lookup flags
315  - sha1_name.c: get_describe_name() by definition groks only commits
316  - sha1_name.c: teach get_short_sha1() a commit-only option
317  - sha1_name.c: allow get_short_sha1() to take other flags
318  - get_sha1(): fix error status regression
319  - sha1_name.c: restructure disambiguation of short names
320  - sha1_name.c: correct misnamed "canonical" and "res"
321  - sha1_name.c: refactor find_short_packed_object()
322  - sha1_name.c: rename "now" to "current"
323  - sha1_name.c: clarify what "fake" is for in find_short_object_filename()
324  - sha1_name.c: get rid of get_sha1_with_mode()
325  - sha1_name.c: get rid of get_sha1_with_mode_1()
326  - sha1_name.c: hide get_sha1_with_context_1() ugliness
327  - sha1_name.c: indentation fix
329 Teaches the object name parser things like a "git describe" output
330 is always a commit object, "A" in "git log A" must be a committish,
331 and "A" and "B" in "git log A...B" both must be committish, etc., to
332 prolong the lifetime of abbreviated object names.
334 * jk/version-string-dependency (2012-06-20) 11 commits
335  - Makefile: move GIT-VERSION-FILE dependencies closer to use
336  - Makefile: build instaweb similar to other scripts
337  - Makefile: update scripts when build-time parameters change
338  - Makefile: do not replace @@GIT_VERSION@@ in shell scripts
339  - Makefile: split prefix flags from GIT-CFLAGS
340  - Makefile: split GIT_USER_AGENT from GIT-CFLAGS
341  - Makefile: do not replace @@GIT_USER_AGENT@@ in scripts
342  - Makefile: apply dependencies consistently to sparse/asm targets
343  - Makefile: do not have git.o depend on common-cmds.h
344  - Makefile: fold MISC_H into LIB_H
345  - Makefile: sort LIB_H list
347 Will keep in 'pu' to give Peff and Jonathan to work out improvements.
349 * jn/perl-makemaker-leading-paths (2012-06-29) 2 commits
350   (merged to 'next' on 2012-06-29 at 0f17059)
351  + perl/Makefile: Fix a missing double-quote
352   (merged to 'next' on 2012-06-28 at 286d854)
353  + perl/Makefile: move "mkdir -p" to module installation loop for maintainability
355 Minor build tweak.  People who do not use ExtUtils::MakeMaker may
356 want to test this before it hits the 'master' branch.
358 * tr/maint-show-walk (2012-06-19) 2 commits
359  - show: fix "range implies walking"
360  - Demonstrate git-show is broken with ranges
362 Fixes "git show"'s auto-walking behaviour, and make it behave just
363 like "git log" does when it walks.
365 Note that this is different from Thomas's patch.
367 Waiting for response from original author.
369 * hv/remote-end-hung-up (2012-06-19) 1 commit
370   (merged to 'next' on 2012-06-25 at d3f29e2)
371  + remove the impression of unexpectedness when access is denied
373 When we get disconnected while expecting a response from the remote
374 side because authentication failed, we issued an error message "The
375 remote side hung up unexpectedly."  Give hint that it may be a
376 permission problem in the message when we can reasonably suspect it.
378 Will merge to 'master'.
380 * jk/no-more-pre-exec-callback (2012-06-05) 1 commit
381  - pager: drop "wait for output to run less" hack
383 Will defer for 6 months until ancient "less" goes extinct.
385 * mm/push-default-switch-warning (2012-06-24) 1 commit
386   (merged to 'next' on 2012-06-26 at fea512a)
387  + push: start warning upcoming default change for push.default
389 Hopefully we can have a solidly tested series early in 1.7.12 or
390 1.7.13 at the latest.
392 --------------------------------------------------
393 [Discarded]
395 * nl/http-proxy-more (2012-05-11) 2 commits
396  . http: rename HTTP_REAUTH to HTTP_AUTH_RETRY
397  . http: Avoid limit of retrying request only twice
399 I queued only the later two patches from this series, even though they do
400 not make much sense without the first one that seems to need a bit more
401 work, so that we won't forget.
403 * jk/no-op-push-message (2012-05-30) 1 commit
404  . improve no-op push output
406 Rewords the status message of "git push" that pushed only one ref
407 differently from "Everything up-to-date", to give a bit more help to
408 people who get the message when their current branch is not pushed.
410 I had an impression after the discussion thread that a redesign is
411 coming, but it hasn't happened yet.