What's cooking (2008/06 #04)

Junio C Hamano committed Aug 5, 2008 at 21:44 UTC df6be057e79137380979546f51caa94c4bc4110d
1 file changed +183 -139
whats-cooking.txt
+183 -139
@@ -1,93 +1,209 @@
1 -Subject: What's cooking in git.git (Jun 2008, issue #03; Wed, 25)
1 +Subject: What's cooking in git.git (Jun 2008, issue #04; Mon, 30)
2
3 -What's cooking in git.git (Jun 2008, issue #03; Wed, 25)
3 +What's cooking in git.git (Jun 2008, issue #04; Mon, 30)
4 --------------------------------------------------------
5
6 Here are the topics that have been cooking. Commits prefixed
7 with '-' are only in 'pu' while commits prefixed with '+' are
8 in 'next'.
9
10 -The topics list the commits in reverse chronological order.
10 +The topics list the commits in reverse chronological order. The topics
11 +meant to be applied to the maintenance series have "maint-" in their
12 +names.
13
14 It already is beginning to become clear what 1.6.0 will look like. What's
15 already in 'next' all are well intentioned (I do not guarantee they are
16 already bug-free --- that is what cooking them in 'next' is for) and are
15 -good set of feature enhancements. But bigger changes will be:
17 +good set of feature enhancements. Bigger changes will be:
18
19 * MinGW will be in.
20
19 - * /usr/bin/git-cat-file is no more. The bulk of the git commands will
20 - move to /usr/libexec/git-core/ or somesuch.
21 + * With the default Makefile settings, most of the programs will be
22 + installed outside your $PATH, except for "git", "gitk", "git-gui" and
23 + some server side programs that need to be accessible for technical
24 + reasons. Invoking a git subcommand as "git-xyzzy" from the command
25 + line has been deprecated since early 2006 (and officially announced in
26 + 1.5.4 release notes); use of them from your scripts after adding
27 + output from "git --exec-path" to the $PATH will still be supported in
28 + 1.6.0, but users are again strongly encouraged to adjust their
29 + scripts to use "git xyzzy" form, as we will stop installing
30 + "git-xyzzy" hardlinks for built-in commands in later releases.
31
32 * git-merge will be rewritten in C.
33
34 * default pack and idx versions will be updated as scheduled for some
35 time ago.
36
27 -----------------------------------------------------------------
28 -[New Topics]
29 -
30 -* ph/parseopt-step-blame (Tue Jun 24 11:12:12 2008 +0200) 7 commits
31 - - Migrate git-blame to parse-option partially.
32 - - parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option.
33 - - parse-opt: fake short strings for callers to believe in.
34 - - parse-opt: do not pring errors on unknown options, return -2
35 - intead.
36 - - parse-opt: create parse_options_step.
37 - - parse-opt: Export a non NORETURN usage dumper.
38 - - parse-opt: have parse_options_{start,end}.
39 -
37 ----------------------------------------------------------------
38 [Will merge to master soon]
39
43 -* lw/gitweb (Thu Jun 19 22:03:21 2008 +0200) 1 commit
44 - + gitweb: standarize HTTP status codes
45 -
46 -* lt/config-fsync (Wed Jun 18 15:18:44 2008 -0700) 4 commits
47 - + Add config option to enable 'fsync()' of object files
48 - + Split up default "i18n" and "branch" config parsing into helper
49 - routines
50 - + Split up default "user" config parsing into helper routine
51 - + Split up default "core" config parsing into helper routine
52 -
40 * nd/dashless (Tue Jun 24 19:58:11 2008 -0700) 2 commits
41 + Keep some git-* programs in $(bindir)
42 + Move all dashed-form commands to libexecdir
43
57 -Scheduled for 1.6.0. We'll leave server-side programs in $(bindir)
58 -so that ssh clients can ask for "git-program" and find them on the $PATH.
44 +Scheduled for 1.6.0. We'll leave server-side programs in $(bindir) so
45 +that ssh clients can ask for "git-program" and find them on the $PATH.
46 +Next major release after 1.6.0 would most likely remove the hardlinks to
47 +built-in commands, but not yet.
48
49 * sg/merge-options (Sun Apr 6 03:23:47 2008 +0200) 1 commit
50 + merge: remove deprecated summary and diffstat options and config
51 variables
52
64 -* sr/tests (Sun Jun 8 16:04:35 2008 +0200) 3 commits
65 - + Hook up the result aggregation in the test makefile.
66 - + A simple script to parse the results from the testcases
67 - + Modify test-lib.sh to output stats to t/test-results/*
53 +* jc/dashless (Thu Jun 26 16:43:34 2008 -0700) 4 commits
54 + + Revert "Make clients ask for "git program" over ssh and local
55 + transport"
56 + + Make clients ask for "git program" over ssh and local transport
57 + + Prepare execv_git_cmd() for removal of builtins from the
58 + filesystem
59 + + git-shell: accept "git foo" form
60
69 -* jh/clone-packed-refs (Sun Jun 15 16:06:16 2008 +0200) 4 commits
70 - + Teach "git clone" to pack refs
71 - + Prepare testsuite for a "git clone" that packs refs
72 - + Move pack_refs() and friends into libgit
73 - + Incorporate fetched packs in future object traversal
61 +----------------------------------------------------------------
62 +[Actively Cooking]
63
75 -This is useful when cloning from a repository with insanely large number
76 -of refs.
64 +* jk/maint-fetch-ref-hier (Fri Jun 27 00:01:41 2008 -0400) 2 commits
65 + + fetch: give a hint to the user when local refs fail to update
66 + + fetch: report local storage errors in status table
67
78 -* lw/perlish (Thu Jun 19 22:32:49 2008 +0200) 2 commits
79 - + Git.pm: add test suite
80 - + t/test-lib.sh: add test_external and test_external_without_stderr
68 +When the remote used to have "foo" branch but now has "foo/bar", fetch
69 +refuses to delete the existing remote tracking branch "foo" to create a
70 +new remote tracking branch "foo/bar", but the error message was
71 +confusing.
72
82 -Beginning of regression tests for Perl part of the system.
73 +* jc/maint-reset (Wed Jun 25 18:16:36 2008 -0700) 1 commit
74 + + Allow "git-reset path" when unambiguous
75
84 -----------------------------------------------------------------
85 -[Actively Cooking]
76 +We used to require "git-reset -- path" even when there is no ambiguity
77 +(i.e. path cannot be mistaken as a valid tree-ish and it is a filename in
78 +the work tree).
79 +
80 +* js/maint-clone-insteadof (Fri Jun 27 13:55:23 2008 +0100) 2 commits
81 + + clone: respect the settings in $HOME/.gitconfig and /etc/gitconfig
82 + + clone: respect url.insteadOf setting in global configs
83
87 -* mv/merge-in-c (Sat Jun 21 19:15:35 2008 +0200) 12 commits
84 +"git clone" did not honor "url.InsteadOf" in $HOME/.gitconfig. I think
85 +Daniel's "Let's get rid of internal use of GIT_CONFIG" makes sense (even
86 +though it feels very scary), and it would make the solution much simpler,
87 +but it came late and it is already past my bedtime, so...
88 +
89 +* tr/send-email-ssl (Thu Jun 26 23:03:21 2008 +0200) 2 commits
90 + + git-send-email: prevent undefined variable warnings if no
91 + encryption is set
92 + + git-send-email: add support for TLS via Net::SMTP::SSL
93 +
94 +* kb/send-email-fifo (Wed Jun 25 15:44:40 2008 -0700) 1 commit
95 + + git-send-email: Accept fifos as well as files
96 +
97 +Two minor send-email feature enhancements for 1.6.0.
98 +
99 +* jc/checkdiff (Sun Jun 29 16:49:06 2008 -0400) 7 commits
100 + + Fix t4017-diff-retval for white-space from wc
101 + + Update sample pre-commit hook to use "diff --check"
102 + + diff --check: detect leftover conflict markers
103 + + Teach "diff --check" about new blank lines at end
104 + + checkdiff: pass diff_options to the callback
105 + + check_and_emit_line(): rename and refactor
106 + + diff --check: explain why we do not care whether old side is
107 + binary
108 +
109 +Allows us to replace the sample pre-commit hook that was not aware of the
110 +line termination convention per path nor newer whitespace breakage rules.
111 +
112 +* np/pack-default (Wed Jun 25 00:25:53 2008 -0400) 2 commits
113 + + pack.indexversion config option now defaults to 2
114 + + repack.usedeltabaseoffset config option now defaults to "true"
115 +
116 +Updates the default value for pack.indexversion to 2 and use delta-base
117 +offset encoding of the packfiles by default.
118 +
119 +* js/apply-recount (Fri Jun 27 18:43:09 2008 +0100) 1 commit
120 + + Allow git-apply to recount the lines in a hunk (AKA recountdiff)
121 +
122 +A good ingredient for implementing "apply --edit".
123 +
124 +* dz/apply-again (Fri Jun 27 14:39:12 2008 -0400) 1 commit
125 + + git-apply: handle a patch that touches the same path more than
126 + once better
127 +
128 +Allows us to feed a patch that touches the same path more than once.
129 +
130 +* jc/reflog-expire (Sat Jun 28 22:24:49 2008 -0700) 2 commits
131 + - Make default expiration period of reflog used for stash infinite
132 + - Per-ref reflog expiry configuration
133 +
134 +As 1.6.0 will be a good time to make backward incompatible changes, the
135 +tip commit makes the default expiry period of stash 'never', unless you
136 +configure them to expire explicitly using gc.refs/stash.* variables.
137 +Needs consensus, but I am guessing that enough people would want stash
138 +that does not expire.
139 +
140 +* jc/merge-theirs (Sat Jun 28 17:28:22 2008 -0700) 3 commits
141 + + Teach git-merge to pass -X<option> to the backend strategy module
142 + + git-merge-recursive-{ours,theirs}
143 + + git-merge-file --ours, --theirs
144 +
145 +Punting a merge by discarding your own work in conflicting parts but still
146 +salvaging the parts that are cleanly automerged. It is likely that this
147 +will result in nonsense mishmash, but somehow often people want this, so
148 +here they are. The interface to the backends is updated so that you can
149 +say "git merge -Xours -s recursive other" now.
150 +
151 +* j6t/mingw (Sat Nov 17 20:48:14 2007 +0100) 38 commits
152 + + compat/pread.c: Add a forward declaration to fix a warning
153 + + Windows: Fix ntohl() related warnings about printf formatting
154 + + Windows: TMP and TEMP environment variables specify a temporary
155 + directory.
156 + + Windows: Make 'git help -a' work.
157 + + Windows: Work around an oddity when a pipe with no reader is
158 + written to.
159 + + Windows: Make the pager work.
160 + + When installing, be prepared that template_dir may be relative.
161 + + Windows: Use a relative default template_dir and ETC_GITCONFIG
162 + + Windows: Compute the fallback for exec_path from the program
163 + invocation.
164 + + Turn builtin_exec_path into a function.
165 + + Windows: Use a customized struct stat that also has the st_blocks
166 + member.
167 + + Windows: Add a custom implementation for utime().
168 + + Windows: Add a new lstat and fstat implementation based on Win32
169 + API.
170 + + Windows: Implement a custom spawnve().
171 + + Windows: Implement wrappers for gethostbyname(), socket(), and
172 + connect().
173 + + Windows: Work around incompatible sort and find.
174 + + Windows: Implement asynchronous functions as threads.
175 + + Windows: Disambiguate DOS style paths from SSH URLs.
176 + + Windows: A rudimentary poll() emulation.
177 + + Windows: Implement start_command().
178 + + Windows: A pipe() replacement whose ends are not inherited to
179 + children.
180 + + Windows: Wrap execve so that shell scripts can be invoked.
181 + + Windows: Implement setitimer() and sigaction().
182 + + Windows: Fix PRIuMAX definition.
183 + + Windows: Implement gettimeofday().
184 + + Make my_mktime() public and rename it to tm_to_time_t()
185 + + Windows: Work around misbehaved rename().
186 + + Windows: always chmod(, 0666) before unlink().
187 + + Windows: A minimal implemention of getpwuid().
188 + + Windows: Implement a wrapper of the open() function.
189 + + Windows: Strip ".exe" from the program name.
190 + + Windows: Handle absolute paths in
191 + safe_create_leading_directories().
192 + + Windows: Treat Windows style path names.
193 + + setup.c: Prepare for Windows directory separators.
194 + + Windows: Use the Windows style PATH separator ';'.
195 + + Add target architecture MinGW.
196 + + Compile some programs only conditionally.
197 + + Add compat/regex.[ch] and compat/fnmatch.[ch].
198 +
199 +No explanation necessary ;-)
200 +
201 +* mv/merge-in-c (Mon Jun 30 03:39:58 2008 +0200) 13 commits
202 + - Build in merge
203 + - Add new test case to ensure git-merge prepends the custom merge
204 + message
205 - Add new test case to ensure git-merge reduces octopus parents when
206 possible
90 - - Build in merge
207 - Introduce reduce_heads()
208 - Introduce get_merge_bases_many()
209 - Add new test to ensure git-merge handles more than 25 refs.
@@ -100,15 +216,7 @@ Beginning of regression tests for Perl part of the system.
216 - Move commit_list_count() to commit.c
217 - Move split_cmdline() to alias.c
218
103 -I dropped the change to parseopt in this series and fixed up the caller.
104 -
105 -* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
106 - + Prepare execv_git_cmd() for removal of builtins from the
107 - filesystem
108 - + git-shell: accept "git foo" form
109 -
110 -We do not plan to remove git-foo form completely from the filesystem at
111 -this point, but git-shell may need to be updated.
219 +The last one is still in flux.
220
221 * dr/ceiling (Mon May 19 23:49:34 2008 -0700) 4 commits
222 + Eliminate an unnecessary chdir("..")
@@ -117,23 +225,28 @@ this point, but git-shell may need to be updated.
225 + Implement normalize_absolute_path
226
227 * jc/rerere (Sun Jun 22 02:04:31 2008 -0700) 5 commits
120 - - rerere.autoupdate
121 - - t4200: fix rerere test
122 - - rerere: remove dubious "tail_optimization"
123 - - git-rerere: detect unparsable conflicts
124 - - rerere: rerere_created_at() and has_resolution() abstraction
228 + + rerere.autoupdate
229 + + t4200: fix rerere test
230 + + rerere: remove dubious "tail_optimization"
231 + + git-rerere: detect unparsable conflicts
232 + + rerere: rerere_created_at() and has_resolution() abstraction
233
126 -* sb/rebase (Sun Jun 22 01:55:50 2008 +0200) 2 commits
127 - + t3404: stricter tests for git-rebase--interactive
128 - + api-builtin.txt: update and fix typo
234 +A new configuration will allow paths that have been resolved cleanly by
235 +rerere to be updated in the index automatically.
236
130 -* sb/maint-rebase (Sun Jun 22 16:07:02 2008 +0200) 1 commit
131 - + git-rebase.sh: Add check if rebase is in progress
237 +* ph/parseopt-step-blame (Tue Jun 24 11:12:12 2008 +0200) 7 commits
238 + - Migrate git-blame to parse-option partially.
239 + - parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option.
240 + - parse-opt: fake short strings for callers to believe in.
241 + - parse-opt: do not pring errors on unknown options, return -2
242 + intead.
243 + - parse-opt: create parse_options_step.
244 + - parse-opt: Export a non NORETURN usage dumper.
245 + - parse-opt: have parse_options_{start,end}.
246
247 ----------------------------------------------------------------
248 [Graduated to "master"]
249
136 -
250 ----------------------------------------------------------------
251 [On Hold]
252
@@ -142,59 +255,6 @@ this point, but git-shell may need to be updated.
255
256 Waiting for success reports from people who use various backends.
257
145 -* j6t/mingw (Sat Nov 17 20:48:14 2007 +0100) 39 commits
146 - - compat/pread.c: Add a forward declaration to fix a warning
147 - - Windows: Fix ntohl() related warnings about printf formatting
148 - - Windows: TMP and TEMP environment variables specify a temporary
149 - directory.
150 - - Windows: Make 'git help -a' work.
151 - - Windows: Work around an oddity when a pipe with no reader is
152 - written to.
153 - - Windows: Make the pager work.
154 - - When installing, be prepared that template_dir may be relative.
155 - - Windows: Use a relative default template_dir and ETC_GITCONFIG
156 - - Windows: Compute the fallback for exec_path from the program
157 - invocation.
158 - - Turn builtin_exec_path into a function.
159 - - Windows: Use a customized struct stat that also has the st_blocks
160 - member.
161 - - Windows: Add a custom implementation for utime().
162 - - Windows: Add a new lstat and fstat implementation based on Win32
163 - API.
164 - - Windows: Implement a custom spawnve().
165 - - Windows: Implement wrappers for gethostbyname(), socket(), and
166 - connect().
167 - - Windows: Work around incompatible sort and find.
168 - - Windows: Implement asynchronous functions as threads.
169 - - Windows: Disambiguate DOS style paths from SSH URLs.
170 - - Windows: A rudimentary poll() emulation.
171 - - Windows: Change the name of hook scripts to make them not
172 - executable.
173 - - Windows: Implement start_command().
174 - - Windows: A pipe() replacement whose ends are not inherited to
175 - children.
176 - - Windows: Wrap execve so that shell scripts can be invoked.
177 - - Windows: Implement setitimer() and sigaction().
178 - - Windows: Fix PRIuMAX definition.
179 - - Windows: Implement gettimeofday().
180 - - Make my_mktime() public and rename it to tm_to_time_t()
181 - - Windows: Work around misbehaved rename().
182 - - Windows: always chmod(, 0666) before unlink().
183 - - Windows: A minimal implemention of getpwuid().
184 - - Windows: Implement a wrapper of the open() function.
185 - - Windows: Strip ".exe" from the program name.
186 - - Windows: Handle absolute paths in
187 - safe_create_leading_directories().
188 - - Windows: Treat Windows style path names.
189 - - setup.c: Prepare for Windows directory separators.
190 - - Windows: Use the Windows style PATH separator ';'.
191 - - Add target architecture MinGW.
192 - - Compile some programs only conditionally.
193 - - Add compat/regex.[ch] and compat/fnmatch.[ch].
194 -
195 -No explanation is necessary ;-). The series is probably 'next' worthy
196 -as-is, except that template renaming hack won't be needed anymore.
197 -
258 * jk/renamelimit (Sat May 3 13:58:42 2008 -0700) 1 commit
259 - diff: enable "too large a rename" warning when -M/-C is explicitly
260 asked for
@@ -205,22 +265,6 @@ hit due to tcl/tk's limitation, so I am holding this back for now.
265 ----------------------------------------------------------------
266 [Stalled/Needs more work]
267
208 -* jc/reflog-expire (Sun Jun 15 23:48:46 2008 -0700) 1 commit
209 - - Per-ref reflog expiry configuration
210 -
211 -Perhaps a good foundation for optionally unexpirable stash. As 1.6.0 will
212 -be a good time to make backward incompatible changes, we might make expiry
213 -period of stash 'never' in new repositories. Needs a concensus.
214 -
215 -* jc/merge-theirs (Fri Jun 20 00:17:59 2008 -0700) 2 commits
216 - - git-merge-recursive-{ours,theirs}
217 - - git-merge-file --ours, --theirs
218 -
219 -Punting a merge by discarding your own work in conflicting parts but still
220 -salvaging the parts that are cleanly automerged. It is likely that this
221 -will result in nonsense mishmash, but somehow often people want this, so
222 -here they are. The interface to the backends may need to change, though.
223 -
268 * jc/blame (Wed Jun 4 22:58:40 2008 -0700) 7 commits
269 - blame: show "previous" information in --porcelain/--incremental
270 format