|  | GIT v1.6.5 Release Notes | 
|  | ======================== | 
|  |  | 
|  | In git 1.7.0, which was planned to be the release after 1.6.5, "git | 
|  | push" into a branch that is currently checked out will be refused by | 
|  | default. | 
|  |  | 
|  | You can choose what should happen upon such a push by setting the | 
|  | configuration variable receive.denyCurrentBranch in the receiving | 
|  | repository. | 
|  |  | 
|  | Also, "git push $there :$killed" to delete the branch $killed in a remote | 
|  | repository $there, when $killed branch is the current branch pointed at by | 
|  | its HEAD, will be refused by default. | 
|  |  | 
|  | You can choose what should happen upon such a push by setting the | 
|  | configuration variable receive.denyDeleteCurrent in the receiving | 
|  | repository. | 
|  |  | 
|  | To ease the transition plan, the receiving repository of such a | 
|  | push running this release will issue a big warning when the | 
|  | configuration variable is missing.  Please refer to: | 
|  |  | 
|  | https://archive.kernel.org/oldwiki/git.wiki.kernel.org/index.php/GitFaq.html#non-bare | 
|  | https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/ | 
|  |  | 
|  | for more details on the reason why this change is needed and the | 
|  | transition plan. | 
|  |  | 
|  | Updates since v1.6.4 | 
|  | -------------------- | 
|  |  | 
|  | (subsystems) | 
|  |  | 
|  | * various updates to gitk, git-svn and gitweb. | 
|  |  | 
|  | (portability) | 
|  |  | 
|  | * more improvements on mingw port. | 
|  |  | 
|  | * mingw will also give FRSX as the default value for the LESS | 
|  | environment variable when the user does not have one. | 
|  |  | 
|  | * initial support to compile git on Windows with MSVC. | 
|  |  | 
|  | (performance) | 
|  |  | 
|  | * On major platforms, the system can be compiled to use with Linus's | 
|  | block-sha1 implementation of the SHA-1 hash algorithm, which | 
|  | outperforms the default fallback implementation we borrowed from | 
|  | Mozilla. | 
|  |  | 
|  | * Unnecessary inefficiency in deepening of a shallow repository has | 
|  | been removed. | 
|  |  | 
|  | * "git clone" does not grab objects that it does not need (i.e. | 
|  | referenced only from refs outside refs/heads and refs/tags | 
|  | hierarchy) anymore. | 
|  |  | 
|  | * The "git" main binary used to link with libcurl, which then dragged | 
|  | in a large number of external libraries.  When using basic plumbing | 
|  | commands in scripts, this unnecessarily slowed things down.  We now | 
|  | implement http/https/ftp transfer as a separate executable as we | 
|  | used to. | 
|  |  | 
|  | * "git clone" run locally hardlinks or copies the files in .git/ to | 
|  | newly created repository.  It used to give new mtime to copied files, | 
|  | but this delayed garbage collection to trigger unnecessarily in the | 
|  | cloned repository.  We now preserve mtime for these files to avoid | 
|  | this issue. | 
|  |  | 
|  | (usability, bells and whistles) | 
|  |  | 
|  | * Human writable date format to various options, e.g. --since=yesterday, | 
|  | master@{2000.09.17}, are taught to infer some omitted input properly. | 
|  |  | 
|  | * A few programs gave verbose "advice" messages to help uninitiated | 
|  | people when issuing error messages.  An infrastructure to allow | 
|  | users to squelch them has been introduced, and a few such messages | 
|  | can be silenced now. | 
|  |  | 
|  | * refs/replace/ hierarchy is designed to be usable as a replacement | 
|  | of the "grafts" mechanism, with the added advantage that it can be | 
|  | transferred across repositories. | 
|  |  | 
|  | * "git am" learned to optionally ignore whitespace differences. | 
|  |  | 
|  | * "git am" handles input e-mail files that has CRLF line endings sensibly. | 
|  |  | 
|  | * "git am" learned "--scissors" option to allow you to discard early part | 
|  | of an incoming e-mail. | 
|  |  | 
|  | * "git archive -o output.zip" works without being told what format to | 
|  | use with an explicit "--format=zip".option. | 
|  |  | 
|  | * "git checkout", "git reset" and "git stash" learned to pick and | 
|  | choose to use selected changes you made, similar to "git add -p". | 
|  |  | 
|  | * "git clone" learned a "-b" option to pick a HEAD to check out | 
|  | different from the remote's default branch. | 
|  |  | 
|  | * "git clone" learned --recursive option. | 
|  |  | 
|  | * "git clone" from a local repository on a different filesystem used to | 
|  | copy individual object files without preserving the old timestamp, giving | 
|  | them extra lifetime in the new repository until they gc'ed. | 
|  |  | 
|  | * "git commit --dry-run $args" is a new recommended way to ask "what would | 
|  | happen if I try to commit with these arguments." | 
|  |  | 
|  | * "git commit --dry-run" and "git status" shows conflicted paths in a | 
|  | separate section to make them easier to spot during a merge. | 
|  |  | 
|  | * "git cvsimport" now supports password-protected pserver access even | 
|  | when the password is not taken from ~/.cvspass file. | 
|  |  | 
|  | * "git fast-export" learned --no-data option that can be useful when | 
|  | reordering commits and trees without touching the contents of | 
|  | blobs. | 
|  |  | 
|  | * "git fast-import" has a pair of new front-end in contrib/ area. | 
|  |  | 
|  | * "git init" learned to mkdir/chdir into a directory when given an | 
|  | extra argument (i.e. "git init this"). | 
|  |  | 
|  | * "git instaweb" optionally can use mongoose as the web server. | 
|  |  | 
|  | * "git log --decorate" can optionally be told with --decorate=full to | 
|  | give the reference name in full. | 
|  |  | 
|  | * "git merge" issued an unnecessarily scary message when it detected | 
|  | that the merge may have to touch the path that the user has local | 
|  | uncommitted changes to. The message has been reworded to make it | 
|  | clear that the command aborted, without doing any harm. | 
|  |  | 
|  | * "git push" can be told to be --quiet. | 
|  |  | 
|  | * "git push" pays attention to url.$base.pushInsteadOf and uses a URL | 
|  | that is derived from the URL used for fetching. | 
|  |  | 
|  | * informational output from "git reset" that lists the locally modified | 
|  | paths is made consistent with that of "git checkout $another_branch". | 
|  |  | 
|  | * "git submodule" learned to give submodule name to scripts run with | 
|  | "foreach" subcommand. | 
|  |  | 
|  | * various subcommands to "git submodule" learned --recursive option. | 
|  |  | 
|  | * "git submodule summary" learned --files option to compare the work | 
|  | tree vs the commit bound at submodule path, instead of comparing | 
|  | the index. | 
|  |  | 
|  | * "git upload-pack", which is the server side support for "git clone" and | 
|  | "git fetch", can call a new post-upload-pack hook for statistics purposes. | 
|  |  | 
|  | (developers) | 
|  |  | 
|  | * With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the | 
|  | source directory; using tmpfs may give faster turnaround. | 
|  |  | 
|  | * With NO_PERL_MAKEMAKER set, DESTDIR= is now honoured, so you can | 
|  | build for one location, and install into another location to tar it | 
|  | up. | 
|  |  | 
|  | Fixes since v1.6.4 | 
|  | ------------------ | 
|  |  | 
|  | All of the fixes in v1.6.4.X maintenance series are included in this | 
|  | release, unless otherwise noted. |