@leroysheep / Socializer / commits / 72c1c8ac32

What's cooking (2008/07 #02)

Junio C Hamano committed Aug 5, 2008 at 21:44 UTC 72c1c8ac3295be5e0bac3100283e0185dd636399
1 file changed +170 -253
whats-cooking.txt
+170 -253
index 4776370384..93ca0b044a 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,6 +1,6 @@ -Subject: What's cooking in git.git (Jul 2008, issue #01; Tue, 01) +Subject: What's cooking in git.git (Jul 2008, issue #02; Sun, 06) -What's cooking in git.git (Jul 2008, issue #01; Tue, 01) +What's cooking in git.git (Jul 2008, issue #02; Sun, 06) -------------------------------------------------------- Here are the topics that have been cooking. Commits prefixed @@ -18,7 +18,7 @@ already bug-free --- that is what cooking them in 'next' is for) and ar= e good set of feature enhancements. Bigger changes will be: - * MinGW will be in. + * Port for MinGW. * With the default Makefile settings, most of the programs will be installed outside your $PATH, except for "git", "gitk", "git-gui" an= @@ -47,17 +47,143 @@ 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 + +This will eventually appear in 'maint'; currently parked on 'pu', thoug= +h. + +* 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" + +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. + +* sg/stash-k-i (Fri Jun 27 16:37:15 2008 +0200) 1 commit + - stash: introduce 'stash save --keep-index' option + +One weakness of our "partial commit" workflow support used to be that t= +he +user can incrementally build what is to be committed in the index but t= +hat +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). + +* tr/add-i-e (Thu Jul 3 00:00:00 2008 +0200) 3 commits + + git-add--interactive: manual hunk editing mode + + git-add--interactive: remove hunk coalescing + + git-add--interactive: replace hunk recounting with apply --recount + +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>" + +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. + +* jc/grafts (Wed Jul 2 17:14:12 2008 -0700) 1 commit + - Ignore graft during object transfer [broken wrt shallow clones] + +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. + +* jk/pager-config (Thu Jul 3 07:46:57 2008 -0400) 1 commit + - Allow per-command pager config + +---------------------------------------------------------------- +[Will merge to master soon] + * 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 (Tue Jul 1 00:44:47 2008 +0100) 1 commit +* 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 + + rerere: remove dubious "tail_optimization" + + git-rerere: detect unparsable conflicts + + rerere: rerere_created_at() and has_resolution() abstraction + +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. + ---------------------------------------------------------------- -[Will merge to master soon] +[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"] * j6t/mingw (Sat Nov 17 20:48:14 2007 +0100) 38 commits + compat/pread.c: Add a forward declaration to fix a warning @@ -107,204 +233,6 @@ n + Compile some programs only conditionally. + Add compat/regex.[ch] and compat/fnmatch.[ch]. -No explanation necessary ;-) - ----------------------------------------------------------------- -[Actively Cooking] - -* 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. - -We may want to change the commit topology used to represent a stash, as -proposed in $gmane/85055 by Nana earlier. - -* jc/merge-theirs (Mon Jun 30 22:18:57 2008 -0700) 4 commits - - Make "subtree" part more orthogonal to the rest of merge- - recursive. - + 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. - -* mv/merge-in-c (Tue Jul 1 04:37:50 2008 +0200) 14 commits - - Build in merge - - 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 - -I think this is getting there. Will be in 'next' soon. - -* 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 - -* jc/rerere (Sun Jun 22 02:04:31 2008 -0700) 5 commits - + rerere.autoupdate - + t4200: fix rerere test - + rerere: remove dubious "tail_optimization" - + git-rerere: detect unparsable conflicts - + rerere: rerere_created_at() and has_resolution() abstraction - -A new configuration will allow paths that have been resolved cleanly by -rerere to be updated in the index automatically. - -* 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. - - parse-opt: fake short strings for callers to believe in. - - parse-opt: do not print errors on unknown options, return -2 - intead. - - parse-opt: create parse_options_step. - - parse-opt: Export a non NORETURN usage dumper. - - parse-opt: have parse_options_{start,end}. - -I recall Pierre said something about cleaning up the last one when he -finds time, but other than that vague recollection, I lost track of thi= -s -series. I am tempted to fork a few topics off of the pen=C3=BAltimo on= -e to -convert a few more commands as examples and merge the result to 'next'. - ----------------------------------------------------------------- -[Graduated to "master"] - -* ph/mergetool (Mon Jun 16 17:33:41 2008 -0600) 1 commit - + Remove the use of '--' in merge program invocation - -I got tired of waiting for success reports from people who use various -backends. We will hear breakages if this breaks things anyway, and if = -it -does, it is a fairly simple single patch to revert. - -* nd/dashless (Tue Jun 24 19:58:11 2008 -0700) 2 commits - + Keep some git-* programs in $(bindir) - + Move all dashed-form commands to libexecdir - -We'll leave server-side programs in $(bindir) so that ssh clients can a= -sk -for "git-program" and find them on the $PATH. Next major release after -1.6.0 would most likely remove the hardlinks to built-in commands, but = -not -yet. - -* jc/dashless (Thu Jun 26 16:43:34 2008 -0700) 2 commits - + Prepare execv_git_cmd() for removal of builtins from the - filesystem - + git-shell: accept "git foo" form - -The botched "client asks 'git foo'" is not included. It will be long -after everybody runs 1.6.0. - -* jk/maint-fetch-ref-hier (Fri Jun 27 00:01:41 2008 -0400) 2 commits - + fetch: give a hint to the user when local refs fail to update - + fetch: report local storage errors in status table - -When the remote used to have "foo" branch but now has "foo/bar", fetch -refuses to delete the existing remote tracking branch "foo" to create a -new remote tracking branch "foo/bar", but the error message was -confusing. - -Need to backmerge to 'maint' after a while. - -* jc/maint-reset (Wed Jun 25 18:16:36 2008 -0700) 1 commit - + Allow "git-reset path" when unambiguous - -We used to require "git-reset -- path" even when there is no ambiguity -(i.e. path cannot be mistaken as a valid tree-ish and it is a filename = -in -the work tree). - -Need to backmerge to 'maint' after a while. - -* js/maint-clone-insteadof (Fri Jun 27 13:55:23 2008 +0100) 2 commits - + clone: respect the settings in $HOME/.gitconfig and /etc/gitconfig - + clone: respect url.insteadOf setting in global configs - -"git clone" did not honor "url.InsteadOf" in $HOME/.gitconfig. I think -Daniel's "Let's get rid of internal use of GIT_CONFIG" makes sense (eve= -n -though it feels very scary), and it would make the solution much simple= -r, -but these two are independently good fix for now. I'll queue GIT_CONFI= -G -one in 'next' and when it graduates the unsetenv() solution in these wi= -ll -become no-op. - -* tr/send-email-ssl (Thu Jun 26 23:03:21 2008 +0200) 2 commits - + git-send-email: prevent undefined variable warnings if no - encryption is set - + git-send-email: add support for TLS via Net::SMTP::SSL - -* kb/send-email-fifo (Wed Jun 25 15:44:40 2008 -0700) 1 commit - + git-send-email: Accept fifos as well as files - -Two minor send-email feature enhancements. - -* jc/checkdiff (Sun Jun 29 16:49:06 2008 -0400) 7 commits - + Fix t4017-diff-retval for white-space from wc - + Update sample pre-commit hook to use "diff --check" - + diff --check: detect leftover conflict markers - + Teach "diff --check" about new blank lines at end - + checkdiff: pass diff_options to the callback - + check_and_emit_line(): rename and refactor - + diff --check: explain why we do not care whether old side is - binary - -Allows us to replace the sample pre-commit hook that was not aware of t= -he -line termination convention per path nor newer whitespace breakage rule= -s. - -* np/pack-default (Wed Jun 25 00:25:53 2008 -0400) 2 commits - + pack.indexversion config option now defaults to 2 - + repack.usedeltabaseoffset config option now defaults to "true" - -Updates the default value for pack.indexversion to 2 and use delta-base -offset encoding of the packfiles by default. - -* js/apply-recount (Fri Jun 27 18:43:09 2008 +0100) 1 commit - + Allow git-apply to recount the lines in a hunk (AKA recountdiff) - -A good ingredient for implementing "apply --edit". - -* dz/apply-again (Fri Jun 27 14:39:12 2008 -0400) 1 commit - + git-apply: handle a patch that touches the same path more than - once better - -Allows us to feed a patch that touches the same path more than once. - ---------------------------------------------------------------- [On Hold] @@ -315,7 +243,9 @@ Allows us to feed a patch that touches the same path more than once. This was previously in "will be in master soon" category, but it turns = out that the synonyms to the ones this one deletes are fairly new invention -that happend in 1.5.6 timeframe, and we cannot do this just yet. +that happend in 1.5.6 timeframe, and we cannot do this just yet. Perha= +ps +in 1.7.0. * jc/dashless (Thu Jun 26 16:43:34 2008 -0700) 2 commits + Revert "Make clients ask for "git program" over ssh and local @@ -336,6 +266,23 @@ hit due to tcl/tk's limitation, so I am holding this back for now. ---------------------------------------------------------------- [Stalled/Needs more work] +* 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. + + parse-opt: fake short strings for callers to believe in. + + parse-opt: do not print errors on unknown options, return -2 + intead. + + parse-opt: create parse_options_step. + + parse-opt: Export a non NORETURN usage dumper. + + parse-opt: have parse_options_{start,end}. + +I recall Pierre said something about cleaning up the last one when he +finds time, but other than that vague recollection, I lost track of thi= +s +series. I am tempted to fork a few topics off of the pen=C3=BAltimo on= +e to +convert a few more commands as examples and merge the result to 'next'. + * jc/blame (Wed Jun 4 22:58:40 2008 -0700) 7 commits - blame: show "previous" information in --porcelain/--incremental format @@ -359,59 +306,26 @@ commit, which we should be able to separate out into an independent top= ic from the rest. ----------------------------------------------------------------- -[Dropped for now] - -* sj/merge (Sat May 3 16:55:47 2008 -0700) 6 commits - . Introduce fast forward option only - . Head reduction before selecting merge strategy - . Restructure git-merge.sh - . Introduce -ff=3D<fast forward option> - . New merge tests - . Documentation for joining more than two histories - -This will interfere with Miklos's rewrite of merge to C. - -* js/rebase-i-sequencer (Sun Apr 27 02:55:50 2008 -0400) 17 commits - . Use perl instead of tac - . Fix t3404 assumption that `wc -l` does not use whitespace. - . rebase -i: Use : in expr command instead of match. - . rebase -i: update the implementation of 'mark' command - . Add option --preserve-tags - . Teach rebase interactive the tag command - . Add option --first-parent - . Do rebase with preserve merges with advanced TODO list - . Select all lines with fake-editor - . Unify the length of $SHORT* and the commits in the TODO list - . Teach rebase interactive the merge command - . Move redo merge code in a function - . Teach rebase interactive the reset command - . Teach rebase interactive the mark command - . Move cleanup code into it's own function - . Don't append default merge message to -m message - . fake-editor: output TODO list if unchanged - -* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 3 commits - . WIP: rethink replay merge - . Start using replay-tree merge in cherry-pick - . revert/cherry-pick: start refactoring call to merge_recursive - -This is meant to improve cherry-pick's behaviour when renames are -involved, by not using merge-recursive (whose d/f conflict resolution i= -s -quite broken), but unfortunately has stalled for some time now. +* 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 -* jc/stripspace (Sun Mar 9 00:30:35 2008 -0800) 6 commits - . git-am --forge: add Signed-off-by: line for the author - . git-am: clean-up Signed-off-by: lines - . stripspace: add --log-clean option to clean up signed-off-by: - lines - . stripspace: use parse_options() - . Add "git am -s" test - . git-am: refactor code to add signed-off-by line for the committer +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. -Just my toy at this moment. +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. -* jc/send-pack-tell-me-more (Thu Mar 20 00:44:11 2008 -0700) 1 commit - . "git push": tellme-more protocol extension +This is more "because we can", not "because we need to".