What's cooking in git.git (Jul 2008, issue #01; Tue, 01)

Junio C Hamano committed Jul 20, 2008 at 22:58 UTC fa2de9f0710f44d59f9c98837691be16fc5528b3
1 file changed +202 -126
whatscooking.txt
+202 -126
@@ -1,4 +1,4 @@
1 -What's cooking in git.git (Jun 2008, issue #04; Mon, 30)
1 +What's cooking in git.git (Jul 2008, issue #01; Tue, 01)
2 --------------------------------------------------------
3
4 Here are the topics that have been cooking. Commits prefixed
@@ -9,20 +9,25 @@ 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. What's
12 +It already is beginning to become clear what 1.6.0 will look like. Wha=
13 +t's
14 already in 'next' all are well intentioned (I do not guarantee they are
14 -already bug-free --- that is what cooking them in 'next' is for) and are
15 +already bug-free --- that is what cooking them in 'next' is for) and ar=
16 +e
17 good set of feature enhancements. Bigger changes will be:
18
19 * MinGW will be in.
20
21 * With the default Makefile settings, most of the programs will be
20 - installed outside your $PATH, except for "git", "gitk", "git-gui" and
22 + installed outside your $PATH, except for "git", "gitk", "git-gui" an=
23 +d
24 some server side programs that need to be accessible for technical
25 reasons. Invoking a git subcommand as "git-xyzzy" from the command
23 - line has been deprecated since early 2006 (and officially announced in
26 + line has been deprecated since early 2006 (and officially announced =
27 +in
28 1.5.4 release notes); use of them from your scripts after adding
25 - output from "git --exec-path" to the $PATH will still be supported in
29 + output from "git --exec-path" to the $PATH will still be supported i=
30 +n
31 1.6.0, but users are again strongly encouraged to adjust their
32 scripts to use "git xyzzy" form, as we will stop installing
33 "git-xyzzy" hardlinks for built-in commands in later releases.
@@ -32,119 +37,25 @@ good set of feature enhancements. Bigger changes will be:
37 * default pack and idx versions will be updated as scheduled for some
38 time ago.
39
35 -----------------------------------------------------------------
36 -[Will merge to master soon]
37 -
38 -* nd/dashless (Tue Jun 24 19:58:11 2008 -0700) 2 commits
39 - + Keep some git-* programs in $(bindir)
40 - + Move all dashed-form commands to libexecdir
41 -
42 -Scheduled for 1.6.0. We'll leave server-side programs in $(bindir) so
43 -that ssh clients can ask for "git-program" and find them on the $PATH.
44 -Next major release after 1.6.0 would most likely remove the hardlinks to
45 -built-in commands, but not yet.
46 -
47 -* sg/merge-options (Sun Apr 6 03:23:47 2008 +0200) 1 commit
48 - + merge: remove deprecated summary and diffstat options and config
49 - variables
50 -
51 -* jc/dashless (Thu Jun 26 16:43:34 2008 -0700) 4 commits
52 - + Revert "Make clients ask for "git program" over ssh and local
53 - transport"
54 - + Make clients ask for "git program" over ssh and local transport
55 - + Prepare execv_git_cmd() for removal of builtins from the
56 - filesystem
57 - + git-shell: accept "git foo" form
40 + * GIT_CONFIG, which was only documented as affecting "git config", but
41 + actually affected all git commands, now only affects "git config".
42 + GIT_LOCAL_CONFIG, also only documented as affecting "git config" and
43 + not different from GIT_CONFIG in a useful way, is removed.
44
45 ----------------------------------------------------------------
60 -[Actively Cooking]
61 -
62 -* jk/maint-fetch-ref-hier (Fri Jun 27 00:01:41 2008 -0400) 2 commits
63 - + fetch: give a hint to the user when local refs fail to update
64 - + fetch: report local storage errors in status table
65 -
66 -When the remote used to have "foo" branch but now has "foo/bar", fetch
67 -refuses to delete the existing remote tracking branch "foo" to create a
68 -new remote tracking branch "foo/bar", but the error message was
69 -confusing.
70 -
71 -* jc/maint-reset (Wed Jun 25 18:16:36 2008 -0700) 1 commit
72 - + Allow "git-reset path" when unambiguous
73 -
74 -We used to require "git-reset -- path" even when there is no ambiguity
75 -(i.e. path cannot be mistaken as a valid tree-ish and it is a filename in
76 -the work tree).
77 -
78 -* js/maint-clone-insteadof (Fri Jun 27 13:55:23 2008 +0100) 2 commits
79 - + clone: respect the settings in $HOME/.gitconfig and /etc/gitconfig
80 - + clone: respect url.insteadOf setting in global configs
81 -
82 -"git clone" did not honor "url.InsteadOf" in $HOME/.gitconfig. I think
83 -Daniel's "Let's get rid of internal use of GIT_CONFIG" makes sense (even
84 -though it feels very scary), and it would make the solution much simpler,
85 -but it came late and it is already past my bedtime, so...
86 -
87 -* tr/send-email-ssl (Thu Jun 26 23:03:21 2008 +0200) 2 commits
88 - + git-send-email: prevent undefined variable warnings if no
89 - encryption is set
90 - + git-send-email: add support for TLS via Net::SMTP::SSL
91 -
92 -* kb/send-email-fifo (Wed Jun 25 15:44:40 2008 -0700) 1 commit
93 - + git-send-email: Accept fifos as well as files
94 -
95 -Two minor send-email feature enhancements for 1.6.0.
46 +[New Topics]
47
97 -* jc/checkdiff (Sun Jun 29 16:49:06 2008 -0400) 7 commits
98 - + Fix t4017-diff-retval for white-space from wc
99 - + Update sample pre-commit hook to use "diff --check"
100 - + diff --check: detect leftover conflict markers
101 - + Teach "diff --check" about new blank lines at end
102 - + checkdiff: pass diff_options to the callback
103 - + check_and_emit_line(): rename and refactor
104 - + diff --check: explain why we do not care whether old side is
105 - binary
48 +* js/import-zip (Mon Jun 30 19:50:44 2008 +0100) 1 commit
49 + + Add another fast-import example, this time for .zip files
50
107 -Allows us to replace the sample pre-commit hook that was not aware of the
108 -line termination convention per path nor newer whitespace breakage rules.
51 +* js/apply-root (Tue Jul 1 00:44:47 2008 +0100) 1 commit
52 + + Teach "git apply" to prepend a prefix with "--root=3D<root>"
53
110 -* np/pack-default (Wed Jun 25 00:25:53 2008 -0400) 2 commits
111 - + pack.indexversion config option now defaults to 2
112 - + repack.usedeltabaseoffset config option now defaults to "true"
54 +* db/no-git-config (Mon Jun 30 03:37:47 2008 -0400) 1 commit
55 + + Only use GIT_CONFIG in "git config", not other programs
56
114 -Updates the default value for pack.indexversion to 2 and use delta-base
115 -offset encoding of the packfiles by default.
116 -
117 -* js/apply-recount (Fri Jun 27 18:43:09 2008 +0100) 1 commit
118 - + Allow git-apply to recount the lines in a hunk (AKA recountdiff)
119 -
120 -A good ingredient for implementing "apply --edit".
121 -
122 -* dz/apply-again (Fri Jun 27 14:39:12 2008 -0400) 1 commit
123 - + git-apply: handle a patch that touches the same path more than
124 - once better
125 -
126 -Allows us to feed a patch that touches the same path more than once.
127 -
128 -* jc/reflog-expire (Sat Jun 28 22:24:49 2008 -0700) 2 commits
129 - - Make default expiration period of reflog used for stash infinite
130 - - Per-ref reflog expiry configuration
131 -
132 -As 1.6.0 will be a good time to make backward incompatible changes, the
133 -tip commit makes the default expiry period of stash 'never', unless you
134 -configure them to expire explicitly using gc.refs/stash.* variables.
135 -Needs consensus, but I am guessing that enough people would want stash
136 -that does not expire.
137 -
138 -* jc/merge-theirs (Sat Jun 28 17:28:22 2008 -0700) 3 commits
139 - + Teach git-merge to pass -X<option> to the backend strategy module
140 - + git-merge-recursive-{ours,theirs}
141 - + git-merge-file --ours, --theirs
142 -
143 -Punting a merge by discarding your own work in conflicting parts but still
144 -salvaging the parts that are cleanly automerged. It is likely that this
145 -will result in nonsense mishmash, but somehow often people want this, so
146 -here they are. The interface to the backends is updated so that you can
147 -say "git merge -Xours -s recursive other" now.
57 +----------------------------------------------------------------
58 +[Will merge to master soon]
59
60 * j6t/mingw (Sat Nov 17 20:48:14 2007 +0100) 38 commits
61 + compat/pread.c: Add a forward declaration to fix a warning
@@ -196,8 +107,42 @@ say "git merge -Xours -s recursive other" now.
107
108 No explanation necessary ;-)
109
199 -* mv/merge-in-c (Mon Jun 30 03:39:58 2008 +0200) 13 commits
110 +----------------------------------------------------------------
111 +[Actively Cooking]
112 +
113 +* jc/reflog-expire (Sat Jun 28 22:24:49 2008 -0700) 2 commits
114 + - Make default expiration period of reflog used for stash infinite
115 + - Per-ref reflog expiry configuration
116 +
117 +As 1.6.0 will be a good time to make backward incompatible changes, the
118 +tip commit makes the default expiry period of stash 'never', unless you
119 +configure them to expire explicitly using gc.refs/stash.* variables.
120 +Needs consensus, but I am guessing that enough people would want stash
121 +that does not expire.
122 +
123 +We may want to change the commit topology used to represent a stash, as
124 +proposed in $gmane/85055 by Nana earlier.
125 +
126 +* jc/merge-theirs (Mon Jun 30 22:18:57 2008 -0700) 4 commits
127 + - Make "subtree" part more orthogonal to the rest of merge-
128 + recursive.
129 + + Teach git-merge to pass -X<option> to the backend strategy module
130 + + git-merge-recursive-{ours,theirs}
131 + + git-merge-file --ours, --theirs
132 +
133 +Punting a merge by discarding your own work in conflicting parts but st=
134 +ill
135 +salvaging the parts that are cleanly automerged. It is likely that thi=
136 +s
137 +will result in nonsense mishmash, but somehow often people want this, s=
138 +o
139 +here they are. The interface to the backends is updated so that you ca=
140 +n
141 +say "git merge -Xours -Xsubtree=3Dfoo/bar/baz -s recursive other" now.
142 +
143 +* mv/merge-in-c (Tue Jul 1 04:37:50 2008 +0200) 14 commits
144 - Build in merge
145 + - git-commit-tree: make it usable from other builtins
146 - Add new test case to ensure git-merge prepends the custom merge
147 message
148 - Add new test case to ensure git-merge reduces octopus parents when
@@ -214,7 +159,7 @@ No explanation necessary ;-)
159 - Move commit_list_count() to commit.c
160 - Move split_cmdline() to alias.c
161
217 -The last one is still in flux.
162 +I think this is getting there. Will be in 'next' soon.
163
164 * dr/ceiling (Mon May 19 23:49:34 2008 -0700) 4 commits
165 + Eliminate an unnecessary chdir("..")
@@ -236,28 +181,154 @@ rerere to be updated in the index automatically.
181 - Migrate git-blame to parse-option partially.
182 - parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option.
183 - parse-opt: fake short strings for callers to believe in.
239 - - parse-opt: do not pring errors on unknown options, return -2
184 + - parse-opt: do not print errors on unknown options, return -2
185 intead.
186 - parse-opt: create parse_options_step.
187 - parse-opt: Export a non NORETURN usage dumper.
188 - parse-opt: have parse_options_{start,end}.
189
190 +I recall Pierre said something about cleaning up the last one when he
191 +finds time, but other than that vague recollection, I lost track of thi=
192 +s
193 +series. I am tempted to fork a few topics off of the pen=C3=BAltimo on=
194 +e to
195 +convert a few more commands as examples and merge the result to 'next'.
196 +
197 ----------------------------------------------------------------
198 [Graduated to "master"]
199
200 +* ph/mergetool (Mon Jun 16 17:33:41 2008 -0600) 1 commit
201 + + Remove the use of '--' in merge program invocation
202 +
203 +I got tired of waiting for success reports from people who use various
204 +backends. We will hear breakages if this breaks things anyway, and if =
205 +it
206 +does, it is a fairly simple single patch to revert.
207 +
208 +* nd/dashless (Tue Jun 24 19:58:11 2008 -0700) 2 commits
209 + + Keep some git-* programs in $(bindir)
210 + + Move all dashed-form commands to libexecdir
211 +
212 +We'll leave server-side programs in $(bindir) so that ssh clients can a=
213 +sk
214 +for "git-program" and find them on the $PATH. Next major release after
215 +1.6.0 would most likely remove the hardlinks to built-in commands, but =
216 +not
217 +yet.
218 +
219 +* jc/dashless (Thu Jun 26 16:43:34 2008 -0700) 2 commits
220 + + Prepare execv_git_cmd() for removal of builtins from the
221 + filesystem
222 + + git-shell: accept "git foo" form
223 +
224 +The botched "client asks 'git foo'" is not included. It will be long
225 +after everybody runs 1.6.0.
226 +
227 +* jk/maint-fetch-ref-hier (Fri Jun 27 00:01:41 2008 -0400) 2 commits
228 + + fetch: give a hint to the user when local refs fail to update
229 + + fetch: report local storage errors in status table
230 +
231 +When the remote used to have "foo" branch but now has "foo/bar", fetch
232 +refuses to delete the existing remote tracking branch "foo" to create a
233 +new remote tracking branch "foo/bar", but the error message was
234 +confusing.
235 +
236 +Need to backmerge to 'maint' after a while.
237 +
238 +* jc/maint-reset (Wed Jun 25 18:16:36 2008 -0700) 1 commit
239 + + Allow "git-reset path" when unambiguous
240 +
241 +We used to require "git-reset -- path" even when there is no ambiguity
242 +(i.e. path cannot be mistaken as a valid tree-ish and it is a filename =
243 +in
244 +the work tree).
245 +
246 +Need to backmerge to 'maint' after a while.
247 +
248 +* js/maint-clone-insteadof (Fri Jun 27 13:55:23 2008 +0100) 2 commits
249 + + clone: respect the settings in $HOME/.gitconfig and /etc/gitconfig
250 + + clone: respect url.insteadOf setting in global configs
251 +
252 +"git clone" did not honor "url.InsteadOf" in $HOME/.gitconfig. I think
253 +Daniel's "Let's get rid of internal use of GIT_CONFIG" makes sense (eve=
254 +n
255 +though it feels very scary), and it would make the solution much simple=
256 +r,
257 +but these two are independently good fix for now. I'll queue GIT_CONFI=
258 +G
259 +one in 'next' and when it graduates the unsetenv() solution in these wi=
260 +ll
261 +become no-op.
262 +
263 +* tr/send-email-ssl (Thu Jun 26 23:03:21 2008 +0200) 2 commits
264 + + git-send-email: prevent undefined variable warnings if no
265 + encryption is set
266 + + git-send-email: add support for TLS via Net::SMTP::SSL
267 +
268 +* kb/send-email-fifo (Wed Jun 25 15:44:40 2008 -0700) 1 commit
269 + + git-send-email: Accept fifos as well as files
270 +
271 +Two minor send-email feature enhancements.
272 +
273 +* jc/checkdiff (Sun Jun 29 16:49:06 2008 -0400) 7 commits
274 + + Fix t4017-diff-retval for white-space from wc
275 + + Update sample pre-commit hook to use "diff --check"
276 + + diff --check: detect leftover conflict markers
277 + + Teach "diff --check" about new blank lines at end
278 + + checkdiff: pass diff_options to the callback
279 + + check_and_emit_line(): rename and refactor
280 + + diff --check: explain why we do not care whether old side is
281 + binary
282 +
283 +Allows us to replace the sample pre-commit hook that was not aware of t=
284 +he
285 +line termination convention per path nor newer whitespace breakage rule=
286 +s.
287 +
288 +* np/pack-default (Wed Jun 25 00:25:53 2008 -0400) 2 commits
289 + + pack.indexversion config option now defaults to 2
290 + + repack.usedeltabaseoffset config option now defaults to "true"
291 +
292 +Updates the default value for pack.indexversion to 2 and use delta-base
293 +offset encoding of the packfiles by default.
294 +
295 +* js/apply-recount (Fri Jun 27 18:43:09 2008 +0100) 1 commit
296 + + Allow git-apply to recount the lines in a hunk (AKA recountdiff)
297 +
298 +A good ingredient for implementing "apply --edit".
299 +
300 +* dz/apply-again (Fri Jun 27 14:39:12 2008 -0400) 1 commit
301 + + git-apply: handle a patch that touches the same path more than
302 + once better
303 +
304 +Allows us to feed a patch that touches the same path more than once.
305 +
306 ----------------------------------------------------------------
307 [On Hold]
308
251 -* ph/mergetool (Mon Jun 16 17:33:41 2008 -0600) 1 commit
252 - + Remove the use of '--' in merge program invocation
309 +* sg/merge-options (Sun Apr 6 03:23:47 2008 +0200) 1 commit
310 + + merge: remove deprecated summary and diffstat options and config
311 + variables
312 +
313 +This was previously in "will be in master soon" category, but it turns =
314 +out
315 +that the synonyms to the ones this one deletes are fairly new invention
316 +that happend in 1.5.6 timeframe, and we cannot do this just yet.
317 +
318 +* jc/dashless (Thu Jun 26 16:43:34 2008 -0700) 2 commits
319 + + Revert "Make clients ask for "git program" over ssh and local
320 + transport"
321 + + Make clients ask for "git program" over ssh and local transport
322
254 -Waiting for success reports from people who use various backends.
323 +This is the "botched" one. Will be resurrected during 1.7.0 or 1.8.0
324 +timeframe.
325
326 * jk/renamelimit (Sat May 3 13:58:42 2008 -0700) 1 commit
327 - diff: enable "too large a rename" warning when -M/-C is explicitly
328 asked for
329
260 -This would be the right thing to do for command line use, but gitk will be
330 +This would be the right thing to do for command line use, but gitk will=
331 + be
332 hit due to tcl/tk's limitation, so I am holding this back for now.
333
334 ----------------------------------------------------------------
@@ -273,13 +344,17 @@ hit due to tcl/tk's limitation, so I am holding this back for now.
344 + rev-list --children
345 + revision traversal: --children option
346
276 -The blame that finds where each line in the original lines moved to. This
277 -may help a GSoC project that wants to gather statistical overview of the
278 -history. The final presentation may need tweaking (see the log message of
347 +The blame that finds where each line in the original lines moved to. T=
348 +his
349 +may help a GSoC project that wants to gather statistical overview of th=
350 +e
351 +history. The final presentation may need tweaking (see the log message=
352 + of
353 the commit ""git-blame --reverse" on the series).
354
355 The tip two commits are for peeling to see what's behind the blamed
282 -commit, which we should be able to separate out into an independent topic
356 +commit, which we should be able to separate out into an independent top=
357 +ic
358 from the rest.
359
360 ----------------------------------------------------------------
@@ -289,7 +364,7 @@ from the rest.
364 . Introduce fast forward option only
365 . Head reduction before selecting merge strategy
366 . Restructure git-merge.sh
292 - . Introduce -ff=<fast forward option>
367 + . Introduce -ff=3D<fast forward option>
368 . New merge tests
369 . Documentation for joining more than two histories
370
@@ -320,7 +395,8 @@ This will interfere with Miklos's rewrite of merge to C.
395 . revert/cherry-pick: start refactoring call to merge_recursive
396
397 This is meant to improve cherry-pick's behaviour when renames are
323 -involved, by not using merge-recursive (whose d/f conflict resolution is
398 +involved, by not using merge-recursive (whose d/f conflict resolution i=
399 +s
400 quite broken), but unfortunately has stalled for some time now.
401
402 * jc/stripspace (Sun Mar 9 00:30:35 2008 -0800) 6 commits