From: Junio C Hamano Date: Tue, 3 Jul 2012 23:05:21 +0000 (-0700) Subject: What's cooking (2012/07 #01) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82f5aa167682bea5fd9061de7d66423d9fa71a64;p=thirdparty%2Fgit.git What's cooking (2012/07 #01) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 22abfc6c15..6fc9bee8c5 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,136 +1,118 @@ 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] + +* 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 + +"git blame" did not try to make sure the abbreviated commit object +names in its output are unique. + +* jk/push-delete-ref-error-message (2012-07-03) 1 commit + - push: don't guess at qualifying remote refs on deletion + +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. -------------------------------------------------- -[New Topics] +[Stalled] + +* db/vcs-svn (2012-06-01) 6 commits + - vcs-svn: drop no-op reset methods + - vcs-svn: fix signedness warnings + - vcs-svn: prefer strstr over memmem + - vcs-svn: prefer constcmp to prefixcmp + - vcs-svn: simplify cleanup in apply_one_window() + - vcs-svn: fix clang-analyzer error + +Waiting for Jonathan's clean-up offered earlier. + +* jc/apply-3way (2012-06-13) 19 commits + - apply --3way: tests + - apply: document --3way option + - apply: allow rerere() upon --3way results + - apply: register conflicted stages to the index + - apply: --3way with add/add conflict + - apply: move verify_index_match() higher + - apply: plug the three-way merge logic in + - apply: fall back on three-way merge + - apply: accept -3/--3way command line option + - apply: move "already exists" logic to check_to_create() + - apply: move check_to_create_blob() closer to its sole caller + - apply: further split load_preimage() + - apply: refactor "previous patch" logic + - apply: split load_preimage() helper function out + - apply: factor out checkout_target() helper function + - apply: refactor read_file_or_gitlink() + - apply: clear_image() clears things a bit more + - apply: a bit more comments on PATH_TO_BE_DELETED + - apply: fix an incomplete comment in check_patch() + +"git apply" learns to wiggle the base version and perform three-way merge +when a patch does not exactly apply to the version you have. + +Will merge to 'next' after reading it over once again. + +* jc/maint-push-refs-all (2012-05-04) 2 commits + - get_fetch_map(): tighten checks on dest refs + - fetch/push: allow refs/*:refs/* + +Allows pushing and fetching refs/stash. +There still seem to be other bugs hiding (e.g. try pushing twice). + +Not ready. + +* jc/split-blob (2012-04-03) 6 commits + - chunked-object: streaming checkout + - chunked-object: fallback checkout codepaths + - bulk-checkin: support chunked-object encoding + - bulk-checkin: allow the same data to be multiply hashed + - new representation types in the packstream + - packfile: use varint functions + +Not ready. + +I finished the streaming checkout codepath, but as explained in +127b177 (bulk-checkin: support chunked-object encoding, 2011-11-30), +these are still early steps of a long and painful journey. At least +pack-objects and fsck need to learn the new encoding for the series +to be usable locally, and then index-pack/unpack-objects needs to +learn it to be used remotely. -* tb/sanitize-decomposed-utf-8-pathname (2012-06-25) 1 commit +Given that I heard a lot of noise that people want large files, and +that I was asked by somebody at GitTogether'11 privately for an +advice on how to pay developers (not me) to help adding necessary +support, I am somewhat dissapointed that the original patch series +that was sent almost two months ago still remains here without much +comments and updates from the developer community. I even made the +interface to the logic that decides where to split chunks easily +replaceable, and I deliberately made the logic in the original patch +extremely stupid to entice others, especially the "bup" fanboys, to +come up with a better logic, thinking that giving people an easy +target to shoot for, they may be encouraged to help out. The plan is +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 @@ -139,75 +121,71 @@ 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 step in the right direction. +should be a good first step in the right direction. Will merge to 'next'. * cw/no-detaching-an-unborn (2012-06-26) 1 commit - - git-checkout: disallow --detach on unborn branch + (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 +"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 + (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. -Will merge to 'next'. - * js/fast-export-paths-with-spaces (2012-06-27) 1 commit - - fast-export: quote paths with spaces + (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. -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 + (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. -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 + (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. - -Will merge to 'next'. +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 - - 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 + (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. -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 @@ -232,14 +210,15 @@ 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 - + (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 - - Allow help.htmlpath to be a URL prefix - - Add config variable to set HTML path for git-help --web + (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 @@ -269,87 +248,6 @@ one of its early operations. Needs to be eyeballed by people who run tests with exotic options like valgrind, --root=/dev/shm/somewhere, etc. --------------------------------------------------- -[Stalled] - -* db/vcs-svn (2012-06-01) 6 commits - - vcs-svn: drop no-op reset methods - - vcs-svn: fix signedness warnings - - vcs-svn: prefer strstr over memmem - - vcs-svn: prefer constcmp to prefixcmp - - vcs-svn: simplify cleanup in apply_one_window() - - vcs-svn: fix clang-analyzer error - -Waiting for Jonathan's clean-up offered earlier. - -* jc/apply-3way (2012-06-13) 19 commits - - apply --3way: tests - - apply: document --3way option - - apply: allow rerere() upon --3way results - - apply: register conflicted stages to the index - - apply: --3way with add/add conflict - - apply: move verify_index_match() higher - - apply: plug the three-way merge logic in - - apply: fall back on three-way merge - - apply: accept -3/--3way command line option - - apply: move "already exists" logic to check_to_create() - - apply: move check_to_create_blob() closer to its sole caller - - apply: further split load_preimage() - - apply: refactor "previous patch" logic - - apply: split load_preimage() helper function out - - apply: factor out checkout_target() helper function - - apply: refactor read_file_or_gitlink() - - apply: clear_image() clears things a bit more - - apply: a bit more comments on PATH_TO_BE_DELETED - - apply: fix an incomplete comment in check_patch() - -"git apply" learns to wiggle the base version and perform three-way merge -when a patch does not exactly apply to the version you have. - -Will merge to 'next' after reading it over once again. - -* jc/maint-push-refs-all (2012-05-04) 2 commits - - get_fetch_map(): tighten checks on dest refs - - fetch/push: allow refs/*:refs/* - -Allows pushing and fetching refs/stash. -There still seem to be other bugs hiding (e.g. try pushing twice). - -Not ready. - -* jc/split-blob (2012-04-03) 6 commits - - chunked-object: streaming checkout - - chunked-object: fallback checkout codepaths - - bulk-checkin: support chunked-object encoding - - bulk-checkin: allow the same data to be multiply hashed - - new representation types in the packstream - - packfile: use varint functions - -Not ready. - -I finished the streaming checkout codepath, but as explained in -127b177 (bulk-checkin: support chunked-object encoding, 2011-11-30), -these are still early steps of a long and painful journey. At least -pack-objects and fsck need to learn the new encoding for the series -to be usable locally, and then index-pack/unpack-objects needs to -learn it to be used remotely. - -Given that I heard a lot of noise that people want large files, and -that I was asked by somebody at GitTogether'11 privately for an -advice on how to pay developers (not me) to help adding necessary -support, I am somewhat dissapointed that the original patch series -that was sent almost two months ago still remains here without much -comments and updates from the developer community. I even made the -interface to the logic that decides where to split chunks easily -replaceable, and I deliberately made the logic in the original patch -extremely stupid to entice others, especially the "bup" fanboys, to -come up with a better logic, thinking that giving people an easy -target to shoot for, they may be encouraged to help out. The plan is -not working :-(. - --------------------------------------------------- -[Cooking] - * 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