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