| GIT v1.5.4 Release Notes |
| ======================== |
| |
| Deprecation notices |
| ------------------- |
| |
| * Next feature release of git (this change is scheduled for v1.5.5 but |
| it could slip) will by default install dashed form of commands |
| (e.g. "git-commit") outside of users' normal $PATH, and will install |
| only selected commands ("git" itself, and "gitk") in $PATH. This |
| implies: |
| |
| - Using dashed form of git commands (e.g. "git-commit") from the |
| command line has been informally deprecated since early 2006, but |
| now it officially is, and will be removed in the future. Use |
| dashless form (e.g. "git commit") instead. |
| |
| - Using dashed from from your scripts, without first prepending the |
| return value from "git --exec-path" to the scripts' PATH, has been |
| informally deprecated since early 2006, but now it officially is. |
| |
| - Use of dashed form with "PATH=$(git --exec-path):$PATH; export |
| PATH" early in your script is not deprecated with this change. |
| |
| Users are strongly encouraged to adjust their habits and scripts now |
| to prepare for this. |
| |
| * The post-receive hook was introduced in March 2007 to supersede |
| post-update hook, primarily to overcome the command line length |
| limitation of the latter. Use of post-update hook will be deprecated |
| in future versions of git, perhaps in v1.5.5. |
| |
| |
| Updates since v1.5.3 |
| -------------------- |
| |
| * Comes with much improved gitk. |
| |
| * Comes with git-gui 0.9.0 with i18n. |
| |
| * git-lost-found was deprecated in favor of git-fsck's --lost-found |
| option. |
| |
| * git-peek-remote is deprecated, as git-ls-remote was written in C and |
| works for all transports. |
| |
| * git-cherry-pick made a misguided attempt to repeat the original |
| command line in the generated log message, when told to cherry-pick a |
| commit by naming a tag that points at it. It does not anymore. |
| |
| * "progress display" from many commands are a lot nicer to the |
| eye. Transfer commands show throughput data. |
| |
| * many commands that pay attention to per-directory .gitignore now do |
| so lazily, which makes the usual case go much faster. |
| |
| * git-reset is now built-in and its output can be squelched with -q. |
| |
| * git-send-email can optionally talk over ssmtp and use SMTP-AUTH. |
| |
| * git-rebase learned --whitespace option. |
| |
| * In git-rebase, when you decide not to replay a particular change |
| after the command stopped with a conflict, you can say "git-rebase |
| --skip" without first running "git reset --hard", as the command now |
| runs it for you. |
| |
| * git-remote knows --mirror mode. |
| |
| * git-merge can call the "post-merge" hook. |
| |
| * git-pack-objects can optionally run deltification with multiple threads. |
| |
| * git-archive can optionally substitute keywords in files marked with |
| export-subst attribute. |
| |
| * git-for-each-ref learned %(xxxdate:<dateformat>) syntax to |
| show the various date fields in different formats. |
| |
| * git-gc --auto is a low-impact way to automatically run a |
| variant of git-repack that does not lose unreferenced objects |
| (read: safer than the usual one) after the user accumulates |
| too many loose objects. |
| |
| * You need to explicitly set clean.requireForce to "false" to allow |
| git-clean without -f to do any damage (lack of the configuration |
| variable used to mean "do not require", but we now use the safer |
| default). |
| |
| * git-clean has been rewritten in C. |
| |
| * git-push has been rewritten in C. |
| |
| * git-push learned --dry-run option to show what would happen |
| if a push is run. |
| |
| * git-push does not update a tracking ref on the pushing side when the |
| remote refused to update the corresponding ref. |
| |
| * git-push learned --mirror option. This is to push the local refs |
| one-to-one to the remote, and deletes refs from the remote that do |
| not exist anymore in the repository on the pushing side. |
| |
| * git-remote learned "rm" subcommand. |
| |
| * git-rebase --interactive mode can now work on detached HEAD. |
| |
| * git-cvsserver can be run via git-shell. |
| |
| * git-am and git-rebase are far less verbose. |
| |
| * git-pull learned to pass --[no-]ff option to underlying git-merge. |
| |
| * Various Perforce importer updates. |
| |
| * "git log" learned --early-output option to help interactive |
| GUI implementations. |
| |
| * git-svnimport was removed in favor of git-svn. |
| |
| * git-bisect learned "skip" action to mark untestable commits. |
| |
| * git-format-patch learned "format.numbered" configuration variable |
| to automatically turn --numbered option on when more than one |
| commits are formatted. |
| |
| * git-ls-files learned "--exclude-standard" to use the canned |
| set of exclude files. |
| |
| * git-rebase now detaches head during its operation, so after a |
| successful "git rebase" operation, the reflog entry branch@{1} |
| for the current branch points at the commit before the rebase |
| was started. |
| |
| * "git-tag -a -f existing" begins the editor session using the |
| existing annotation message. |
| |
| * "git cvsexportcommit" learned -w option to specify and switch |
| to the CVS working directory. |
| |
| * "git checkout" from a subdirectory learned to use "../path" |
| to allow checking out a path outside the current directory |
| without cd'ing up. |
| |
| * "git send-email --dry-run" shows full headers for easier |
| diagnosis. |
| |
| * "git merge-ours" is built-in. |
| |
| * "git svn" learned "info" and "show-externals" subcommands. |
| |
| * calling "git svn" from a subdirectory failed read settings from the |
| .git/config. |
| |
| * "git svn" learned --use-log-author option, which picks up more |
| descriptive name from From: and Signed-off-by: lines in the commit |
| message. |
| |
| * "git status" from a subdirectory now shows relative paths |
| which makes copy-and-pasting for git-checkout/git-add/git-rm |
| easier. |
| |
| * "git checkout" from and to detached HEAD leaves a bit more |
| information in the reflog. |
| |
| * Output processing for '--pretty=format:<user format>' has |
| been optimized. |
| |
| * Rename detection of diff family, while detecting exact matches, has |
| been greatly optimized. |
| |
| * Rename detection of diff family tries to make more naturally looking |
| pairing. Earlier if more than one identical rename sources were |
| found in the preimage, they were picked pretty much at random. |
| |
| * Example update and post-receive hooks have been improved. |
| |
| * A corrupt ref at the remote site can be removed via "git push". |
| |
| * In addition there are quite a few internal clean-ups. Notably |
| |
| - many fork/exec have been replaced with run-command API, |
| brought from the msysgit effort. |
| |
| - introduction and more use of the option parser API. |
| |
| - enhancement and more use of the strbuf API. |
| |
| |
| Fixes since v1.5.3 |
| ------------------ |
| |
| All of the fixes in v1.5.3 maintenance series are included in |
| this release, unless otherwise noted. |
| |
| * git-svn talking with the SVN over http will correctly quote branch |
| and project names. |
| |
| * "git rev-list --objects A..B" choked when the lower boundary |
| of the range involved a subproject. This fix is also queued |
| for 'maint' (but not in there yet). |
| |
| -- |
| exec >/var/tmp/1 |
| O=v1.5.3.7-948-gb52e985 |
| echo O=`git describe refs/heads/master` |
| git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint |