I just tagged and pushed out the rc0 for this cycle. It is likely that we would merge a few more topics (namely, "'status -z' defaults to the porcelain format and "'diff -q --diff-filter=A' should not stop too early"), but other than that, from here on, I'd like to stop merging anything to "master" that is not a fix to regressions since 1.7.5 until the final release. Please switch to the tip of 'master' for your daily use so that we can ship 1.7.6 without regressions and bugs in new features. Thanks. ---------------------------------------------------------------- Git v1.7.6 Release Notes (draft) ======================== Updates since v1.7.5 -------------------- * Various git-svn updates. * Updates the way content tags are handled in gitweb. Also adds a UI to choose common timezone for displaying the dates. * Similar to branch names, tagnames that begin with "-" are now disallowed. * Clean-up of the C part of i18n (but not l10n---please wait) continues. * The scripting part of the codebase is getting prepared for i18n/l10n. * Pushing and pulling from a repository with large number of refs that point to identical commits are optimized by not listing the same commit during the common ancestor negotiation exchange with the other side. * Adding a file larger than core.bigfilethreshold (defaults to 1/2 Gig) using "git add" will send the contents straight to a packfile without having to hold it and its compressed representation both at the same time in memory. * Processes spawned by "[alias] <name> = !process" in the configuration can inspect GIT_PREFIX environment variable to learn where in the working tree the original command was invoked. * A magic pathspec ":/" tells a command that limits its operation to the current directory when ran from a subdirectory to work on the entire working tree. In general, ":/path/to/file" would be relative to the root of the working tree hierarchy. After "git reset --hard; edit Makefile; cd t/", "git add -u" would be a no-op, but "git add -u :/" would add the updated contents of the Makefile at the top level. If you want to name a path in the current subdirectory whose unusual name begins with ":/", you can name it by "./:/that/path" or by "\:/that/path". * "git blame" learned "--abbrev[=<n>]" option to control the minimum number of hexdigits shown for commit object names. * "git blame" learned "--line-porcelain" that is less efficient but is easier to parse. * Aborting "git commit --interactive" discards updates to the index made during the interctive session. * "git commit" learned a "--patch" option to directly jump to the per-hunk selection UI of the interactive mode. * "git diff" and its family of commands learned --dirstat=0 to show directories that contribute less than 0.1% of changes. * "git diff" and its family of commands learned --dirstat=lines mode to assess damage to the directory based on number of lines in the patch output, not based on the similarity numbers. * "git format-patch" learned "--quiet" option to suppress the output of the names of generated files. * "git format-patch" quotes people's names when it has RFC822 special characters in it, e.g. "Junio C. Hamano" <jch@xxxxxxxxxxx>. Earlier it was up to the user to do this when using its output. * "git format-patch" can take an empty --subject-prefix now. * "git log" and friends learned a new "--notes" option to replace the "--show-notes" option. Unlike "--show-notes", "--notes=<ref>" does not imply showing the default notes. * They also learned a log.abbrevCommit configuration variable to augment the --abbrev-commit command line option. * "git ls-remote" learned "--exit-code" option to consider it a different kind of error when no remote ref to be shown. * "git merge" learned "-" as a short-hand for "the previous branch", just like the way "git checkout -" works. * "git merge" uses "merge.ff" configuration variable to decide to always create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes (or not setting it at all) restores the default behaviour of allowing fast-forward to happen when possible. * p4-import (from contrib) learned a new option --preserve-user. * "git read-tree -m" learned "--dry-run" option that reports if a merge would fail without touching the index nor the working tree. * "git rebase" that does not specify on top of which branch to rebase the current branch now uses @{upstream} of the current branch. * "git rebase" finished either normally or with --abort did not update the reflog for HEAD to record the event to come back to where it started from. * "git remote add -t only-this-branch --mirror=fetch" is now allowed. Earlier a fetch-mode mirror meant mirror everything, but now it only means refs are not renamed. * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked commits separately, producing more a useful output. * "git submodule update" learned "--force" option to get rid of local changes in submodules and replace them with the up-to-date version. * "git status" and friends ignore .gitmodules file while the file is still in a conflicted state during a merge, to avoid using information that is not final and possibly corrupt with conflict markers. Also contains various documentation updates and minor miscellaneous changes. Fixes since v1.7.5 ------------------ Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are included in this release. * "git config" used to choke with an insanely long line. (merge ef/maint-strbuf-init later) --- exec >/var/tmp/1 echo O=$(git describe master) O=v1.7.5.3-365-g7eacc2b git shortlog --no-merges ^maint ^$O master -- 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