1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Feb 2013, #02; Mon, 4)
4 X-master-at: f51a757fafc1e1ca9565381a13109932acd81dba
5 X-next-at: 3b7952273237a5df57414b4a5327ce7e64e63255
7 What's cooking in git.git (Feb 2013, #02; Mon, 4)
8 --------------------------------------------------
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
14 As usual, this cycle is expected to last for 8 to 10 weeks, with a
15 preview -rc0 sometime in the middle of this month.
17 You can find the changes described here in the integration branches of the
18 repositories listed at
20 http://git-blame.blogspot.com/p/git-public-repositories.html
22 --------------------------------------------------
23 [Graduated to "master"]
25 * jc/custom-comment-char (2013-01-16) 1 commit
26 (merged to 'next' on 2013-01-25 at 91d8a5d)
27 + Allow custom "comment char"
29 Allow a configuration variable core.commentchar to customize the
30 character used to comment out the hint lines in the edited text
33 This is half my work and half by Ralf Thielow. There may still be
34 leftover '#' lurking around, though. My "git grep" says C code
35 should be already fine, but git-rebase--interactive.sh could be
36 converted (it should not matter, as the file is not really a
40 * jc/push-reject-reasons (2013-01-24) 4 commits
41 (merged to 'next' on 2013-01-28 at b60be93)
42 + push: finishing touches to explain REJECT_ALREADY_EXISTS better
43 + push: introduce REJECT_FETCH_FIRST and REJECT_NEEDS_FORCE
44 + push: further simplify the logic to assign rejection reason
45 + push: further clean up fields of "struct ref"
47 Improve error and advice messages given locally when "git push"
48 refuses when it cannot compute fast-forwardness by separating these
49 cases from the normal "not a fast-forward; merge first and push
53 * jk/config-parsing-cleanup (2013-01-23) 8 commits
54 (merged to 'next' on 2013-01-28 at 9bc9411)
55 + reflog: use parse_config_key in config callback
56 + help: use parse_config_key for man config
57 + submodule: simplify memory handling in config parsing
58 + submodule: use parse_config_key when parsing config
59 + userdiff: drop parse_driver function
60 + convert some config callbacks to parse_config_key
61 + archive-tar: use parse_config_key when parsing config
62 + config: add helper function for parsing key names
64 Configuration parsing for tar.* configuration variables were
65 broken. Introduce a new config-keyname parser API to make the
66 callers much less error prone.
69 * jk/read-commit-buffer-data-after-free (2013-01-26) 3 commits
70 (merged to 'next' on 2013-01-30 at c6d7e16)
71 + logmsg_reencode: lazily load missing commit buffers
72 + logmsg_reencode: never return NULL
73 + commit: drop useless xstrdup of commit message
75 Clarify the ownership rule for commit->buffer field, which some
76 callers incorrectly accessed without making sure it is populated.
79 * jk/remote-helpers-in-python-3 (2013-01-30) 10 commits
80 (merged to 'next' on 2013-01-31 at 5a948aa)
81 + git_remote_helpers: remove GIT-PYTHON-VERSION upon "clean"
82 (merged to 'next' on 2013-01-28 at d898471)
83 + git-remote-testpy: fix path hashing on Python 3
84 (merged to 'next' on 2013-01-25 at acf9419)
85 + git-remote-testpy: call print as a function
86 + git-remote-testpy: don't do unbuffered text I/O
87 + git-remote-testpy: hash bytes explicitly
88 + svn-fe: allow svnrdump_sim.py to run with Python 3
89 + git_remote_helpers: use 2to3 if building with Python 3
90 + git_remote_helpers: force rebuild if python version changes
91 + git_remote_helpers: fix input when running under Python 3
92 + git_remote_helpers: allow building with Python 3
94 Prepare remote-helper test written in Python to be run with Python3.
97 * mm/add-u-A-sans-pathspec (2013-01-28) 1 commit
98 (merged to 'next' on 2013-01-28 at fe762a6)
99 + add: warn when -u or -A is used without pathspec
101 Forbid "git add -u" and "git add -A" without pathspec run from a
102 subdirectory, to train people to type "." (or ":/") to make the
103 choice of default does not matter.
106 * pw/git-p4-on-cygwin (2013-01-26) 21 commits
107 (merged to 'next' on 2013-01-30 at 958ae3a)
108 + git p4: introduce gitConfigBool
109 + git p4: avoid shell when calling git config
110 + git p4: avoid shell when invoking git config --get-all
111 + git p4: avoid shell when invoking git rev-list
112 + git p4: avoid shell when mapping users
113 + git p4: disable read-only attribute before deleting
114 + git p4 test: use test_chmod for cygwin
115 + git p4: cygwin p4 client does not mark read-only
116 + git p4 test: avoid wildcard * in windows
117 + git p4 test: use LineEnd unix in windows tests too
118 + git p4 test: newline handling
119 + git p4: scrub crlf for utf16 files on windows
120 + git p4: remove unreachable windows \r\n conversion code
121 + git p4 test: translate windows paths for cygwin
122 + git p4 test: start p4d inside its db dir
123 + git p4 test: use client_view in t9806
124 + git p4 test: avoid loop in client_view
125 + git p4 test: use client_view to build the initial client
126 + git p4: generate better error message for bad depot path
127 + git p4: remove unused imports
128 + git p4: temp branch name should use / even on windows
130 Improve "git p4" on Cygwin.
132 --------------------------------------------------
135 * jn/auto-depend-workaround-buggy-ccache (2013-02-01) 1 commit
136 (merged to 'next' on 2013-02-02 at db5940a)
137 + Makefile: explicitly set target name for autogenerated dependencies
139 An age-old workaround to prevent buggy versions of ccache from
140 breaking the auto-generation of dependencies, which unfortunately
141 is still relevant because some people use ancient distros.
143 Will merge to 'master'.
146 * ct/autoconf-htmldir (2013-02-02) 1 commit
147 - Honor configure's htmldir switch
149 The autoconf subsystem passed --mandir down to generated
150 config.mak.autogen but forgot to do the same for --htmldir.
152 Will merge to 'next'.
155 * mk/tcsh-complete-only-known-paths (2013-02-03) 1 commit
156 - completion: handle path completion and colon for tcsh script
157 (this branch uses mp/complete-paths.)
159 Manlio's "complete with known paths only" update to completion
160 scripts returns directory names without trailing slash to
161 compensate the addition of '/' done by bash that reads from our
162 completion result. tcsh completion code that reads from our
163 internal completion result does not add '/', so let it ask our
164 complletion code to keep the '/' at the end.
166 Will merge to 'next'.
169 * jc/combine-diff-many-parents (2013-02-03) 1 commit
170 - combine-diff: lift 32-way limit of combined diff
172 We used to have an arbitrary 32 limit for combined diff input,
173 resulting in incorrect number of leading colons shown when showing
174 the "--raw --cc" output.
176 May want a couple of new tests.
179 * jc/remove-export-from-config-mak-in (2013-02-03) 1 commit
180 - config.mak.in: remove unused definitions
182 config.mak.in template had an "export" line to cause a few
183 common makefile variables to be exported; if they need to be
184 expoted for autoconf/configure users, they should also be exported
185 for people who write config.mak the same way. Move the "export" to
189 * jk/apply-similaritly-parsing (2013-02-03) 1 commit
190 - builtin/apply: tighten (dis)similarity index parsing
192 Make sure the similarity value shown in the "apply --summary"
193 output is sensible, even when the input had a bogus value.
195 Will merge to 'next'.
198 * nd/status-show-in-progress (2013-02-03) 1 commit
199 - status: show the branch name if possible in in-progress info
201 --------------------------------------------------
204 * dg/subtree-fixes (2013-01-08) 7 commits
205 - contrib/subtree: mkdir the manual directory if needed
206 - contrib/subtree: honor $(DESTDIR)
207 - contrib/subtree: fix synopsis and command help
208 - contrib/subtree: better error handling for "add"
209 - contrib/subtree: add --unannotate option
210 - contrib/subtree: use %B for split Subject/Body
211 - t7900: remove test number comments
213 contrib/subtree updates; there are a few more from T. Zheng that
214 were posted separately, with an overlap.
219 * mp/diff-algo-config (2013-01-16) 3 commits
220 - diff: Introduce --diff-algorithm command line option
221 - config: Introduce diff.algorithm variable
222 - git-completion.bash: Autocomplete --minimal and --histogram for git-diff
224 Add diff.algorithm configuration so that the user does not type
227 Looking better; may want tests to protect it from future breakages,
228 but otherwise it looks ready for 'next'.
230 Expecting a follow-up to add tests.
233 * mb/gitweb-highlight-link-target (2012-12-20) 1 commit
234 - Highlight the link target line in Gitweb using CSS
240 * jl/submodule-deinit (2012-12-04) 1 commit
241 - submodule: add 'deinit' command
243 There was no Porcelain way to say "I no longer am interested in
244 this submodule", once you express your interest in a submodule with
245 "submodule init". "submodule deinit" is the way to do so.
251 * jk/lua-hackery (2012-10-07) 6 commits
252 - pretty: fix up one-off format_commit_message calls
253 - Minimum compilation fixup
254 - Makefile: make "lua" a bit more configurable
255 - add a "lua" pretty format
256 - add basic lua infrastructure
257 - pretty: make some commit-parsing helpers more public
259 Interesting exercise. When we do this for real, we probably would want
260 to wrap a commit to make it more like an "object" with methods like
264 * rc/maint-complete-git-p4 (2012-09-24) 1 commit
265 - Teach git-completion about git p4
267 Comment from Pete will need to be addressed ($gmane/206172).
270 * jc/maint-name-rev (2012-09-17) 7 commits
271 - describe --contains: use "name-rev --algorithm=weight"
272 - name-rev --algorithm=weight: tests and documentation
273 - name-rev --algorithm=weight: cache the computed weight in notes
274 - name-rev --algorithm=weight: trivial optimization
275 - name-rev: --algorithm option
276 - name_rev: clarify the logic to assign a new tip-name to a commit
277 - name-rev: lose unnecessary typedef
279 "git name-rev" names the given revision based on a ref that can be
280 reached in the smallest number of steps from the rev, but that is
281 not useful when the caller wants to know which tag is the oldest one
282 that contains the rev. This teaches a new mode to the command that
283 uses the oldest ref among those which contain the rev.
285 I am not sure if this is worth it; for one thing, even with the help
286 from notes-cache, it seems to make the "describe --contains" even
287 slower. Also the command will be unusably slow for a user who does
288 not have a write access (hence unable to create or update the
291 Stalled mostly due to lack of responses.
294 * jc/xprm-generation (2012-09-14) 1 commit
295 - test-generation: compute generation numbers and clock skews
297 A toy to analyze how bad the clock skews are in histories of real
300 Stalled mostly due to lack of responses.
303 * jc/add-delete-default (2012-08-13) 1 commit
304 - git add: notice removal of tracked paths by default
306 "git add dir/" updated modified files and added new files, but does
307 not notice removed files, which may be "Huh?" to some users. They
308 can of course use "git add -A dir/", but why should they?
310 Resurrected from graveyard, as I thought it was a worthwhile thing
311 to do in the longer term.
313 Stalled mostly due to lack of responses.
316 * mb/remote-default-nn-origin (2012-07-11) 6 commits
317 - Teach get_default_remote to respect remote.default.
318 - Test that plain "git fetch" uses remote.default when on a detached HEAD.
319 - Teach clone to set remote.default.
320 - Teach "git remote" about remote.default.
321 - Teach remote.c about the remote.default configuration setting.
322 - Rename remote.c's default_remote_name static variables.
324 When the user does not specify what remote to interact with, we
325 often attempt to use 'origin'. This can now be customized via a
326 configuration variable.
331 "The first remote becomes the default" bit is better done as a
335 * nd/parse-pathspec (2013-01-11) 20 commits
336 . Convert more init_pathspec() to parse_pathspec()
337 . Convert add_files_to_cache to take struct pathspec
338 . Convert {read,fill}_directory to take struct pathspec
339 . Convert refresh_index to take struct pathspec
340 . Convert report_path_error to take struct pathspec
341 . checkout: convert read_tree_some to take struct pathspec
342 . Convert unmerge_cache to take struct pathspec
343 . Convert read_cache_preload() to take struct pathspec
344 . add: convert to use parse_pathspec
345 . archive: convert to use parse_pathspec
346 . ls-files: convert to use parse_pathspec
347 . rm: convert to use parse_pathspec
348 . checkout: convert to use parse_pathspec
349 . rerere: convert to use parse_pathspec
350 . status: convert to use parse_pathspec
351 . commit: convert to use parse_pathspec
352 . clean: convert to use parse_pathspec
353 . Export parse_pathspec() and convert some get_pathspec() calls
354 . Add parse_pathspec() that converts cmdline args to struct pathspec
355 . pathspec: save the non-wildcard length part
357 Uses the parsed pathspec structure in more places where we used to
358 use the raw "array of strings" pathspec.
360 Ejected from 'pu' for now; will take a look at the rerolled one
361 later ($gmane/213340).
363 --------------------------------------------------
366 * ft/transport-report-segv (2013-01-31) 1 commit
367 (merged to 'next' on 2013-02-02 at 6c450a7)
368 + push: fix segfault when HEAD points nowhere
370 A failure to push due to non-ff while on an unborn branch
371 dereferenced a NULL pointer when showing an error message.
373 Will merge to 'master'.
376 * sb/gpg-i18n (2013-01-31) 1 commit
377 (merged to 'next' on 2013-02-02 at 7a54574)
378 + gpg: allow translation of more error messages
380 Will merge to 'master'.
383 * sb/gpg-plug-fd-leak (2013-01-31) 1 commit
384 (merged to 'next' on 2013-02-02 at c271a31)
385 + gpg: close stderr once finished with it in verify_signed_buffer()
387 We forgot to close the file descriptor reading from "gpg" output,
388 killing "git log --show-signature" on a long history.
390 Will merge to 'master'.
393 * sb/run-command-fd-error-reporting (2013-02-01) 1 commit
394 (merged to 'next' on 2013-02-02 at be7e970)
395 + run-command: be more informative about what failed
397 Will merge to 'master'.
400 * jk/remote-helpers-doc (2013-02-01) 1 commit
401 (merged to 'next' on 2013-02-02 at ce1461a)
402 + Rename {git- => git}remote-helpers.txt
404 "git help remote-helpers" did not work; 'remote-helpers' is not
405 a subcommand name but a concept, so its documentation should have
406 been in gitremote-helpers, not git-remote-helpers.
408 Will merge to 'master'.
411 * sp/smart-http-content-type-check (2013-02-04) 1 commit
412 (merged to 'next' on 2013-02-04 at d0759cb)
413 + Verify Content-Type from smart HTTP servers
415 The smart HTTP clients forgot to verify the content-type that comes
416 back from the server side to make sure that the request is being
419 Will merge to 'master'.
422 * jc/mention-tracking-for-pull-default (2013-01-31) 1 commit
423 - doc: mention tracking for pull.default
425 We stopped mentioning `tracking` is a deprecated but supported
426 synonym for `upstream` in pull.default even though we have no
427 intention of removing the support for it.
429 This is my "don't list it to catch readers' eyes, but make sure it
430 can be found if the reader looks for it" version; I'm not married
431 to the layout and am willing to take a replacement patch.
434 * jc/fake-ancestor-with-non-blobs (2013-01-31) 3 commits
435 (merged to 'next' on 2013-02-02 at 86d457a)
436 + apply: diagnose incomplete submodule object name better
437 + apply: simplify build_fake_ancestor()
438 + git-am: record full index line in the patch used while rebasing
440 Rebasing the history of superproject with change in the submodule
441 has been broken since v1.7.12.
443 Will merge to 'master'.
446 * jk/doc-makefile-cleanup (2013-02-01) 1 commit
447 (merged to 'next' on 2013-02-02 at 86ff373)
448 + Documentation/Makefile: clean up MAN*_TXT lists
450 Will merge to 'master'.
453 * ab/gitweb-use-same-scheme (2013-01-28) 1 commit
454 (merged to 'next' on 2013-02-02 at 7e4a108)
455 + gitweb: refer to picon/gravatar images over the same scheme
457 Avoid mixed contents on a page coming via http and https when
458 gitweb is hosted on a https server.
460 Will merge to 'master'.
463 * jk/python-styles (2013-01-30) 1 commit
464 (merged to 'next' on 2013-02-02 at 293edc1)
465 + CodingGuidelines: add Python coding guidelines
467 Will merge to 'master'.
470 * mn/send-email-authinfo (2013-01-29) 1 commit
471 - git-send-email: add ~/.authinfo parsing
474 $gmane/215004, $gmane/215024.
477 * mp/complete-paths (2013-01-11) 1 commit
478 (merged to 'next' on 2013-01-30 at 70e4f1a)
479 + git-completion.bash: add support for path completion
480 (this branch is used by mk/tcsh-complete-only-known-paths.)
482 The completion script used to let the default completer to suggest
483 pathnames, which gave too many irrelevant choices (e.g. "git add"
484 would not want to add an unmodified path). Teach it to use a more
485 git-aware logic to enumerate only relevant ones.
487 This is logically the right thing to do, and we would really love
488 to see people who have been involved in completion code to review
489 and comment on the implementation.
491 Will cook in 'next' to see if anybody screams.
494 * ss/mergetools-tortoise (2013-02-01) 2 commits
495 (merged to 'next' on 2013-02-03 at d306b83)
496 + mergetools: teach tortoisemerge to handle filenames with SP correctly
497 + mergetools: support TortoiseGitMerge
499 Update mergetools to work better with newer merge helper tortoise ships.
501 Will merge to 'master'.
504 * da/mergetool-docs (2013-02-02) 5 commits
505 (merged to 'next' on 2013-02-03 at f822dcf)
506 + doc: generate a list of valid merge tools
507 + mergetool--lib: list user configured tools in '--tool-help'
508 + mergetool--lib: add functions for finding available tools
509 + mergetool--lib: improve the help text in guess_merge_tool()
510 + mergetool--lib: simplify command expressions
511 (this branch uses jk/mergetool.)
513 Build on top of the clean-up done by jk/mergetool and automatically
514 generate the list of mergetool and difftool backends the build
515 supports to be included in the documentation.
517 Will merge to 'master'.
520 * nd/branch-error-cases (2013-01-31) 6 commits
521 (merged to 'next' on 2013-02-02 at cf5e745)
522 + branch: let branch filters imply --list
523 + docs: clarify git-branch --list behavior
524 + branch: mark more strings for translation
525 + Merge branch 'nd/edit-branch-desc-while-detached' into HEAD
526 + branch: give a more helpful message on redundant arguments
527 + branch: reject -D/-d without branch name
529 Fix various error messages and conditions in "git branch", e.g. we
530 advertised "branch -d/-D" to remove one or more branches but actually
531 implemented removal of zero or more branches---request to remove no
532 branches was not rejected.
534 Will merge to 'master'.
537 * jk/mergetool (2013-01-28) 8 commits
538 (merged to 'next' on 2013-02-03 at 2ff5dee)
539 + mergetools: simplify how we handle "vim" and "defaults"
540 + mergetool--lib: don't call "exit" in setup_tool
541 + mergetool--lib: improve show_tool_help() output
542 + mergetools/vim: remove redundant diff command
543 + git-difftool: use git-mergetool--lib for "--tool-help"
544 + git-mergetool: don't hardcode 'mergetool' in show_tool_help
545 + git-mergetool: remove redundant assignment
546 + git-mergetool: move show_tool_help to mergetool--lib
547 (this branch is used by da/mergetool-docs.)
549 Cleans up mergetool/difftool combo.
551 Will merge to 'master'.
554 * jc/hidden-refs (2013-01-30) 8 commits
555 - WIP: receive.allowupdatestohidden
556 - fetch: fetch objects by their exact SHA-1 object names
557 - upload-pack: optionally allow fetching from the tips of hidden refs
558 - fetch: use struct ref to represent refs to be fetched
559 - parse_fetch_refspec(): clarify the codeflow a bit
560 - upload/receive-pack: allow hiding ref hierarchies
561 - upload-pack: simplify request validation
562 - upload-pack: share more code
564 Allow the server side to unclutter the refs/ namespace it shows to
565 the client. Optionally allow requests for histories leading to the
566 tips of hidden refs by updated clients.
568 Will merge to 'next' after dropping the tip.
571 * ta/doc-no-small-caps (2013-02-01) 6 commits
572 (merged to 'next' on 2013-02-02 at 77cbd0e)
573 + Documentation: StGit is the right spelling, not StGIT
574 + Documentation: describe the "repository" in repository-layout
575 + Documentation: add a description for 'gitfile' to glossary
576 + Documentation: do not use undefined terms git-dir and git-file
577 + Documentation: the name of the system is 'Git', not 'git'
578 + Documentation: avoid poor-man's small caps GIT
580 Update documentation to change "GIT" which was a poor-man's small
581 caps to "Git". The latter was the intended spelling.
583 Also change "git" spelled in all-lowercase to "Git" when it refers
584 to the system as the whole or the concept it embodies, as opposed to
585 the command the end users would type.
587 Will merge to 'master'.
590 * jc/remove-treesame-parent-in-simplify-merges (2013-01-17) 1 commit
591 (merged to 'next' on 2013-01-30 at b639b47)
592 + simplify-merges: drop merge from irrelevant side branch
594 The --simplify-merges logic did not cull irrelevant parents from a
595 merge that is otherwise not interesting with respect to the paths
598 This touches a fairly core part of the revision traversal
599 infrastructure; even though I think this change is correct, please
600 report immediately if you find any unintended side effect.
605 * jc/push-2.0-default-to-simple (2013-01-16) 14 commits
606 (merged to 'next' on 2013-01-16 at 23f5df2)
607 + t5570: do not assume the "matching" push is the default
608 + t5551: do not assume the "matching" push is the default
609 + t5550: do not assume the "matching" push is the default
610 (merged to 'next' on 2013-01-09 at 74c3498)
611 + doc: push.default is no longer "matching"
612 + push: switch default from "matching" to "simple"
613 + t9401: do not assume the "matching" push is the default
614 + t9400: do not assume the "matching" push is the default
615 + t7406: do not assume the "matching" push is the default
616 + t5531: do not assume the "matching" push is the default
617 + t5519: do not assume the "matching" push is the default
618 + t5517: do not assume the "matching" push is the default
619 + t5516: do not assume the "matching" push is the default
620 + t5505: do not assume the "matching" push is the default
621 + t5404: do not assume the "matching" push is the default
623 Will cook in 'next' until Git 2.0 ;-).
626 * bc/append-signed-off-by (2013-01-27) 11 commits
627 - Unify appending signoff in format-patch, commit and sequencer
628 - format-patch: update append_signoff prototype
629 - t4014: more tests about appending s-o-b lines
630 - sequencer.c: teach append_signoff to avoid adding a duplicate newline
631 - sequencer.c: teach append_signoff how to detect duplicate s-o-b
632 - sequencer.c: always separate "(cherry picked from" from commit body
633 - sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
634 - t/t3511: add some tests of 'cherry-pick -s' functionality
635 - t/test-lib-functions.sh: allow to specify the tag name to test_commit
636 - commit, cherry-pick -s: remove broken support for multiline rfc2822 fields
637 - sequencer.c: rework search for start of footer to improve clarity
639 Waiting for the final round of reroll before merging to 'next'.
640 After that we will go incremental.