RelNotes 1.8.2: push-simple will not be in effect in this release
[git.git] / Documentation / RelNotes / 1.8.2.txt
index a1ebb96ea8b8dff07b388c817b754bc367093d11..a287f24800ea6fe2bf9ca3f5aa1591fec22cfeeb 100644 (file)
@@ -4,8 +4,8 @@ Git v1.8.2 Release Notes
 Backward compatibility notes
 ----------------------------
 
-In the upcoming major release (tentatively called 1.8.2), we will
-change the behavior of the "git push" command.
+In the next major release Git 2.0 (not *this* one), we will change the
+behavior of the "git push" command.
 
 When "git push [$there]" does not say what to push, we have used the
 traditional "matching" semantics so far (all your branches were sent
@@ -22,6 +22,18 @@ that the old tag v1.2.3 points at.  This was found to be error prone
 and starting with this release, any attempt to update an existing
 ref under refs/tags/ hierarchy will fail, without "--force".
 
+When "git add -u" and "git add -A", that does not specify what paths
+to add on the command line, is run from inside a subdirectory, the
+scope of the operation has always been limited to the subirectory.
+Many users found this counter-intuitive, given that "git commit -a"
+and other commands operate on the entire tree regardless of where you
+are. In this release, these commands give warning in such a case and
+encourage the user to say "git add -u/-A ." instead when restricting
+the scope to the current directory. At Git 2.0 (not *this* one), we
+plan to change these commands without pathspec to operate on the
+entire tree, and training your fingers to type "." will protect you
+against the future change.
+
 
 Updates since v1.8.1
 --------------------
@@ -33,6 +45,18 @@ UI, Workflows & Features
  * Output from the tests is coloured using "green is okay, yellow is
    questionable, red is bad and blue is informative" scheme.
 
+ * Mention of "GIT/Git/git" in the documentation have been updated to
+   be more uniform and consistent.  The name of the system and the
+   concept it embodies is "Git"; the command the users type is "git".
+   All-caps "GIT" was merely a way to imitate "Git" typeset in small
+   caps in our ASCII text only documentation and to be avoided.
+
+ * The completion script (in contrib/completion) used to let the
+   default completer to suggest pathnames, which gave too many
+   irrelevant choices (e.g. "git add" would not want to add an
+   unmodified path).  It learnt to use a more git-aware logic to
+   enumerate only relevant ones.
+
  * In bare repositories, "git shortlog" and other commands now read
    mailmap files from the tip of the history, to help running these
    tools in server settings.
@@ -70,6 +94,10 @@ UI, Workflows & Features
 
  * "git blame" (and "git diff") learned the "--no-follow" option.
 
+ * "git branch" now rejects some nonsense combinations of command line
+   arguments (e.g. giving more than one branch name to rename) with
+   more case-specific error messages.
+
  * "git check-ignore" command to help debugging .gitignore files has
    been added.
 
@@ -79,6 +107,10 @@ UI, Workflows & Features
  * "git commit" can be told to use --cleanup=whitespace by setting the
    configuration variable commit.cleanup to 'whitespace'.
 
+ * "git diff" and other Porcelain commands can be told to use a
+   non-standard algorithm by setting diff.algorithm configuration
+   variable.
+
  * "git fetch --mirror" and fetch that uses other forms of refspec
    with wildcard used to attempt to update a symbolic ref that match
    the wildcard on the receiving end, which made little sense (the
@@ -99,6 +131,19 @@ UI, Workflows & Features
    rewrite the names and email addresses of people using the mailmap
    mechanism.
 
+ * "git log --cc --graph" now shows the combined diff output with the
+   ancestry graph.
+
+ * "git log --grep=<pattern>" honors i18n.logoutputencoding to look
+   for the pattern after fixing the log message to the specified
+   encoding.
+
+ * "git mergetool" and "git difftool" learned to list the available
+   tool backends in a more consistent manner.
+
+ * "git mergetool" is aware of TortoiseGitMerge now and uses it over
+   TortoiseMerge when available.
+
  * "git push" now requires "-f" to update a tag, even if it is a
    fast-forward, as tags are meant to be fixed points.
 
@@ -122,10 +167,18 @@ UI, Workflows & Features
    you do not have any commits in your history, but it now gives you
    an empty index (to match non-existent commit you are not even on).
 
+ * "git status" says what branch is being bisected or rebased when
+   able, not just "bisecting" or "rebasing".
+
  * "git submodule" started learning a new mode to integrate with the
    tip of the remote branch (as opposed to integrating with the commit
    recorded in the superproject's gitlink).
 
+ * "git upload-pack" which implements the service "ls-remote" and
+   "fetch" talk to can be told to hide ref hierarchies the server
+   side internally uses (and that clients have no business learning
+   about) with transfer.hiderefs configuration.
+
 
 Foreign Interface
 
@@ -189,6 +242,13 @@ Performance, Internal Implementation, etc.
    these implementations can reliably update.  This can be used to
    avoid excessive revalidation of contents.
 
+ * Some platforms ship with old version of expat where xmlparse.h
+   needs to be included instead of expat.h; the build procedure has
+   been taught about this.
+
+ * "make clean" on platforms that cannot compute header dependencies
+   on the fly did not work with implementations of "rm" that do not
+   like an empty argument list.
 
 Also contains minor documentation updates and code clean-ups.
 
@@ -232,12 +292,22 @@ details).
    was merged to 'maint' and 1.8.1.2 was with a severe performance
    degradations and needs to merge a fix-up topic.
 
+ * The smart HTTP clients forgot to verify the content-type that comes
+   back from the server side to make sure that the request is being
+   handled properly.
+   (merge 3443db5 sp/smart-http-content-type-check later to maint).
+
  * "git am" did not parse datestamp correctly from Hg generated patch,
    when it is run in a locale outside C (or en).
 
  * "git apply" misbehaved when fixing whitespace breakages by removing
    excess trailing blank lines.
 
+ * "git apply --summary" has been taught to make sure the similarity
+   value shown in its output is sensible, even when the input had a
+   bogus value.
+   (merge afcb6ac jk/apply-similaritly-parsing later to maint).
+
  * A tar archive created by "git archive" recorded a directory in a
    way that made NetBSD's implementation of "tar" sometimes unhappy.
 
@@ -263,6 +333,14 @@ details).
    failed to remove the real location of the $GIT_DIR it created.
    This was most visible when interrupting a submodule update.
 
+ * "git cvsimport" mishandled timestamps at DST boundary.
+   (merge 48c9162 bw/get-tz-offset-perl later to maint).
+
+ * We used to have an arbitrary 32 limit for combined diff input,
+   resulting in incorrect number of leading colons shown when showing
+   the "--raw --cc" output.
+   (merge edbc00e jc/combine-diff-many-parents later to maint).
+
  * "git fetch --depth" was broken in at least three ways.  The
    resulting history was deeper than specified by one commit, it was
    unclear how to wipe the shallowness of the repository with the
@@ -273,6 +351,9 @@ details).
    try to use the textconv data incorrectly after it gets freed.
    (merge be5c9fb jk/read-commit-buffer-data-after-free later to maint).
 
