Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' while commits prefixed with '+' are in 'next'. The topics list the commits in reverse chronological order. It already is beginning to become clear what 1.6.0 will look like. What's already in 'next' all are well intentioned (I do not guarantee they are already bug-free --- that is what cooking them in 'next' is for) and are good set of feature enhancements. But bigger changes will be: * MinGW will be in. * /usr/bin/git-cat-file is no more. The bulk of the git commands will move to /usr/libexec/git-core/ or somesuch. * git-merge will be rewritten in C. * default pack and idx versions will be updated as scheduled for some time ago. ---------------------------------------------------------------- [New Topics] * ph/parseopt-step-blame (Tue Jun 24 11:12:12 2008 +0200) 7 commits - Migrate git-blame to parse-option partially. - parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option. - parse-opt: fake short strings for callers to believe in. - parse-opt: do not pring errors on unknown options, return -2 intead. - parse-opt: create parse_options_step. - parse-opt: Export a non NORETURN usage dumper. - parse-opt: have parse_options_{start,end}. ---------------------------------------------------------------- [Will merge to master soon] * lw/gitweb (Thu Jun 19 22:03:21 2008 +0200) 1 commit + gitweb: standarize HTTP status codes * lt/config-fsync (Wed Jun 18 15:18:44 2008 -0700) 4 commits + Add config option to enable 'fsync()' of object files + Split up default "i18n" and "branch" config parsing into helper routines + Split up default "user" config parsing into helper routine + Split up default "core" config parsing into helper routine * nd/dashless (Tue Jun 24 19:58:11 2008 -0700) 2 commits + Keep some git-* programs in $(bindir) + Move all dashed-form commands to libexecdir Scheduled for 1.6.0. We'll leave server-side programs in $(bindir) so that ssh clients can ask for "git-program" and find them on the $PATH. * sg/merge-options (Sun Apr 6 03:23:47 2008 +0200) 1 commit + merge: remove deprecated summary and diffstat options and config variables * sr/tests (Sun Jun 8 16:04:35 2008 +0200) 3 commits + Hook up the result aggregation in the test makefile. + A simple script to parse the results from the testcases + Modify test-lib.sh to output stats to t/test-results/* * jh/clone-packed-refs (Sun Jun 15 16:06:16 2008 +0200) 4 commits + Teach "git clone" to pack refs + Prepare testsuite for a "git clone" that packs refs + Move pack_refs() and friends into libgit + Incorporate fetched packs in future object traversal This is useful when cloning from a repository with insanely large number of refs. * lw/perlish (Thu Jun 19 22:32:49 2008 +0200) 2 commits + Git.pm: add test suite + t/test-lib.sh: add test_external and test_external_without_stderr Beginning of regression tests for Perl part of the system. ---------------------------------------------------------------- [Actively Cooking] * mv/merge-in-c (Sat Jun 21 19:15:35 2008 +0200) 12 commits - Add new test case to ensure git-merge reduces octopus parents when possible - Build in merge - Introduce reduce_heads() - Introduce get_merge_bases_many() - Add new test to ensure git-merge handles more than 25 refs. - Introduce get_octopus_merge_bases() in commit.c - git-fmt-merge-msg: make it usable from other builtins - Move read_cache_unmerged() to read-cache.c - Add new test to ensure git-merge handles pull.twohead and pull.octopus - Move parse-options's skip_prefix() to git-compat-util.h - Move commit_list_count() to commit.c - Move split_cmdline() to alias.c I dropped the change to parseopt in this series and fixed up the caller. * jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits + Prepare execv_git_cmd() for removal of builtins from the filesystem + git-shell: accept "git foo" form We do not plan to remove git-foo form completely from the filesystem at this point, but git-shell may need to be updated. * dr/ceiling (Mon May 19 23:49:34 2008 -0700) 4 commits + Eliminate an unnecessary chdir("..") + Add support for GIT_CEILING_DIRECTORIES + Fold test-absolute-path into test-path-utils + Implement normalize_absolute_path * jc/rerere (Sun Jun 22 02:04:31 2008 -0700) 5 commits - rerere.autoupdate - t4200: fix rerere test - rerere: remove dubious "tail_optimization" - git-rerere: detect unparsable conflicts - rerere: rerere_created_at() and has_resolution() abstraction * sb/rebase (Sun Jun 22 01:55:50 2008 +0200) 2 commits + t3404: stricter tests for git-rebase--interactive + api-builtin.txt: update and fix typo * sb/maint-rebase (Sun Jun 22 16:07:02 2008 +0200) 1 commit + git-rebase.sh: Add check if rebase is in progress ---------------------------------------------------------------- [Graduated to "master"] ---------------------------------------------------------------- [On Hold] * ph/mergetool (Mon Jun 16 17:33:41 2008 -0600) 1 commit + Remove the use of '--' in merge program invocation Waiting for success reports from people who use various backends. * j6t/mingw (Sat Nov 17 20:48:14 2007 +0100) 39 commits - compat/pread.c: Add a forward declaration to fix a warning - Windows: Fix ntohl() related warnings about printf formatting - Windows: TMP and TEMP environment variables specify a temporary directory. - Windows: Make 'git help -a' work. - Windows: Work around an oddity when a pipe with no reader is written to. - Windows: Make the pager work. - When installing, be prepared that template_dir may be relative. - Windows: Use a relative default template_dir and ETC_GITCONFIG - Windows: Compute the fallback for exec_path from the program invocation. - Turn builtin_exec_path into a function. - Windows: Use a customized struct stat that also has the st_blocks member. - Windows: Add a custom implementation for utime(). - Windows: Add a new lstat and fstat implementation based on Win32 API. - Windows: Implement a custom spawnve(). - Windows: Implement wrappers for gethostbyname(), socket(), and connect(). - Windows: Work around incompatible sort and find. - Windows: Implement asynchronous functions as threads. - Windows: Disambiguate DOS style paths from SSH URLs. - Windows: A rudimentary poll() emulation. - Windows: Change the name of hook scripts to make them not executable. - Windows: Implement start_command(). - Windows: A pipe() replacement whose ends are not inherited to children. - Windows: Wrap execve so that shell scripts can be invoked. - Windows: Implement setitimer() and sigaction(). - Windows: Fix PRIuMAX definition. - Windows: Implement gettimeofday(). - Make my_mktime() public and rename it to tm_to_time_t() - Windows: Work around misbehaved rename(). - Windows: always chmod(, 0666) before unlink(). - Windows: A minimal implemention of getpwuid(). - Windows: Implement a wrapper of the open() function. - Windows: Strip ".exe" from the program name. - Windows: Handle absolute paths in safe_create_leading_directories(). - Windows: Treat Windows style path names. - setup.c: Prepare for Windows directory separators. - Windows: Use the Windows style PATH separator ';'. - Add target architecture MinGW. - Compile some programs only conditionally. - Add compat/regex.[ch] and compat/fnmatch.[ch]. No explanation is necessary ;-). The series is probably 'next' worthy as-is, except that template renaming hack won't be needed anymore. * jk/renamelimit (Sat May 3 13:58:42 2008 -0700) 1 commit - diff: enable "too large a rename" warning when -M/-C is explicitly asked for This would be the right thing to do for command line use, but gitk will be hit due to tcl/tk's limitation, so I am holding this back for now. ---------------------------------------------------------------- [Stalled/Needs more work] * jc/reflog-expire (Sun Jun 15 23:48:46 2008 -0700) 1 commit - Per-ref reflog expiry configuration Perhaps a good foundation for optionally unexpirable stash. As 1.6.0 will be a good time to make backward incompatible changes, we might make expiry period of stash 'never' in new repositories. Needs a concensus. * jc/merge-theirs (Fri Jun 20 00:17:59 2008 -0700) 2 commits - git-merge-recursive-{ours,theirs} - git-merge-file --ours, --theirs Punting a merge by discarding your own work in conflicting parts but still salvaging the parts that are cleanly automerged. It is likely that this will result in nonsense mishmash, but somehow often people want this, so here they are. The interface to the backends may need to change, though. * jc/blame (Wed Jun 4 22:58:40 2008 -0700) 7 commits - blame: show "previous" information in --porcelain/--incremental format - git-blame: refactor code to emit "porcelain format" output + git-blame --reverse + builtin-blame.c: allow more than 16 parents + builtin-blame.c: move prepare_final() into a separate function. + rev-list --children + revision traversal: --children option The blame that finds where each line in the original lines moved to. This may help a GSoC project that wants to gather statistical overview of the history. The final presentation may need tweaking (see the log message of the commit ""git-blame --reverse" on the series). The tip two commits are for peeling to see what's behind the blamed commit, which we should be able to separate out into an independent topic from the rest. ---------------------------------------------------------------- [Dropped for now] * sj/merge (Sat May 3 16:55:47 2008 -0700) 6 commits . Introduce fast forward option only . Head reduction before selecting merge strategy . Restructure git-merge.sh . Introduce -ff=<fast forward option> . New merge tests . Documentation for joining more than two histories This will interfere with Miklos's rewrite of merge to C. * js/rebase-i-sequencer (Sun Apr 27 02:55:50 2008 -0400) 17 commits . Use perl instead of tac . Fix t3404 assumption that `wc -l` does not use whitespace. . rebase -i: Use : in expr command instead of match. . rebase -i: update the implementation of 'mark' command . Add option --preserve-tags . Teach rebase interactive the tag command . Add option --first-parent . Do rebase with preserve merges with advanced TODO list . Select all lines with fake-editor . Unify the length of $SHORT* and the commits in the TODO list . Teach rebase interactive the merge command . Move redo merge code in a function . Teach rebase interactive the reset command . Teach rebase interactive the mark command . Move cleanup code into it's own function . Don't append default merge message to -m message . fake-editor: output TODO list if unchanged * jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 3 commits . WIP: rethink replay merge . Start using replay-tree merge in cherry-pick . revert/cherry-pick: start refactoring call to merge_recursive This is meant to improve cherry-pick's behaviour when renames are involved, by not using merge-recursive (whose d/f conflict resolution is quite broken), but unfortunately has stalled for some time now. * jc/stripspace (Sun Mar 9 00:30:35 2008 -0800) 6 commits . git-am --forge: add Signed-off-by: line for the author . git-am: clean-up Signed-off-by: lines . stripspace: add --log-clean option to clean up signed-off-by: lines . stripspace: use parse_options() . Add "git am -s" test . git-am: refactor code to add signed-off-by line for the committer Just my toy at this moment. * jc/send-pack-tell-me-more (Thu Mar 20 00:44:11 2008 -0700) 1 commit . "git push": tellme-more protocol extension -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html