To: git@vger.kernel.org
-Subject: What's cooking in git.git (Jul 2009, #02; Sun, 26)
-X-master-at: d8f7be2ebcb7e3ec40269080a9ab9a28bc06ba17
-X-next-at: 2b05f9bd0a9944bbaab9f24d305932a57e4735d4
+Subject: What's cooking in git.git (Jul 2009, #03; Wed, 29)
+X-master-at: e6580020057afd207b7cfb9c96905f99e13cfe4d
+X-next-at: 4719968c98d7ad8352bb14916c65c094842a980d
-What's cooking in git.git (Jul 2009, #02; Sun, 26)
+What's cooking in git.git (Jul 2009, #03; Wed, 29)
--------------------------------------------------
-These topics in 'next' (ones prefixed with '+') and 'pu' (ones prefixed
-with '.') will not be in 1.6.4 final, and are subject to be rewound once
-it happens.
+Here are the topics that have been cooking. Commits prefixed with '-' are
+only in 'pu' while commits prefixed with '+' are in 'next'. The ones
+marked with '.' do not appear in any of the branches, but I am still
+holding onto them.
-We have quite a few solid topics in 'next', so hopefully the next cycle
-would be shorter than usual. I'd propose to call it 1.6.5, and then make
-the one after that 1.7.0, which means that during the 1.6.5 cycle, 'next'
-will have the two incompatible "push" (actually, receive-pack) changes
-hitherto kept on hold in 'pu'.
+In preparation for rewinding 'next' after a major release, one topic was
+reverted and kicked back to 'pu' to give it a fresh start.
+
+After the 1.6.5 cycle, the next release will be 1.7.0, and we will push
+out the planned "push safety" change. 1.7.0 would be a good time to
+introduce "justifiable" changes that are not strictly backward compatible.
+
+During 1.6.5 cycle, 'next' will hold topics meant for 1.6.5 and 1.7.0.
+I've already merged the "diff --exit-code --ignore-whitespace" change and
+"push safety" change.
+
+I'll rewind 'next' sometime this weekend.
----------------------------------------------------------------
-[New Topics]
+[In 'next']
-* jk/show-tag (Sat Jul 18 06:14:37 2009 -0400) 2 commits
- + show: add space between multiple items
- + show: suppress extra newline when showing annotated tag
+* ne/futz-upload-pack (Wed Jun 10 01:50:18 2009 +0200) 1 commit
+ + Shift object enumeration out of upload-pack
+
+* js/run-command-updates (Sat Jul 4 21:26:43 2009 +0200) 6 commits
+ + receive-pack: remove unnecessary run_status report
+ + run_command: report failure to execute the program, but optionally
+ don't
+ + run_command: encode deadly signal number in the return value
+ + run_command: report system call errors instead of returning error
+ codes
+ + run_command: return exit code as positive value
+ + MinGW: simplify waitpid() emulation macros
+
+* sb/maint-pull-rebase (Sun Jul 19 09:45:16 2009 +0200) 2 commits
+ + pull: support rebased upstream + fetch + pull --rebase
+ + t5520-pull: Test for rebased upstream + fetch + pull --rebase
+
+* jc/1.7.0-diff-whitespace-only-status (Sat May 23 01:15:35 2009 -0700) 2 commits
+ + diff: Rename QUIET internal option to QUICK
+ + diff: change semantics of "ignore whitespace" options
+
+This changes exit code from "git diff --ignore-whitespace" and friends
+when there is no actual output. It is a backward incompatible change, but
+we could argue that it is a bugfix.
+
+* jc/1.7.0-push-safety (Mon Feb 9 00:19:46 2009 -0800) 2 commits
+ + Refuse deleting the current branch via push
+ + Refuse updating the current branch in a non-bare repository via
+ push
-Didn't look bad at all, but is not pressing either.
+This is old 'jc/deny-delete-current-1.7.0' and 'jc/1.7.0-push-safety'
+topics redone.
+
+* sb/read-tree (Thu Jun 25 22:14:10 2009 -0700) 2 commits
+ + read-tree: migrate to parse-options
+ + read-tree: convert unhelpful usage()'s to helpful die()'s
* sb/parse-options (Tue Jul 7 22:15:41 2009 -0700) 4 commits
+ prune-packed: migrate to parse-options
+ verify-tag: migrate to parse-options
+ write-tree: migrate to parse-options
+Parse-options migration; should be in 'master' soonish.
+
* mk/grep-max-depth (Wed Jul 22 19:52:15 2009 +0200) 1 commit
+ grep: Add --max-depth option.
-* jn/gitweb-blame (Sat Jul 25 00:44:10 2009 +0200) 10 commits
- - gitweb: Create links leading to 'blame_incremental' using
- JavaScript
- - gitweb: Incremental blame (proof of concept)
- - gitweb: Add optional "time to generate page" info in footer
- - gitweb: Add -partial_query option to href() subroutine
- - gitweb: Use light/dark for class names also in 'blame' view
- - gitweb: Add author initials in 'blame' view, a la "git gui blame"
- - gitweb: Mark commits with no "previous" in 'blame' view
- - gitweb: Use "previous" header of git-blame -p in 'blame' view
- - gitweb: Mark boundary commits in 'blame' view
- - gitweb: Make .error style generic
+* cc/replace (Wed May 27 07:14:09 2009 +0200) 14 commits
+ + t6050: check pushing something based on a replaced commit
+ + Documentation: add documentation for "git replace"
+ + Add git-replace to .gitignore
+ + builtin-replace: use "usage_msg_opt" to give better error messages
+ + parse-options: add new function "usage_msg_opt"
+ + builtin-replace: teach "git replace" to actually replace
+ + Add new "git replace" command
+ + environment: add global variable to disable replacement
+ + mktag: call "check_sha1_signature" with the replacement sha1
+ + replace_object: add a test case
+ + object: call "check_sha1_signature" with the replacement sha1
+ + sha1_file: add a "read_sha1_file_repl" function
+ + replace_object: add mechanism to replace objects found in
+ "refs/replace/"
+ + refs: add a "for_each_replace_ref" function
-Still in flux/rfc.
+Does not seem to hurt normal operation without "replace". The basic idea
+should be easier and safer to use than the graft mechanism. I haven't
+tried the replacement myself, though.
* ns/init-mkdir (Sat Jul 25 06:59:28 2009 +0900) 1 commit
+ git init: optionally allow a directory argument
-Didn't look bad, but is not pressing either.
+Straightforward usability change. Should be in 'master' soonish.
+
+* mk/init-db-parse-options (Sun Jul 12 12:24:32 2009 +0200) 1 commit
+ + init-db: migrate to parse-options
+
+* jk/maint-show-tag (Sat Jul 18 06:14:37 2009 -0400) 2 commits
+ + show: add space between multiple items
+ + show: suppress extra newline when showing annotated tag
* jc/apply-epoch-patch (Fri Jul 10 18:38:08 2009 -0700) 1 commit
+ apply: notice creation/removal patches produced by GNU diff
-* sb/pull-rebase (Sun Jul 19 09:45:16 2009 +0200) 2 commits
- + pull: support rebased upstream + fetch + pull --rebase
- + t5520-pull: Test for rebased upstream + fetch + pull --rebase
+Better acceptance of some "GNU patch" output to create or remove files.
-* db/transport-shim (Sat Jul 25 13:51:40 2009 -0400) 3 commits
+----------------------------------------------------------------
+[In 'pu']
+
+* jp/symlink-dirs (Sun Jun 14 15:08:28 2009 +0200) 2 commits
+ - lstat_cache: guard against full match of length of 'name'
+ parameter
+ - Demonstrate bugs when a directory is replaced with a symlink
+
+James's test scripts to expose corner case bugs in the merge and branch
+switching machinery.
+
+* jh/vcs-cvs (Mon Jul 27 03:04:17 2009 +0200) 15 commits
+ - Introduce a 'marks <filename>' feature to the foreign transport
+ code
+ - Teach foreign transport code to perform the "capabilities" command
+ - Preliminary clarifications to git-vcs documentation
+ - fast-import: Add support for importing commit notes
+ - Add a transport implementation using git-vcs-* helpers
+ - Allow programs to not depend on remotes having urls
+ - Use a function to determine whether a remote is valid
+ - Add specification of git-vcs-* helper programs
+ - Merge branch 'db/transport-shim' into jh/vcs-cvs
- git-http-fetch: not a builtin
- Use an external program to implement fetching with curl
- Add support for external programs for handling native fetches
+ - Add option for using a foreign VCS
+ - Document details of transport function APIs
+ - Allow late reporting of fetched hashes
-Interesting as a concept. I saw its ls-remote segfault on me, though.
-Hopefully will mature by 1.6.5 final.
-
-* pb/tracking (Thu Jul 16 16:26:15 2009 -0500) 7 commits
- + branch.c: if remote is not config'd for branch, don't try delete
- push config
- + branch, checkout: introduce autosetuppush
- + move deletion of merge configuration to branch.c
- + remote: add per-remote autosetupmerge and autosetuprebase
- configuration
- + introduce a struct tracking_config
- + branch: install_branch_config and struct tracking refactoring
- + config: allow false and true values for branch.autosetuprebase
-
-After some discussion, I suspect we may want to rewind this out of 'next'
-and start over with a fresh design.
-
-* mk/init-db-parse-options (Sun Jul 12 12:24:32 2009 +0200) 1 commit
- + init-db: migrate to parse-options
-
-* tr/reset-checkout-patch (Sat Jul 25 23:29:34 2009 +0200) 5 commits
- - Implement 'git stash save --patch'
- - Implement 'git checkout --patch'
- - Implement 'git reset --patch'
- - builtin-add: refactor the meat of interactive_add()
- - git-apply--interactive: Refactor patch mode code
-
-Still in flux/rfc.
-
-----------------------------------------------------------------
-[Stalled and may need help and prodding to go forward]
-
-* gp/maint-rebase-p-onto (Wed Jul 22 12:38:58 2009 -0400) 1 commit
- . Fix rebase -p --onto
+With its 6th patch replaced to keep the pathname syntax of the fast-import
+language, but without the commits near the tip of the old series.
-I'd say we should take this even if it means Dscho needs his rebase -p
-rewrite. It is not very pressing, so perhaps do so immediately after
-1.6.4 final.
+* db/transport-shim (Tue Jul 28 02:08:53 2009 -0400) 3 commits
+ - git-http-fetch: not a builtin
+ - Use an external program to implement fetching with curl
+ - Add support for external programs for handling native fetches
-* jh/notes (Sat May 16 13:44:17 2009 +0200) 5 commits
+* jh/notes (Wed Jul 29 04:25:26 2009 +0200) 8 commits
+ - t3302-notes-index-expensive: Speed up create_repo()
+ - fast-import: Add support for importing commit notes
+ - First draft of notes tree parser with support for fanout subtrees
- Teach "-m <msg>" and "-F <file>" to "git notes edit"
- Add an expensive test for git-notes
- Speed up git notes lookup
- Add a script to edit/inspect notes
- Introduce commit notes
-Dscho asked about the performance implications of this; I do not think I
-saw any progress on that yet...
-
-Will drop after 1.6.4 unless any further progress is seen.
-
-* ar/maint-1.6.2-merge-recursive-d-f (Mon May 11 21:25:36 2009 +0200) 2 commits
- - Fix for a merge where a branch has an F->D transition
- - Add a reminder test case for a merge with F/D transition
-
-Although the reported breakage is covered with the patch, Alex feels the
-solution unsatisfactory. Cleaning up D/F conflict handling in merge-recursive
-may be long overdue but seems to be a hard problem.
-
-* ps/blame (Thu Mar 12 21:30:03 2009 +1100) 1 commit
- - blame.c: start libifying the blame infrastructure
-
-A few minor point remains in this initial one.
-
-Will drop after 1.6.4 unless any further progress is seen.
-
-* jc/log-tz (Tue Mar 3 00:45:37 2009 -0800) 1 commit
- - Allow --date=local --date=other-format to work as expected
-
-The one I posted had a few corner-case bugs that was caught with the test
-suite; this one has them fixed. People did not like the UI so it is kept
-out of 'next'
-
-Will drop after 1.6.4 unless any further progress is seen.
-
-* jc/merge-convert (Mon Jan 26 16:45:01 2009 -0800) 1 commit
- - git-merge-file: allow converting the results for the work tree
-
-This is a feature waiting for a user.
-
-We did not give scripted Porcelains a way to say "this temporary file I am
-using for merging is for this path, so use the core.autocrlf and attributes
-rules for that final path". Instead, merge-file simply wrote out the
-data in the canonical repository representation.
-
-rerere has the same issue, but it is a lot worse. It reads the three
-files (preimage, postimage and thisimage) from the work tree in the work
-tree representation, merges them without converting them to the canonical
-representation first but inserts the conflict markers with the canonical
-representation and writes the resulting mess out. It needs to be fixed to
-read with convert_to_git(), merge them while they are still in the
-canonical representation and possibly add conflict markers, and then write
-the results out after convert_to_working_tree(). It also needs to write
-in binary mode as well.
-
-Will drop after 1.6.4 unless any further progress is seen.
+jh/vcs-cvs topic needs to be rebuilt, merging this instead of having its
+own copy of "fast-import: Add support for importing commit notes".
* db/foreign-scm (Tue Mar 24 23:04:12 2009 -0400) 3 commits
- Add option for using a foreign VCS
- Document details of transport function APIs
- Allow late reporting of fetched hashes
-I have a feeling that the recent transport-shim series from the same
-author could supersede this one.
-
-* hv/cvsps-tests (Sun Apr 5 01:40:50 2009 -0700) 8 commits
- - t/t9600: remove exit after test_done
- - cvsimport: extend testcase about patchset order to contain
- branches
- - cvsimport: add test illustrating a bug in cvsps
- - Add a test of "git cvsimport"'s handling of tags and branches
- - Add some tests of git-cvsimport's handling of vendor branches
- - Test contents of entire cvsimported "master" tree contents
- - Use CVS's -f option if available (ignore user's ~/.cvsrc file)
- - Start a library for cvsimport-related tests
-
-----------------------------------------------------------------
-[Not actively cooking]
-
-* js/run-command-updates (Sat Jul 4 21:26:43 2009 +0200) 6 commits
- + receive-pack: remove unnecessary run_status report
- + run_command: report failure to execute the program, but optionally
- don't
- + run_command: encode deadly signal number in the return value
- + run_command: report system call errors instead of returning error
- codes
- + run_command: return exit code as positive value
- + MinGW: simplify waitpid() emulation macros
-
-Will merge after 1.6.4
-
* cc/sequencer-rebase-i (Fri Jun 26 23:08:46 2009 +0200) 4 commits
- rebase -i: use "git sequencer--helper --make-patch"
- sequencer: free memory used in "make_patch" function
- sequencer: add "make_patch" function to save a patch
- sequencer: add "builtin-sequencer--helper.c"
-* en/fast-export (Thu Jun 25 22:48:33 2009 -0600) 7 commits
- + fast-export: Document the fact that git-rev-list arguments are
- accepted
- + Add new fast-export testcases
- + fast-export: Add a --tag-of-filtered-object option for newly
- dangling tags
- + fast-export: Do parent rewriting to avoid dropping relevant
- commits
- + fast-export: Make sure we show actual ref names instead of
- "(null)"
- + fast-export: Omit tags that tag trees
- + fast-export: Set revs.topo_order before calling setup_revisions
-
-Shawn? Dscho?
-
-* jc/diff-whitespace-only-status (Sat May 23 01:15:35 2009 -0700) 2 commits
- + diff: Rename QUIET internal option to QUICK
- + diff: change semantics of "ignore whitespace" options
-
-Possibly merge during 1.6.5, or 1.7.0 since this is a semantics change.
-
-* sb/read-tree (Thu Jun 25 22:14:10 2009 -0700) 2 commits
- + read-tree: migrate to parse-options
- + read-tree: convert unhelpful usage()'s to helpful die()'s
+I do not know how this will interact with what Dscho has been doing.
-Will merge after 1.6.4
+* jc/mailinfo-remove-brackets (Wed Jul 15 15:31:12 2009 -0700) 1 commit
+ - mailinfo: -b option keeps [bracketed] strings that is not a
+ [PATCH] marker
-* ne/futz-upload-pack (Wed Jun 10 01:50:18 2009 +0200) 1 commit
- + Shift object enumeration out of upload-pack
+* jn/gitweb-blame (Sat Jul 25 00:44:10 2009 +0200) 10 commits
+ - gitweb: Create links leading to 'blame_incremental' using
+ JavaScript
+ - gitweb: Incremental blame (proof of concept)
+ - gitweb: Add optional "time to generate page" info in footer
+ - gitweb: Add -partial_query option to href() subroutine
+ - gitweb: Use light/dark for class names also in 'blame' view
+ - gitweb: Add author initials in 'blame' view, a la "git gui blame"
+ - gitweb: Mark commits with no "previous" in 'blame' view
+ - gitweb: Use "previous" header of git-blame -p in 'blame' view
+ - gitweb: Mark boundary commits in 'blame' view
+ - gitweb: Make .error style generic
-Will merge after 1.6.4
+There may have been updates during 1.6.4-rc period that I missed.
-* cc/replace (Wed May 27 07:14:09 2009 +0200) 14 commits
- + t6050: check pushing something based on a replaced commit
- + Documentation: add documentation for "git replace"
- + Add git-replace to .gitignore
- + builtin-replace: use "usage_msg_opt" to give better error messages
- + parse-options: add new function "usage_msg_opt"
- + builtin-replace: teach "git replace" to actually replace
- + Add new "git replace" command
- + environment: add global variable to disable replacement
- + mktag: call "check_sha1_signature" with the replacement sha1
- + replace_object: add a test case
- + object: call "check_sha1_signature" with the replacement sha1
- + sha1_file: add a "read_sha1_file_repl" function
- + replace_object: add mechanism to replace objects found in
- "refs/replace/"
- + refs: add a "for_each_replace_ref" function
+* tr/reset-checkout-patch (Tue Jul 28 23:20:11 2009 +0200) 5 commits
+ - Implement 'git stash save --patch'
+ - Implement 'git checkout --patch'
+ - Implement 'git reset --patch'
+ - builtin-add: refactor the meat of interactive_add()
+ - git-apply--interactive: Refactor patch mode code
-* jc/deny-delete-current-1.7.0 (Mon Feb 9 00:19:46 2009 -0800) 1 commit
- - receive-pack: default receive.denyDeleteCurrent to refuse
+* jc/log-tz (Tue Mar 3 00:45:37 2009 -0800) 1 commit
+ - Allow --date=local --date=other-format to work as expected
-* jc/refuse-push-to-current-1.7.0 (Wed Feb 11 02:28:03 2009 -0800) 1 commit
- - Refuse updating the current branch in a non-bare repository via
- push
+* pb/tracking (Thu Jul 16 16:26:15 2009 -0500) 7 commits
+ - branch.c: if remote is not config'd for branch, don't try delete
+ push config
+ - branch, checkout: introduce autosetuppush
+ - move deletion of merge configuration to branch.c
+ - remote: add per-remote autosetupmerge and autosetuprebase
+ configuration
+ - introduce a struct tracking_config
+ - branch: install_branch_config and struct tracking refactoring
+ - config: allow false and true values for branch.autosetuprebase
-These are for 1.7.0, but the messages when they trigger together may need
-to be rethought. Will be kept in 'next' during 1.6.5 cycle.
+This has been reverted from 'next' for now to give it a fresh start.
----------------------------------------------------------------
[Dropped]
-* ae/maint-mailinfo-rm-only-one-patch-marker (Mon Jun 29 11:55:51 2009 +0200) 1 commit
- - mailinfo: Remove only one set of square brackets
+* ar/maint-1.6.2-merge-recursive-d-f (Mon May 11 21:25:36 2009 +0200) 2 commits
+ . Fix for a merge where a branch has an F->D transition
+ . Add a reminder test case for a merge with F/D transition
-* lt/read-directory (Fri May 15 12:01:29 2009 -0700) 3 commits
- . Add initial support for pathname conversion to UTF-8
- . read_directory(): infrastructure for pathname character set
- conversion
- . Add 'fill_directory()' helper function for directory traversal
+The fix the author hinted iffy is dropped for now, but the test case is
+already in 'master' to remind us.
-It appears that we may want to settle with a MacOS X specific conversion,
-if somebody really cares enough.