Merge branch 'ew/daemon-socket-keepalive'
[gitweb.git] / Documentation / RelNotes / 2.10.0.txt
index 4252eb73484aa38ffde15f1a538a44dec4909692..f9dfc27b333bc2d94cadf4652f1466ad27a4ccba 100644 (file)
@@ -81,6 +81,9 @@ UI, Workflows & Features
    format.
    (merge 5caeeb8 jk/big-and-future-archive-tar later to maint).
 
+ * A new configuration variable core.sshCommand has been added to
+   specify what value for GIT_SSH_COMMAND to use per repository.
+
 
 Performance, Internal Implementation, Development Support etc.
 
@@ -141,6 +144,67 @@ Performance, Internal Implementation, Development Support etc.
  * Allow t/perf framework to use the features from the most recent
    version of Git even when testing an older installed version.
 
+ * The commands in the "log/diff" family have had an FILE* pointer in the
+   data structure they pass around for a long time, but some codepaths
+   used to always write to the standard output.  As a preparatory step
+   to make "git format-patch" available to the internal callers, these
+   codepaths have been updated to consistently write into that FILE*
+   instead.
+
+ * Conversion from unsigned char sha1[20] to struct object_id
+   continues.
+
+ * Improve the look of the way "git fetch" reports what happened to
+   each ref that was fetched.
+   (merge bc437d1 nd/fetch-ref-summary later to maint).
+
+ * The .c/.h sources are marked as such in our .gitattributes file so
+   that "git diff -W" and friends would work better.
+   (merge e82675a rs/help-c-source-with-gitattributes later to maint).
+
+ * Code clean-up to avoid using a variable string that compilers may
+   feel untrustable as printf-style format given to write_file()
+   helper function.
+
+ * "git p4" used a location outside $GIT_DIR/refs/ to place its
+   temporary branches, which has been moved to refs/git-p4-tmp/.
+
+ * Existing autoconf generated test for the need to link with pthread
+   library did not check all the functions from pthread libraries;
+   recent FreeBSD has some functions in libc but not others, and we
+   mistakenly thought linking with libc is enough when it is not.
+   (merge a9b02de ew/autoconf-pthread later to maint).
+
+ * When "git fsck" reports a broken link (e.g. a tree object contains
+   a blob that does not exist), both containing object and the object
+   that is referred to were reported with their 40-hex object names.
+   The command learned the "--name-objects" option to show the path to
+   the containing object from existing refs (e.g. "HEAD~24^2:file.txt").
+
+ * Allow http daemon tests in Travis CI tests.
+   (merge d9d1426 ls/travis-enable-httpd-tests later to maint).
+
+ * Makefile assumed that -lrt is always available on platforms that
+   want to use clock_gettime() and CLOCK_MONOTONIC, which is not a
+   case for recent Mac OS X.  The necessary symbols are often found in
+   libc on many modern systems and having -lrt on the command line, as
+   long as the library exists, had no effect, but when the platform
+   removes librt.a that is a different matter--having -lrt will break
+   the linkage.
+
+   This change could be seen as a regression for those who do need to
+   specify -lrt, as they now specifically ask for NEEDS_LIBRT when
+   building. Hopefully they are in the minority these days.
+
+ * Further preparatory work on the refs API before the pluggable
+   backend series can land.
+
+ * Error handling in the codepaths that updates refs has been
+   improved.
+
+ * The API to iterate over all the refs (i.e. for_each_ref(), etc.)
+   has been revamped.
+
 
 Also contains various documentation updates and code clean-ups.
 
@@ -280,6 +344,76 @@ notes for details).
    tree files.  But we did so by mistake, which has been corrected.
    (merge b8e47d1 nd/ita-cleanup later to maint).
 
