Browse Source

What's cooking (2012/07 #01)

todo
Junio C Hamano 13 years ago
parent
commit
82f5aa1676
  1. 428
      whats-cooking.txt

428
whats-cooking.txt

@ -1,136 +1,118 @@ @@ -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 <cmd>"

Teach "-x <cmd>" to "rebase -i" to insert "exec <cmd>" 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. @@ -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. @@ -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. @@ -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 :-(. @@ -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'. @@ -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 <repo file> <external file>' finds changes
@ -393,10 +287,11 @@ the cloning to the specified branch. @@ -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 @@ -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=<prefix>
- 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'. @@ -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


Loading…
Cancel
Save