Merge branch 'cr/push-force-tag-update'
[gitweb.git] / Documentation / RelNotes / 1.8.2.txt
index a6eb139150af802ed65396333f7aac488078e388..0ae40f3b25a4971b93e7396abf3501cb08b92e19 100644 (file)
@@ -41,9 +41,14 @@ UI, Workflows & Features
  * The pathspec code learned to grok "foo/**/bar" as a pattern that
    matches "bar" in 0-or-more levels of subdirectory in "foo".
 
+ * "git blame" (and "git diff") learned the "--no-follow" option.
+
  * "git cherry-pick" can be used to replay a root commit to an unborn
    branch.
 
+ * "git commit" can be told to use --cleanup=whitespace by setting the
+   configuration variable commit.cleanup to 'whitespace'.
+
  * "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
@@ -54,6 +59,16 @@ UI, Workflows & Features
    is being exported, and uses the description for the branch, when
    asked to write a cover letter for the series.
 
+ * "git format-patch" learned "-v $count" option, and prepends a
+   string "v$count-" to the names of its output files, and also
+   automatically sets the subject prefix to "PATCH v$count". This
+   allows patches from rerolled series to be stored under different
+   names and makes it easier to reuse cover letter messsages.
+
+ * "git log" and friends can be told with --use-mailmap option to
+   rewrite the names and email addresses of people using the mailmap
+   mechanism.
+
  * "git push" now requires "-f" to update a tag, even if it is a
    fast-forward, as tags are meant to be fixed points.
 
@@ -63,6 +78,13 @@ UI, Workflows & Features
    been applied, but we probably would want to revisit this later, as
    it hurts the common case of not failing at all.
 
+ * Input and preconditions to "git reset" has been loosened where
+   appropriate.  "git reset $fromtree Makefile" requires $fromtree to
+   be any tree (it used to require it to be a commit), for example.
+   "git reset" (without options or parameters) used to error out when
+   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 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).
@@ -75,6 +97,11 @@ Foreign Interface
 
  * A new remote helper to interact with bzr has been added to contrib/.
 
+ * "git p4" got various bugfixes around its branch handling.
+
+ * The remote helper to interact with Hg in contrib/ has seen a few
+   fixes.
+
 
 Performance, Internal Implementation, etc.
 
@@ -84,6 +111,11 @@ Performance, Internal Implementation, etc.
  * Matching paths with common forms of pathspecs that contain wildcard
    characters has been optimized further.
 
+ * "git reset" internals has been reworked and should be faster in
+   general. We tried to be careful not to break any behaviour but
+   there could be corner cases, especially when running the command
+   from a conflicted state, that we may have missed.
+
  * The implementation of "imap-send" has been updated to reuse xml
    quoting code from http-push codepath.
 
@@ -119,14 +151,21 @@ details).
    signal and die.  We ignore these signals now.
    (merge 1250857 pf/editor-ignore-sigint later to maint).
 
+ * A child process that was killed by a signal (e.g. SIGINT) was
+   reported in an inconsistent way depending on how the process was
+   spawned by us, with or without a shell in between.
+   (merge 709ca73 jk/unify-exit-code-by-receiving-signal later to maint).
+
  * After failing to create a temporary file using mkstemp(), failing
    pathname was not reported correctly on some platforms.
    (merge f7be59b jc/mkstemp-more-careful-error-reporting later to maint).
 
  * The attribute mechanism didn't allow limiting attributes to be
    applied to only a single directory itself with "path/" like the
-   exclude mechanism does.
-   (merge 94bc671 ja/directory-attrs later to maint).
+   exclude mechanism does.  The initial implementation of this that
+   was merged to 'maint' and 1.8.1.2 was with a severe performance
+   degradations and needs to merge a fix-up topic.
+   (merge 9db9eec nd/fix-directory-attrs-off-by-one later to maint).
 
  * "git apply" misbehaved when fixing whitespace breakages by removing
    excess trailing blank lines.
@@ -136,6 +175,18 @@ details).
    way that made NetBSD's implementation of "tar" sometimes unhappy.
    (merge 22f0dcd rs/leave-base-name-in-name-field-of-tar later to maint).
 
+ * "git archive" did not record uncompressed size in the header when
+   streaming a zip archive, which confused some implementations of unzip.
+   (merge 5ea2c84 rs/zip-with-uncompressed-size-in-the-header later to maint).
+
+ * "git clean" showed what it was going to do, but sometimes end up
+   finding that it was not allowed to do so, which resulted in a
+   confusing output (e.g. after saying that it will remove an
+   untracked directory, it found an embedded git repository there
+   which it is not allowed to remove).  It now performs the actions
+   and then reports the outcome more faithfully.
+   (merge f538a91 zk/clean-report-failure later to maint).
+
  * When "git clone --separate-git-dir=$over_there" is interrupted, it
    failed to remove the real location of the $GIT_DIR it created.
    This was most visible when interrupting a submodule update.
@@ -161,6 +212,14 @@ details).
    index, the cache-tree data structure got corrupted.
    (merge eec3e7e nd/invalidate-i-t-a-cache-tree later to maint).
 
+ * "git clone" used to allow --bare and --separate-git-dir=$there
+   options at the same time, which was nonsensical.
+   (merge 95b63f1 nd/clone-no-separate-git-dir-with-bare later to maint).
+
+ * "git rebase --preserve-merges" lost empty merges in recent versions
+   of Git.
+   (merge 9869778 ph/rebase-preserve-all-merges later to maint).
+
  * "git merge --no-edit" computed who were involved in the work done
    on the side branch, even though that information is to be discarded
    without getting seen in the editor.
@@ -171,6 +230,16 @@ details).
    status of the hook.
    (merge 3e4141d ap/merge-stop-at-prepare-commit-msg-failure later to maint).
 
+ * 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
+   script should follow suit and treat "cc:" and "Cc:" the same way.
+   (merge 6310071 nz/send-email-headers-are-case-insensitive later to maint).
+
+ * Output from "git status --ignored" showed an unexpected interaction
+   with "--untracked".
+   (merge a45fb69 ap/status-ignored-in-ignored-directory later to maint).
+
  * "gitweb", when sorting by age to show repositories with new
    activities first, used to sort repositories with absolutely
    nothing in it early, which was not very useful.
@@ -186,6 +255,14 @@ details).
    to add a newline after such a line.
    (merge e0db176 sp/shortlog-missing-lf later to maint).
 
+ * Command line completion leaked an unnecessary error message while
+   looking for possible matches with paths in <tree-ish>.
+   (merge ca87dd6 ds/completion-silence-in-tree-path-probe later to maint).
+
+ * Command line completion for "tcsh" emitted an unwanted space
+   after completing a single directory name.
+   (merge 92f1c04 mk/complete-tcsh later to maint).
+
  * Some shells do not behave correctly when IFS is unset; work it
    around by explicitly setting it to the default value.
    (merge 393050c jc/maint-fbsd-sh-ifs-workaround later to maint).