| Git v1.7.10 Release Notes | |
| ========================= | |
| Compatibility Notes | |
| ------------------- | |
| * From this release on, the "git merge" command in an interactive | |
| session will start an editor when it automatically resolves the | |
| merge for the user to explain the resulting commit, just like the | |
| "git commit" command does when it wasn't given a commit message. | |
| If you have a script that runs "git merge" and keeps its standard | |
| input and output attached to the user's terminal, and if you do not | |
| want the user to explain the resulting merge commits, you can | |
| export GIT_MERGE_AUTOEDIT environment variable set to "no", like | |
| this: | |
| #!/bin/sh | |
| GIT_MERGE_AUTOEDIT=no | |
| export GIT_MERGE_AUTOEDIT | |
| to disable this behavior (if you want your users to explain their | |
| merge commits, you do not have to do anything). Alternatively, you | |
| can give the "--no-edit" option to individual invocations of the | |
| "git merge" command if you know everybody who uses your script has | |
| Git v1.7.8 or newer. | |
| * The "--binary/-b" options to "git am" have been a no-op for quite a | |
| while and were deprecated in mid 2008 (v1.6.0). When you give these | |
| options to "git am", it will now warn and ask you not to use them. | |
| * When you do not tell which branches and tags to push to the "git | |
| push" command in any way, the command used "matching refs" rule to | |
| update remote branches and tags with branches and tags with the | |
| same name you locally have. In future versions of Git, this will | |
| change to push out only your current branch according to either the | |
| "upstream" or the "current" rule. Although "upstream" may be more | |
| powerful once the user understands Git better, the semantics | |
| "current" gives is simpler and easier to understand for beginners | |
| and may be a safer and better default option. We haven't decided | |
| yet which one to switch to. | |
| Updates since v1.7.9 | |
| -------------------- | |
| UI, Workflows & Features | |
| * various "gitk" updates. | |
| - show the path to the top level directory in the window title | |
| - update preference edit dialog | |
| - display file list correctly when directories are given on command line | |
| - make "git-describe" output in the log message into a clickable link | |
| - avoid matching the UNIX timestamp part when searching all fields | |
| - give preference to symbolic font names like sans & monospace | |
| - allow comparing two commits using a mark | |
| - "gitk" honors log.showroot configuration. | |
| * Teams for localizing the messages from the Porcelain layer of | |
| commands are starting to form, thanks to Jiang Xin who volunteered | |
| to be the localization coordinator. Translated messages for | |
| simplified Chinese, Swedish and Portuguese are available. | |
| * The configuration mechanism learned an "include" facility; an | |
| assignment to the include.path pseudo-variable causes the named | |
| file to be included in-place when Git looks up configuration | |
| variables. | |
| * A content filter (clean/smudge) used to be just a way to make the | |
| recorded contents "more useful", and allowed to fail; a filter can | |
| now optionally be marked as "required". | |
| * Options whose names begin with "--no-" (e.g. the "--no-verify" | |
| option of the "git commit" command) can be negated by omitting | |
| "no-" from its name, e.g. "git commit --verify". | |
| * "git am" learned to pass "-b" option to underlying "git mailinfo", so | |
| that a bracketed string other than "PATCH" at the beginning can be kept. | |
| * "git clone" learned "--single-branch" option to limit cloning to a | |
| single branch (surprise!); tags that do not point into the history | |
| of the branch are not fetched. | |
| * "git clone" learned to detach the HEAD in the resulting repository | |
| when the user specifies a tag with "--branch" (e.g., "--branch=v1.0"). | |
| Clone also learned to print the usual "detached HEAD" advice in such | |
| a case, similar to "git checkout v1.0". | |
| * When showing a patch while ignoring whitespace changes, the context | |
| lines are taken from the postimage, in order to make it easier to | |
| view the output. | |
| * "git diff --stat" learned to adjust the width of the output on | |
| wider terminals, and give more columns to pathnames as needed. | |
| * "diff-highlight" filter (in contrib/) was updated to produce more | |
| aesthetically pleasing output. | |
| * "fsck" learned "--no-dangling" option to omit dangling object | |
| information. | |
| * "git log -G" and "git log -S" learned to pay attention to the "-i" | |
| option. With "-i", "log -G" ignores the case when finding patch | |
| hunks that introduce or remove a string that matches the given | |
| pattern. Similarly with "-i", "log -S" ignores the case when | |
| finding the commit the given block of text appears or disappears | |
| from the file. | |
| * "git merge" in an interactive session learned to spawn the editor | |
| by default to let the user edit the auto-generated merge message, | |
| to encourage people to explain their merges better. Legacy scripts | |
| can export GIT_MERGE_AUTOEDIT=no to retain the historical behavior. | |
| Both "git merge" and "git pull" can be given --no-edit from the | |
| command line to accept the auto-generated merge message. | |
| * The advice message given when the user didn't give enough clue on | |
| what to merge to "git pull" and "git merge" has been updated to | |
| be more concise and easier to understand. | |
| * "git push" learned the "--prune" option, similar to "git fetch". | |
| * The whole directory that houses a top-level superproject managed by | |
| "git submodule" can be moved to another place. | |
| * "git symbolic-ref" learned the "--short" option to abbreviate the | |
| refname it shows unambiguously. | |
| * "git tag --list" can be given "--points-at <object>" to limit its | |
| output to those that point at the given object. | |
| * "gitweb" allows intermediate entries in the directory hierarchy | |
| that leads to a project to be clicked, which in turn shows the | |
| list of projects inside that directory. | |
| * "gitweb" learned to read various pieces of information for the | |
| repositories lazily, instead of reading everything that could be | |
| needed (including the ones that are not necessary for a specific | |
| task). | |
| * Project search in "gitweb" shows the substring that matched in the | |
| project name and description highlighted. | |
| * HTTP transport learned to authenticate with a proxy if needed. | |
| * A new script "diffall" is added to contrib/; it drives an | |
| external tool to perform a directory diff of two Git revisions | |
| in one go, unlike "difftool" that compares one file at a time. | |
| Foreign Interface | |
| * Improved handling of views, labels and branches in "git-p4" (in contrib). | |
| * "git-p4" (in contrib) suffered from unnecessary merge conflicts when | |
| p4 expanded the embedded $RCS$-like keywords; it can be now told to | |
| unexpand them. | |
| * Some "git-svn" updates. | |
| * "vcs-svn"/"svn-fe" learned to read dumps with svn-deltas and | |
| support incremental imports. | |
| * "git difftool/mergetool" learned to drive DeltaWalker. | |
| Performance | |
| * Unnecessary calls to parse_object() "git upload-pack" makes in | |
| response to "git fetch", have been eliminated, to help performance | |
| in repositories with excessive number of refs. | |
| Internal Implementation (please report possible regressions) | |
| * Recursive call chains in "git index-pack" to deal with long delta | |
| chains have been flattened, to reduce the stack footprint. | |
| * Use of add_extra_ref() API is now gone, to make it possible to | |
| cleanly restructure the overall refs API. | |
| * The command line parser of "git pack-objects" now uses parse-options | |
| API. | |
| * The test suite supports the new "test_pause" helper function. | |
| * Parallel to the test suite, there is a beginning of performance | |
| benchmarking framework. | |
| * t/Makefile is adjusted to prevent newer versions of GNU make from | |
| running tests in seemingly random order. | |
| * The code to check if a path points at a file beyond a symbolic link | |
| has been restructured to be thread-safe. | |
| * When pruning directories that has become empty during "git prune" | |
| and "git prune-packed", call closedir() that iterates over a | |
| directory before rmdir() it. | |
| Also contains minor documentation updates and code clean-ups. | |
| Fixes since v1.7.9 | |
| ------------------ | |
| Unless otherwise noted, all the fixes since v1.7.9 in the maintenance | |
| releases are contained in this release (see release notes to them for | |
| details). | |
| * Build with NO_PERL_MAKEMAKER was broken and Git::I18N did not work | |
| with versions of Perl older than 5.8.3. | |
| (merge 5eb660e ab/perl-i18n later to maint). | |
| * "git tag -s" honored "gpg.program" configuration variable since | |
| 1.7.9, but "git tag -v" and "git verify-tag" didn't. | |
| (merge a2c2506 az/verify-tag-use-gpg-config later to maint). | |
| * "configure" script learned to take "--with-sane-tool-path" from the | |
| command line to record SANE_TOOL_PATH (used to avoid broken platform | |
| tools in /usr/bin) in config.mak.autogen. This may be useful for | |
| people on Solaris who have saner tools outside /usr/xpg[46]/bin. | |
| * zsh port of bash completion script needed another workaround. |