Code

Update draft release notes to 1.7.8
[git.git] / Documentation / RelNotes / 1.7.8.txt
index 27585834694217350f6bcbfbc34ce56e46e1c6a0..c8eb0eb5abe0be3751b63b25f822744ed9a7a5f1 100644 (file)
@@ -4,14 +4,28 @@ Git v1.7.8 Release Notes (draft)
 Updates since v1.7.7
 --------------------
 
+ * Some git-svn, git-gui and msysgit updates.
+
+ * Updates to bash completion scripts.
+
  * The build procedure has been taught to take advantage of computed
    dependency automatically when the complier supports it.
 
  * The date parser now accepts timezone designators that lack minutes
    part and also has a colon between "hh:mm".
 
+ * On some BSD systems, adding +s bit on directories is detrimental
+   (it is not necessary on BSD to begin with). The installation
+   procedure has been updated to take this into account.
+
+ * The contents of the /etc/mailname file, if exists, is used as the
+   default value of the hostname part of the committer/author e-mail.
+
  * "git am" learned how to read from patches generated by Hg.
 
+ * "git archive" talking with a remote repository can report errors
+   from the remote side in a more informative way.
+
  * "git branch" learned an explicit --list option to ask for branches
    listed, optionally with a glob matching pattern to limit its output.
 
@@ -21,6 +35,14 @@ Updates since v1.7.7
  * Variants of "git cherry-pick" and "git revert" that take multiple
    commits learned to "--continue".
 
+ * Errors at the network layer is logged by "git daemon".
+
+ * "git diff" learned "--minimal" option to spend extra cycles to come
+   up with a minimal patch output.
+
+ * "git diff" learned "--function-context" option to show the whole
+   function as context that was affected by a change.
+
  * "git fetch" learned to honor transfer.fsckobjects configuration to
    validate the objects that were received from the other end, just like
    "git receive-pack" (the receiving end of "git push") does.
@@ -33,8 +55,27 @@ Updates since v1.7.7
  * "git for-each-ref" learned "%(contents:subject)", "%(contents:body)"
    and "%(contents:signature)". The last one is useful for signed tags.
 
+ * "git grep" used to incorrectly pay attention to .gitignore files
+   scattered in the directory it was working in even when "--no-index"
+   option was used. It no longer does this. The "--exclude-standard"
+   option needs to be given to explicitly activate the ignore
+   mechanism.
+
+ * "git grep" learned "--untracked" option, where given patterns are
+    searched in untracked (but not ignored) files as well as tracked
+    files in the working tree, so that matches in new but not yet
+    added files do not get missed.
+
+ * The recursive merge backend no longer looks for meaningless
+   existing merges in submodules unless in the outermost merge.
+
+ * "git log" and friends learned "--children" option.
+
  * "git ls-remote" learned to respond to "-h"(elp) requests.
 
+ * "git merge" learned the "--edit" option to allow users to edit the
+   merge commit log message.
+
  * "git send-email" learned to respond to "-h"(elp) requests.
 
  * "git send-email" allows the value given to sendemail.aliasfile to begin
@@ -63,6 +104,8 @@ Updates since v1.7.7
  * "gitweb" leaked unescaped control characters from syntax hiliter
    outputs.
 
+ * "gitweb" now has its own manual pages.
+
 
 Also contains other documentation updates and minor code cleanups.
 
@@ -82,48 +125,60 @@ included in this release.
    a corrupt packet.
    (merge 6cdf022 sp/smart-http-failure later to maint).
 
+ * HTTP transport did not use pushurl correctly, and also did not tell
+   what host it is trying to authenticate with when asking for
+   credentials.
+   (merge deba493 jk/http-auth later to maint).
+
  * Adding many refs to the local repository in one go (e.g. "git fetch"
    that fetches many tags) and looking up a ref by name in a repository
    with too many refs were unnecessarily slow.
    (merge 17d68a54d jp/get-ref-dir-unsorted later to maint).
 
- * "git remote rename $a $b" were not careful to match the remote name
-   against $a (i.e. source side of the remote nickname).
-   (merge b52d00aed mz/remote-rename later to maint).
+ * After incorrectly written third-party tools store a tag object in
+   HEAD, git diagnosed it as a repository corruption and refused to
+   proceed in order to avoid spreading the damage. We now gracefully
+   recover from such a situation by pretending as if the commit that
+   is pointed at by the tag were in HEAD.
+   (merge baf18fc nd/maint-autofix-tag-in-head later to maint).
 
- * "git diff $tree $path" used to apply the pathspec at the output stage,
-   reading the whole tree, wasting resources.
-   (merge 2f88c1970 jc/diff-index-unpack later to maint).
+ * Report from "git commit" on untracked files was confused under
+   core.ignorecase option.
+   (merge 2548183b jk/name-hash-dirent later to maint).
 
