From 82f5aa167682bea5fd9061de7d66423d9fa71a64 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 3 Jul 2012 16:05:21 -0700 Subject: [PATCH] What's cooking (2012/07 #01) --- whats-cooking.txt | 452 ++++++++++++++++++---------------------------- 1 file changed, 180 insertions(+), 272 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 22abfc6c15..6fc9bee8c5 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,273 +1,35 @@ To: git@vger.kernel.org -Subject: What's cooking in git.git (Jun 2012, #08; Thu, 28) -X-master-at: e7b44f182bc1b2ac32eadbc477a76a185f49ac88 -X-next-at: ce5f79f7997da38c414b6b9006eda871419ecfe7 +Subject: What's cooking in git.git (Jul 2012, #01; Tue, 3) +X-master-at: b12905140a8239ac687450ad43f18b5f0bcfb62e +X-next-at: c7ed6b9aeb316c5c29cc1de761d47bbd184a3884 -What's cooking in git.git (Jun 2012, #08; Thu, 28) +What's cooking in git.git (Jul 2012, #01; Tue, 3) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. -The third batch of topics have graduated to 'master', and a handful -of topics have entered 'next' for developer testing. - You can find the changes described here in the integration branches of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html --------------------------------------------------- -[Graduated to "master"] - -* fc/git-prompt-script (2012-06-19) 7 commits - (merged to 'next' on 2012-06-25 at e690a02) - + completion: respect $GIT_DIR - + completion: warn people about duplicated function - + completion: split __git_ps1 into a separate script - + completion: remove executable mode - + Merge branch 'fc/git-complete-helper' into fc/git-prompt-script - + tests: add tests for the bash prompt functions in the completion script - + tests: move code to run tests under bash into a helper library - -Split a rather heavy-ish "git completion" script out to create a -separate "git prompting" script, to help lazy-autoloading of the -completion part while making prompting part always available. - -* hv/submodule-update-nuke-submodules (2012-06-11) 1 commit - (merged to 'next' on 2012-06-25 at bbfcd02) - + update-index: allow overwriting existing submodule index entries - -"git add" allows adding a regular file to the path where a submodule -used to exist, but "git update-index" does not allow an equivalent -operation to Porcelain writers. - -* jc/rev-list-simplify-merges-first-parent (2012-06-13) 3 commits - (merged to 'next' on 2012-06-25 at 4c5ffbe) - + revision: ignore side parents while running simplify-merges - + revision: note the lack of free() in simplify_merges() - + revision: "simplify" options imply topo-order sort - -When "git log" is given "--simplify-merges/by-decoration" together -with "--first-parent", the combination of these options makes the -simplification logic to use in-core commit objects that haven't been -examined for relevance, either producing incorrect result or taking -too long to produce any output. Teach the simplification logic to -ignore commits that the first-parent traversal logic ignored when -both are in effect to work around the issue. - -* jk/diff-no-index-pager (2012-06-15) 2 commits - (merged to 'next' on 2012-06-21 at e2a2562) - + do not run pager with diff --no-index --quiet - + fix pager.diff with diff --no-index - -"git diff --no-index" did not work with pagers correctly. - -* js/submodule-relative (2012-06-14) 5 commits - (merged to 'next' on 2012-06-25 at 310ed77) - + t7400: avoid path mangling issues - + submodule: fix handling of superproject origin URLs like foo, ./foo and ./foo/bar - + submodule: fix sync handling of some relative superproject origin URLs - + submodule: document failure to handle relative superproject origin URLs - + submodule: additional regression tests for relative URLs - -Teach "git submodule" deal with nested submodule structure where a -module is contained within a module whose origin is specified as a -relative URL to its superproject's origin. - -* lk/more-helpful-status-hints (2012-06-14) 4 commits - (merged to 'next' on 2012-06-25 at 6502d4b) - + status: better advices when splitting a commit (during rebase -i) - + status: don't suggest "git rm" or "git add" if not appropriate - + t7512-status-help.sh: better advices for git status - + wt-status.*: better advices for git status added - -Give finer classification to various states of paths in conflicted -state and offer advice messages in the "git status" output. - -* lk/rebase-i-x (2012-06-13) 1 commit - (merged to 'next' on 2012-06-25 at 8252da2) - + rebase -i: teach "--exec " - -Teach "-x " to "rebase -i" to insert "exec " after each -commit in the resulting history. - -* mm/verify-filename-fix (2012-06-18) 2 commits - (merged to 'next' on 2012-06-21 at d03dace) - + verify_filename(): ask the caller to chose the kind of diagnosis - + sha1_name: do not trigger detailed diagnosis for file arguments - -"git diff COPYING HEAD:COPYING" gave a nonsense error message that -claimed that the treeish HEAD did not have COPYING in it. - -* nd/exclude-workaround-top-heavy (2012-06-07) 3 commits - (merged to 'next' on 2012-06-25 at 08429bb) - + exclude: do strcmp as much as possible before fnmatch - + dir.c: get rid of the wildcard symbol set in no_wildcard() - + Unindent excluded_from_list() - -Attempt to optimize matching with an exclude pattern with a deep -directory hierarchy by taking the part that specifies leading path -without wildcard literally. - -* nd/stream-index-pack (2012-05-24) 4 commits - (merged to 'next' on 2012-06-25 at 3084674) - + index-pack: use streaming interface for collision test on large blobs - + index-pack: factor out unpack core from get_data_from_pack - + index-pack: use streaming interface on large blobs (most of the time) - + index-pack: hash non-delta objects while reading from stream - -Use streaming API to read from the object store to avoid having to hold -a large blob object in-core while running index-pack. - -* nd/stream-pack-objects (2012-05-29) 1 commit - (merged to 'next' on 2012-06-25 at fa91345) - + pack-objects: use streaming interface for reading large loose blobs - -"pack-objects" learned to read large loose blobs using the streaming API, -without the need to hold everything in core at once. - -------------------------------------------------- [New Topics] -* tb/sanitize-decomposed-utf-8-pathname (2012-06-25) 1 commit - - git on Mac OS and precomposed unicode +* jc/maint-blame-unique-abbrev (2012-07-02) 1 commit + (merged to 'next' on 2012-07-03 at c7ed6b9) + + blame: compute abbreviation width that ensures uniqueness -Teaches git to normalize pathnames read from readdir(3) and all -arguments from the command line into precomposed UTF-8 (assuming -that they come as decomposed UTF-8) to work around issues on Mac OS. +"git blame" did not try to make sure the abbreviated commit object +names in its output are unique. -I think there still are other places that need conversion -(e.g. paths that are read from stdin for some commands), but this -should be a step in the right direction. +* jk/push-delete-ref-error-message (2012-07-03) 1 commit + - push: don't guess at qualifying remote refs on deletion -Will merge to 'next'. - -* cw/no-detaching-an-unborn (2012-06-26) 1 commit - - git-checkout: disallow --detach on unborn branch - -"git checkout --detach" when you are still on an unborn branch -should be forbidden, but it wasn't. - -Will merge to 'next'. - -* cw/rebase-i-root (2012-06-26) 2 commits - - Add tests for rebase -i --root without --onto - - rebase -i: support --root without --onto - -"git rebase [-i] --root $tip" can now be used to rewrite all the -history down to the root. - -Will merge to 'next'. - -* js/fast-export-paths-with-spaces (2012-06-27) 1 commit - - fast-export: quote paths with spaces - -"git fast-export" produced an input stream for fast-import without -properly quoting pathnames when they contain SPs in them. - -Will merge to 'next'. - -* mm/mediawiki-file-attachments (2012-06-27) 5 commits - - git-remote-mediawiki: import "File:" attachments - - git-remote-mediawiki: split get_mw_pages into smaller functions - - git-remote-mediawiki: send "File:" attachments to a remote wiki - - git-remote-mediawiki: don't "use encoding 'utf8';" - - git-remote-mediawiki: don't compute the diff when getting commit message - (this branch uses mm/credential-plumbing.) - -"mediawiki" remote helper (in contrib/) learned to handle file -attachments. - -Will merge to 'next'. - -* mz/rebase-no-mbox (2012-06-26) 4 commits - - am: don't call mailinfo if $rebasing - - am --rebasing: get patch body from commit, not from mailbox - - rebase --root: print usage on too many args - - rebase: don't source git-sh-setup twice - -Teach "am --rebasing" codepath to grab authorship, log message and -the patch text directly out of existing commits. - -Will merge to 'next'. - -* pw/git-p4-tests (2012-06-27) 10 commits - - git p4 test: fix badp4dir test - - git p4 test: split up big t9800 test - - git p4 test: cleanup_git should make a new $git - - git p4 test: copy source indeterminate - - git p4 test: check for error message in failed test - - git p4 test: rename some "git-p4 command" strings - - git p4 test: never create default test repo - - git p4 test: simplify quoting involving TRASH_DIRECTORY - - git p4 test: use real_path to resolve p4 client symlinks - - git p4 test: wait longer for p4d to start and test its pid - -More "git p4" tests. - -Will merge to 'next'. - -* rj/platform-pread-may-be-thread-unsafe (2012-06-26) 1 commit - (merged to 'next' on 2012-06-28 at ce5f79f) - + index-pack: Disable threading on cygwin - -On Cygwin, the platform pread(3) is not thread safe, just like our -own compat/ emulation, and cannot be used in the index-pack program. - -* jc/refactor-diff-stdin (2012-06-28) 3 commits - - diff-index.c: "git diff" has no need to read blob from the standard input - - diff-index.c: unify handling of command line paths - - diff-index.c: do not pretend paths are pathspecs - -Due to the way "git diff --no-index" is bolted onto by touching the -low level code that is shared with the rest of the "git diff" code, -even though it has to work in a very different way, any comparison -that involves a file "-" at the root level incorrectly tried to read -from the standard input. This cleans up the no-index codepath -further to remove code that reads from the standard input from the -core side, which is never necessary when git is running its usual -diff operation. - -Will merge to 'next', and later down to older maintenance releases. - -* mz/empty-rebase-test (2012-06-27) 1 commit - - add test case for rebase of empty commit - -We did not have test to make sure "git rebase" without extra options -filters out an empty commit in the original history. - -* cw/help-over-network (2012-06-28) 2 commits - - Allow help.htmlpath to be a URL prefix - - Add config variable to set HTML path for git-help --web - -"git help -w $cmd" can show HTML version of documentation for -"git-$cmd" by setting help.htmlpath to somewhere other than the -default location where the build procedure installs them locally; -the variable can even point at a http:// URL. - -* lt/commit-tree-guess-utf-8 (2012-06-28) 1 commit - - commit/commit-tree: correct latin1 to utf-8 - -Teaches "git commit" and "git commit-tree" the "we are told to use -utf-8 in log message, but this does not look like utf-8---attempt to -pass it through convert-from-latin1-to-utf8 and see if it makes -sense" heuristics "git mailinfo" already uses. - -A draft from Linus received privately without a log message. -Hopefully it will be rerolled. - -* jc/test-lib-source-build-options-early (2012-06-24) 1 commit - - test-lib: reorder and include GIT-BUILD-OPTIONS a lot earlier - (this branch uses vr/use-our-perl-in-tests.) - -Reorders t/test-lib.sh so that we dot-source GIT-BUILD-OPTIONS that -records the shell and Perl the user told us to use with Git a lot -early, so that test-lib.sh script itself can use "$PERL_PATH" in -one of its early operations. - -Needs to be eyeballed by people who run tests with exotic options -like valgrind, --root=/dev/shm/somewhere, etc. +The error message from "git push $there :bogo" mentioned we tried +and failed to guess what ref is being deleted based on the LHS of +the refspec, which we don't. -------------------------------------------------- [Stalled] @@ -350,6 +112,142 @@ not working :-(. -------------------------------------------------- [Cooking] +* tb/sanitize-decomposed-utf-8-pathname (2012-07-02) 1 commit + - git on Mac OS and precomposed unicode + +Teaches git to normalize pathnames read from readdir(3) and all +arguments from the command line into precomposed UTF-8 (assuming +that they come as decomposed UTF-8) to work around issues on Mac OS. + +I think there still are other places that need conversion +(e.g. paths that are read from stdin for some commands), but this +should be a good first step in the right direction. + +Will merge to 'next'. + +* cw/no-detaching-an-unborn (2012-06-26) 1 commit + (merged to 'next' on 2012-07-03 at 552c5ca) + + git-checkout: disallow --detach on unborn branch + +"git checkout --detach", when you are still on an unborn branch, +should be forbidden, but it wasn't. + +* cw/rebase-i-root (2012-06-26) 2 commits + (merged to 'next' on 2012-07-03 at 231c0a4) + + Add tests for rebase -i --root without --onto + + rebase -i: support --root without --onto + +"git rebase [-i] --root $tip" can now be used to rewrite all the +history down to the root. + +* js/fast-export-paths-with-spaces (2012-06-27) 1 commit + (merged to 'next' on 2012-07-03 at f9c23e9) + + fast-export: quote paths with spaces + +"git fast-export" produced an input stream for fast-import without +properly quoting pathnames when they contain SPs in them. + +* mm/mediawiki-file-attachments (2012-06-27) 5 commits + (merged to 'next' on 2012-07-03 at 90f2f45) + + git-remote-mediawiki: import "File:" attachments + + git-remote-mediawiki: split get_mw_pages into smaller functions + + git-remote-mediawiki: send "File:" attachments to a remote wiki + + git-remote-mediawiki: don't "use encoding 'utf8';" + + git-remote-mediawiki: don't compute the diff when getting commit message + (this branch uses mm/credential-plumbing.) + +"mediawiki" remote helper (in contrib/) learned to handle file +attachments. + +* mz/rebase-no-mbox (2012-06-26) 4 commits + (merged to 'next' on 2012-07-03 at 5bf5c12) + + am: don't call mailinfo if $rebasing + + am --rebasing: get patch body from commit, not from mailbox + + rebase --root: print usage on too many args + + rebase: don't source git-sh-setup twice + +Teach "am --rebasing" codepath to grab authorship, log message and +the patch text directly out of existing commits. This will help +rebasing commits that have confusing "diff" output in their log +messages. + +* pw/git-p4-tests (2012-06-27) 10 commits + (merged to 'next' on 2012-07-03 at 9bd9cda) + + git p4 test: fix badp4dir test + + git p4 test: split up big t9800 test + + git p4 test: cleanup_git should make a new $git + + git p4 test: copy source indeterminate + + git p4 test: check for error message in failed test + + git p4 test: rename some "git-p4 command" strings + + git p4 test: never create default test repo + + git p4 test: simplify quoting involving TRASH_DIRECTORY + + git p4 test: use real_path to resolve p4 client symlinks + + git p4 test: wait longer for p4d to start and test its pid + +More "git p4" tests. + +* rj/platform-pread-may-be-thread-unsafe (2012-06-26) 1 commit + (merged to 'next' on 2012-06-28 at ce5f79f) + + index-pack: Disable threading on cygwin + +On Cygwin, the platform pread(3) is not thread safe, just like our +own compat/ emulation, and cannot be used in the index-pack program. + +* jc/refactor-diff-stdin (2012-06-28) 3 commits + - diff-index.c: "git diff" has no need to read blob from the standard input + - diff-index.c: unify handling of command line paths + - diff-index.c: do not pretend paths are pathspecs + +Due to the way "git diff --no-index" is bolted onto by touching the +low level code that is shared with the rest of the "git diff" code, +even though it has to work in a very different way, any comparison +that involves a file "-" at the root level incorrectly tried to read +from the standard input. This cleans up the no-index codepath +further to remove code that reads from the standard input from the +core side, which is never necessary when git is running its usual +diff operation. + +Will merge to 'next', and later down to older maintenance releases. + +* mz/empty-rebase-test (2012-06-27) 1 commit + (merged to 'next' on 2012-07-03 at 1e7de3f) + + add test case for rebase of empty commit +We did not have test to make sure "git rebase" without extra options +filters out an empty commit in the original history. + +* cw/help-over-network (2012-06-28) 2 commits + (merged to 'next' on 2012-07-03 at 99e8d28) + + Allow help.htmlpath to be a URL prefix + + Add config variable to set HTML path for git-help --web + +"git help -w $cmd" can show HTML version of documentation for +"git-$cmd" by setting help.htmlpath to somewhere other than the +default location where the build procedure installs them locally; +the variable can even point at a http:// URL. + +* lt/commit-tree-guess-utf-8 (2012-06-28) 1 commit + - commit/commit-tree: correct latin1 to utf-8 + +Teaches "git commit" and "git commit-tree" the "we are told to use +utf-8 in log message, but this does not look like utf-8---attempt to +pass it through convert-from-latin1-to-utf8 and see if it makes +sense" heuristics "git mailinfo" already uses. + +A draft from Linus received privately without a log message. +Hopefully it will be rerolled. + +* jc/test-lib-source-build-options-early (2012-06-24) 1 commit + - test-lib: reorder and include GIT-BUILD-OPTIONS a lot earlier + (this branch uses vr/use-our-perl-in-tests.) + +Reorders t/test-lib.sh so that we dot-source GIT-BUILD-OPTIONS that +records the shell and Perl the user told us to use with Git a lot +early, so that test-lib.sh script itself can use "$PERL_PATH" in +one of its early operations. + +Needs to be eyeballed by people who run tests with exotic options +like valgrind, --root=/dev/shm/somewhere, etc. + * mm/config-xdg (2012-06-25) 4 commits (merged to 'next' on 2012-06-28 at 57049d1) + config: write to $XDG_CONFIG_HOME/git/config file when appropriate @@ -360,8 +258,6 @@ not working :-(. Teach git to read various information from $XDG_CONFIG_HOME/git/ to allow the user to avoid cluttering $HOME. -Will merge to 'next'. - * mm/credential-plumbing (2012-06-25) 3 commits (merged to 'next' on 2012-06-28 at 6e6fe9f) + git-remote-mediawiki: add credential support @@ -371,8 +267,6 @@ Will merge to 'next'. Expose the credential API to scripted Porcelain writers. -Will merge to 'next'. - * th/diff-no-index-fixes (2012-06-22) 2 commits (merged to 'next' on 2012-06-26 at 450e781) + diff-no-index: exit(1) if 'diff --quiet ' finds changes @@ -393,10 +287,11 @@ the cloning to the specified branch. Will merge to 'master'. * vr/use-our-perl-in-tests (2012-06-24) 4 commits - - t/README: add a bit more Don'ts - - tests: enclose $PERL_PATH in double quotes - - t/test-lib.sh: export PERL_PATH for use in scripts - - t: Replace 'perl' by $PERL_PATH + (merged to 'next' on 2012-07-03 at 90dfcf0) + + t/README: add a bit more Don'ts + + tests: enclose $PERL_PATH in double quotes + + t/test-lib.sh: export PERL_PATH for use in scripts + + t: Replace 'perl' by $PERL_PATH (this branch is used by jc/test-lib-source-build-options-early.) Some implementations of Perl terminates "lines" with CRLF even when @@ -404,25 +299,37 @@ the script is operating on just a sequence of bytes. Make sure to use "$PERL_PATH", the version of Perl the user told Git to use, in our tests to avoid unnecessary breakages in tests. -* jc/sha1-name-more (2012-06-23) 9 commits +* jc/sha1-name-more (2012-07-03) 25 commits + - rev-parse --disambiguate= + - rev-parse: A and B in "rev-parse A..B" refer to committish + - reset: the command takes committish + - commit-tree: the command wants a tree and commits + - apply: --build-fake-ancestor expects blobs + - sha1_name.c: add support for disambiguating other types + - revision.c: the "log" family, except for "show", takes committish + - revision.c: allow handle_revision_arg() to take other flags + - sha1_name.c: introduce get_sha1_committish() + - sha1_name.c: teach lookup context to get_sha1_with_context() + - sha1_name.c: many short names can only be committish + - sha1_name.c: get_sha1_1() takes lookup flags - sha1_name.c: get_describe_name() by definition groks only commits - sha1_name.c: teach get_short_sha1() a commit-only option - sha1_name.c: allow get_short_sha1() to take other flags + - get_sha1(): fix error status regression - sha1_name.c: restructure disambiguation of short names - sha1_name.c: correct misnamed "canonical" and "res" - sha1_name.c: refactor find_short_packed_object() - sha1_name.c: rename "now" to "current" - sha1_name.c: clarify what "fake" is for in find_short_object_filename() + - sha1_name.c: get rid of get_sha1_with_mode() + - sha1_name.c: get rid of get_sha1_with_mode_1() + - sha1_name.c: hide get_sha1_with_context_1() ugliness - sha1_name.c: indentation fix -Teaches the object name parser that a "git describe" output is -always a commit object, to prolong the lifetime of abbreviated -object name in it. - -It has a handful of tests that expect failure and show directions -for a couple of enhancement ideas. - -Will merge to 'next'. +Teaches the object name parser things like a "git describe" output +is always a commit object, "A" in "git log A" must be a committish, +and "A" and "B" in "git log A...B" both must be committish, etc., to +prolong the lifetime of abbreviated object names. * jk/version-string-dependency (2012-06-20) 11 commits - Makefile: move GIT-VERSION-FILE dependencies closer to use @@ -437,10 +344,11 @@ Will merge to 'next'. - Makefile: fold MISC_H into LIB_H - Makefile: sort LIB_H list -Will keep in 'pu' to give Peff and Jonathan to work out improvements -for a week or so. +Will keep in 'pu' to give Peff and Jonathan to work out improvements. -* jn/perl-makemaker-leading-paths (2012-06-15) 1 commit +* jn/perl-makemaker-leading-paths (2012-06-29) 2 commits + (merged to 'next' on 2012-06-29 at 0f17059) + + perl/Makefile: Fix a missing double-quote (merged to 'next' on 2012-06-28 at 286d854) + perl/Makefile: move "mkdir -p" to module installation loop for maintainability