|| ||Junio C Hamano <gitster-AT-pobox.com> |
|| ||git-AT-vger.kernel.org |
|| ||What's cooking in git.git (May 2012, #01; Wed, 2) |
|| ||Wed, 02 May 2012 15:12:43 -0700|
|| ||Article, Thread
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 eighth batch of topics in this cycle is now in 'master', the topics in
'next' all look ready, and we do not have many topics left in 'pu'. The
cycle is going well ;-)
Except for folks with libsvn-perl 1.6.x where x is greater than 9; we know
how the fix should look like, and we will have it in tomorrow's integration
You can find the changes described here in the integration branches of the
repositories listed at
* jk/maint-tformat-with-z (2012-05-01) 2 commits
(merged to 'next' on 2012-05-02 at a0f8af7)
+ log-tree: the previous one is still not quite right
+ log-tree: use custom line terminator in line termination mode
"log -z --pretty=tformat:..." does not terminate each record with NUL
and this is a beginning of an attempt to fix it. It still is not right
but the patch does not make externally observable behaviour worse.
Will merge to 'master'.
* nd/stream-to-archive (2012-04-30) 9 commits
- archive-zip: streaming for deflated files
- archive-zip: streaming for stored files
- archive-zip: factor out helpers for writing sizes and CRC
- archive-zip: remove uncompressed_size
- streaming: void pointer instead of char pointer
- archive-tar: stream large blobs to tar file
- archive: delegate blob reading to backend
- archive-tar: unindent write_tar_entry by one level
- archive-tar: turn write_tar_entry into blob-writing only
Stream large blobs directly out to archive files without slurping
everything in memory first. The streaming version of "tar" may need
Expecting another reroll; the second version already had review exchanges
so I didn't pick it up.
* jk/maint-push-progress (2012-05-01) 3 commits
(merged to 'next' on 2012-05-01 at 2286130)
+ t5541: test more combinations of --progress
+ teach send-pack about --[no-]progress
+ send-pack: show progress when isatty(2)
"git push" over smart-http lost progress output and this resurrects it.
Will merge to 'master'.
* zj/diff-empty-chmod (2012-05-02) 5 commits
(merged to 'next' on 2012-05-02 at fb8cb11)
+ t4006: Windows do not have /dev/zero
(merged to 'next' on 2012-05-01 at 5a92787)
+ diff --stat: do not run diff on indentical files
+ diff --stat: report mode-only changes for binary files like text files
+ tests: check --[short]stat output after chmod
+ test: modernize style of t4006
"git diff --stat" used to fully count a binary file with modified
execution bits whose contents is unmodified, which was not right.
Will merge to 'master'.
[Graduated to "master"]
* ab/i18n (2012-04-30) 3 commits
(merged to 'next' on 2012-04-30 at 5e7620d)
+ git-commit: remove lego in i18n messages
+ git-commit: remove lego in i18n messages
+ git-branch: remove lego in i18n messages
Fixes some constructs that build messages meant for i18n by concatenating
pieces of strings.
* jc/index-v4 (2012-04-27) 12 commits
(merged to 'next' on 2012-04-29 at ed71f9c)
+ index-v4: document the entry format
+ unpack-trees: preserve the index file version of original
(merged to 'next' on 2012-04-19 at 5e4b029)
+ update-index: upgrade/downgrade on-disk index version
+ read-cache.c: write prefix-compressed names in the index
+ read-cache.c: read prefix-compressed names in index on-disk version v4
+ read-cache.c: move code to copy incore to ondisk cache to a helper function
+ read-cache.c: move code to copy ondisk to incore cache to a helper function
+ read-cache.c: report the header version we do not understand
+ read-cache.c: make create_from_disk() report number of bytes it consumed
+ read-cache.c: allow unaligned mapping of the index file
+ cache.h: hide on-disk index details
+ varint: make it available outside the context of pack
(this branch is tangled with jc/split-blob.)
Trivially shrinks the on-disk size of the index file to save both I/O and
checksum overhead. It even comes with a technical doc updates.
The topic should give a solid base to build on further updates, with the
code refactoring in its earlier parts, and the backward compatibility
mechanism in its later parts.
* jc/rerere-train (2012-04-30) 1 commit
(merged to 'next' on 2012-04-30 at 0cc4308)
+ contrib/rerere-train: use installed git-sh-setup
A script written long time ago proved to be useful this week for me ;-)
with a minor tweak.
* jk/doc-asciidoc-inline-literal (2012-04-26) 1 commit
(merged to 'next' on 2012-04-30 at a52b4e6)
+ docs: stop using asciidoc no-inline-literal
Our documentation was written for an ancient version of AsciiDoc,
making the source not very readable.
* jk/maint-config-bogus-section (2012-04-25) 1 commit
(merged to 'next' on 2012-04-26 at 9919198)
+ config: reject bogus section names for --rename-section
"git config --rename-section" to rename an existing section into a
bogus one did not check the new name.
* jk/maint-gitweb-test-use-sane-perl (2012-05-01) 2 commits
(merged to 'next' on 2012-05-01 at 88b3f80)
+ Consistently use perl from /usr/bin/ for scripts
+ t/gitweb-lib: use $PERL_PATH to run gitweb
When using a Perl script on a system where "perl" found on user's $PATH
could be ancient or otherwise broken, we allow builders to specify the
path to a good copy of Perl with $PERL_PATH. The gitweb test forgot to
use that Perl when running its test.
* ld/git-p4-tags-and-labels (2012-04-25) 7 commits
(merged to 'next' on 2012-04-25 at 8b959e5)
+ git p4: fix unit tests
(merged to 'next' on 2012-04-24 at bf55d92)
+ git p4: move verbose to base class
+ git p4: Ignore P4EDITOR if it is empty
+ git p4: Squash P4EDITOR in test harness
+ git p4: fix-up "import/export of labels to/from p4"
(merged to 'next' on 2012-04-15 at 1b1e9a1)
+ git p4: import/export of labels to/from p4
+ git p4: Fixing script editor checks
Support p4 labels by importing/exporting them as git tags.
* lp/diffstat-with-graph (2012-04-27) 8 commits
(merged to 'next' on 2012-04-30 at b301202)
+ t4052: work around shells unable to set COLUMNS to 1
+ Merge branch 'zj/mksh-columns-breakage' into lp/diffstat-with-graph
(merged to 'next' on 2012-04-23 at 8de0747)
+ Prevent graph_width of stat width from falling below min
+ t4052: Test diff-stat output with minimum columns
+ t4052: Adjust --graph --stat output for prefixes
+ Adjust stat width calculations to take --graph output into account
+ Add output_prefix_length to diff_options
+ t4052: test --stat output with --graph
(this branch uses zj/mksh-columns-breakage; is tangled with nd/columns.)
"log --graph" was not very friendly with "--stat" option and its output
had line breaks at wrong places.
* mm/simple-push (2012-04-24) 7 commits
(merged to 'next' on 2012-04-30 at 1a571d2)
+ push.default doc: explain simple after upstream
+ push: document the future default change for push.default (matching -> simple)
+ t5570: use explicit push refspec
+ push: introduce new push.default mode "simple"
+ t5528-push-default.sh: add helper functions
+ Undocument deprecated alias 'push.default=tracking'
+ Documentation: explain push.default option a bit more
(this branch is used by mm/push-default-switch-warning.)
New users tend to work on one branch at a time and push the result
out. The current and upstream modes of push is a more suitable default
mode than matching mode for these people, but neither is surprise-free
depending on how the project is set up. Introduce a "simple" mode that
is a subset of "upstream" but only works when the branch is named the same
between the remote and local repositories.
The plan is to make it the new default when push.default is not
* nd/i18n (2012-04-25) 11 commits
(merged to 'next' on 2012-04-30 at d8bbd7a)
+ help: replace underlining "help -a" headers using hyphens with a blank line
(merged to 'next' on 2012-04-24 at 07965a4)
+ i18n: bundle: mark strings for translation
+ i18n: index-pack: mark strings for translation
+ i18n: apply: update say_patch_name to give translators complete sentence
+ i18n: apply: mark strings for translation
+ i18n: remote: mark strings for translation
+ i18n: make warn_dangling_symref() automatically append \n
+ i18n: help: mark strings for translation
+ i18n: mark relative dates for translation
+ strbuf: convenience format functions with \n automatically appended
+ Makefile: feed all header files to xgettext
More message strings marked for i18n.
* nh/empty-rebase (2012-04-24) 4 commits
(merged to 'next' on 2012-04-24 at 91d2dfd)
+ git-rebase: add keep_empty flag
+ git-cherry-pick: Add test to validate new options
+ git-cherry-pick: Add keep-redundant-commits option
+ git-cherry-pick: add allow-empty option
"git rebase" learned to optionally keep commits that do not introduce
any change in the original history.
* pw/message-cleanup (2012-04-30) 2 commits
(merged to 'next' on 2012-04-30 at 703c0c4)
+ remove blank filename in error message
+ remove superfluous newlines in error messages
Many error/warning messages had extra trailing newlines that are
* pw/p4-various (2012-04-30) 4 commits
(merged to 'next' on 2012-04-30 at b20428c)
+ git p4: submit files with wildcards
+ git p4: fix writable file after rename or copy
+ git p4: test submit
+ git p4: bring back files in deleted client directory
Miscellaneous updates to "git p4".
* tr/xdiff-fast-hash (2012-05-01) 2 commits
(merged to 'next' on 2012-05-01 at 5155b98)
+ xdiff: choose XDL_FAST_HASH code on sizeof(long) instead of __WORDSIZE
(merged to 'next' on 2012-04-24 at ed693cf)
+ xdiff: load full words in the inner loop of xdl_hash_record
Use word-at-a-time comparison to find end of line or NUL (end of buffer),
borrowed from the linux-kernel discussion.
* zj/diff-stat-smaller-num-columns (2012-04-30) 1 commit
(merged to 'next' on 2012-05-01 at eb68d3b)
+ diff --stat: use less columns for change counts
Spend only minimum number of columns necessary to show the number of lines
in the output from "diff --stat", instead of always allocating 4 columns
even when showing changes that are much smaller than 1000 lines.
* zj/mksh-columns-breakage (2012-04-27) 1 commit
(merged to 'next' on 2012-04-30 at cce82a8)
+ test-lib: skip test with COLUMNS=1 under mksh
(this branch is used by lp/diffstat-with-graph and nd/columns.)
A broken shell may not let us set an environment value to an arbitrary
value, interfering with some of the tests. Introduce a test prerequisite
so that we can skip some tests on such a platform.
* nl/http-proxy-more (2012-04-26) 8 commits
- http: try an uppercase version of $proto_proxy
- http: fix proxy password passing
- http: fix proxy authentication
- http: rename HTTP_REAUTH to HTTP_AUTH_RETRY
- http: Avoid limit of retrying request only twice
- http: handle proxy authentication failure (error 407)
- http: handle proxy proactive authentication
- http: try http_proxy env var when http.proxy config option is not set
Still needs to address review comments from Peff, some of which were
partly addressed with later "fixup" patches queued here.
It probably is a good idea to re-roll the entire series.
* jc/run-hook-env-1 (2012-03-11) 1 commit
- run_hook(): enhance the interface to pass arbitrary environment
Updates run_hook() API to be much less specific to "commit". It would
only be useful if people start doing more interesting things with hooks.
* 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
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 :-(.
* mh/ref-api-lazy-loose (2012-04-26) 18 commits
- refs: read loose references lazily
- read_loose_refs(): eliminate ref_cache argument
- struct ref_dir: store a reference to the enclosing ref_cache
- search_for_subdir(): return (ref_dir *) instead of (ref_entry *)
- get_ref_dir(): add function for getting a ref_dir from a ref_entry
- read_loose_refs(): rename function from get_ref_dir()
- refs: wrap top-level ref_dirs in ref_entries
- find_containing_dir(): use strbuf in implementation of this function
- bisect: copy filename string obtained from git_path()
- do_for_each_reflog(): reuse strbuf across recursive function calls
- do_for_each_reflog(): use a strbuf to hold logfile name
- do_for_each_reflog(): return early on error
- get_ref_dir(): take the containing directory as argument
- refs.c: extract function search_for_subdir()
- get_ref_dir(): require that the dirname argument ends in '/'
- get_ref_dir(): rename "base" parameter to "dirname"
- get_ref_dir(): use a strbuf to hold refname
- get_ref_dir(): return early if directory cannot be read
Refs API is updated to lazily read sub-hierarchies of refs/ namespace,
so that we do not have to grab everything from the filesystem when we
are only interested in listing branches, for example.
This looked mostly sane. Did I miss "needs more work" review comments?
* nd/columns (2012-04-27) 10 commits
(merged to 'next' on 2012-04-30 at 93bb157)
+ tag: add --column
+ column: support piping stdout to external git-column process
+ status: add --column
+ branch: add --column
+ help: reuse print_columns() for help -a
+ column: add dense layout support
+ t9002: work around shells that are unable to set COLUMNS to 1
+ column: add columnar layout
+ Stop starting pager recursively
+ Add column layout skeleton and git-column
A couple of commands learn --column option to produce columnar output.
Will merge to 'master'.
* nd/threaded-index-pack (2012-04-19) 4 commits
- index-pack: disable threading if NO_PREAD is defined
- index-pack: support multithreaded delta resolving
- index-pack: split second pass obj handling into own function
- compat/win32/pthread.h: Add an pthread_key_delete() implementation
* th/difftool-diffall (2012-04-23) 8 commits
(merged to 'next' on 2012-05-02 at fdc9f60)
+ difftool: print list of valid tools with '--tool-help'
+ difftool: teach difftool to handle directory diffs
+ difftool: eliminate setup_environment function
+ difftool: stop appending '.exe' to git
+ difftool: remove explicit change of PATH
+ difftool: exit(0) when usage is printed
+ difftool: add '--no-gui' option
+ difftool: parse options using Getopt::Long
Rolls the two-directory-diff logic from diffall script (in contrib/) into
"git difftool" framework.
Will merge to 'master'.
* mm/push-default-switch-warning (2012-04-26) 2 commits
- t5541: warning message is given even with --quiet
- push: start warning upcoming default change for push.default
Will squash the two, but this has to wait for a few release cycles.
* cb/daemon-test-race-fix (2012-04-27) 2 commits
(merged to 'next' on 2012-04-27 at 84bbcf8)
+ Revert "git-daemon wrapper to wait until daemon is ready"
(merged to 'next' on 2012-04-24 at d5c30be)
+ git-daemon wrapper to wait until daemon is ready
Fix race condition between starting and waiting for git-daemon in the
Reverted from 'next' to replace it with js/daemon-test-race-fix.
to post comments)