- * "git diff --[num]stat" used to use the number of lines of context
-   different from the default, potentially giving different results from
-   "git diff | diffstat" and confusing the users.
-   (merge f01cae918 jc/maint-diffstat-numstat-context later to maint).
+ * The attribute mechanism did not use case insensitive match when
+   core.ignorecase was set.
+   (merge 6eba621 bc/attr-ignore-case later to maint).
 
- * The code to check for updated submodules during a "git fetch" of the
-   superproject had an unnecessary quadratic loop.
-   (merge 6859de45 jk/maint-fetch-submodule-check-fix later to maint).
+ * "git apply --whitespace=error" did not bother to report the exact
+   line number in the patch that introduced new blank lines at the end
+   of the file.
+   (merge 8557263 jc/apply-blank-at-eof-fix later to maint).
 
- * "git fetch" from a large bundle did not enable the progress output.
-   (merge be042aff jc/maint-bundle-too-quiet later to maint).
+ * "git apply --index" did not check corrupted patch.
+   (merge 2c93286 jm/maint-apply-detects-corrupt-patch-header later to maint).
 
- * When "git fsck --lost-and-found" found that an empty blob object in the
-   object store is unreachable, it incorrectly reported an error after
-   writing the lost blob out successfully.
-   (merge eb726f2d jc/maint-fsck-fwrite-size-check later to maint).
+ * "git bisect" did not notice when it failed to update the working tree
+   to the next commit to be tested.
+   (merge 1acf11717 js/bisect-no-checkout later to maint).
 
- * "git filter-branch" did not refresh the index before checking that the
-   working tree was clean.
-   (merge 5347a50f jk/filter-branch-require-clean-work-tree later to maint).
+ * "git checkout $tree $directory/" resurrected paths locally removed or
+   modified only in the working tree in $directory/ that did not appear
+   in $directory of the given $tree. They should have been kept intact.
+   (merge 0a1283b jc/checkout-from-tree-keep-local-changes later to maint).
 
- * "git grep $tree" when run with multiple threads had an unsafe access to
-   the object database that should have been protected with mutex.
-   (merge 8cb5775b2 nm/grep-object-sha1-lock later to maint).
+ * "git config --bool --get-regexp" failed to separate the variable name
+   and its value "true" when the variable is defined without "= true".
+   (merge 880e3cc mm/maint-config-explicit-bool-display later to maint).
 
- * The "--ancestry-path" option to "git log" and friends misbehaved in a
-   history with complex criss-cross merges and showed an uninteresting
-   side history as well.
-   (merge c05b988a6 bk/ancestry-path later to maint).
+ * "git remote rename $a $b" were not careful to match the remote name
+   against $a (i.e. source side of the remote nickname).
+   (merge b52d00aed mz/remote-rename later to maint).
+
+ * "git diff --[num]stat" used to use the number of lines of context
+   different from the default, potentially giving different results from
+   "git diff | diffstat" and confusing the users.
+   (merge f01cae918 jc/maint-diffstat-numstat-context later to maint).
 
  * "git merge" did not understand ":/<pattern>" as a way to name a commit.
 
@@ -131,17 +186,18 @@ included in this release.
    the file that may not even have any conflict.
    (merge 6d9990a jm/mergetool-pathspec later to maint).
 
- * Tests with --valgrind failed to find "mergetool" scriptlets.
-   (merge ee0d7bf92 tr/mergetool-valgrind later to maint).
+ * "git pull" and "git rebase" did not work well even when GIT_WORK_TREE is
+   set correctly with GIT_DIR if the current directory is outside the working
+   tree.
+   (merge 035b5bf jk/pull-rebase-with-work-tree later to maint).
 
- * "git patch-id" miscomputed the patch-id in a patch that has a line longer
-   than 1kB.
-   (merge b9ab810b ms/patch-id-with-overlong-line later to maint).
+ " "git push" on the receiving end used to call post-receive and post-update
+   hooks for attempted removal of non-existing refs.
+   (merge 160b81ed ph/push-to-delete-nothing later to maint).
 
- * When an "exec" insn failed after modifying the index and/or the working
-   tree during "rebase -i", we now check and warn that the changes need to
-   be cleaned up.
-   (merge 1686519a mm/rebase-i-exec-edit later to maint).
+ * "git send-email" did not honor the configured hostname when restarting
+   the HELO/EHLO exchange after switching TLS on.
+   (merge 155b940 md/smtp-tls-hello-again later to maint).
 
  * "gitweb" used to produce a non-working link while showing the contents
    of a blob, when JavaScript actions are enabled.
@@ -149,7 +205,7 @@ included in this release.
 
 ---
 exec >/var/tmp/1
-O=v1.7.7-236-g5366afa
+O=v1.7.7-418-g40d6987
 echo O=$(git describe --always master)
 git log --first-parent --oneline --reverse ^$O master
 echo