What's cooking (2008/07 #03)

Junio C Hamano committed Aug 5, 2008 at 21:44 UTC ff9d22a66a47a9f5bb68f503bec0eec60c57c29c
1 file changed +111 -155
whats-cooking.txt
+111 -155
index 93ca0b044a..c646f43d62 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,6 +1,6 @@ -Subject: What's cooking in git.git (Jul 2008, issue #02; Sun, 06) +Subject: What's cooking in git.git (Jul 2008, issue #03; Mon, 07) -What's cooking in git.git (Jul 2008, issue #02; Sun, 06) +What's cooking in git.git (Jul 2008, issue #03; Mon, 07) -------------------------------------------------------- Here are the topics that have been cooking. Commits prefixed @@ -47,26 +47,49 @@ n ---------------------------------------------------------------- [New Topics] -* js/maint-daemon-syslog (Thu Jul 3 16:27:24 2008 +0100) 1 commit - - [PARKED improvement suggested not rolled in] git daemon: avoid - calling syslog() from a signal handler +* jc/rebase-orig-head (Mon Jul 7 00:16:38 2008 -0700) 1 commit + + Teach "am" and "rebase" to mark the original position with + ORIG_HEAD -This will eventually appear in 'maint'; currently parked on 'pu', thoug= -h. +* sb/sequencer (Tue Jul 1 04:38:34 2008 +0200) 4 commits + . Migrate git-am to use git-sequencer + . Add git-sequencer test suite (t3350) + . Add git-sequencer prototype documentation + . Add git-sequencer shell prototype -* jc/report-tracking (Sun Jul 6 02:54:56 2008 -0700) 5 commits - - branch -r -v: do not spit out garbage - + stat_tracking_info(): clear object flags used during counting - + git-branch -v: show the remote tracking statistics - + git-status: show the remote tracking statistics - + Refactor "tracking statistics" code used by "git checkout" +* 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. +* ab/bundle (Sat Jul 5 17:26:40 2008 -0400) 1 commit + + Teach git-bundle to read revision arguments from stdin like git- + rev-list. + +---------------------------------------------------------------- +[Will merge to master soon] + +* 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=3D<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 + +---------------------------------------------------------------- +[Actively Cooking] * sg/stash-k-i (Fri Jun 27 16:37:15 2008 +0200) 1 commit - - stash: introduce 'stash save --keep-index' option + + stash: introduce 'stash save --keep-index' option One weakness of our "partial commit" workflow support used to be that t= he @@ -76,11 +99,14 @@ state cannot be tested as a whole in the working tree. This allows you= to temporarily stash the remaining changes in the working tree so that the index state before running "stash save --keep-index" can be seen in the -working tree to be tested and then committed. A recommended workflow t= -o -use after that commit is made needs to be documented (and support needs= - to -be added if necessary). +working tree to be tested and then committed. + +* am/stash-branch (Mon Jul 7 02:50:10 2008 +0530) 2 commits + + Add a test for "git stash branch" + + Implement "git stash branch <newbranch> <stash>" + +Creates a new branch out of the stashed state, after returning from the +interrupt that forced you to create the stash in the first place. * tr/add-i-e (Thu Jul 3 00:00:00 2008 +0200) 3 commits + git-add--interactive: manual hunk editing mode @@ -89,60 +115,75 @@ be added if necessary). Adds 'e/dit' action to interactive add command. -* am/stash-branch (Thu Jul 3 11:46:05 2008 +0530) 1 commit - + Implement "git stash branch <newbranch> <stash>" +* jc/report-tracking (Sun Jul 6 02:54:56 2008 -0700) 5 commits + + branch -r -v: do not spit out garbage + + stat_tracking_info(): clear object flags used during counting + + git-branch -v: show the remote tracking statistics + + git-status: show the remote tracking statistics + + Refactor "tracking statistics" code used by "git checkout" -Creates a new branch out of the stashed state, after returning from the -interrupt that forced you to create the stash in the first place. +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. -* jc/grafts (Wed Jul 2 17:14:12 2008 -0700) 1 commit - - Ignore graft during object transfer [broken wrt shallow clones] +* 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 -Cloning or fetching from a repository from grafts did not send objects -that are hidden by grafts, but the commits in the resulting repository = -do -need these to pass fsck. This fixes object transfer to ignore grafts. +Punting a merge by discarding your own work in conflicting parts but st= +ill +salvaging the parts that are cleanly automerged. It is likely that thi= +s +will result in nonsense mishmash, but somehow often people want this, s= +o +here they are. The interface to the backends is updated so that you ca= +n +say "git merge -Xours -Xsubtree=3Dfoo/bar/baz -s recursive other" now. -Another fix is needed to git-prune so that it ignores grafts but treats -commits that are mentioned in grafts as reachable. +The -X<option> part may change, Dscho mentions that a single-letter -X +that take stuck option is against syntax rules, and I think he's right. -* jk/pager-config (Thu Jul 3 07:46:57 2008 -0400) 1 commit - - Allow per-command pager config +This is more "because we can", not "because we need to". + +* 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 ---------------------------------------------------------------- -[Will merge to master soon] +[Graduated to "master"] * js/import-zip (Mon Jun 30 19:50:44 2008 +0100) 1 commit + Add another fast-import example, this time for .zip files -* js/apply-root (Wed Jul 2 15:28:22 2008 -0700) 2 commits - + apply --root: thinkofix. - + Teach "git apply" to prepend a prefix with "--root=3D<root>" - * db/no-git-config (Mon Jun 30 03:37:47 2008 -0400) 1 commit + Only use GIT_CONFIG in "git config", not other programs -* 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. - * dr/ceiling (Mon May 19 23:49:34 2008 -0700) 4 commits + Eliminate an unnecessary chdir("..") + Add support for GIT_CEILING_DIRECTORIES + Fold test-absolute-path into test-path-utils + Implement normalize_absolute_path -This still feels "because we can", not "because we need to", but it cam= -e -from somebody who had the need to, and I do not think it hurts people -without the environment variable set. - * jc/rerere (Sun Jun 22 02:04:31 2008 -0700) 5 commits + rerere.autoupdate + t4200: fix rerere test @@ -153,85 +194,10 @@ without the environment variable set. A new configuration will allow paths that have been resolved cleanly by rerere to be updated in the index automatically. -To me, this is "because we can", but was something requested by Ingo, s= -o -presumably some people may feel it useful in their workflow. - ----------------------------------------------------------------- -[Actively Cooking] - -* mv/merge-in-c (Tue Jul 1 04:37:50 2008 +0200) 15 commits - - [REJECT -- over-abuse of path-list] 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 - -The last one is still not quite there, I am afraid. - ----------------------------------------------------------------- -[Graduated to "master"] +* js/maint-daemon-syslog (Thu Jul 3 16:27:24 2008 +0100) 1 commit + + git daemon: avoid calling syslog() from a signal handler -* j6t/mingw (Sat Nov 17 20:48:14 2007 +0100) 38 commits - + compat/pread.c: Add a forward declaration to fix a warning - + Windows: Fix ntohl() related warnings about printf formatting - + Windows: TMP and TEMP environment variables specify a temporary - directory. - + Windows: Make 'git help -a' work. - + Windows: Work around an oddity when a pipe with no reader is - written to. - + Windows: Make the pager work. - + When installing, be prepared that template_dir may be relative. - + Windows: Use a relative default template_dir and ETC_GITCONFIG - + Windows: Compute the fallback for exec_path from the program - invocation. - + Turn builtin_exec_path into a function. - + Windows: Use a customized struct stat that also has the st_blocks - member. - + Windows: Add a custom implementation for utime(). - + Windows: Add a new lstat and fstat implementation based on Win32 - API. - + Windows: Implement a custom spawnve(). - + Windows: Implement wrappers for gethostbyname(), socket(), and - connect(). - + Windows: Work around incompatible sort and find. - + Windows: Implement asynchronous functions as threads. - + Windows: Disambiguate DOS style paths from SSH URLs. - + Windows: A rudimentary poll() emulation. - + Windows: Implement start_command(). - + Windows: A pipe() replacement whose ends are not inherited to - children. - + Windows: Wrap execve so that shell scripts can be invoked. - + Windows: Implement setitimer() and sigaction(). - + Windows: Fix PRIuMAX definition. - + Windows: Implement gettimeofday(). - + Make my_mktime() public and rename it to tm_to_time_t() - + Windows: Work around misbehaved rename(). - + Windows: always chmod(, 0666) before unlink(). - + Windows: A minimal implemention of getpwuid(). - + Windows: Implement a wrapper of the open() function. - + Windows: Strip ".exe" from the program name. - + Windows: Handle absolute paths in - safe_create_leading_directories(). - + Windows: Treat Windows style path names. - + setup.c: Prepare for Windows directory separators. - + Windows: Use the Windows style PATH separator ';'. - + Add target architecture MinGW. - + Compile some programs only conditionally. - + Add compat/regex.[ch] and compat/fnmatch.[ch]. +Meant for 'maint' as well. ---------------------------------------------------------------- [On Hold] @@ -266,6 +232,17 @@ hit due to tcl/tk's limitation, so I am holding this back for now. ---------------------------------------------------------------- [Stalled/Needs more work] +* jc/grafts (Wed Jul 2 17:14:12 2008 -0700) 1 commit + - [BROKEN wrt shallow clones] Ignore graft during object transfer + +Cloning or fetching from a repository from grafts did not send objects +that are hidden by grafts, but the commits in the resulting repository = +do +need these to pass fsck. This fixes object transfer to ignore grafts. + +Another fix is needed to git-prune so that it ignores grafts but treats +commits that are mentioned in grafts as reachable. + * ph/parseopt-step-blame (Tue Jun 24 11:12:12 2008 +0200) 7 commits - Migrate git-blame to parse-option partially. + parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option. @@ -306,26 +283,3 @@ commit, which we should be able to separate out into an independent top= ic from the rest. -* 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 st= -ill -salvaging the parts that are cleanly automerged. It is likely that thi= -s -will result in nonsense mishmash, but somehow often people want this, s= -o -here they are. The interface to the backends is updated so that you ca= -n -say "git merge -Xours -Xsubtree=3Dfoo/bar/baz -s recursive other" now. - -The -X<option> part may change, Dscho mentions that a single-letter -X -that take stuck option is against syntax rules, and I think he's right. - -This is more "because we can", not "because we need to". -