What's cooking (2008/07 #02)

Junio C Hamano committed Aug 5, 2008 at 21:44 UTC 72c1c8ac3295be5e0bac3100283e0185dd636399
1 file changed +170 -256
whats-cooking.txt
+170 -256
@@ -1,6 +1,6 @@
1 -Subject: What's cooking in git.git (Jul 2008, issue #01; Tue, 01)
1 +Subject: What's cooking in git.git (Jul 2008, issue #02; Sun, 06)
2
3 -What's cooking in git.git (Jul 2008, issue #01; Tue, 01)
3 +What's cooking in git.git (Jul 2008, issue #02; Sun, 06)
4 --------------------------------------------------------
5
6 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=
18 e
19 good set of feature enhancements. Bigger changes will be:
20
21 - * MinGW will be in.
21 + * Port for MinGW.
22
23 * With the default Makefile settings, most of the programs will be
24 installed outside your $PATH, except for "git", "gitk", "git-gui" an=
@@ -47,17 +47,143 @@ n
47 ----------------------------------------------------------------
48 [New Topics]
49
50 +* js/maint-daemon-syslog (Thu Jul 3 16:27:24 2008 +0100) 1 commit
51 + - [PARKED improvement suggested not rolled in] git daemon: avoid
52 + calling syslog() from a signal handler
53 +
54 +This will eventually appear in 'maint'; currently parked on 'pu', thoug=
55 +h.
56 +
57 +* jc/report-tracking (Sun Jul 6 02:54:56 2008 -0700) 5 commits
58 + - branch -r -v: do not spit out garbage
59 + + stat_tracking_info(): clear object flags used during counting
60 + + git-branch -v: show the remote tracking statistics
61 + + git-status: show the remote tracking statistics
62 + + Refactor "tracking statistics" code used by "git checkout"
63 +
64 +Makes the "your branch is ahead of the tracked one by N commits" logic =
65 +and
66 +messages available to other commands; status and branch are updated.
67 +
68 +* sg/stash-k-i (Fri Jun 27 16:37:15 2008 +0200) 1 commit
69 + - stash: introduce 'stash save --keep-index' option
70 +
71 +One weakness of our "partial commit" workflow support used to be that t=
72 +he
73 +user can incrementally build what is to be committed in the index but t=
74 +hat
75 +state cannot be tested as a whole in the working tree. This allows you=
76 + to
77 +temporarily stash the remaining changes in the working tree so that the
78 +index state before running "stash save --keep-index" can be seen in the
79 +working tree to be tested and then committed. A recommended workflow t=
80 +o
81 +use after that commit is made needs to be documented (and support needs=
82 + to
83 +be added if necessary).
84 +
85 +* tr/add-i-e (Thu Jul 3 00:00:00 2008 +0200) 3 commits
86 + + git-add--interactive: manual hunk editing mode
87 + + git-add--interactive: remove hunk coalescing
88 + + git-add--interactive: replace hunk recounting with apply --recount
89 +
90 +Adds 'e/dit' action to interactive add command.
91 +
92 +* am/stash-branch (Thu Jul 3 11:46:05 2008 +0530) 1 commit
93 + + Implement "git stash branch <newbranch> <stash>"
94 +
95 +Creates a new branch out of the stashed state, after returning from the
96 +interrupt that forced you to create the stash in the first place.
97 +
98 +* jc/grafts (Wed Jul 2 17:14:12 2008 -0700) 1 commit
99 + - Ignore graft during object transfer [broken wrt shallow clones]
100 +
101 +Cloning or fetching from a repository from grafts did not send objects
102 +that are hidden by grafts, but the commits in the resulting repository =
103 +do
104 +need these to pass fsck. This fixes object transfer to ignore grafts.
105 +
106 +Another fix is needed to git-prune so that it ignores grafts but treats
107 +commits that are mentioned in grafts as reachable.
108 +
109 +* jk/pager-config (Thu Jul 3 07:46:57 2008 -0400) 1 commit
110 + - Allow per-command pager config
111 +
112 +----------------------------------------------------------------
113 +[Will merge to master soon]
114 +
115 * js/import-zip (Mon Jun 30 19:50:44 2008 +0100) 1 commit
116 + Add another fast-import example, this time for .zip files
117
53 -* js/apply-root (Tue Jul 1 00:44:47 2008 +0100) 1 commit
118 +* js/apply-root (Wed Jul 2 15:28:22 2008 -0700) 2 commits
119 + + apply --root: thinkofix.
120 + Teach "git apply" to prepend a prefix with "--root=3D<root>"
121
122 * db/no-git-config (Mon Jun 30 03:37:47 2008 -0400) 1 commit
123 + Only use GIT_CONFIG in "git config", not other programs
124
125 +* jc/reflog-expire (Sat Jun 28 22:24:49 2008 -0700) 2 commits
126 + + Make default expiration period of reflog used for stash infinite
127 + + Per-ref reflog expiry configuration
128 +
129 +As 1.6.0 will be a good time to make backward incompatible changes, the
130 +tip commit makes the default expiry period of stash 'never', unless you
131 +configure them to expire explicitly using gc.refs/stash.* variables.
132 +Needs consensus, but I am guessing that enough people would want stash
133 +that does not expire.
134 +
135 +* dr/ceiling (Mon May 19 23:49:34 2008 -0700) 4 commits
136 + + Eliminate an unnecessary chdir("..")
137 + + Add support for GIT_CEILING_DIRECTORIES
138 + + Fold test-absolute-path into test-path-utils
139 + + Implement normalize_absolute_path
140 +
141 +This still feels "because we can", not "because we need to", but it cam=
142 +e
143 +from somebody who had the need to, and I do not think it hurts people
144 +without the environment variable set.
145 +
146 +* jc/rerere (Sun Jun 22 02:04:31 2008 -0700) 5 commits
147 + + rerere.autoupdate
148 + + t4200: fix rerere test
149 + + rerere: remove dubious "tail_optimization"
150 + + git-rerere: detect unparsable conflicts
151 + + rerere: rerere_created_at() and has_resolution() abstraction
152 +
153 +A new configuration will allow paths that have been resolved cleanly by
154 +rerere to be updated in the index automatically.
155 +
156 +To me, this is "because we can", but was something requested by Ingo, s=
157 +o
158 +presumably some people may feel it useful in their workflow.
159 +
160 ----------------------------------------------------------------
60 -[Will merge to master soon]
161 +[Actively Cooking]
162 +
163 +* mv/merge-in-c (Tue Jul 1 04:37:50 2008 +0200) 15 commits
164 + - [REJECT -- over-abuse of path-list] 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
168 + message
169 + + Add new test case to ensure git-merge reduces octopus parents when
170 + possible
171 + + Introduce reduce_heads()
172 + + Introduce get_merge_bases_many()
173 + + Add new test to ensure git-merge handles more than 25 refs.
174 + + Introduce get_octopus_merge_bases() in commit.c
175 + + git-fmt-merge-msg: make it usable from other builtins
176 + + Move read_cache_unmerged() to read-cache.c
177 + + Add new test to ensure git-merge handles pull.twohead and
178 + pull.octopus
179 + + Move parse-options's skip_prefix() to git-compat-util.h
180 + + Move commit_list_count() to commit.c
181 + + Move split_cmdline() to alias.c
182 +
183 +The last one is still not quite there, I am afraid.
184 +
185 +----------------------------------------------------------------
186 +[Graduated to "master"]
187
188 * j6t/mingw (Sat Nov 17 20:48:14 2007 +0100) 38 commits
189 + compat/pread.c: Add a forward declaration to fix a warning
@@ -107,204 +233,6 @@ n
233 + Compile some programs only conditionally.
234 + Add compat/regex.[ch] and compat/fnmatch.[ch].
235
110 -No explanation necessary ;-)
111 -
112 -----------------------------------------------------------------
113 -[Actively Cooking]
114 -
115 -* jc/reflog-expire (Sat Jun 28 22:24:49 2008 -0700) 2 commits
116 - - Make default expiration period of reflog used for stash infinite
117 - - Per-ref reflog expiry configuration
118 -
119 -As 1.6.0 will be a good time to make backward incompatible changes, the
120 -tip commit makes the default expiry period of stash 'never', unless you
121 -configure them to expire explicitly using gc.refs/stash.* variables.
122 -Needs consensus, but I am guessing that enough people would want stash
123 -that does not expire.
124 -
125 -We may want to change the commit topology used to represent a stash, as
126 -proposed in $gmane/85055 by Nana earlier.
127 -
128 -* jc/merge-theirs (Mon Jun 30 22:18:57 2008 -0700) 4 commits
129 - - Make "subtree" part more orthogonal to the rest of merge-
130 - recursive.
131 - + Teach git-merge to pass -X<option> to the backend strategy module
132 - + git-merge-recursive-{ours,theirs}
133 - + git-merge-file --ours, --theirs
134 -
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 -* mv/merge-in-c (Tue Jul 1 04:37:50 2008 +0200) 14 commits
146 - - Build in merge
147 - - git-commit-tree: make it usable from other builtins
148 - - Add new test case to ensure git-merge prepends the custom merge
149 - message
150 - - Add new test case to ensure git-merge reduces octopus parents when
151 - possible
152 - - Introduce reduce_heads()
153 - - Introduce get_merge_bases_many()
154 - - Add new test to ensure git-merge handles more than 25 refs.
155 - - Introduce get_octopus_merge_bases() in commit.c
156 - - git-fmt-merge-msg: make it usable from other builtins
157 - - Move read_cache_unmerged() to read-cache.c
158 - - Add new test to ensure git-merge handles pull.twohead and
159 - pull.octopus
160 - - Move parse-options's skip_prefix() to git-compat-util.h
161 - - Move commit_list_count() to commit.c
162 - - Move split_cmdline() to alias.c
163 -
164 -I think this is getting there. Will be in 'next' soon.
165 -
166 -* dr/ceiling (Mon May 19 23:49:34 2008 -0700) 4 commits
167 - + Eliminate an unnecessary chdir("..")
168 - + Add support for GIT_CEILING_DIRECTORIES
169 - + Fold test-absolute-path into test-path-utils
170 - + Implement normalize_absolute_path
171 -
172 -* jc/rerere (Sun Jun 22 02:04:31 2008 -0700) 5 commits
173 - + rerere.autoupdate
174 - + t4200: fix rerere test
175 - + rerere: remove dubious "tail_optimization"
176 - + git-rerere: detect unparsable conflicts
177 - + rerere: rerere_created_at() and has_resolution() abstraction
178 -
179 -A new configuration will allow paths that have been resolved cleanly by
180 -rerere to be updated in the index automatically.
181 -
182 -* ph/parseopt-step-blame (Tue Jun 24 11:12:12 2008 +0200) 7 commits
183 - - Migrate git-blame to parse-option partially.
184 - - parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option.
185 - - parse-opt: fake short strings for callers to believe in.
186 - - parse-opt: do not print errors on unknown options, return -2
187 - intead.
188 - - parse-opt: create parse_options_step.
189 - - parse-opt: Export a non NORETURN usage dumper.
190 - - parse-opt: have parse_options_{start,end}.
191 -
192 -I recall Pierre said something about cleaning up the last one when he
193 -finds time, but other than that vague recollection, I lost track of thi=
194 -s
195 -series. I am tempted to fork a few topics off of the pen=C3=BAltimo on=
196 -e to
197 -convert a few more commands as examples and merge the result to 'next'.
198 -
199 -----------------------------------------------------------------
200 -[Graduated to "master"]
201 -
202 -* ph/mergetool (Mon Jun 16 17:33:41 2008 -0600) 1 commit
203 - + Remove the use of '--' in merge program invocation
204 -
205 -I got tired of waiting for success reports from people who use various
206 -backends. We will hear breakages if this breaks things anyway, and if =
207 -it
208 -does, it is a fairly simple single patch to revert.
209 -
210 -* nd/dashless (Tue Jun 24 19:58:11 2008 -0700) 2 commits
211 - + Keep some git-* programs in $(bindir)
212 - + Move all dashed-form commands to libexecdir
213 -
214 -We'll leave server-side programs in $(bindir) so that ssh clients can a=
215 -sk
216 -for "git-program" and find them on the $PATH. Next major release after
217 -1.6.0 would most likely remove the hardlinks to built-in commands, but =
218 -not
219 -yet.
220 -
221 -* jc/dashless (Thu Jun 26 16:43:34 2008 -0700) 2 commits
222 - + Prepare execv_git_cmd() for removal of builtins from the
223 - filesystem
224 - + git-shell: accept "git foo" form
225 -
226 -The botched "client asks 'git foo'" is not included. It will be long
227 -after everybody runs 1.6.0.
228 -
229 -* jk/maint-fetch-ref-hier (Fri Jun 27 00:01:41 2008 -0400) 2 commits
230 - + fetch: give a hint to the user when local refs fail to update
231 - + fetch: report local storage errors in status table
232 -
233 -When the remote used to have "foo" branch but now has "foo/bar", fetch
234 -refuses to delete the existing remote tracking branch "foo" to create a
235 -new remote tracking branch "foo/bar", but the error message was
236 -confusing.
237 -
238 -Need to backmerge to 'maint' after a while.
239 -
240 -* jc/maint-reset (Wed Jun 25 18:16:36 2008 -0700) 1 commit
241 - + Allow "git-reset path" when unambiguous
242 -
243 -We used to require "git-reset -- path" even when there is no ambiguity
244 -(i.e. path cannot be mistaken as a valid tree-ish and it is a filename =
245 -in
246 -the work tree).
247 -
248 -Need to backmerge to 'maint' after a while.
249 -
250 -* js/maint-clone-insteadof (Fri Jun 27 13:55:23 2008 +0100) 2 commits
251 - + clone: respect the settings in $HOME/.gitconfig and /etc/gitconfig
252 - + clone: respect url.insteadOf setting in global configs
253 -
254 -"git clone" did not honor "url.InsteadOf" in $HOME/.gitconfig. I think
255 -Daniel's "Let's get rid of internal use of GIT_CONFIG" makes sense (eve=
256 -n
257 -though it feels very scary), and it would make the solution much simple=
258 -r,
259 -but these two are independently good fix for now. I'll queue GIT_CONFI=
260 -G
261 -one in 'next' and when it graduates the unsetenv() solution in these wi=
262 -ll
263 -become no-op.
264 -
265 -* tr/send-email-ssl (Thu Jun 26 23:03:21 2008 +0200) 2 commits
266 - + git-send-email: prevent undefined variable warnings if no
267 - encryption is set
268 - + git-send-email: add support for TLS via Net::SMTP::SSL
269 -
270 -* kb/send-email-fifo (Wed Jun 25 15:44:40 2008 -0700) 1 commit
271 - + git-send-email: Accept fifos as well as files
272 -
273 -Two minor send-email feature enhancements.
274 -
275 -* jc/checkdiff (Sun Jun 29 16:49:06 2008 -0400) 7 commits
276 - + Fix t4017-diff-retval for white-space from wc
277 - + Update sample pre-commit hook to use "diff --check"
278 - + diff --check: detect leftover conflict markers
279 - + Teach "diff --check" about new blank lines at end
280 - + checkdiff: pass diff_options to the callback
281 - + check_and_emit_line(): rename and refactor
282 - + diff --check: explain why we do not care whether old side is
283 - binary
284 -
285 -Allows us to replace the sample pre-commit hook that was not aware of t=
286 -he
287 -line termination convention per path nor newer whitespace breakage rule=
288 -s.
289 -
290 -* np/pack-default (Wed Jun 25 00:25:53 2008 -0400) 2 commits
291 - + pack.indexversion config option now defaults to 2
292 - + repack.usedeltabaseoffset config option now defaults to "true"
293 -
294 -Updates the default value for pack.indexversion to 2 and use delta-base
295 -offset encoding of the packfiles by default.
296 -
297 -* js/apply-recount (Fri Jun 27 18:43:09 2008 +0100) 1 commit
298 - + Allow git-apply to recount the lines in a hunk (AKA recountdiff)
299 -
300 -A good ingredient for implementing "apply --edit".
301 -
302 -* dz/apply-again (Fri Jun 27 14:39:12 2008 -0400) 1 commit
303 - + git-apply: handle a patch that touches the same path more than
304 - once better
305 -
306 -Allows us to feed a patch that touches the same path more than once.
307 -
236 ----------------------------------------------------------------
237 [On Hold]
238
@@ -315,7 +243,9 @@ Allows us to feed a patch that touches the same path more than once.
243 This was previously in "will be in master soon" category, but it turns =
244 out
245 that the synonyms to the ones this one deletes are fairly new invention
318 -that happend in 1.5.6 timeframe, and we cannot do this just yet.
246 +that happend in 1.5.6 timeframe, and we cannot do this just yet. Perha=
247 +ps
248 +in 1.7.0.
249
250 * jc/dashless (Thu Jun 26 16:43:34 2008 -0700) 2 commits
251 + 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.
266 ----------------------------------------------------------------
267 [Stalled/Needs more work]
268
269 +* ph/parseopt-step-blame (Tue Jun 24 11:12:12 2008 +0200) 7 commits
270 + - Migrate git-blame to parse-option partially.
271 + + parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option.
272 + + parse-opt: fake short strings for callers to believe in.
273 + + parse-opt: do not print errors on unknown options, return -2
274 + intead.
275 + + parse-opt: create parse_options_step.
276 + + parse-opt: Export a non NORETURN usage dumper.
277 + + parse-opt: have parse_options_{start,end}.
278 +
279 +I recall Pierre said something about cleaning up the last one when he
280 +finds time, but other than that vague recollection, I lost track of thi=
281 +s
282 +series. I am tempted to fork a few topics off of the pen=C3=BAltimo on=
283 +e to
284 +convert a few more commands as examples and merge the result to 'next'.
285 +
286 * jc/blame (Wed Jun 4 22:58:40 2008 -0700) 7 commits
287 - blame: show "previous" information in --porcelain/--incremental
288 format
@@ -359,59 +306,26 @@ commit, which we should be able to separate out into an independent top=
306 ic
307 from the rest.
308
362 -----------------------------------------------------------------
363 -[Dropped for now]
364 -
365 -* sj/merge (Sat May 3 16:55:47 2008 -0700) 6 commits
366 - . Introduce fast forward option only
367 - . Head reduction before selecting merge strategy
368 - . Restructure git-merge.sh
369 - . Introduce -ff=3D<fast forward option>
370 - . New merge tests
371 - . Documentation for joining more than two histories
372 -
373 -This will interfere with Miklos's rewrite of merge to C.
374 -
375 -* js/rebase-i-sequencer (Sun Apr 27 02:55:50 2008 -0400) 17 commits
376 - . Use perl instead of tac
377 - . Fix t3404 assumption that `wc -l` does not use whitespace.
378 - . rebase -i: Use : in expr command instead of match.
379 - . rebase -i: update the implementation of 'mark' command
380 - . Add option --preserve-tags
381 - . Teach rebase interactive the tag command
382 - . Add option --first-parent
383 - . Do rebase with preserve merges with advanced TODO list
384 - . Select all lines with fake-editor
385 - . Unify the length of $SHORT* and the commits in the TODO list
386 - . Teach rebase interactive the merge command
387 - . Move redo merge code in a function
388 - . Teach rebase interactive the reset command
389 - . Teach rebase interactive the mark command
390 - . Move cleanup code into it's own function
391 - . Don't append default merge message to -m message
392 - . fake-editor: output TODO list if unchanged
393 -
394 -* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 3 commits
395 - . WIP: rethink replay merge
396 - . Start using replay-tree merge in cherry-pick
397 - . revert/cherry-pick: start refactoring call to merge_recursive
398 -
399 -This is meant to improve cherry-pick's behaviour when renames are
400 -involved, by not using merge-recursive (whose d/f conflict resolution i=
401 -s
402 -quite broken), but unfortunately has stalled for some time now.
309 +* jc/merge-theirs (Mon Jun 30 22:18:57 2008 -0700) 5 commits
310 + + Make "subtree" part more orthogonal to the rest of merge-
311 + recursive.
312 + + Teach git-pull to pass -X<option> to git-merge
313 + + Teach git-merge to pass -X<option> to the backend strategy module
314 + + git-merge-recursive-{ours,theirs}
315 + + git-merge-file --ours, --theirs
316
404 -* jc/stripspace (Sun Mar 9 00:30:35 2008 -0800) 6 commits
405 - . git-am --forge: add Signed-off-by: line for the author
406 - . git-am: clean-up Signed-off-by: lines
407 - . stripspace: add --log-clean option to clean up signed-off-by:
408 - lines
409 - . stripspace: use parse_options()
410 - . Add "git am -s" test
411 - . git-am: refactor code to add signed-off-by line for the committer
317 +Punting a merge by discarding your own work in conflicting parts but st=
318 +ill
319 +salvaging the parts that are cleanly automerged. It is likely that thi=
320 +s
321 +will result in nonsense mishmash, but somehow often people want this, s=
322 +o
323 +here they are. The interface to the backends is updated so that you ca=
324 +n
325 +say "git merge -Xours -Xsubtree=3Dfoo/bar/baz -s recursive other" now.
326
413 -Just my toy at this moment.
327 +The -X<option> part may change, Dscho mentions that a single-letter -X
328 +that take stuck option is against syntax rules, and I think he's right.
329
415 -* jc/send-pack-tell-me-more (Thu Mar 20 00:44:11 2008 -0700) 1 commit
416 - . "git push": tellme-more protocol extension
330 +This is more "because we can", not "because we need to".
331