Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. As usual, this cycle is expected to last for 8 to 10 weeks, with a preview -rc0 sometime in the middle of next month. You can find the changes described here in the integration branches of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- [Graduated to "master"] * as/api-allocation-doc (2013-01-06) 1 commit (merged to 'next' on 2013-01-08 at c80b544) + api-allocation-growing.txt: encourage better variable naming * as/dir-c-cleanup (2012-12-28) 10 commits (merged to 'next' on 2013-01-08 at 5aee090) + dir.c: rename free_excludes() to clear_exclude_list() + dir.c: refactor is_path_excluded() + dir.c: refactor is_excluded() + dir.c: refactor is_excluded_from_list() + dir.c: rename excluded() to is_excluded() + dir.c: rename excluded_from_list() to is_excluded_from_list() + dir.c: rename path_excluded() to is_path_excluded() + dir.c: rename cryptic 'which' variable to more consistent name + Improve documentation and comments regarding directory traversal API + api-directory-listing.txt: update to match code (this branch is used by as/check-ignore.) Refactor and generally clean up the directory traversal API implementation. * aw/rebase-am-failure-detection (2012-10-11) 1 commit (merged to 'next' on 2013-01-07 at 9e2ee43) + rebase: Handle cases where format-patch fails Originally merged to 'next' on 2013-01-02 Save output from format-patch command in a temporary file, just in case it aborts, to give a better failure-case behaviour. * jc/comment-cygwin-win32api-in-makefile (2013-01-06) 1 commit (merged to 'next' on 2013-01-08 at dea04e8) + Makefile: add comment on CYGWIN_V15_WIN32API * jc/maint-fmt-merge-msg-no-edit-lose-credit (2012-12-28) 1 commit (merged to 'next' on 2013-01-07 at 497bf10) + merge --no-edit: do not credit people involved in the side branch Originally merged to 'next' on 2013-01-02 Stop spending cycles to compute information to be placed on commented lines in "merge --no-edit". * jk/config-uname (2013-01-03) 1 commit (merged to 'next' on 2013-01-08 at f986500) + Makefile: hoist uname autodetection to config.mak.uname Move the bits to set fallback default based on the platform from the main Makefile to a separate file, so that it can be included in Makefiles in subdirectories. * jl/interrupt-clone-remove-separate-git-dir (2013-01-05) 1 commit (merged to 'next' on 2013-01-08 at 568f874) + clone: support atomic operation with --separate-git-dir When "git clone --separate-git-dir" is interrupted, we failed to remove the real location we created the repository. * mz/pick-unborn (2012-12-23) 2 commits (merged to 'next' on 2013-01-07 at c6c062b) + learn to pick/revert into unborn branch + tests: move test_cmp_rev to test-lib-functions Originally merged to 'next' on 2013-01-02 Allows "git cherry-pick $commit" when you do not have any history behind HEAD yet. * nd/wildmatch (2013-01-01) 18 commits (merged to 'next' on 2013-01-07 at 2a39f7d) + wildmatch: replace variable 'special' with better named ones + compat/fnmatch: respect NO_FNMATCH* even on glibc + wildmatch: fix "**" special case + t3070: Disable some failing fnmatch tests + test-wildmatch: avoid Windows path mangling + Support "**" wildcard in .gitignore and .gitattributes + wildmatch: make /**/ match zero or more directories + wildmatch: adjust "**" behavior + wildmatch: fix case-insensitive matching + wildmatch: remove static variable force_lower_case + wildmatch: make wildmatch's return value compatible with fnmatch + t3070: disable unreliable fnmatch tests + Integrate wildmatch to git + wildmatch: follow Git's coding convention + wildmatch: remove unnecessary functions + Import wildmatch from rsync + ctype: support iscntrl, ispunct, isxdigit and isprint + ctype: make sane_ctype[] const array (this branch is used by nd/retire-fnmatch.) Originally merged to 'next' on 2013-01-01 Allows pathname patterns in .gitignore and .gitattributes files with double-asterisks "foo/**/bar" to match any number of directory hierarchies. * rs/leave-base-name-in-name-field-of-tar (2013-01-05) 1 commit (merged to 'next' on 2013-01-08 at 98f325e) + archive-tar: split long paths more carefully Improve compatibility with implementations of "tar" that do not like empty name field in header (with the additional prefix field holding everything). * tb/test-shell-lint (2013-01-02) 1 commit (merged to 'next' on 2013-01-07 at 0bca54a) + test: Add check-non-portable-shell.pl Originally merged to 'next' on 2013-01-04 Check for common mistakes in the test scripts, based on simple pattern-matching. -------------------------------------------------- [New Topics] * jk/maint-fast-import-doc-reorder (2013-01-09) 2 commits (merged to 'next' on 2013-01-10 at 9f3950d) + git-fast-import(1): reorganise options + git-fast-import(1): combine documentation of --[no-]relative-marks Will merge to 'master'. * jk/shortlog-no-wrap-doc (2013-01-09) 1 commit (merged to 'next' on 2013-01-10 at c79898a) + git-shortlog(1): document behaviour of zero-width wrap Will merge to 'master'. * rt/commit-cleanup-config (2013-01-10) 1 commit - commit: make default of "cleanup" option configurable Add a configuration variable to set default clean-up mode other than "strip". Will merge to 'next'. * jc/custom-comment-char (2013-01-10) 1 commit - Allow custom "comment char" An illustration to show codepaths that need to be touched to change the hint lines in the edited text to begin with something other than '#'. * jn/maint-trim-vim-contrib (2013-01-10) 1 commit - contrib/vim: simplify instructions for old vim support Will merge to 'next'. * mz/reset-misc (2013-01-10) 22 commits - reset [--mixed]: use diff-based reset whether or not pathspec was given - [SQUASH???] script portability fixes - reset: allow reset on unborn branch - reset $sha1 $pathspec: require $sha1 only to be treeish - reset [--mixed] --quiet: don't refresh index - reset.c: finish entire cmd_reset() whether or not pathspec is given - reset [--mixed]: don't write index file twice - reset.c: move lock, write and commit out of update_index_refresh() - reset.c: move update_index_refresh() call out of read_from_tree() - reset: avoid redundant error message - reset --keep: only write index file once - reset.c: replace switch by if-else - reset.c: share call to die_if_unmerged_cache() - [SQUASH???] style fixes - reset.c: extract function for updating {ORIG,}HEAD - reset.c: remove unnecessary variable 'i' - [SQUASH???] style fix - reset.c: extract function for parsing arguments - reset: don't allow "git reset -- $pathspec" in bare repo - reset.c: pass pathspec around instead of (prefix, argv) pair - reset $pathspec: exit with code 0 if successful - reset $pathspec: no need to discard index Various 'reset' optimizations and clean-ups, followed by a change to allow "git reset" to work even on an unborn branch. * pe/doc-email-env-is-trumped-by-config (2013-01-10) 1 commit - git-commit-tree(1): correct description of defaults In the precedence order, the environment variable $EMAIL comes between the built-in default (i.e. taking value by asking the system's gethostname() etc.) and the user.email configuration variable; the documentation implied that it is stronger than the configuration like $GIT_COMMITTER_EMAIL is, which is wrong. Will merge to 'next'. * ds/completion-silence-in-tree-path-probe (2013-01-11) 1 commit - git-completion.bash: silence "not a valid object" errors An internal ls-tree call made by completion code only to probe if a path exists in the tree recorded in a commit object leaked error messages when the path is not there. It is not an error at all and should not be shown to the end user. Will merge to 'next'. * er/replace-cvsimport (2013-01-11) 4 commits - t9604: fixup for new cvsimport - t9600: fixup for new cvsimport - t/lib-cvs.sh: allow cvsps version 3.x. - cvsimport: rewrite to use cvsps 3.x to fix major bugs Rewrite of cvsimport to talk with cvsps 3.x; this negatively affects existing users of cvsimport that only have cvsps 2.x and use -o, -M and -m options (they cannot use the old cvsimport with old cvsps 2.x in the fall-back mode, even though these options are supported by the old one), but it is not known how common they are. For people who work with CVS histories complex enough to need cvsps 3.x to import correctly, this version should be a definite improvement, and I would love to see small wrinkles in the new implementation straightened out sooner so that we can merge it to 'next' (and from there on, apply incremental updates). Help from people with Python experience would be appreciated in reviewing and patching. * nd/fetch-depth-is-broken (2013-01-11) 3 commits - fetch: elaborate --depth action - upload-pack: fix off-by-one depth calculation in shallow clone - fetch: add --unshallow for turning shallow repo into complete one "git fetch --depth" was broken in at least three ways. The resulting history was deeper than specified by one commit, it was unclear how to wipe the shallowness of the repository with the command, and documentation was misleading. Will merge to 'next'. * jc/no-git-config-in-clone (2013-01-11) 1 commit - clone: do not export and unexport GIT_CONFIG We stopped paying attention to $GIT_CONFIG environment that points at a single configuration file from any command other than "git config" quite a while ago, but "git clone" internally set, exported, and then unexported the variable during its operation unnecessarily. -------------------------------------------------- [Stalled] * jl/submodule-deinit (2012-12-04) 1 commit - submodule: add 'deinit' command There was no Porcelain way to say "I no longer am interested in this submodule", once you express your interest in a submodule with "submodule init". "submodule deinit" is the way to do so. Expecting a reroll. $gmane/212884 * jk/lua-hackery (2012-10-07) 6 commits - pretty: fix up one-off format_commit_message calls - Minimum compilation fixup - Makefile: make "lua" a bit more configurable - add a "lua" pretty format - add basic lua infrastructure - pretty: make some commit-parsing helpers more public Interesting exercise. When we do this for real, we probably would want to wrap a commit to make it more like an "object" with methods like "parents", etc. * rc/maint-complete-git-p4 (2012-09-24) 1 commit - Teach git-completion about git p4 Comment from Pete will need to be addressed ($gmane/206172). * jc/maint-name-rev (2012-09-17) 7 commits - describe --contains: use "name-rev --algorithm=weight" - name-rev --algorithm=weight: tests and documentation - name-rev --algorithm=weight: cache the computed weight in notes - name-rev --algorithm=weight: trivial optimization - name-rev: --algorithm option - name_rev: clarify the logic to assign a new tip-name to a commit - name-rev: lose unnecessary typedef "git name-rev" names the given revision based on a ref that can be reached in the smallest number of steps from the rev, but that is not useful when the caller wants to know which tag is the oldest one that contains the rev. This teaches a new mode to the command that uses the oldest ref among those which contain the rev. I am not sure if this is worth it; for one thing, even with the help from notes-cache, it seems to make the "describe --contains" even slower. Also the command will be unusably slow for a user who does not have a write access (hence unable to create or update the notes-cache). Stalled mostly due to lack of responses. * jc/xprm-generation (2012-09-14) 1 commit - test-generation: compute generation numbers and clock skews A toy to analyze how bad the clock skews are in histories of real world projects. Stalled mostly due to lack of responses. * jc/add-delete-default (2012-08-13) 1 commit - git add: notice removal of tracked paths by default "git add dir/" updated modified files and added new files, but does not notice removed files, which may be "Huh?" to some users. They can of course use "git add -A dir/", but why should they? Resurrected from graveyard, as I thought it was a worthwhile thing to do in the longer term. Stalled mostly due to lack of responses. * mb/remote-default-nn-origin (2012-07-11) 6 commits - Teach get_default_remote to respect remote.default. - Test that plain "git fetch" uses remote.default when on a detached HEAD. - Teach clone to set remote.default. - Teach "git remote" about remote.default. - Teach remote.c about the remote.default configuration setting. - Rename remote.c's default_remote_name static variables. When the user does not specify what remote to interact with, we often attempt to use 'origin'. This can now be customized via a configuration variable. Expecting a reroll. $gmane/210151 "The first remote becomes the default" bit is better done as a separate step. -------------------------------------------------- [Cooking] * nz/send-email-headers-are-case-insensitive (2013-01-06) 1 commit (merged to 'next' on 2013-01-10 at cf4c9c9) + git-send-email: treat field names as case-insensitively When user spells "cc:" in lowercase in the fake "header" in the trailer part, send-email failed to pick up the addresses from there. As e-mail headers field names are case insensitive, this script should follow suit and treat "cc:" and "Cc:" the same way. * mk/complete-tcsh (2013-01-07) 1 commit (merged to 'next' on 2013-01-11 at b8b30b1) + Prevent space after directories in tcsh completion Update tcsh command line completion so that an unwanted space is not added to a single directory name. * dg/subtree-fixes (2013-01-08) 7 commits - contrib/subtree: mkdir the manual directory if needed - contrib/subtree: honor $(DESTDIR) - contrib/subtree: fix synopsis and command help - contrib/subtree: better error handling for "add" - contrib/subtree: add --unannotate option - contrib/subtree: use %B for split Subject/Body - t7900: remove test number comments contrib/subtree updates. Will merge to 'next'. * ap/log-mailmap (2013-01-10) 11 commits (merged to 'next' on 2013-01-10 at 8544084) + log --use-mailmap: optimize for cases without --author/--committer search + log: add log.mailmap configuration option + log: grep author/committer using mailmap + test: add test for --use-mailmap option + log: add --use-mailmap option + pretty: use mailmap to display username and email + mailmap: add mailmap structure to rev_info and pp + mailmap: simplify map_user() interface + mailmap: remove email copy and length limitation + Use split_ident_line to parse author and committer + string-list: allow case-insensitive string list Teach commands in the "log" family to optionally pay attention to the mailmap. * nd/upload-pack-shallow-must-be-commit (2013-01-08) 1 commit (merged to 'next' on 2013-01-10 at a8b3ba5) + upload-pack: only accept commits from "shallow" line A minor consistency check patch that does not have much relevance to the real world. * jc/blame-no-follow (2012-09-21) 2 commits (merged to 'next' on 2013-01-10 at 201c7f4) + blame: pay attention to --no-follow + diff: accept --no-follow option Teaches "--no-follow" option to "git blame" to disable its whole-file rename detection. * jc/push-2.0-default-to-simple (2013-01-08) 11 commits (merged to 'next' on 2013-01-09 at 74c3498) + doc: push.default is no longer "matching" + push: switch default from "matching" to "simple" + t9401: do not assume the "matching" push is the default + t9400: do not assume the "matching" push is the default + t7406: do not assume the "matching" push is the default + t5531: do not assume the "matching" push is the default + t5519: do not assume the "matching" push is the default + t5517: do not assume the "matching" push is the default + t5516: do not assume the "matching" push is the default + t5505: do not assume the "matching" push is the default + t5404: do not assume the "matching" push is the default Will cook in 'next' until Git 2.0 ;-). * jk/unify-exit-code-by-receiving-signal (2013-01-06) 1 commit (merged to 'next' on 2013-01-08 at 5ebf940) + run-command: encode signal death as a positive integer The internal logic had to deal with two representations of a death of a child process by a signal. Will merge to 'master'. * jn/xml-depends-on-asciidoc-conf (2013-01-06) 1 commit (merged to 'next' on 2013-01-08 at 4faf8d4) + docs: manpage XML depends on asciidoc.conf Will merge to 'master'. * nd/clone-no-separate-git-dir-with-bare (2013-01-10) 1 commit - clone: forbid --bare --separate-git-dir <dir> Will merge to 'next'. * nd/parse-pathspec (2013-01-11) 20 commits - Convert more init_pathspec() to parse_pathspec() - Convert add_files_to_cache to take struct pathspec - Convert {read,fill}_directory to take struct pathspec - Convert refresh_index to take struct pathspec - Convert report_path_error to take struct pathspec - checkout: convert read_tree_some to take struct pathspec - Convert unmerge_cache to take struct pathspec - Convert read_cache_preload() to take struct pathspec - add: convert to use parse_pathspec - archive: convert to use parse_pathspec - ls-files: convert to use parse_pathspec - rm: convert to use parse_pathspec - checkout: convert to use parse_pathspec - rerere: convert to use parse_pathspec - status: convert to use parse_pathspec - commit: convert to use parse_pathspec - clean: convert to use parse_pathspec - Export parse_pathspec() and convert some get_pathspec() calls - Add parse_pathspec() that converts cmdline args to struct pathspec - pathspec: save the non-wildcard length part Uses the parsed pathspec structure in more places where we used to use the raw "array of strings" pathspec. Unfortunately, this conflicts a couple of topics in flight. I tried to be careful while resolving conflicts, though. * rs/zip-tests (2013-01-07) 4 commits (merged to 'next' on 2013-01-08 at 8e37423) + t5003: check if unzip supports symlinks + t5000, t5003: move ZIP tests into their own script + t0024, t5000: use test_lazy_prereq for UNZIP + t0024, t5000: clear variable UNZIP, use GIT_UNZIP instead Updates zip tests to skip some that cannot be handled on platform unzip. I've renamed the t5002 in the original to t5003 to avoid name clashes with another topic in flight. Will merge to 'master'. * rs/zip-with-uncompressed-size-in-the-header (2013-01-06) 1 commit (merged to 'next' on 2013-01-08 at d9ec30e) + archive-zip: write uncompressed size into header even with streaming Improve compatibility of our zip output to fill uncompressed size in the header, which we can do without seeking back (even though it should not be necessary). Will merge to 'master'. * jc/doc-maintainer (2013-01-03) 2 commits (merged to 'next' on 2013-01-11 at f35d582) + howto/maintain: mark titles for asciidoc + Documentation: update "howto maintain git" Describe tools for automation that were invented since this document was originally written. * fc/remote-testgit-feature-done (2012-10-29) 1 commit (merged to 'next' on 2013-01-10 at 3132a60) + remote-testgit: properly check for errors In the longer term, tightening rules is a good thing to do, and because nobody who has worked in the remote helper area seems to be interested in reviewing this, I would assume they do not think such a retroactive tightening will affect their remote helpers. So let's advance this topic to see what happens. * mo/cvs-server-updates (2012-12-09) 18 commits (merged to 'next' on 2013-01-08 at 75e2d11) + t9402: Use TABs for indentation + t9402: Rename check.cvsCount and check.list + t9402: Simplify git ls-tree + t9402: Add missing &&; Code style + t9402: No space after IO-redirection + t9402: Dont use test_must_fail cvs + t9402: improve check_end_tree() and check_end_full_tree() + t9402: sed -i is not portable + cvsserver Documentation: new cvs ... -r support + cvsserver: add t9402 to test branch and tag refs + cvsserver: support -r and sticky tags for most operations + cvsserver: Add version awareness to argsfromdir + cvsserver: generalize getmeta() to recognize commit refs + cvsserver: implement req_Sticky and related utilities + cvsserver: add misc commit lookup, file meta data, and file listing functions + cvsserver: define a tag name character escape mechanism + cvsserver: cleanup extra slashes in filename arguments + cvsserver: factor out git-log parsing logic Various git-cvsserver updates. Will cook in 'next' for a while to see if anybody screams. * ap/status-ignored-in-ignored-directory (2013-01-07) 3 commits (merged to 'next' on 2013-01-10 at 20f7476) + status: always report ignored tracked directories (merged to 'next' on 2013-01-07 at 2a20b19) + git-status: Test --ignored behavior + dir.c: Make git-status --ignored more consistent Output from "git status --ignored" showed an unexpected interaction with "--untracked". * as/check-ignore (2013-01-10) 12 commits - t0008: avoid brace expansion - add git-check-ignore sub-command - setup.c: document get_pathspec() - add.c: extract new die_if_path_beyond_symlink() for reuse - add.c: extract check_path_for_gitlink() from treat_gitlinks() for reuse - pathspec.c: rename newly public functions for clarity - add.c: move pathspec matchers into new pathspec.c for reuse - add.c: remove unused argument from validate_pathspec() - dir.c: improve docs for match_pathspec() and match_pathspec_depth() - dir.c: provide clear_directory() for reclaiming dir_struct memory - dir.c: keep track of where patterns came from - dir.c: use a single struct exclude_list per source of excludes Add a new command "git check-ignore" for debugging .gitignore files. Will merge to 'next'. * jc/format-patch-reroll (2013-01-03) 9 commits (merged to 'next' on 2013-01-07 at 0e007e6) + format-patch: give --reroll-count a short synonym -v + format-patch: document and test --reroll-count + format-patch: add --reroll-count=$N option + get_patch_filename(): split into two functions + get_patch_filename(): drop "just-numbers" hack + get_patch_filename(): simplify function signature + builtin/log.c: stop using global patch_suffix + builtin/log.c: drop redundant "numbered_files" parameter from make_cover_letter() + builtin/log.c: drop unused "numbered" parameter from make_cover_letter() Originally merged to 'next' on 2013-01-04 Teach "format-patch" to prefix v4- to its output files for the fourth iteration of a patch series, to make it easier for the submitter to keep separate copies for iterations. Will merge to 'master'. * nd/retire-fnmatch (2013-01-01) 7 commits (merged to 'next' on 2013-01-07 at ab31f9b) + Makefile: add USE_WILDMATCH to use wildmatch as fnmatch + wildmatch: advance faster in <asterisk> + <literal> patterns + wildmatch: make a special case for "*/" with FNM_PATHNAME + test-wildmatch: add "perf" command to compare wildmatch and fnmatch + wildmatch: support "no FNM_PATHNAME" mode + wildmatch: make dowild() take arbitrary flags + wildmatch: rename constants and update prototype Originally merged to 'next' on 2013-01-04 Replace our use of fnmatch(3) with a more feature-rich wildmatch. A handful patches at the bottom have been moved to nd/wildmatch to graduate as part of that branch, before this series solidifies. Will cook in 'next' a bit longer than other topics. * jc/merge-blobs (2012-12-26) 5 commits (merged to 'next' on 2013-01-08 at 582ca38) + merge-tree: fix d/f conflicts + merge-tree: add comments to clarify what these functions are doing + merge-tree: lose unused "resolve_directories" + merge-tree: lose unused "flags" from merge_list + Which merge_file() function do you mean? Update the disused merge-tree proof-of-concept code. Will merge to 'master'. * mb/gitweb-highlight-link-target (2012-12-20) 1 commit - Highlight the link target line in Gitweb using CSS Expecting a reroll. $gmane/211935 * zk/clean-report-failure (2013-01-10) 2 commits - [SQUASH???] style fixes - git-clean: Display more accurate delete messages "git clean" states what it is going to remove and then goes on to remove it, but sometimes it only discovers things that cannot be removed after recursing into a directory, which makes the output confusing and even wrong. Will merge to 'next' after squashing the style fix in. * mp/complete-paths (2013-01-11) 1 commit - git-completion.bash: add support for path completion The completion script used to let the default completer to suggest pathnames, which gave too many irrelevant choices (e.g. "git add" would not want to add an unmodified path). Teach it to use a more git-aware logic to enumerate only relevant ones. Waiting for area-experts' help and review. * bc/append-signed-off-by (2013-01-01) 12 commits - t4014: do not use echo -n - Unify appending signoff in format-patch, commit and sequencer - format-patch: update append_signoff prototype - format-patch: stricter S-o-b detection - t4014: more tests about appending s-o-b lines - sequencer.c: teach append_signoff to avoid adding a duplicate newline - sequencer.c: teach append_signoff how to detect duplicate s-o-b - sequencer.c: always separate "(cherry picked from" from commit body - sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer - t/t3511: add some tests of 'cherry-pick -s' functionality - t/test-lib-functions.sh: allow to specify the tag name to test_commit - sequencer.c: remove broken support for rfc2822 continuation in footer Expecting a reroll. $gmane/212507 -- 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