| GIT v1.5.5 Release Notes | 
 | ======================== | 
 |  | 
 | Updates since v1.5.4 | 
 | -------------------- | 
 |  | 
 | (subsystems) | 
 |  | 
 |  * Comes with git-gui 0.10.1 | 
 |  | 
 | (portability) | 
 |  | 
 |  * We shouldn't ask for BSD group ownership semantics by setting g+s bit | 
 |    on directories on older BSD systems that refuses chmod() by non root | 
 |    users.  BSD semantics is the default there anyway. | 
 |  | 
 |  * Bunch of portability improvement patches coming from an effort to port | 
 |    to Solaris has been applied. | 
 |  | 
 | (performance) | 
 |  | 
 |  * On platforms with suboptimal qsort(3) implementation, there | 
 |    is an option to use more reasonable substitute we ship with | 
 |    our software. | 
 |  | 
 |  * New configuration variable "pack.packsizelimit" can be used | 
 |    in place of command line option --max-pack-size. | 
 |  | 
 |  * "git fetch" over the native git protocol used to make a | 
 |    connection to find out the set of current remote refs and | 
 |    another to actually download the pack data.  We now use only | 
 |    one connection for these tasks. | 
 |  | 
 |  * "git commit" does not run lstat(2) more than necessary | 
 |    anymore. | 
 |  | 
 | (usability, bells and whistles) | 
 |  | 
 |  * Bash completion script (in contrib) are aware of more commands and | 
 |    options. | 
 |  | 
 |  * You can be warned when core.autocrlf conversion is applied in | 
 |    such a way that results in an irreversible conversion. | 
 |  | 
 |  * A catch-all "color.ui" configuration variable can be used to | 
 |    enable coloring of all color-capable commands, instead of | 
 |    individual ones such as "color.status" and "color.branch". | 
 |  | 
 |  * The commands refused to take absolute pathnames where they | 
 |    require pathnames relative to the work tree or the current | 
 |    subdirectory.  They now can take absolute pathnames in such a | 
 |    case as long as the pathnames do not refer outside of the | 
 |    work tree.  E.g. "git add $(pwd)/foo" now works. | 
 |  | 
 |  * Error messages used to be sent to stderr, only to get hidden, | 
 |    when $PAGER was in use.  They now are sent to stdout along | 
 |    with the command output to be shown in the $PAGER. | 
 |  | 
 |  * A pattern "foo/" in .gitignore file now matches a directory | 
 |    "foo".  Pattern "foo" also matches as before. | 
 |  | 
 |  * bash completion's prompt helper function can talk about | 
 |    operation in-progress (e.g. merge, rebase, etc.). | 
 |  | 
 |  * Configuration variables "url.<usethis>.insteadof = <otherurl>" can be | 
 |    used to tell "git-fetch" and "git-push" to use different URL than what | 
 |    is given from the command line. | 
 |  | 
 |  * "git add -i" behaves better even before you make an initial commit. | 
 |  | 
 |  * "git am" refused to run from a subdirectory without a good reason. | 
 |  | 
 |  * After "git apply --whitespace=fix" fixes whitespace errors in a patch, | 
 |    a line before the fix can appear as a context or preimage line in a | 
 |    later patch, causing the patch not to apply.  The command now knows to | 
 |    see through whitespace fixes done to context lines to successfully | 
 |    apply such a patch series. | 
 |  | 
 |  * "git branch" (and "git checkout -b") to branch from a local branch can | 
 |    optionally set "branch.<name>.merge" to mark the new branch to build on | 
 |    the other local branch, when "branch.autosetupmerge" is set to | 
 |    "always", or when passing the command line option "--track" (this option | 
 |    was ignored when branching from local branches).  By default, this does | 
 |    not happen when branching from a local branch. | 
 |  | 
 |  * "git checkout" to switch to a branch that has "branch.<name>.merge" set | 
 |    (i.e. marked to build on another branch) reports how much the branch | 
 |    and the other branch diverged. | 
 |  | 
 |  * When "git checkout" has to update a lot of paths, it used to be silent | 
 |    for 4 seconds before it showed any progress report.  It is now a bit | 
 |    more impatient and starts showing progress report early. | 
 |  | 
 |  * "git commit" learned a new hook "prepare-commit-msg" that can | 
 |    inspect what is going to be committed and prepare the commit | 
 |    log message template to be edited. | 
 |  | 
 |  * "git cvsimport" can now take more than one -M options. | 
 |  | 
 |  * "git describe" learned to limit the tags to be used for | 
 |    naming with --match option. | 
 |  | 
 |  * "git describe --contains" now barfs when the named commit | 
 |    cannot be described. | 
 |  | 
 |  * "git describe --exact-match" describes only commits that are tagged. | 
 |  | 
 |  * "git describe --long" describes a tagged commit as $tag-0-$sha1, | 
 |    instead of just showing the exact tagname. | 
 |  | 
 |  * "git describe" warns when using a tag whose name and path contradict | 
 |    with each other. | 
 |  | 
 |  * "git diff" learned "--relative" option to limit and output paths | 
 |    relative to the current directory when working in a subdirectory. | 
 |  | 
 |  * "git diff" learned "--dirstat" option to show birds-eye-summary of | 
 |    changes more concisely than "--diffstat". | 
 |  | 
 |  * "git format-patch" learned --cover-letter option to generate a cover | 
 |    letter template. | 
 |  | 
 |  * "git gc" learned --quiet option. | 
 |  | 
 |  * "git gc" now automatically prunes unreachable objects that are two | 
 |    weeks old or older. | 
 |  | 
 |  * "git gc --auto" can be disabled more easily by just setting gc.auto | 
 |    to zero.  It also tolerates more packfiles by default. | 
 |  | 
 |  * "git grep" now knows "--name-only" is a synonym for the "-l" option. | 
 |  | 
 |  * "git help <alias>" now reports "'git <alias>' is alias to <what>", | 
 |    instead of saying "No manual entry for git-<alias>". | 
 |  | 
 |  * "git help" can use different backends to show manual pages and this can | 
 |    be configured using "man.viewer" configuration. | 
 |  | 
 |  * "gitk" does not restore window position from $HOME/.gitk anymore (it | 
 |    still restores the size). | 
 |  | 
 |  * "git log --grep=<what>" learned "--fixed-strings" option to look for | 
 |    <what> without treating it as a regular expression. | 
 |  | 
 |  * "git gui" learned an auto-spell checking. | 
 |  | 
 |  * "git push <somewhere> HEAD" and "git push <somewhere> +HEAD" works as | 
 |    expected; they push the current branch (and only the current branch). | 
 |    In addition, HEAD can be written as the value of "remote.<there>.push" | 
 |    configuration variable. | 
 |  | 
 |  * When the configuration variable "pack.threads" is set to 0, "git | 
 |    repack" auto detects the number of CPUs and uses that many threads. | 
 |  | 
 |  * "git send-email" learned to prompt for passwords | 
 |    interactively. | 
 |  | 
 |  * "git send-email" learned an easier way to suppress CC | 
 |    recipients. | 
 |  | 
 |  * "git stash" learned "pop" command, that applies the latest stash and | 
 |    removes it from the stash, and "drop" command to discard the named | 
 |    stash entry. | 
 |  | 
 |  * "git submodule" learned a new subcommand "summary" to show the | 
 |    symmetric difference between the HEAD version and the work tree version | 
 |    of the submodule commits. | 
 |  | 
 |  * Various "git cvsimport", "git cvsexportcommit", "git cvsserver", | 
 |    "git svn" and "git p4" improvements. | 
 |  | 
 | (internal) | 
 |  | 
 |  * Duplicated code between git-help and git-instaweb that | 
 |    launches user's preferred browser has been refactored. | 
 |  | 
 |  * It is now easier to write test scripts that records known | 
 |    breakages. | 
 |  | 
 |  * "git checkout" is rewritten in C. | 
 |  | 
 |  * "git remote" is rewritten in C. | 
 |  | 
 |  * Two conflict hunks that are separated by a very short span of common | 
 |    lines are now coalesced into one larger hunk, to make the result easier | 
 |    to read. | 
 |  | 
 |  * Run-command API's use of file descriptors is documented clearer and | 
 |    is more consistent now. | 
 |  | 
 |  * diff output can be sent to FILE * that is different from stdout.  This | 
 |    will help reimplementing more things in C. | 
 |  | 
 | Fixes since v1.5.4 | 
 | ------------------ | 
 |  | 
 | All of the fixes in v1.5.4 maintenance series are included in | 
 | this release, unless otherwise noted. | 
 |  | 
 |  * "git-http-push" did not allow deletion of remote ref with the usual | 
 |    "push <remote> :<branch>" syntax. | 
 |  | 
 |  * "git-rebase --abort" did not go back to the right location if | 
 |    "git-reset" was run during the "git-rebase" session. | 
 |  | 
 |  * "git imap-send" without setting imap.host did not error out but | 
 |    segfaulted. |