X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=Documentation%2FRelNotes-1.5.4.txt;h=f1323b61746ee5d7f2a9d2fc3835c2cd75e76434;hb=e392a852364e375e916c1dd4f87a7584b348410a;hp=192766f868f4669b7cedc5baa4c119a39fc602b5;hpb=5fa00a4dcf5d283c0af50b246b60977c66193c63;p=git.git diff --git a/Documentation/RelNotes-1.5.4.txt b/Documentation/RelNotes-1.5.4.txt index 192766f86..f1323b617 100644 --- a/Documentation/RelNotes-1.5.4.txt +++ b/Documentation/RelNotes-1.5.4.txt @@ -1,183 +1,348 @@ 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. + + * As git-commit and git-status have been rewritten, "git runstatus" + helper script lost all its users and has been removed. + + +Temporarily disabled +-------------------- + + * "git http-push" is known not to work well with cURL library older + than 7.16, and we had reports of repository corruption. It is + disabled on such platforms for now. Unfortunately, 1.5.3.8 shares + the same issue. In other words, this does not mean you will be + fine if you stick to an older git release. For now, please do not + use http-push from older git with cURL older than 7.16 if you + value your data. A proper fix will hopefully materialize in + later versions. + + 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 + * From v1.6.0, git 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 + - Using dashed forms 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. + dash-less forms (e.g. "git commit") instead. - - Using dashed from from your scripts, without first prepending the + - Using dashed forms 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 + - Use of dashed forms 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. + Users are strongly encouraged to adjust their habits and scripts now + to prepare for this change. * The post-receive hook was introduced in March 2007 to supersede - post-update hook, primarily to overcome the command line length + the 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. + in future versions of git, starting from v1.6.0. + * "git lost-found" was deprecated in favor of "git fsck"'s --lost-found + option, and will be removed in the future. -Updates since v1.5.3 --------------------- + * "git peek-remote" is deprecated, as "git ls-remote" was written in C + and works for all transports; "git peek-remote" will be removed in + the future. - * Comes with much improved gitk. + * "git repo-config" which was an old name for "git config" command + has been supported without being advertised for a long time. The + next feature release will remove it. - * Comes with git-gui 0.9.0 with i18n. + * From v1.6.0, the repack.usedeltabaseoffset config option will default + to true, which will give denser packfiles (i.e. more efficient storage). + The downside is that git older than version 1.4.4 will not be able + to directly use a repository packed using this setting. - * git-lost-found was deprecated in favor of git-fsck's --lost-found - option. + * From v1.6.0, the pack.indexversion config option will default to 2, + which is slightly more efficient, and makes repacking more immune to + data corruptions. Git older than version 1.5.2 may revert to version 1 + of the pack index with a manual "git index-pack" to be able to directly + access corresponding pack files. - * 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. +Updates since v1.5.3 +-------------------- - * "progress display" from many commands are a lot nicer to the - eye. Transfer commands show throughput data. + * Comes with much improved gitk, with i18n. + + * Comes with git-gui 0.9.2 with i18n. + + * gitk is now merged as a subdirectory of git.git project, in + preparation for its i18n. + + * progress displays 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. + * Output processing for '--pretty=format:' has been + optimized. - * git-send-email can optionally talk over ssmtp and use SMTP-AUTH. + * Rename detection of diff family while detecting exact matches has + been greatly optimized. - * git-rebase learned --whitespace option. + * Rename detection of diff family tries to make more natural looking + pairing. Earlier, if multiple identical rename sources were + found in the preimage, the source used was picked pretty much at random. - * In git-rebase, when you decide not to replay a particular change - after the command stopped with a conflict, you can say "git-rebase + * 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". + + * "git diff" Porcelain now respects diff.external configuration, which + is another way to specify GIT_EXTERNAL_DIFF. + + * "git diff" can be told to use different prefixes other than + "a/" and "b/" e.g. "git diff --src-prefix=l/ --dst-prefix=k/". + + * "git diff" sometimes did not quote paths with funny + characters properly. + + * "git log" (and any revision traversal commands) misbehaved + when --diff-filter is given but was not asked to actually + produce diff. + + * 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. + + * Any command that wants to take a commit object name can now use + ":/string" syntax to name a commit. + + * "git reset" is now built-in and its output can be squelched with -q. + + * "git reset --hard" does not make any sense in a bare + repository, but did not error out; fixed. + + * "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 rebase --interactive" mode can now work on detached HEAD. + + * Other minor to serious bugs in "git rebase -i" have been fixed. + + * "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-merge can call the "post-merge" hook. + * "git rebase -i" also triggers rerere to help your repeated merges. - * git-pack-objects can optionally run deltification with multiple threads. + * "git merge" can call the "post-merge" hook. - * git-archive can optionally substitute keywords in files marked with + * "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:) 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:) syntax to show the + various date fields in different formats. - * 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 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. + * "git clean" has been rewritten in C. - * git-push 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 -f option to lose untracked + files", but we now use the safer default). - * git-push learned --dry-run option to show what would happen - if a push is run. + * The kinds of whitespace errors "git diff" and "git apply" notice (and + fix) can be controlled via 'core.whitespace' configuration variable + and 'whitespace' attribute in .gitattributes file. - * git-push does not update a tracking ref on the pushing side when the + * "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-push learned --mirror option. This is to push the local refs + * "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 push" can remove a corrupt ref at the remote site with the usual + ":ref" refspec. - * git-rebase --interactive mode can now work on detached HEAD. + * "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-cvsserver can be run via git-shell. + * "git remote" learned "rm" subcommand. - * git-am and git-rebase are far less verbose. + * "git cvsserver" can be run via "git shell". Also, "cvs" is + recognized as a synonym for "git cvsserver", so that CVS users + can be switched to git just by changing their login shell. - * git-pull learned to pass --[no-]ff option to underlying git-merge. + * "git cvsserver" acts more like receive-pack by running post-receive + and post-update hooks. - * Various Perforce importer updates. + * "git am" and "git rebase" are far less verbose. + + * "git pull" learned to pass --[no-]ff option to underlying "git + merge". + + * "git pull --rebase" is a different way to integrate what you fetched + into your current branch. + + * "git fast-export" produces data-stream that can be fed to fast-import + to reproduce the history recorded in a git repository. + + * "git add -i" takes pathspecs to limit the set of files to work on. + + * "git add -p" is a short-hand to go directly to the selective patch + subcommand in the interactive command loop and to exit when done. + + * "git add -i" UI has been colorized. The interactive prompt + and menu can be colored by setting color.interactive + configuration. The diff output (including the hunk picker) + are colored with color.diff configuration. + + * "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 commit --amend" can amend a merge that does not change the tree + from its first parent. + + * "git commit" used to unconditionally strip comment lines that + began with '#' and removed excess blank lines. This behavior has + been made configurable. + + * "git commit" has been rewritten in C. - * "git log" learned --early-output option to help interactive - GUI implementations. + * "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-svnimport was removed in favor of git-svn. + * "git stash clear extra-text" does not clear the whole stash + anymore. It is tempting to expect "git stash clear stash@{2}" + to drop only a single named stash entry, and it is rude to + discard everything when that is asked (but not provided). - * git-bisect learned "skip" action to mark untestable commits. + * "git prune --expire