1GIT v1.6.4 Release Notes 2======================== 3 4With the next major release, "git push" into a branch that is 5currently checked out will be refused by default. You can choose 6what should happen upon such a push by setting the configuration 7variable receive.denyCurrentBranch in the receiving repository. 8 9To ease the transition plan, the receiving repository of such a 10push running this release will issue a big warning when the 11configuration variable is missing. Please refer to: 12 13 http://git.or.cz/gitwiki/GitFaq#non-bare 14 http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007 15 16for more details on the reason why this change is needed and the 17transition plan. 18 19For a similar reason, "git push $there :$killed" to delete the branch 20$killed in a remote repository $there, if $killed branch is the current 21branch pointed at by its HEAD, gets a large warning. You can choose what 22should happen upon such a push by setting the configuration variable 23receive.denyDeleteCurrent in the receiving repository. 24 25 26Updates since v1.6.3 27-------------------- 28 29(subsystems) 30 31 * gitweb Perl style clean-up. 32 33 * git-svn updates, including a new --authors-prog option to map author 34 names by invoking an external program, 'git svn reset' to unwind 35 'git svn fetch', support for more than one branches, documenting 36 of the useful --minimize-url feature, new "git svn gc" command, etc. 37 38(portability) 39 40 * We feed iconv with "UTF-8" instead of "utf8"; the former is 41 understood more widely. Similarly updated test scripts to use 42 encoding names more widely understood (e.g. use "ISO8859-1" instead 43 of "ISO-8859-1"). 44 45 * Various portability fixes/workarounds for different vintages of 46 SunOS, IRIX, and Windows. 47 48 * Git-over-ssh transport on Windows supports PuTTY plink and TortoisePlink. 49 50(performance) 51 52 * Many repeated use of lstat() are optimized out in "checkout" codepath. 53 54 * git-status (and underlying git-diff-index --cached) are optimized 55 to take advantage of cache-tree information in the index. 56 57(usability, bells and whistles) 58 59 * "git add --edit" lets users edit the whole patch text to fine-tune what 60 is added to the index. 61 62 * "git am" accepts StGIT series file as its input. 63 64 * "git bisect skip" skips to a more randomly chosen place in the hope 65 to avoid testing a commit that is too close to a commit that is 66 already known to be untestable. 67 68 * "git cvsexportcommit" learned -k option to stop CVS keywords expansion 69 70 * "git fast-export" learned to handle history simplification more 71 gracefully. 72 73 * "git fast-export" learned an option --tag-of-filtered-object to handle 74 dangling tags resulting from history simplification more usefully. 75 76 * "git grep" learned -p option to show the location of the match using the 77 same context hunk marker "git diff" uses. 78 79 * https transport can optionally be told that the used client 80 certificate is password protected, in which case it asks the 81 password only once. 82 83 * "git imap-send" is IPv6 aware. 84 85 * "git log --graph" draws graphs more compactly by using horizontal lines 86 when able. 87 88 * "git log --decorate" shows shorter refnames by stripping well-known 89 refs/* prefix. 90 91 * "git push $name" honors remote.$name.pushurl if present before 92 using remote.$name.url. In other words, the URL used for fetching 93 and pushing can be different. 94 95 * "git send-email" understands quoted aliases in .mailrc files (might 96 have to be backported to 1.6.3.X). 97 98 * "git send-email" can fetch the sender address from the configuration 99 variable "sendmail.from" (and "sendmail.<identity>.from"). 100 101 * "git show-branch" can color its output. 102 103 * "add" and "update" subcommands to "git submodule" learned --reference 104 option to use local clone with references. 105 106 * "git submodule update" learned --rebase option to update checked 107 out submodules by rebasing the local changes. 108 109 * "gitweb" can optionally use gravatar to adorn author/committer names. 110 111(developers) 112 113 * A major part of the "git bisect" wrapper has moved to C. 114 115 * Formatting with the new version of AsciiDoc 8.4.1 is now supported. 116 117Fixes since v1.6.3 118------------------ 119 120All of the fixes in v1.6.3.X maintenance series are included in this 121release, unless otherwise noted. 122 123Here are fixes that this release has, but have not been backported to 124v1.6.3.X series. 125 126 * "git diff-tree -r -t" used to omit new or removed directories from 127 the output. df533f3 (diff-tree -r -t: include added/removed 128 directories in the output, 2009-06-13) may need to be cherry-picked 129 to backport this fix. 130 131 * The way Git.pm sets up a Repository object was not friendly to callers 132 that chdir around. It now internally records the repository location 133 as an absolute path when autodetected. 134 135 * Removing a section with "git config --remove-section", when its 136 section header has a variable definition on the same line, lost 137 that variable definition. 138 139 * "git rebase -p --onto" used to always leave side branches of a merge 140 intact, even when both branches are subject to rewriting. 141 142 * "git repack" used to faithfully follow grafts and considered true 143 parents recorded in the commit object unreachable from the commit. 144 After such a repacking, you cannot remove grafts without corrupting 145 the repository. 146 147 * "git send-email" did not detect erroneous loops in alias expansion.