diff options
Diffstat (limited to 'Documentation/RelNotes-1.5.4.txt')
-rw-r--r-- | Documentation/RelNotes-1.5.4.txt | 252 |
1 files changed, 192 insertions, 60 deletions
diff --git a/Documentation/RelNotes-1.5.4.txt b/Documentation/RelNotes-1.5.4.txt index a4a2a7f429..c40fd1805f 100644 --- a/Documentation/RelNotes-1.5.4.txt +++ b/Documentation/RelNotes-1.5.4.txt @@ -1,98 +1,231 @@ GIT v1.5.4 Release Notes ======================== +Removal +------- + + * "git svnimport" was removed in favor of "git svn". It is still there + in the source tree (contrib/examples) but unsupported. + + +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. + + * "git lost-found" was deprecated in favor of "git fsck"'s --lost-found + option, and will be removed in the future. + + * "git peek-remote" is deprecated, as "git ls-remote" was written in C + and works for all transports, and will be removed in the future. + + Updates since v1.5.3 -------------------- * Comes with much improved gitk. - * "progress display" from many commands are a lot nicer to the - eye. Transfer commands show throughput data. + * Comes with "git gui" 0.9.1 with i18n. + + * gitk is now merged as a subdirectory of git.git project, in + preparation for its i18n. + + * 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. + + * Output processing for '--pretty=format:<user format>' has been + optimized. + + * Rename detection of diff family, while detecting exact matches, has + been greatly optimized. - * git-reset is now built-in and its output can be squelched with -q. + * 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. - * git-send-email can optionally talk over ssmtp and use SMTP-AUTH. + * Value "true" for color.diff and color.status configuration used to + mean "always" (even when the output is not going to a terminal). + This has been corrected to mean the same thing as "auto". + + * HTTP proxy can be specified per remote repository using + remote.*.httpproxy configuration, or global http.proxy configuration + variable. + + * Various Perforce importer updates. + + * Example update and post-receive hooks have been improved. - * git-rebase learned --whitespace option. + * Any command that wants to take a commit object name can now use + ":/string" syntax to name a commit. - * git-remote knows --mirror mode. + * "git reset" is now built-in and its output can be squelched with -q. - * git-merge can call the "post-merge" hook. + * "git send-email" can optionally talk over ssmtp and use SMTP-AUTH. - * git-pack-objects can optionally run deltification with multiple threads. + * "git rebase" learned --whitespace option. - * git-archive can optionally substitute keywords in files marked with + * 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 rebase --interactive" mode can now work on detached HEAD. + + * "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 rebase -i" also triggers rerere to help your repeated merges. + + * "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 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. - * 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. + * "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. + + * "git clean" has been rewritten in C. * 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" without -f to do any damage (lack of the configuration + variable used to mean "do not require -f option to lose untracked + files", but we now use the safer default). - * 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 learned --dry-run option to show what would happen - if a push is run. + * "git push" does not update a tracking ref on the local side when the + remote refused to update the corresponding ref. - * git-remote learned "rm" subcommand. + * "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-rebase --interactive mode can now work on detached HEAD. + * "git push" can remove a corrupt ref at the remote site with the usual + ":ref" refspec. - * git-cvsserver can be run via git-shell. + * "git remote" knows --mirror mode. This is to set up configuration to + push into a remote repository to store local branch heads to the same + branch on the remote side, and remove branch heads locally removed + from local repository at the same time. Suitable for pushing into a + back-up repository. - * git-am and git-rebase are far less verbose. + * "git remote" learned "rm" subcommand. - * git-pull learned to pass --[no-]ff option to underlying git-merge. + * "git cvsserver" can be run via "git shell". - * Various Perforce importer updates. + * "git am" and "git rebase" are far less verbose. - * git-lost-found was deprecated in favor of git-fsck's --lost-found - option. + * "git pull" learned to pass --[no-]ff option to underlying "git + merge". - * "git log" learned --early-output option to help interactive - GUI implementations. + * "git pull --rebase" is a different way to integrate what you fetched + into your current branch. - * git-svnimport was removed in favor of git-svn. + * "git fast-export" produces datastream that can be fed to fast-import + to reproduce the history recorded in a git repository. - * git-bisect learned "skip" action to mark untestable commits. + * "git commit --allow-empty" allows you to create a single-parent + commit that records the same tree as its parent, overriding the usual + safety valve. - * git-format-patch learned "format.numbered" configuration variable - to automatically turn --numbered option on when more than one - commits are formatted. + * "git commit --amend" can amend a merge that does not change the tree + from its first parent. - * git-ls-files learned "--exclude-standard" to use the canned - set of exclude files. + * "git stash random-text" does not create a new stash anymore. It was + a UI mistake. Use "git stash save random-text", or "git stash" + (without extra args) for that. - * 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 prune --expire <time>" can exempt young loose objects from + getting pruned. - * "git-tag -a -f existing" begins the editor session using the - existing annotation message. + * "git branch --contains <commit>" can list branches that are + descendants of a given commit. - * "git cvsexportcommit" learned -w option to specify and switch - to the CVS working directory. + * "git log" learned --early-output option to help interactive GUI + implementations. - * "git checkout" from a subdirectory learned to use "../path" - to allow checking out a path outside the current directory - without cd'ing up. + * "git bisect" learned "skip" action to mark untestable commits. - * Output processing for '--pretty=format:<user format>' has - been optimized. + * "git format-patch" learned "format.numbered" configuration variable + to automatically turn --numbered option on when more than one commits + are formatted. - * Rename detection diff family, while detecting exact matches, - has been greatly optimized. + * "git ls-files" learned "--exclude-standard" to use the canned set of + exclude files. - * Example update and post-receive hooks have been improved. + * "git tag -a -f existing" begins the editor session using the existing + annotation message. + + * "git tag -m one -m bar" (multiple -m options) behaves similarly to + "git commit"; the parameters to -m options are formatted as separate + paragraphs. + + * "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 now built-in. + + * "git svn" learned "info" and "show-externals" subcommands. + + * "git svn" run from a subdirectory failed to 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. * In addition there are quite a few internal clean-ups. Notably @@ -110,15 +243,14 @@ 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. +These fixes are only in v1.5.4 and not backported to v1.5.3 maintenance +series. - * "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). + * "git svn" talking with the SVN over http will correctly quote branch + and project names. -- exec >/var/tmp/1 -O=v1.5.3.6-727-g5d3d1ca +O=v1.5.3.7-1003-gf38ca7c echo O=`git describe refs/heads/master` git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint |