1GIT v1.6.5 Release Notes 2======================== 3 4In git 1.7.0, which was planned to be the release after 1.6.5, "git 5push" into a branch that is currently checked out will be refused by 6default. 7 8You can choose what should happen upon such a push by setting the 9configuration variable receive.denyCurrentBranch in the receiving 10repository. 11 12Also, "git push $there :$killed" to delete the branch $killed in a remote 13repository $there, when $killed branch is the current branch pointed at by 14its HEAD, will be refused by default. 15 16You can choose what should happen upon such a push by setting the 17configuration variable receive.denyDeleteCurrent in the receiving 18repository. 19 20To ease the transition plan, the receiving repository of such a 21push running this release will issue a big warning when the 22configuration variable is missing. Please refer to: 23 24 http://git.or.cz/gitwiki/GitFaq#non-bare 25 http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007 26 27for more details on the reason why this change is needed and the 28transition plan. 29 30Updates since v1.6.4 31-------------------- 32 33(subsystems) 34 35 * various updates to git-svn and gitweb. 36 37(portability) 38 39 * more improvements on mingw port. 40 41 * mingw will also give FRSX as the default value for the LESS 42 environment variable when the user does not have one. 43 44(performance) 45 46 * On major platforms, the system can be compiled to use with Linus's 47 block-sha1 implementation of the SHA-1 hash algorithm, which 48 outperforms the default fallback implementation we borrowed from 49 Mozzilla. 50 51 * Unnecessary inefficiency in deepening of a shallow repository has 52 been removed. 53 54 * The "git" main binary used to link with libcurl, which then dragged 55 in a large number of external libraries. When using basic plumbing 56 commands in scripts, this unnecessarily slowed things down. We now 57 implement http/https/ftp transfer as a separate executable as we 58 used to. 59 60 * "git clone" run locally hardlinks or copies the files in .git/ to 61 newly created repository. It used to give new mtime to copied files, 62 but this delayed garbage collection to trigger unnecessarily in the 63 cloned repository. We now preserve mtime for these files to avoid 64 this issue. 65 66(usability, bells and whistles) 67 68 * Human writable date format to various options, e.g. --since=yesterday, 69 master@{2000.09.17}, are taught to infer some omitted input properly. 70 71 * A few programs gave verbose "advice" messages to help uninitiated 72 people when issuing error messages. An infrastructure to allow 73 users to squelch them has been introduced, and a few such messages 74 can be silenced now. 75 76 * refs/replace/ hierarchy is designed to be usable as a replacement 77 of the "grafts" mechanism, with the added advantage that it can be 78 transferred across repositories. 79 80 * "git am" learned to optionally ignore whitespace differences. 81 82 * "git am" handles input e-mail files that has CRLF line endings sensibly. 83 84 * "git am" learned "--scissors" option to allow you to discard early part 85 of an incoming e-mail. 86 87 * "git checkout", "git reset" and "git stash" learned to pick and 88 choose to use selected changes you made, similar to "git add -p". 89 90 * "git clone" learned a "-b" option to pick a HEAD to check out 91 different from the remote's default branch. 92 93 * "git commit --dry-run $args" is a new recommended way to ask "what would 94 happen if I try to commit with these arguments." 95 96 * "git commit --dry-run" and "git status" shows conflicted paths in a 97 separate section to make them easier to spot during a merge. 98 99 * "git cvsimport" now supports password-protected pserver access even 100 when the password is not taken from ~/.cvspass file. 101 102 * "git fast-export" learned --no-data option that can be useful when 103 reordering commits and trees without touching the contents of 104 blobs. 105 106 * "git fast-import" has a pair of new front-end in contrib/ area. 107 108 * "git init" learned to mkdir/chdir into a directory when given an 109 extra argument (i.e. "git init this"). 110 111 * "git instaweb" optionally can use mongoose as the web server. 112 113 * "git log --decorate" can optionally be told with --decorate=full to 114 give the reference name in full. 115 116 * "git merge" issued an unnecessarily scary message when it detected 117 that the merge may have to touch the path that the user has local 118 uncommitted changes to. The message has been reworded to make it 119 clear that the command aborted, without doing any harm. 120 121 * "git push" can be told to be --quiet. 122 123 * "git push" pays attention to url.$base.pushInsteadOf and uses a URL 124 that is derived from the URL used for fetching. 125 126 * informational output from "git reset" that lists the locally modified 127 paths is made consistent with that of "git checkout $another_branch". 128 129 * "git submodule" learned to give submodule name to scripts run with 130 "foreach" subcommand. 131 132 * various subcommands to "git submodule" learned --recursive option. 133 134 * "git submodule summary" learned --files option to compare the work 135 tree vs the commit bound at submodule path, instead of comparing 136 the index. 137 138 * "git upload-pack", which is the server side support for "git clone" and 139 "git fetch", can call a new post-upload-pack hook for statistics purposes. 140 141(developers) 142 143 * With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the 144 source directory; using tmpfs may give faster turnaround. 145 146 147Fixes since v1.6.4 148------------------ 149 150# All of the fixes in v1.6.4.X maintenance series are included in this 151# release, unless otherwise noted. 152 153# Here are fixes that this release has, but have not been backported to 154# v1.6.4.X series. 155 156-- 157exec >/var/tmp/1 158O=v1.6.4.2-298-gdf01e7c 159O=v1.6.5-rc0-49-g5f2b1e6 160echo O=$(git describe master) 161git shortlog --no-merges $O..master --not maint