What's cooking in git.git (Jun 2008, issue #01; Sat, 21)

Junio C Hamano committed Jul 20, 2008 at 22:58 UTC f815ebfb796bbf072f1f01cd32b7b637819391e8
1 file changed +306
whatscooking.txt new
+306
@@ -0,0 +1,306 @@
1 +What's cooking in git.git (Jun 2008, issue #01; Sat, 21)
2 +--------------------------------------------------------
3 +
4 +Here are the topics that have been cooking. Commits prefixed
5 +with '-' are only in 'pu' while commits prefixed with '+' are
6 +in 'next'.
7 +
8 +The topics list the commits in reverse chronological order.
9 +
10 +It already is beginning to become clear what 1.6.0 will look like. What's
11 +already in 'next' all are well intentioned (I do not guarantee they are
12 +already bug-free --- that is what cooking them in 'next' is for) and are
13 +good set of feature enhancements. But bigger changes will be:
14 +
15 + * MinGW will be in.
16 +
17 + * /usr/bin/git-cat-file is no more. The bulk of the git commands will
18 + move to /usr/libexec/git-core/ or somesuch.
19 +
20 + * git-merge will be rewritten in C.
21 +
22 +Currently tip of 'pu' is broken and does not pass tests, as j6t/mingw has
23 +interaction with dr/ceiling and jc/merge-theirs has interaction with
24 +mv/merge-in-c.
25 +
26 +----------------------------------------------------------------
27 +[New Topics]
28 +
29 +* jc/merge-theirs (Fri Jun 20 00:17:59 2008 -0700) 2 commits
30 + - git-merge-recursive-{ours,theirs}
31 + - git-merge-file --ours, --theirs
32 +
33 +Punting a merge by discarding your own work in conflicting parts but still
34 +salvaging the parts that are cleanly automerged. It is likely that this
35 +will result in nonsense mishmash, but somehow often people want this, so
36 +here they are. The interface to the backends may need to change, though.
37 +
38 +* lt/racy-empty (Tue Jun 10 10:44:43 2008 -0700) 1 commit
39 + + racy-git: an empty blob has a fixed object name
40 +
41 +* ph/mergetool (Mon Jun 16 17:33:41 2008 -0600) 1 commit
42 + + Remove the use of '--' in merge program invocation
43 +
44 +* j6t/mingw (Sat Nov 17 20:48:14 2007 +0100) 38 commits
45 + - compat/pread.c: Add a forward declaration to fix a warning
46 + - Windows: Fix ntohl() related warnings about printf formatting
47 + - Windows: TMP and TEMP environment variables specify a temporary
48 + directory.
49 + - Windows: Make 'git help -a' work.
50 + - Windows: Work around an oddity when a pipe with no reader is
51 + written to.
52 + - Windows: Make the pager work.
53 + - When installing, be prepared that template_dir may be relative.
54 + - Windows: Use a relative default template_dir and ETC_GITCONFIG
55 + - Windows: Compute the fallback for exec_path from the program
56 + invocation.
57 + - Turn builtin_exec_path into a function.
58 + - Windows: Use a customized struct stat that also has the st_blocks
59 + member.
60 + - Windows: Add a custom implementation for utime().
61 + - Windows: Add a new lstat and fstat implementation based on Win32
62 + API.
63 + - Windows: Implement a custom spawnve().
64 + - Windows: Implement wrappers for gethostbyname(), socket(), and
65 + connect().
66 + - Windows: Work around incompatible sort and find.
67 + - Windows: Implement asynchronous functions as threads.
68 + - Windows: Disambiguate DOS style paths from SSH URLs.
69 + - Windows: A rudimentary poll() emulation.
70 + - Windows: Change the name of hook scripts to make them not
71 + executable.
72 + - Windows: Implement start_command().
73 + - Windows: A pipe() replacement whose ends are not inherited to
74 + children.
75 + - Windows: Wrap execve so that shell scripts can be invoked.
76 + - Windows: Implement setitimer() and sigaction().
77 + - Windows: Fix PRIuMAX definition.
78 + - Windows: Implement gettimeofday().
79 + - Windows: Handle absolute paths in
80 + safe_create_leading_directories().
81 + - Windows: Treat Windows style path names.
82 + - setup.c: Prepare for Windows directory separators.
83 + - Windows: Work around misbehaved rename().
84 + - Windows: always chmod(, 0666) before unlink().
85 + - Windows: A minimal implemention of getpwuid().
86 + - Windows: Implement a wrapper of the open() function.
87 + - Windows: Strip ".exe" from the program name.
88 + - Windows: Use the Windows style PATH separator ';'.
89 + - Add target architecture MinGW.
90 + - Compile some programs only conditionally.
91 + - Add compat/regex.[ch] and compat/fnmatch.[ch].
92 +
93 +No explanation is necessary ;-).
94 +
95 +* sn/static (Thu Jun 19 08:21:11 2008 +0900) 2 commits
96 + + config.c: make git_env_bool() static
97 + + environment.c: remove unused function
98 +
99 +* lt/config-fsync (Wed Jun 18 15:18:44 2008 -0700) 4 commits
100 + + Add config option to enable 'fsync()' of object files
101 + + Split up default "i18n" and "branch" config parsing into helper
102 + routines
103 + + Split up default "user" config parsing into helper routine
104 + + Split up default "core" config parsing into helper routine
105 +
106 +* lw/gitweb (Thu Jun 19 22:03:21 2008 +0200) 1 commit
107 + + gitweb: standarize HTTP status codes
108 +
109 +* mv/merge-in-c (Fri Jun 20 01:22:36 2008 +0200) 11 commits
110 + - Add new test to ensure git-merge handles more than 25 refs.
111 + - Build in merge
112 + - Introduce filter_independent() in commit.c
113 + - Introduce get_octopus_merge_bases() in commit.c
114 + - git-fmt-merge-msg: make it usable from other builtins
115 + - Move read_cache_unmerged() to read-cache.c
116 + - parseopt: add a new PARSE_OPT_ARGV0_IS_AN_OPTION option
117 + - Add new test to ensure git-merge handles pull.twohead and
118 + pull.octopus
119 + - Move parse-options's skip_prefix() to git-compat-util.h
120 + - Move commit_list_count() to commit.c
121 + - Move split_cmdline() to alias.c
122 +
123 +* jc/maint-combine-diff-pre-context (Wed Jun 18 23:59:41 2008 -0700) 1 commit
124 + + diff -c/--cc: do not include uninteresting deletion before leading
125 + context
126 +
127 +* lt/maint-gitdir-relative (Thu Jun 19 12:34:06 2008 -0700) 1 commit
128 + + Make git_dir a path relative to work_tree in setup_work_tree()
129 +
130 +----------------------------------------------------------------
131 +[Actively Cooking]
132 +
133 +* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
134 + + Move all dashed-form commands to libexecdir
135 +
136 +Scheduled for 1.6.0.
137 +
138 +* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
139 + - Prepare execv_git_cmd() for removal of builtins from the
140 + filesystem
141 + - git-shell: accept "git foo" form
142 +
143 +We do not plan to remove git-foo form completely from the filesystem at
144 +this point, but git-shell may need to be updated.
145 +
146 +* sg/merge-options (Sun Apr 6 03:23:47 2008 +0200) 1 commit
147 + + merge: remove deprecated summary and diffstat options and config
148 + variables
149 +
150 +* dr/ceiling (Mon May 19 23:49:34 2008 -0700) 4 commits
151 + + Eliminate an unnecessary chdir("..")
152 + + Add support for GIT_CEILING_DIRECTORIES
153 + + Fold test-absolute-path into test-path-utils
154 + + Implement normalize_absolute_path
155 +
156 +* jn/web (Tue Jun 10 19:21:44 2008 +0200) 2 commits
157 + + gitweb: Separate generating 'sort by' table header
158 + + gitweb: Separate filling list of projects info
159 +
160 +* rs/archive-ignore (Sun Jun 8 18:42:33 2008 +0200) 1 commit
161 + + Teach new attribute 'export-ignore' to git-archive
162 +
163 +* rg/gitweb (Fri Jun 6 09:53:32 2008 +0200) 1 commit
164 + + gitweb: remove git_blame and rename git_blame2 to git_blame
165 +
166 +* kh/update-ref (Tue Jun 3 01:34:53 2008 +0200) 2 commits
167 + + Make old sha1 optional with git update-ref -d
168 + + Clean up builtin-update-ref's option parsing
169 +
170 +* mo/status-untracked (Thu Jun 5 14:47:50 2008 +0200) 3 commits
171 + + Add configuration option for default untracked files mode
172 + + Add argument 'no' commit/status option -u|--untracked-files
173 + + Add an optional <mode> argument to commit/status -u|--untracked-
174 + files option
175 +
176 +* sr/tests (Sun Jun 8 16:04:35 2008 +0200) 3 commits
177 + + Hook up the result aggregation in the test makefile.
178 + + A simple script to parse the results from the testcases
179 + + Modify test-lib.sh to output stats to t/test-results/*
180 +
181 +* jh/clone-packed-refs (Sun Jun 15 16:06:16 2008 +0200) 4 commits
182 + + Teach "git clone" to pack refs
183 + + Prepare testsuite for a "git clone" that packs refs
184 + + Move pack_refs() and friends into libgit
185 + + Incorporate fetched packs in future object traversal
186 +
187 +This is useful when cloning from a repository with insanely large number
188 +of refs.
189 +
190 +* jc/reflog-expire (Sun Jun 15 23:48:46 2008 -0700) 1 commit
191 + - Per-ref reflog expiry configuration
192 +
193 +Perhaps a good foundation for optionally unexpirable stash. As 1.6.0 will
194 +be a good time to make backward incompatible changes, we might make expiry
195 +period of stash 'never' in new repositories. Needs a concensus.
196 +
197 +* lw/perlish (Thu Jun 19 22:32:49 2008 +0200) 2 commits
198 + + Git.pm: add test suite
199 + + t/test-lib.sh: add test_external and test_external_without_stderr
200 +
201 +Beginning of regression tests for Perl part of the system.
202 +
203 +* jk/test (Sat Jun 14 03:28:07 2008 -0400) 5 commits
204 + + enable whitespace checking of test scripts
205 + + avoid trailing whitespace in zero-change diffstat lines
206 + + avoid whitespace on empty line in automatic usage message
207 + + mask necessary whitespace policy violations in test scripts
208 + + fix whitespace violations in test scripts
209 +
210 +Tightens whitespace rules for t/*.sh scripts.
211 +
212 +* pb/fast-export (Wed Jun 11 13:17:04 2008 +0200) 1 commit
213 + + builtin-fast-export: Add importing and exporting of revision marks
214 +
215 +----------------------------------------------------------------
216 +[Graduated to "master"]
217 +
218 +Nothing today but expect many small ones to come out of 'next' this
219 +weekend.
220 +
221 +----------------------------------------------------------------
222 +[On Hold]
223 +
224 +* jc/blame (Wed Jun 4 22:58:40 2008 -0700) 7 commits
225 + - blame: show "previous" information in --porcelain/--incremental
226 + format
227 + - git-blame: refactor code to emit "porcelain format" output
228 + + git-blame --reverse
229 + + builtin-blame.c: allow more than 16 parents
230 + + builtin-blame.c: move prepare_final() into a separate function.
231 + + rev-list --children
232 + + revision traversal: --children option
233 +
234 +The blame that finds where each line in the original lines moved to. This
235 +may help a GSoC project that wants to gather statistical overview of the
236 +history. The final presentation may need tweaking (see the log message of
237 +the commit ""git-blame --reverse" on the series).
238 +
239 +The tip two commits are for peeling to see what's behind the blamed
240 +commit, which we should be able to separate out into an independent topic
241 +from the rest.
242 +
243 +* jc/send-pack-tell-me-more (Thu Mar 20 00:44:11 2008 -0700) 1 commit
244 + - "git push": tellme-more protocol extension
245 +
246 +Kicked back to 'pu' for now.
247 +
248 +* js/rebase-i-sequencer (Sun Apr 27 02:55:50 2008 -0400) 17 commits
249 + - Use perl instead of tac
250 + - Fix t3404 assumption that `wc -l` does not use whitespace.
251 + - rebase -i: Use : in expr command instead of match.
252 + - rebase -i: update the implementation of 'mark' command
253 + - Add option --preserve-tags
254 + - Teach rebase interactive the tag command
255 + - Add option --first-parent
256 + - Do rebase with preserve merges with advanced TODO list
257 + - Select all lines with fake-editor
258 + - Unify the length of $SHORT* and the commits in the TODO list
259 + - Teach rebase interactive the merge command
260 + - Move redo merge code in a function
261 + - Teach rebase interactive the reset command
262 + - Teach rebase interactive the mark command
263 + - Move cleanup code into it's own function
264 + - Don't append default merge message to -m message
265 + - fake-editor: output TODO list if unchanged
266 +
267 +It is very likely that this whole thing will be reverted from 'next' and
268 +be replaced with the new sequenser series during 1.6.0 cycle.
269 +
270 +* sj/merge (Sat May 3 16:55:47 2008 -0700) 6 commits
271 + - Introduce fast forward option only
272 + - Head reduction before selecting merge strategy
273 + - Restructure git-merge.sh
274 + - Introduce -ff=<fast forward option>
275 + - New merge tests
276 + - Documentation for joining more than two histories
277 +
278 +This will interfere with Miklos's rewrite of merge to C.
279 +
280 +* jk/renamelimit (Sat May 3 13:58:42 2008 -0700) 1 commit
281 + - diff: enable "too large a rename" warning when -M/-C is explicitly
282 + asked for
283 +
284 +This would be the right thing to do for command line use, but gitk will be
285 +hit due to tcl/tk's limitation, so I am holding this back for now.
286 +
287 +* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 3 commits
288 + - WIP: rethink replay merge
289 + - Start using replay-tree merge in cherry-pick
290 + - revert/cherry-pick: start refactoring call to merge_recursive
291 +
292 +This is meant to improve cherry-pick's behaviour when renames are
293 +involved, by not using merge-recursive (whose d/f conflict resolution is
294 +quite broken), but unfortunately has stalled for some time now.
295 +
296 +* jc/stripspace (Sun Mar 9 00:30:35 2008 -0800) 6 commits
297 + - git-am --forge: add Signed-off-by: line for the author
298 + - git-am: clean-up Signed-off-by: lines
299 + - stripspace: add --log-clean option to clean up signed-off-by:
300 + lines
301 + - stripspace: use parse_options()
302 + - Add "git am -s" test
303 + - git-am: refactor code to add signed-off-by line for the committer
304 +
305 +Just my toy at this moment.
306 +