+ * "git blame -M" missed a single line that was moved within the file.
+   (merge 17a07e2 dk/blame-move-no-reason-for-1-line-context later to maint).
+
+ * Fix recently introduced codepaths that are involved in parallel
+   submodule operations, which gave up on reading too early, and
+   could have wasted CPU while attempting to write under a corner
+   case condition.
+   (merge d751dd1 sb/submodule-parallel-fetch later to maint).
+
+ * "git grep -i" has been taught to fold case in non-ascii locales
+   correctly.
+   (merge 695f95b nd/icase later to maint).
+
+ * A test that unconditionally used "mktemp" learned that the command
+   is not necessarily available everywhere.
+   (merge c578a09 ak/lazy-prereq-mktemp later to maint).
+
+ * There are certain house-keeping tasks that need to be performed at
+   the very beginning of any Git program, and programs that are not
+   built-in commands had to do them exactly the same way as "git"
+   potty does.  It was easy to make mistakes in one-off standalone
+   programs (like test helpers).  A common "main()" function that
+   calls cmd_main() of individual program has been introduced to
+   make it harder to make mistakes.
+   (merge de61ceb jk/common-main later to maint).
+
+ * The test framework learned a new helper test_match_signal to
+   check an exit code from getting killed by an expected signal.
+   (merge 03c39b3 jk/test-match-signal later to maint).
+
+ * General code clean-up around a helper function to write a
+   single-liner to a file.
+   (merge 7eb6e10 jk/write-file later to maint).
+
+ * One part of "git am" had an oddball helper function that called
+   stuff from outside "his" as opposed to calling what we have "ours",
+   which was not gender-neutral and also inconsistent with the rest of
+   the system where outside stuff is usuall called "theirs" in
+   contrast to "ours".
+   (merge 715a51b js/am-call-theirs-theirs-in-fallback-3way later to maint).
+
+ * "git blame file" allowed the lineage of lines in the uncommitted,
+   unadded contents of "file" to be inspected, but it refused when
+   "file" did not appear in the current commit.  When "file" was
+   created by renaming an existing file (but the change has not been
+   committed), this restriction was unnecessarily tight.
+   (merge c66b470 mh/blame-worktree later to maint).
+
+ * "git add -N dir/file && git write-tree" produced an incorrect tree
+   when there are other paths in the same directory that sorts after
+   "file".
+   (merge 6d6a782 nd/cache-tree-ita later to maint).
+
+ * "git fetch http://user:pass@host/repo..." scrubbed the userinfo
+   part, but "git push" didn't.
+   (merge 68f3c07 jk/push-scrub-url later to maint).
+
+ * "git merge" with renormalization did not work well with
+   merge-recursive, due to "safer crlf" conversion kicking in when it
+   shouldn't.
+   (merge 1335d76 jc/renormalize-merge-kill-safer-crlf later to maint).
+
+ * The use of strbuf in "git rm" to build filename to remove was a bit
+   suboptimal, which has been fixed.
+   (merge deb8e15 rs/rm-strbuf-optim later to maint).
+
+ * An age old bug that caused "git diff --ignore-space-at-eol"
+   misbehave has been fixed.
+   (merge 044fb19 js/ignore-space-at-eol later to maint).
+
  * Other minor clean-ups and documentation updates
    (merge e51b0df pb/commit-editmsg-path later to maint).
    (merge b333d0d jk/send-pack-stdio later to maint).
@@ -287,3 +421,8 @@ notes for details).
    (merge c2691e2 ah/unpack-trees-advice-messages later to maint).
    (merge 82f6178 nd/doc-new-command later to maint).
    (merge fa90ab4 js/t3404-grammo-fix later to maint).
+   (merge c61b2af lf/recv-sideband-cleanup later to maint).
+   (merge 31471ba rs/use-strbuf-addbuf later to maint).
+   (merge 503e224 nd/test-helpers later to maint).
+   (merge 16726cf jc/doc-diff-filter-exclude later to maint).
+   (merge fd2e7da rs/worktree-use-strbuf-absolute-path later to maint).