The first batch for 2.18 cycle

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed Apr 10, 2018 at 08:31 UTC 69d71ec4433d21f464d83b529432856da2387bba
3 files changed +69 -2
Documentation/RelNotes/2.18.0.txt new
+67
@@ -0,0 +1,67 @@
1 +Git 2.18 Release Notes
2 +======================
3 +
4 +Updates since v2.17
5 +-------------------
6 +
7 +UI, Workflows & Features
8 +
9 + * Rename detection logic in "diff" family that is used in "merge" has
10 + learned to guess when all of x/a, x/b and x/c have moved to z/a,
11 + z/b and z/c, it is likely that x/d added in the meantime would also
12 + want to move to z/d by taking the hint that the entire directory
13 + 'x' moved to 'z'. A bug causing dirty files involved in a rename
14 + to be overwritten during merge has also been fixed as part of this
15 + work.
16 +
17 + * "git filter-branch" learned to use a different exit code to allow
18 + the callers to tell the case where there was no new commits to
19 + rewrite from other error cases.
20 +
21 +
22 +
23 +Performance, Internal Implementation, Development Support etc.
24 +
25 + * A "git fetch" from a repository with insane number of refs into a
26 + repository that is already up-to-date still wasted too many cycles
27 + making many lstat(2) calls to see if these objects at the tips
28 + exist as loose objects locally. These lstat(2) calls are optimized
29 + away by enumerating all loose objects beforehand.
30 + It is unknown if the new strategy negatively affects existing use
31 + cases, fetching into a repository with many loose objects from a
32 + repository with small number of refs.
33 +
34 + * Git can be built to use either v1 or v2 of the PCRE library, and so
35 + far, the build-time configuration USE_LIBPCRE=YesPlease instructed
36 + the build procedure to use v1, but now it means v2. USE_LIBPCRE1
37 + and USE_LIBPCRE2 can be used to explicitly choose which version to
38 + use, as before.
39 +
40 + * The build procedure learned to optionally use symbolic links
41 + (instead of hardlinks and copies) to install "git-foo" for built-in
42 + commands, whose binaries are all identical.
43 +
44 + * Conversion from uchar[20] to struct object_id continues.
45 +
46 + * The way "git worktree prune" worked internally has been simplified,
47 + by assuming how "git worktree move" moves an existing worktree to a
48 + different place.
49 +
50 +Also contains various documentation updates and code clean-ups.
51 +
52 +
53 +Fixes since v2.17
54 +-----------------
55 +
56 + * "git shortlog cruft" aborted with a BUG message when run outside a
57 + Git repository. The command has been taught to complain about
58 + extra and unwanted arguments on its command line instead in such a
59 + case.
60 + (merge 4aa0161e83 ma/shortlog-revparse later to maint).
61 +
62 + * "git stash push -u -- <pathspec>" gave an unnecessary and confusing
63 + error message when there was no tracked files that match the
64 + <pathspec>, which has been fixed.
65 + (merge 353278687e tg/stash-untracked-with-pathspec-fix later to maint).
66 +
67 + * Other minor doc, test and build updates and code cleanups.
GIT-VERSION-GEN
+1 -1
@@ -1,7 +1,7 @@
1 #!/bin/sh
2
3 GVF=GIT-VERSION-FILE
4 -DEF_VER=v2.17.0
4 +DEF_VER=v2.17.GIT
5
6 LF='
7 '
RelNotes
+1 -1
@@ -1 +1 @@
1 -Documentation/RelNotes/2.17.0.txt
\ No newline at end of file
1 +Documentation/RelNotes/2.18.0.txt
\ No newline at end of file