+ * We forgot to close the file descriptor reading from "gpg" output,
+   killing "git log --show-signature" on a long history.
+
  * The way "git svn" asked for password using SSH_ASKPASS and
    GIT_ASKPASS was not in line with the rest of the system.
 
@@ -285,6 +366,9 @@ details).
  * "git pack-refs" that ran in parallel to another process that
    created new refs had a nasty race.
 
+ * Rebasing the history of superproject with change in the submodule
+   has been broken since v1.7.12.
+
  * After "git add -N" and then writing a tree object out of the
    index, the cache-tree data structure got corrupted.
 
@@ -303,6 +387,9 @@ details).
    commit" does some time ago, but forgot to pay attention to the exit
    status of the hook.
 
+ * A failure to push due to non-ff while on an unborn branch
+   dereferenced a NULL pointer when showing an error message.
+
  * When users spell "cc:" in lowercase in the fake "header" in the
    trailer part, "git send-email" failed to pick up the addresses from
    there. As e-mail headers field names are case insensitive, this
@@ -319,6 +406,11 @@ details).
    "highlight" filter lost known-to-be-safe control characters by
    mistake.
 
+ * "gitweb" pages served over HTTPS, when configured to show picon or
+   gravatar, referred to these external resources to be fetched via
+   HTTP, resulting in mixed contents warning in browsers.
+   (merge 5748558 ab/gitweb-use-same-scheme later to maint).
+
  * When a line to be wrapped has a solid run of non space characters
    whose length exactly is the wrap width, "git shortlog -w" failed
    to add a newline after such a line.
@@ -332,6 +424,11 @@ details).
  * Command line completion code was inadvertently made incompatible with
    older versions of bash by using a newer array notation.
 
+ * "git push" was taught to refuse updating the branch that is
+   currently checked out long time ago, but the user manual was left
+   stale.
+   (merge d9be248 wk/man-deny-current-branch-is-default-these-days later to maint).
+
  * Some shells do not behave correctly when IFS is unset; work it
    around by explicitly setting it to the default value.
 
@@ -342,6 +439,15 @@ details).
  * When autoconf is used, any build on a different commit always ran
    "config.status --recheck" even when unnecessary.
 
+ * A fix was added to the build procedure to work around buggy
+   versions of ccache broke the auto-generation of dependencies, which
+   unfortunately is still relevant because some people use ancient
+   distros.
+
+ * The autoconf subsystem passed --mandir down to generated
+   config.mak.autogen but forgot to do the same for --htmldir.
+   (merge fc1c541 ct/autoconf-htmldir later to maint).
+
  * We have been carrying a translated and long-unmaintained copy of an
    old version of the tutorial; removed.
 
@@ -361,4 +467,3 @@ details).
 
  * Scripts to test bash completion was inherently flaky as it was
    affected by whatever random things the user may have on $PATH.
-   (merge 5047822 jc/do-not-let-random-file-interfere-with-completion-tests later to maint).