Code

configure: rework pthread handling to allow for user defined flags
[git.git] / Documentation / RelNotes-1.6.2.txt
index 296804301f38a21baa260c1e5fda41f03c51a88b..ad060f4f8900dde20b66e1b6ef5b0187cdc82983 100644 (file)
@@ -1,12 +1,41 @@
 GIT v1.6.2 Release Notes
 ========================
 
 GIT v1.6.2 Release Notes
 ========================
 
+With the next major release, "git push" into a branch that is
+currently checked out will be refused by default.  You can choose
+what should happen upon such a push by setting the configuration
+variable receive.denyCurrentBranch in the receiving repository.
+
+To ease the transition plan, the receiving repository of such a
+push running this release will issue a big warning when the
+configuration variable is missing.  Please refer to:
+
+  http://git.or.cz/gitwiki/GitFaq#non-bare
+  http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
+
+for more details on the reason why this change is needed and the
+transition plan.
+
+For a similar reason, "git push $there :$killed" to delete the branch
+$killed in a remote repository $there, if $killed branch is the current
+branch pointed at by its HEAD, gets a large warning.  You can choose what
+should happen upon such a push by setting the configuration variable
+receive.denyDeleteCurrent in the receiving repository.
+
+
 Updates since v1.6.1
 --------------------
 
 (subsystems)
 
 Updates since v1.6.1
 --------------------
 
 (subsystems)
 
-(portability)
+* git-svn updates.
+
+* gitweb updates, including a new patch view and RSS/Atom feed
+  improvements.
+
+* (contrib/emacs) git.el now has commands for checking out a branch,
+  creating a branch, cherry-picking and reverting commits; vc-git.el
+  is not shipped with git anymore (it is part of official Emacs).
 
 (performance)
 
 
 (performance)
 
@@ -15,29 +44,88 @@ Updates since v1.6.1
 
 (usability, bells and whistles)
 
 
 (usability, bells and whistles)
 
-* "git-add -p" learned 'g'oto action to jump directly to a hunk.
+* automatic typo correction works on aliases as well
+
+* @{-1} is a way to refer to the last branch you were on.  This is
+  accepted not only where an object name is expected, but anywhere
+  a branch name is expected and acts as if you typed the branch name.
+  E.g. "git branch --track mybranch @{-1}", "git merge @{-1}", and
+  "git rev-parse --symbolic-full-name @{-1}" would work as expected.
+
+* When refs/remotes/origin/HEAD points at a remote tracking branch that
+  has been pruned away, many git operations issued warning when they
+  internally enumerated the refs.  We now warn only when you say "origin"
+  to refer to that pruned branch.
+
+* The location of .mailmap file can be configured, and its file format was
+  enhanced to allow mapping an incorrect e-mail field as well.
+
+* "git add -p" learned 'g'oto action to jump directly to a hunk.
+
+* "git add -p" learned to find a hunk with given text with '/'.
+
+* "git add -p" optionally can be told to work with just the command letter
+  without Enter.
+
+* when "git am" stops upon a patch that does not apply, it shows the
+  title of the offending patch.
+
+* "git am --directory=<dir>" and "git am --reject" passes these options
+  to underlying "git apply".
 
 
-* git-cherry defaults to HEAD when the <upstream> argument is not given.
+* "git am" learned --ignore-date option.
 
 
-* git-cvsserver can be told not to add extra "via git-CVS emulator" to the
-  commit log message it serves via gitcvs.commitmsgannotation configuration.
+* "git blame" aligns author names better when they are spelled in
+  non US-ASCII encoding.
 
 
-* git-diff learned a new option --inter-hunk-context to coalesce close
+* "git clone" now makes its best effort when cloning from an empty
+  repository to set up configuration variables to refer to the remote
+  repository.
+
+* "git checkout -" is a shorthand for "git checkout @{-1}".
+
+* "git cherry" defaults to whatever the current branch is tracking (if
+  exists) when the <upstream> argument is not given.
+
+* "git cvsserver" can be told not to add extra "via git-CVS emulator" to
+  the commit log message it serves via gitcvs.commitmsgannotation
+  configuration.
+
+* "git cvsserver" learned to handle 'noop' command some CVS clients seem
+  to expect to work.
+
+* "git diff" learned a new option --inter-hunk-context to coalesce close
   hunks together and show context between them.
 
   hunks together and show context between them.
 
