-Subject: What's cooking in git.git (Jul 2008, issue #04; Wed, 09)
+Subject: What's cooking in git.git (Jul 2008, issue #05; Sun, 13)
-What's cooking in git.git (Jul 2008, issue #04; Wed, 09)
+What's cooking in git.git (Jul 2008, issue #05; Sun, 13)
--------------------------------------------------------
Here are the topics that have been cooking. Commits prefixed
in 'next'.
The topics list the commits in reverse chronological order. The topics
-meant to be applied to the maintenance series have "maint-" in their
-names.
+meant to be merged to the maintenance series have "maint-" in their names.
-It already is beginning to become clear what 1.6.0 will look like. What's
-already in 'next' all are well intentioned (I do not guarantee they are
-already bug-free --- that is what cooking them in 'next' is for) and are
-good set of feature enhancements. Bigger changes will be:
+I think most of the important stuff is already in 'next'. Let's start
+talking about closing the merge window for 1.6.0.
- * Port for MinGW.
+----------------------------------------------------------------
+[New Topics]
- * With the default Makefile settings, most of the programs will be
- installed outside your $PATH, except for "git", "gitk", "git-gui" and
- some server side programs that need to be accessible for technical
- reasons. Invoking a git subcommand as "git-xyzzy" from the command
- line has been deprecated since early 2006 (and officially announced in
- 1.5.4 release notes); use of them from your scripts after adding
- output from "git --exec-path" to the $PATH will still be supported in
- 1.6.0, but users are again strongly encouraged to adjust their
- scripts to use "git xyzzy" form, as we will stop installing
- "git-xyzzy" hardlinks for built-in commands in later releases.
+* sb/dashless (Sun Jul 13 15:36:15 2008 +0200) 3 commits
+ - Make usage strings dash-less
+ - t/: Use "test_must_fail git" instead of "! git"
+ - t/test-lib.sh: exit with small negagive int is ok with
+ test_must_fail
+
+* mv/dashless (Fri Jul 11 02:12:06 2008 +0200) 4 commits
+ - make remove-dashes: apply to scripts and programs as well, not
+ just to builtins
+ - git-bisect: use dash-less form on git bisect log
+ - t1007-hash-object.sh: use quotes for the test description
+ - t0001-init.sh: change confusing directory name
+
+* sp/maint-bash-completion-optim (Mon Jul 14 00:22:03 2008 +0000) 1 commit
+ + bash completion: Append space after file names have been completed
+
+Early parts are already merged to 'master' and need to be merged down to
+maint as well, as this is about a "performance bug" that has been with us
+almost forever.
+
+* ag/rewrite_one (Sat Jul 12 22:00:57 2008 +0400) 1 commit
+ + Fix quadratic performance in rewrite_one.
+
+* sp/win (Fri Jul 11 18:52:42 2008 +0200) 3 commits
+ + We need to check for msys as well as Windows in add--interactive.
+ + Convert CR/LF to LF in tag signatures
+ + Fixed text file auto-detection: treat EOF character 032 at the end
+ of file as printable
+
+* js/merge-rr (Sat Jul 12 15:56:19 2008 +0100) 2 commits
+ + Move MERGE_RR from .git/rr-cache/ into .git/
+ + builtin-rerere: more carefully find conflict markers
- * git-merge will be rewritten in C.
+* sb/rerere-lib (Wed Jul 9 14:58:57 2008 +0200) 2 commits
+ + rerere: Separate libgit and builtin functions
+ + builtin-rerere: more carefully find conflict markers
- * default pack and idx versions will be updated as scheduled for some
- time ago.
+* ls/mailinfo (Sun Jul 13 20:30:12 2008 +0200) 3 commits
+ - git-mailinfo: use strbuf's instead of fixed buffers
+ - Add some useful functions for strbuf manipulation.
+ - Make some strbuf_*() struct strbuf arguments const.
- * GIT_CONFIG, which was only documented as affecting "git config", but
- actually affected all git commands, now only affects "git config".
- GIT_LOCAL_CONFIG, also only documented as affecting "git config" and
- not different from GIT_CONFIG in a useful way, is removed.
+* gi/cherry-cache (Sat Jul 12 20:14:51 2008 -0700) 1 commit
+ - cherry: cache patch-ids to avoid repeating work
-----------------------------------------------------------------
-[New Topics]
+This does not seem to pass tests even on its own.
-* xx/merge-in-c-into-next (Wed Jul 9 13:51:46 2008 -0700) 4 commits
- + Teach git-merge -X<option> again.
- + Merge branch 'jc/merge-theirs' into xx/merge-in-c-into-next
- + builtin-merge.c: use parse_options_step() "incremental parsing"
- machinery
- + Merge branch 'ph/parseopt-step-blame' into xx/merge-in-c-into-next
+* js/maint-pretty-mailmap (Sat Jul 12 00:28:18 2008 +0100) 1 commit
+ + Add pretty format %aN which gives the author name, respecting
+ .mailmap
-I've described what this is in a separate message.
+* js/more-win (Sun Jul 13 22:31:23 2008 +0200) 6 commits
+ - Allow add_path() to add non-existent directories to the path
+ - Allow the built-in exec path to be relative to the command
+ invocation path
+ - Fix relative built-in paths to be relative to the command
+ invocation
+ + help (Windows): Display HTML in default browser using Windows'
+ shell API
+ + help.c: Add support for htmldir relative to git_exec_path()
+ + Move code interpreting path relative to exec-dir to new function
+ system_path()
+
+The earlier parts are obvious; Dscho seemed to have some comments on the
+later ones that are in 'pu'.
+
+* lw/gitweb (Fri Jul 11 03:11:48 2008 +0200) 3 commits
+ - gitweb: use new Git::Repo API, and add optional caching
+ - Add new Git::Repo API
+ - gitweb: add test suite with Test::WWW::Mechanize::CGI
+
+This does not pass t9710, at least for me X-<.
+
+----------------------------------------------------------------
+[Will merge to master soon]
+
+* jc/rebase-orig-head (Tue Jul 8 00:12:22 2008 -0400) 2 commits
+ + Documentation: mention ORIG_HEAD in am, merge, and rebase
+ + Teach "am" and "rebase" to mark the original position with
+ ORIG_HEAD
* jc/branch-merged (Tue Jul 8 17:55:47 2008 -0700) 3 commits
+ branch --merged/--no-merged: allow specifying arbitrary commit
This builds on top of the parse-options enhancement series that
has been cooking in 'next' for some time.
+* om/rerere-careful (Mon Jul 7 14:42:48 2008 +0200) 1 commit
+ + builtin-rerere: more carefully find conflict markers
+
+* ls/maint-mailinfo-patch-label (Thu Jul 10 23:41:33 2008 +0200) 1 commit
+ + git-mailinfo: Fix getting the subject from the in-body [PATCH]
+ line
+
+----------------------------------------------------------------
+[Actively Cooking]
+
+* xx/merge-in-c-into-next (Wed Jul 9 13:51:46 2008 -0700) 4 commits
+ + Teach git-merge -X<option> again.
+ + Merge branch 'jc/merge-theirs' into xx/merge-in-c-into-next
+ + builtin-merge.c: use parse_options_step() "incremental parsing"
+ machinery
+ + Merge branch 'ph/parseopt-step-blame' into xx/merge-in-c-into-next
+
+I've described what this is in a separate message.
+
* rs/imap (Wed Jul 9 22:29:02 2008 +0100) 5 commits
- + Documentation: Improve documentation for git-imap-send(1)
- + imap-send.c: more style fixes
- + imap-send.c: style fixes
- + git-imap-send: Support SSL
- + git-imap-send: Allow the program to be run from subdirectories of
+ - Documentation: Improve documentation for git-imap-send(1)
+ - imap-send.c: more style fixes
+ - imap-send.c: style fixes
+ - git-imap-send: Support SSL
+ - git-imap-send: Allow the program to be run from subdirectories of
a git tree
-* om/rerere-careful (Mon Jul 7 14:42:48 2008 +0200) 1 commit
- + builtin-rerere: more carefully find conflict markers
+Some people seem to prefer having this feature available also with gnutls.
+If such a patch materializes soon, that would be good, but otherwise I'll
+merge this as-is to 'next'. Such an enhancement can be done in-tree on
+top of this series.
+
+* jc/merge-theirs (Mon Jun 30 22:18:57 2008 -0700) 5 commits
+ + Make "subtree" part more orthogonal to the rest of merge-
+ recursive.
+ + Teach git-pull to pass -X<option> to git-merge
+ + Teach git-merge to pass -X<option> to the backend strategy module
+ + git-merge-recursive-{ours,theirs}
+ + git-merge-file --ours, --theirs
+
+Punting a merge by discarding your own work in conflicting parts but still
+salvaging the parts that are cleanly automerged. It is likely that this
+will result in nonsense mishmash, but somehow often people want this, so
+here they are. The interface to the backends is updated so that you can
+say "git merge -Xours -Xsubtree=foo/bar/baz -s recursive other" now.
+
+* mv/merge-in-c (Sun Jul 13 08:13:55 2008 +0000) 19 commits
+ + reduce_heads(): thinkofix
+ + Add a new test for git-merge-resolve
+ + t6021: add a new test for git-merge-resolve
+ + Teach merge.log to "git-merge" again
+ + Build in merge
+ + Fix t7601-merge-pull-config.sh on AIX
+ + git-commit-tree: make it usable from other builtins
+ + Add new test case to ensure git-merge prepends the custom merge
+ message
+ + Add new test case to ensure git-merge reduces octopus parents when
+ possible
+ + Introduce reduce_heads()
+ + Introduce get_merge_bases_many()
+ + Add new test to ensure git-merge handles more than 25 refs.
+ + Introduce get_octopus_merge_bases() in commit.c
+ + git-fmt-merge-msg: make it usable from other builtins
+ + Move read_cache_unmerged() to read-cache.c
+ + Add new test to ensure git-merge handles pull.twohead and
+ pull.octopus
+ + Move parse-options's skip_prefix() to git-compat-util.h
+ + Move commit_list_count() to commit.c
+ + Move split_cmdline() to alias.c
+
+Sverre seems to have a yet another fixup on top of this that came late and
+I haven't looked at.
----------------------------------------------------------------
-[Will merge to master soon]
+[Graduated to "master"]
* js/pick-root (Fri Jul 4 16:19:52 2008 +0100) 1 commit
+ Allow cherry-picking root commits
Makes the "your branch is ahead of the tracked one by N commits" logic and
messages available to other commands; status and branch are updated.
-----------------------------------------------------------------
-[Actively Cooking]
-
-* jc/rebase-orig-head (Tue Jul 8 00:12:22 2008 -0400) 2 commits
- + Documentation: mention ORIG_HEAD in am, merge, and rebase
- + Teach "am" and "rebase" to mark the original position with
- ORIG_HEAD
-
* ph/parseopt-step-blame (Wed Jul 9 23:38:34 2008 +0200) 18 commits
+ revisions: refactor handle_revision_opt into parse_revision_opt.
+ git-shortlog: migrate to parse-options partially.
except for the last two which I only looked at the patch and have not
used heavily in production yet.
-* jc/merge-theirs (Mon Jun 30 22:18:57 2008 -0700) 5 commits
- + Make "subtree" part more orthogonal to the rest of merge-
- recursive.
- + Teach git-pull to pass -X<option> to git-merge
- + Teach git-merge to pass -X<option> to the backend strategy module
- + git-merge-recursive-{ours,theirs}
- + git-merge-file --ours, --theirs
-
-Punting a merge by discarding your own work in conflicting parts but still
-salvaging the parts that are cleanly automerged. It is likely that this
-will result in nonsense mishmash, but somehow often people want this, so
-here they are. The interface to the backends is updated so that you can
-say "git merge -Xours -Xsubtree=foo/bar/baz -s recursive other" now.
-
-* mv/merge-in-c (Mon Jul 7 19:24:20 2008 +0200) 15 commits
- + Build in merge
- + Fix t7601-merge-pull-config.sh on AIX
- + git-commit-tree: make it usable from other builtins
- + Add new test case to ensure git-merge prepends the custom merge
- message
- + Add new test case to ensure git-merge reduces octopus parents when
- possible
- + Introduce reduce_heads()
- + Introduce get_merge_bases_many()
- + Add new test to ensure git-merge handles more than 25 refs.
- + Introduce get_octopus_merge_bases() in commit.c
- + git-fmt-merge-msg: make it usable from other builtins
- + Move read_cache_unmerged() to read-cache.c
- + Add new test to ensure git-merge handles pull.twohead and
- pull.octopus
- + Move parse-options's skip_prefix() to git-compat-util.h
- + Move commit_list_count() to commit.c
- + Move split_cmdline() to alias.c
-
-----------------------------------------------------------------
-[Graduated to "master"]
-
-* js/apply-root (Sun Jul 6 18:36:01 2008 -0700) 3 commits
- + git-apply --directory: make --root more similar to GNU diff
- + apply --root: thinkofix.
- + Teach "git apply" to prepend a prefix with "--root=<root>"
-
-* jc/reflog-expire (Sat Jun 28 22:24:49 2008 -0700) 2 commits
- + Make default expiration period of reflog used for stash infinite
- + Per-ref reflog expiry configuration
-
-As 1.6.0 will be a good time to make backward incompatible changes, the
-tip commit makes the default expiry period of stash 'never', unless you
-configure them to expire explicitly using gc.refs/stash.* variables.
-Needs consensus, but I am guessing that enough people would want stash
-that does not expire.
-
-* jk/pager-config (Thu Jul 3 07:46:57 2008 -0400) 1 commit
- + Allow per-command pager config
-
----------------------------------------------------------------
[On Hold]
Another fix is needed to git-prune so that it ignores grafts but treats
commits that are mentioned in grafts as reachable.
-* jc/blame (Wed Jun 4 22:58:40 2008 -0700) 7 commits
+* jc/blame (Wed Jun 4 22:58:40 2008 -0700) 2 commits
- blame: show "previous" information in --porcelain/--incremental
format
- git-blame: refactor code to emit "porcelain format" output
- + git-blame --reverse
- + builtin-blame.c: allow more than 16 parents
- + builtin-blame.c: move prepare_final() into a separate function.
- + rev-list --children
- + revision traversal: --children option
-The blame that finds where each line in the original lines moved to. This
-may help a GSoC project that wants to gather statistical overview of the
-history. The final presentation may need tweaking (see the log message of
-the commit ""git-blame --reverse" on the series).
+This is for peeling to see what's behind the blamed commit, which may or
+may not help applications like gitweb.
-The tip two commits are for peeling to see what's behind the blamed
-commit, which we should be able to separate out into an independent topic
-from the rest.