What's cooking in git.git (Jul 2008, issue #04; Wed, 09)

Junio C Hamano committed Jul 20, 2008 at 22:58 UTC 7dfb398141f514566f0fc1d18332560cfea409fc
1 file changed +108 -123
whatscooking.txt
+108 -123
@@ -1,4 +1,4 @@
1 -What's cooking in git.git (Jul 2008, issue #03; Mon, 07)
1 +What's cooking in git.git (Jul 2008, issue #04; Wed, 09)
2 --------------------------------------------------------
3
4 Here are the topics that have been cooking. Commits prefixed
@@ -9,25 +9,20 @@ The topics list the commits in reverse chronological order. The topics
9 meant to be applied to the maintenance series have "maint-" in their
10 names.
11
12 -It already is beginning to become clear what 1.6.0 will look like. Wha=
13 -t's
12 +It already is beginning to become clear what 1.6.0 will look like. What's
13 already in 'next' all are well intentioned (I do not guarantee they are
15 -already bug-free --- that is what cooking them in 'next' is for) and ar=
16 -e
14 +already bug-free --- that is what cooking them in 'next' is for) and are
15 good set of feature enhancements. Bigger changes will be:
16
17 * Port for MinGW.
18
19 * With the default Makefile settings, most of the programs will be
22 - installed outside your $PATH, except for "git", "gitk", "git-gui" an=
23 -d
20 + installed outside your $PATH, except for "git", "gitk", "git-gui" and
21 some server side programs that need to be accessible for technical
22 reasons. Invoking a git subcommand as "git-xyzzy" from the command
26 - line has been deprecated since early 2006 (and officially announced =
27 -in
23 + line has been deprecated since early 2006 (and officially announced in
24 1.5.4 release notes); use of them from your scripts after adding
29 - output from "git --exec-path" to the $PATH will still be supported i=
30 -n
25 + output from "git --exec-path" to the $PATH will still be supported in
26 1.6.0, but users are again strongly encouraged to adjust their
27 scripts to use "git xyzzy" form, as we will stop installing
28 "git-xyzzy" hardlinks for built-in commands in later releases.
@@ -45,56 +40,51 @@ n
40 ----------------------------------------------------------------
41 [New Topics]
42
48 -* jc/rebase-orig-head (Mon Jul 7 00:16:38 2008 -0700) 1 commit
49 - + Teach "am" and "rebase" to mark the original position with
50 - ORIG_HEAD
43 +* xx/merge-in-c-into-next (Wed Jul 9 13:51:46 2008 -0700) 4 commits
44 + + Teach git-merge -X<option> again.
45 + + Merge branch 'jc/merge-theirs' into xx/merge-in-c-into-next
46 + + builtin-merge.c: use parse_options_step() "incremental parsing"
47 + machinery
48 + + Merge branch 'ph/parseopt-step-blame' into xx/merge-in-c-into-next
49
52 -* sb/sequencer (Tue Jul 1 04:38:34 2008 +0200) 4 commits
53 - . Migrate git-am to use git-sequencer
54 - . Add git-sequencer test suite (t3350)
55 - . Add git-sequencer prototype documentation
56 - . Add git-sequencer shell prototype
50 +I've described what this is in a separate message.
51
58 -* js/pick-root (Fri Jul 4 16:19:52 2008 +0100) 1 commit
59 - + Allow cherry-picking root commits
52 +* jc/branch-merged (Tue Jul 8 17:55:47 2008 -0700) 3 commits
53 + + branch --merged/--no-merged: allow specifying arbitrary commit
54 + + branch --contains: default to HEAD
55 + + parse-options: add PARSE_OPT_LASTARG_DEFAULT flag
56
61 -* ab/bundle (Sat Jul 5 17:26:40 2008 -0400) 1 commit
62 - + Teach git-bundle to read revision arguments from stdin like git-
63 - rev-list.
57 +This builds on top of the parse-options enhancement series that
58 +has been cooking in 'next' for some time.
59
65 -----------------------------------------------------------------
66 -[Will merge to master soon]
60 +* rs/imap (Wed Jul 9 22:29:02 2008 +0100) 5 commits
61 + + Documentation: Improve documentation for git-imap-send(1)
62 + + imap-send.c: more style fixes
63 + + imap-send.c: style fixes
64 + + git-imap-send: Support SSL
65 + + git-imap-send: Allow the program to be run from subdirectories of
66 + a git tree
67
68 -* js/apply-root (Sun Jul 6 18:36:01 2008 -0700) 3 commits
69 - + git-apply --directory: make --root more similar to GNU diff
70 - + apply --root: thinkofix.
71 - + Teach "git apply" to prepend a prefix with "--root=3D<root>"
68 +* om/rerere-careful (Mon Jul 7 14:42:48 2008 +0200) 1 commit
69 + + builtin-rerere: more carefully find conflict markers
70
73 -* jc/reflog-expire (Sat Jun 28 22:24:49 2008 -0700) 2 commits
74 - + Make default expiration period of reflog used for stash infinite
75 - + Per-ref reflog expiry configuration
76 -
77 -As 1.6.0 will be a good time to make backward incompatible changes, the
78 -tip commit makes the default expiry period of stash 'never', unless you
79 -configure them to expire explicitly using gc.refs/stash.* variables.
80 -Needs consensus, but I am guessing that enough people would want stash
81 -that does not expire.
71 +----------------------------------------------------------------
72 +[Will merge to master soon]
73
83 -* jk/pager-config (Thu Jul 3 07:46:57 2008 -0400) 1 commit
84 - + Allow per-command pager config
74 +* js/pick-root (Fri Jul 4 16:19:52 2008 +0100) 1 commit
75 + + Allow cherry-picking root commits
76
86 -----------------------------------------------------------------
87 -[Actively Cooking]
77 +* ab/bundle (Sat Jul 5 17:26:40 2008 -0400) 1 commit
78 + + Teach git-bundle to read revision arguments from stdin like git-
79 + rev-list.
80
89 -* sg/stash-k-i (Fri Jun 27 16:37:15 2008 +0200) 1 commit
81 +* sg/stash-k-i (Tue Jul 8 00:40:56 2008 -0700) 2 commits
82 + + Documentation: tweak use case in "git stash save --keep-index"
83 + stash: introduce 'stash save --keep-index' option
84
92 -One weakness of our "partial commit" workflow support used to be that t=
93 -he
94 -user can incrementally build what is to be committed in the index but t=
95 -hat
96 -state cannot be tested as a whole in the working tree. This allows you=
97 - to
85 +One weakness of our "partial commit" workflow support used to be that the
86 +user can incrementally build what is to be committed in the index but that
87 +state cannot be tested as a whole in the working tree. This allows you to
88 temporarily stash the remaining changes in the working tree so that the
89 index state before running "stash save --keep-index" can be seen in the
90 working tree to be tested and then committed.
@@ -120,10 +110,42 @@ Adds 'e/dit' action to interactive add command.
110 + git-status: show the remote tracking statistics
111 + Refactor "tracking statistics" code used by "git checkout"
112
123 -Makes the "your branch is ahead of the tracked one by N commits" logic =
124 -and
113 +Makes the "your branch is ahead of the tracked one by N commits" logic and
114 messages available to other commands; status and branch are updated.
115
116 +----------------------------------------------------------------
117 +[Actively Cooking]
118 +
119 +* jc/rebase-orig-head (Tue Jul 8 00:12:22 2008 -0400) 2 commits
120 + + Documentation: mention ORIG_HEAD in am, merge, and rebase
121 + + Teach "am" and "rebase" to mark the original position with
122 + ORIG_HEAD
123 +
124 +* ph/parseopt-step-blame (Wed Jul 9 23:38:34 2008 +0200) 18 commits
125 + + revisions: refactor handle_revision_opt into parse_revision_opt.
126 + + git-shortlog: migrate to parse-options partially.
127 + + git-blame: fix lapsus
128 + + git-blame: migrate to incremental parse-option [2/2]
129 + + git-blame: migrate to incremental parse-option [1/2]
130 + + revisions: split handle_revision_opt() from setup_revisions()
131 + + Merge branch 'jc/blame' (early part) into HEAD
132 + + parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option.
133 + + parse-opt: fake short strings for callers to believe in.
134 + + parse-opt: do not print errors on unknown options, return -2
135 + intead.
136 + + parse-opt: create parse_options_step.
137 + + parse-opt: Export a non NORETURN usage dumper.
138 + + parse-opt: have parse_options_{start,end}.
139 + + git-blame --reverse
140 + + builtin-blame.c: allow more than 16 parents
141 + + builtin-blame.c: move prepare_final() into a separate function.
142 + + rev-list --children
143 + + revision traversal: --children option
144 +
145 +Became active again ;-) This probably is ready for 'master' already,
146 +except for the last two which I only looked at the patch and have not
147 +used heavily in production yet.
148 +
149 * jc/merge-theirs (Mon Jun 30 22:18:57 2008 -0700) 5 commits
150 + Make "subtree" part more orthogonal to the rest of merge-
151 recursive.
@@ -132,23 +154,14 @@ messages available to other commands; status and branch are updated.
154 + git-merge-recursive-{ours,theirs}
155 + git-merge-file --ours, --theirs
156
135 -Punting a merge by discarding your own work in conflicting parts but st=
136 -ill
137 -salvaging the parts that are cleanly automerged. It is likely that thi=
138 -s
139 -will result in nonsense mishmash, but somehow often people want this, s=
140 -o
141 -here they are. The interface to the backends is updated so that you ca=
142 -n
143 -say "git merge -Xours -Xsubtree=3Dfoo/bar/baz -s recursive other" now.
144 -
145 -The -X<option> part may change, Dscho mentions that a single-letter -X
146 -that take stuck option is against syntax rules, and I think he's right.
147 -
148 -This is more "because we can", not "because we need to".
157 +Punting a merge by discarding your own work in conflicting parts but still
158 +salvaging the parts that are cleanly automerged. It is likely that this
159 +will result in nonsense mishmash, but somehow often people want this, so
160 +here they are. The interface to the backends is updated so that you can
161 +say "git merge -Xours -Xsubtree=foo/bar/baz -s recursive other" now.
162
163 * mv/merge-in-c (Mon Jul 7 19:24:20 2008 +0200) 15 commits
151 - - Build in merge
164 + + Build in merge
165 + Fix t7601-merge-pull-config.sh on AIX
166 + git-commit-tree: make it usable from other builtins
167 + Add new test case to ensure git-merge prepends the custom merge
@@ -170,32 +183,23 @@ This is more "because we can", not "because we need to".
183 ----------------------------------------------------------------
184 [Graduated to "master"]
185
173 -* js/import-zip (Mon Jun 30 19:50:44 2008 +0100) 1 commit
174 - + Add another fast-import example, this time for .zip files
175 -
176 -* db/no-git-config (Mon Jun 30 03:37:47 2008 -0400) 1 commit
177 - + Only use GIT_CONFIG in "git config", not other programs
178 -
179 -* dr/ceiling (Mon May 19 23:49:34 2008 -0700) 4 commits
180 - + Eliminate an unnecessary chdir("..")
181 - + Add support for GIT_CEILING_DIRECTORIES
182 - + Fold test-absolute-path into test-path-utils
183 - + Implement normalize_absolute_path
184 -
185 -* jc/rerere (Sun Jun 22 02:04:31 2008 -0700) 5 commits
186 - + rerere.autoupdate
187 - + t4200: fix rerere test
188 - + rerere: remove dubious "tail_optimization"
189 - + git-rerere: detect unparsable conflicts
190 - + rerere: rerere_created_at() and has_resolution() abstraction
186 +* js/apply-root (Sun Jul 6 18:36:01 2008 -0700) 3 commits
187 + + git-apply --directory: make --root more similar to GNU diff
188 + + apply --root: thinkofix.
189 + + Teach "git apply" to prepend a prefix with "--root=<root>"
190
192 -A new configuration will allow paths that have been resolved cleanly by
193 -rerere to be updated in the index automatically.
191 +* jc/reflog-expire (Sat Jun 28 22:24:49 2008 -0700) 2 commits
192 + + Make default expiration period of reflog used for stash infinite
193 + + Per-ref reflog expiry configuration
194
195 -* js/maint-daemon-syslog (Thu Jul 3 16:27:24 2008 +0100) 1 commit
196 - + git daemon: avoid calling syslog() from a signal handler
195 +As 1.6.0 will be a good time to make backward incompatible changes, the
196 +tip commit makes the default expiry period of stash 'never', unless you
197 +configure them to expire explicitly using gc.refs/stash.* variables.
198 +Needs consensus, but I am guessing that enough people would want stash
199 +that does not expire.
200
198 -Meant for 'maint' as well.
201 +* jk/pager-config (Thu Jul 3 07:46:57 2008 -0400) 1 commit
202 + + Allow per-command pager config
203
204 ----------------------------------------------------------------
205 [On Hold]
@@ -204,11 +208,9 @@ Meant for 'maint' as well.
208 + merge: remove deprecated summary and diffstat options and config
209 variables
210
207 -This was previously in "will be in master soon" category, but it turns =
208 -out
211 +This was previously in "will be in master soon" category, but it turns out
212 that the synonyms to the ones this one deletes are fairly new invention
210 -that happend in 1.5.6 timeframe, and we cannot do this just yet. Perha=
211 -ps
213 +that happend in 1.5.6 timeframe, and we cannot do this just yet. Perhaps
214 in 1.7.0.
215
216 * jc/dashless (Thu Jun 26 16:43:34 2008 -0700) 2 commits
@@ -223,41 +225,28 @@ timeframe.
225 - diff: enable "too large a rename" warning when -M/-C is explicitly
226 asked for
227
226 -This would be the right thing to do for command line use, but gitk will=
227 - be
228 +This would be the right thing to do for command line use, but gitk will be
229 hit due to tcl/tk's limitation, so I am holding this back for now.
230
231 ----------------------------------------------------------------
232 [Stalled/Needs more work]
233
234 +* sb/sequencer (Tue Jul 1 04:38:34 2008 +0200) 4 commits
235 + . Migrate git-am to use git-sequencer
236 + . Add git-sequencer test suite (t3350)
237 + . Add git-sequencer prototype documentation
238 + . Add git-sequencer shell prototype
239 +
240 * jc/grafts (Wed Jul 2 17:14:12 2008 -0700) 1 commit
241 - [BROKEN wrt shallow clones] Ignore graft during object transfer
242
243 Cloning or fetching from a repository from grafts did not send objects
237 -that are hidden by grafts, but the commits in the resulting repository =
238 -do
244 +that are hidden by grafts, but the commits in the resulting repository do
245 need these to pass fsck. This fixes object transfer to ignore grafts.
246
247 Another fix is needed to git-prune so that it ignores grafts but treats
248 commits that are mentioned in grafts as reachable.
249
244 -* ph/parseopt-step-blame (Tue Jun 24 11:12:12 2008 +0200) 7 commits
245 - - Migrate git-blame to parse-option partially.
246 - + parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option.
247 - + parse-opt: fake short strings for callers to believe in.
248 - + parse-opt: do not print errors on unknown options, return -2
249 - intead.
250 - + parse-opt: create parse_options_step.
251 - + parse-opt: Export a non NORETURN usage dumper.
252 - + parse-opt: have parse_options_{start,end}.
253 -
254 -I recall Pierre said something about cleaning up the last one when he
255 -finds time, but other than that vague recollection, I lost track of thi=
256 -s
257 -series. I am tempted to fork a few topics off of the pen=C3=BAltimo on=
258 -e to
259 -convert a few more commands as examples and merge the result to 'next'.
260 -
250 * jc/blame (Wed Jun 4 22:58:40 2008 -0700) 7 commits
251 - blame: show "previous" information in --porcelain/--incremental
252 format
@@ -268,16 +257,12 @@ convert a few more commands as examples and merge the result to 'next'.
257 + rev-list --children
258 + revision traversal: --children option
259
271 -The blame that finds where each line in the original lines moved to. T=
272 -his
273 -may help a GSoC project that wants to gather statistical overview of th=
274 -e
275 -history. The final presentation may need tweaking (see the log message=
276 - of
260 +The blame that finds where each line in the original lines moved to. This
261 +may help a GSoC project that wants to gather statistical overview of the
262 +history. The final presentation may need tweaking (see the log message of
263 the commit ""git-blame --reverse" on the series).
264
265 The tip two commits are for peeling to see what's behind the blamed
280 -commit, which we should be able to separate out into an independent top=
281 -ic
266 +commit, which we should be able to separate out into an independent topic
267 from the rest.
268