-* git-filter-branch learned --prune-empty option that discards commits
+* The definition of what constitutes a word for "git diff --color-words"
+  can be customized via gitattributes, command line or a configuration.
+
+* "git diff" learned --patience to run "patience diff" algorithm.
+
+* "git filter-branch" learned --prune-empty option that discards commits
   that do not change the contents.
 
   that do not change the contents.
 
-* git-ls-tree learned --full-tree option that shows the path in full
-  regardless of where in the work tree hierarchy the command was started.
+* "git fsck" now checks loose objects in alternate object stores, instead
+  of misreporting them as missing.
+
+* "git gc --prune" was resurrected to allow "git gc --no-prune" and
+  giving non-default expiration period e.g. "git gc --prune=now".
 
 
-* git-mergetool learned -y(--no-prompt) option to disable prompting.
+* "git grep -w" and "git grep" for fixed strings have been optimized.
 
 
-* "git-reset --merge" is a new mode that works similar to the way
+* "git mergetool" learned -y(--no-prompt) option to disable prompting.
+
+* "git rebase -i" can transplant a history down to root to elsewhere
+  with --root option.
+
+* "git reset --merge" is a new mode that works similar to the way
   "git checkout" switches branches, taking the local changes while
   switching to another commit.
 
   "git checkout" switches branches, taking the local changes while
   switching to another commit.
 
-(internal)
+* "git submodule update" learned --no-fetch option.
+
+* "git tag" learned --contains that works the same way as the same option
+  from "git branch".
 
 
 Fixes since v1.6.1
 
 
 Fixes since v1.6.1
@@ -46,20 +134,31 @@ Fixes since v1.6.1
 All of the fixes in v1.6.1.X maintenance series are included in this
 release, unless otherwise noted.
 
 All of the fixes in v1.6.1.X maintenance series are included in this
 release, unless otherwise noted.
 
+Here are fixes that this release has, but have not been backported to
+v1.6.1.X series.
+
 * "git-add sub/file" when sub is a submodule incorrectly added the path to
   the superproject.
 
 * "git-add sub/file" when sub is a submodule incorrectly added the path to
   the superproject.
 
-* git-bundle did not exclude annotated tags even when a range given from the
-  command line wanted to.
+* "git bundle" did not exclude annotated tags even when a range given
+  from the command line wanted to.
+
+* "git filter-branch" unnecessarily refused to work when you had
+  checked out a different commit from what is recorded in the superproject
+  index in a submodule.
+
+* "git filter-branch" incorrectly tried to update a nonexistent work tree
+  at the end when it is run in a bare repository.
+
+* "git gc" did not work if your repository was created with an ancient git
+  and never had any pack files in it before.
 
 
-* git-grep did not work correctly for index entries with assume-unchanged bit.
+* "git mergetool" used to ignore autocrlf and other attributes
+  based content rewriting.
 
 * branch switching and merges had a silly bug that did not validate
   the correct directory when making sure an existing subdirectory is
   clean.
 
 
 * branch switching and merges had a silly bug that did not validate
   the correct directory when making sure an existing subdirectory is
   clean.
 
---
-exec >/var/tmp/1
-O=v1.6.1-134-ge98c6a1
-echo O=$(git describe master)
-git shortlog --no-merges $O..master ^maint
+* "git -p cmd" when cmd is not a built-in one left the display in funny state
+  when killed in the middle.