1GIT v1.5.4 Release Notes 2======================== 3 4Deprecation notices 5------------------- 6 7 * Next feature release of git (this change is scheduled for v1.5.5 but 8 it could slip) will by default install dashed form of commands 9 (e.g. "git-commit") outside of users' normal $PATH, and will install 10 only selected commands ("git" itself, and "gitk") in $PATH. This 11 implies: 12 13 - Using dashed form of git commands (e.g. "git-commit") from the 14 command line has been informally deprecated since early 2006, but 15 now it officially is, and will be removed in the future. Use 16 dashless form (e.g. "git commit") instead. 17 18 - Using dashed from from your scripts, without first prepending the 19 return value from "git --exec-path" to the scripts' PATH, has been 20 informally deprecated since early 2006, but now it officially is. 21 22 - Use of dashed form with "PATH=$(git --exec-path):$PATH; export 23 PATH" early in your script is not deprecated with this change. 24 25 Users are strongly encouraged to adjust their habits and scripts now 26 to prepare for this. 27 28 * The post-receive hook was introduced in March 2007 to supersede 29 post-update hook, primarily to overcome the command line length 30 limitation of the latter. Use of post-update hook will be deprecated 31 in future versions of git, perhaps in v1.5.5. 32 33 34Updates since v1.5.3 35-------------------- 36 37 * Comes with much improved gitk. 38 39 * Comes with git-gui 0.9.0 with i18n. 40 41 * git-lost-found was deprecated in favor of git-fsck's --lost-found 42 option. 43 44 * git-peek-remote is deprecated, as git-ls-remote was written in C and 45 works for all transports. 46 47 * git-cherry-pick made a misguided attempt to repeat the original 48 command line in the generated log message, when told to cherry-pick a 49 commit by naming a tag that points at it. It does not anymore. 50 51 * "progress display" from many commands are a lot nicer to the 52 eye. Transfer commands show throughput data. 53 54 * many commands that pay attention to per-directory .gitignore now do 55 so lazily, which makes the usual case go much faster. 56 57 * git-reset is now built-in and its output can be squelched with -q. 58 59 * git-send-email can optionally talk over ssmtp and use SMTP-AUTH. 60 61 * git-rebase learned --whitespace option. 62 63 * In git-rebase, when you decide not to replay a particular change 64 after the command stopped with a conflict, you can say "git-rebase 65 --skip" without first running "git reset --hard", as the command now 66 runs it for you. 67 68 * git-remote knows --mirror mode. 69 70 * git-merge can call the "post-merge" hook. 71 72 * git-pack-objects can optionally run deltification with multiple threads. 73 74 * git-archive can optionally substitute keywords in files marked with 75 export-subst attribute. 76 77 * git-for-each-ref learned %(xxxdate:<dateformat>) syntax to 78 show the various date fields in different formats. 79 80 * git-gc --auto is a low-impact way to automatically run a 81 variant of git-repack that does not lose unreferenced objects 82 (read: safer than the usual one) after the user accumulates 83 too many loose objects. 84 85 * You need to explicitly set clean.requireForce to "false" to allow 86 git-clean without -f to do any damage (lack of the configuration 87 variable used to mean "do not require", but we now use the safer 88 default). 89 90 * git-clean has been rewritten in C. 91 92 * git-push has been rewritten in C. 93 94 * git-push learned --dry-run option to show what would happen 95 if a push is run. 96 97 * git-push does not update a tracking ref on the pushing side when the 98 remote refused to update the corresponding ref. 99 100 * git-push learned --mirror option. This is to push the local refs 101 one-to-one to the remote, and deletes refs from the remote that do 102 not exist anymore in the repository on the pushing side. 103 104 * git-remote learned "rm" subcommand. 105 106 * git-rebase --interactive mode can now work on detached HEAD. 107 108 * git-cvsserver can be run via git-shell. 109 110 * git-am and git-rebase are far less verbose. 111 112 * git-pull learned to pass --[no-]ff option to underlying git-merge. 113 114 * Various Perforce importer updates. 115 116 * "git log" learned --early-output option to help interactive 117 GUI implementations. 118 119 * git-svnimport was removed in favor of git-svn. 120 121 * git-bisect learned "skip" action to mark untestable commits. 122 123 * git-format-patch learned "format.numbered" configuration variable 124 to automatically turn --numbered option on when more than one 125 commits are formatted. 126 127 * git-ls-files learned "--exclude-standard" to use the canned 128 set of exclude files. 129 130 * git-rebase now detaches head during its operation, so after a 131 successful "git rebase" operation, the reflog entry branch@{1} 132 for the current branch points at the commit before the rebase 133 was started. 134 135 * "git-tag -a -f existing" begins the editor session using the 136 existing annotation message. 137 138 * "git cvsexportcommit" learned -w option to specify and switch 139 to the CVS working directory. 140 141 * "git checkout" from a subdirectory learned to use "../path" 142 to allow checking out a path outside the current directory 143 without cd'ing up. 144 145 * "git send-email --dry-run" shows full headers for easier 146 diagnosis. 147 148 * "git merge-ours" is built-in. 149 150 * "git svn" learned "info" and "show-externals" subcommands. 151 152 * calling "git svn" from a subdirectory failed read settings from the 153 .git/config. 154 155 * "git svn" learned --use-log-author option, which picks up more 156 descriptive name from From: and Signed-off-by: lines in the commit 157 message. 158 159 * "git status" from a subdirectory now shows relative paths 160 which makes copy-and-pasting for git-checkout/git-add/git-rm 161 easier. 162 163 * "git checkout" from and to detached HEAD leaves a bit more 164 information in the reflog. 165 166 * Output processing for '--pretty=format:<user format>' has 167 been optimized. 168 169 * Rename detection of diff family, while detecting exact matches, has 170 been greatly optimized. 171 172 * Rename detection of diff family tries to make more naturally looking 173 pairing. Earlier if more than one identical rename sources were 174 found in the preimage, they were picked pretty much at random. 175 176 * Example update and post-receive hooks have been improved. 177 178 * A corrupt ref at the remote site can be removed via "git push". 179 180 * In addition there are quite a few internal clean-ups. Notably 181 182 - many fork/exec have been replaced with run-command API, 183 brought from the msysgit effort. 184 185 - introduction and more use of the option parser API. 186 187 - enhancement and more use of the strbuf API. 188 189 190Fixes since v1.5.3 191------------------ 192 193All of the fixes in v1.5.3 maintenance series are included in 194this release, unless otherwise noted. 195 196 * git-svn talking with the SVN over http will correctly quote branch 197 and project names. 198 199 * "git rev-list --objects A..B" choked when the lower boundary 200 of the range involved a subproject. This fix is also queued 201 for 'maint' (but not in there yet). 202 203-- 204exec >/var/tmp/1 205O=v1.5.3.7-948-gb52e985 206echo O=`git describe refs/heads/master` 207git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint