Start preparing for Git 2.0

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

Junio C Hamano committed Mar 7, 2014 at 15:12 UTC 384364b5f1aa0c3b7610a1b3c9eca2c210e61b41
2 files changed +147 -1
Documentation/RelNotes/2.0.0.txt new
+146
@@ -0,0 +1,146 @@
1 +Git v2.0 Release Notes
2 +======================
3 +
4 +Backward compatibility notes
5 +----------------------------
6 +
7 +When "git push [$there]" does not say what to push, we have used the
8 +traditional "matching" semantics so far (all your branches were sent
9 +to the remote as long as there already are branches of the same name
10 +over there). In Git 2.0, the default is now the "simple" semantics,
11 +which pushes:
12 +
13 + - only the current branch to the branch with the same name, and only
14 + when the current branch is set to integrate with that remote
15 + branch, if you are pushing to the same remote as you fetch from; or
16 +
17 + - only the current branch to the branch with the same name, if you
18 + are pushing to a remote that is not where you usually fetch from.
19 +
20 +You can use the configuration variable "push.default" to change
21 +this. If you are an old-timer who wants to keep using the
22 +"matching" semantics, you can set the variable to "matching", for
23 +example. Read the documentation for other possibilities.
24 +
25 +When "git add -u" and "git add -A" are run inside a subdirectory
26 +without specifying which paths to add on the command line, they
27 +operate on the entire tree for consistency with "git commit -a" and
28 +other commands (these commands used to operate only on the current
29 +subdirectory). Say "git add -u ." or "git add -A ." if you want to
30 +limit the operation to the current directory.
31 +
32 +"git add <path>" is the same as "git add -A <path>" now, so that
33 +"git add dir/" will notice paths you removed from the directory and
34 +record the removal. In older versions of Git, "git add <path>" used
35 +to ignore removals. You can say "git add --ignore-removal <path>" to
36 +add only added or modified paths in <path>, if you really want to.
37 +
38 +The "-q" option to "git diff-files", which does *NOT* mean "quiet",
39 +has been removed (it told Git to ignore deletion, which you can do
40 +with "git diff-files --diff-filter=d").
41 +
42 +
43 +Updates since v1.9 series
44 +-------------------------
45 +
46 +Foreign interfaces, subsystems and ports.
47 +
48 +
49 +UI, Workflows & Features
50 +
51 + * The "simple" mode is the default for "git push".
52 +
53 + * "git add -u" and "git add -A", when run without any pathspec, is a
54 + tree-wide operation even when run inside a subdirectory of a
55 + working tree.
56 +
57 + * "git add <path> is the same as "git add -A <path>" now.
58 +
59 + * "core.statinfo" configuration variable, which is a
60 + never-advertised synonym to "core.checkstat", has been removed.
61 +
62 + * The "-q" option to "git diff-files", which does *NOT* mean
63 + "quiet", has been removed (it told Git to ignore deletion, which
64 + you can do with "git diff-files --diff-filter=d").
65 +
66 + * Many commands that creates commits, e.g. "pull", "rebase",
67 + learned to take the --gpg-sign option on the command line.
68 +
69 + * "git commit" can be told to always GPG sign the resulting commit
70 + by setting "commit.gpgsign" configuration variable to true (the
71 + command line option --no-gpg-sign should override it).
72 +
73 + * "git pull" can be told to only accept fast-forward by setting the
74 + new "pull.ff" configuration.
75 +
76 + * "git reset" learned "-N" option, which does not reset the index
77 + fully for paths the index knows about but the tree-ish the command
78 + resets to does not (these paths are kept as intend-to-add entries).
79 +
80 + * Newly cloned submodule repositories by "git submodule update",
81 + when the "checkout" update mode is used, will be on a local
82 + branch instead of on a detached HEAD, just like submodules added
83 + with "git submodule add".
84 +
85 +
86 +Performance, Internal Implementation, etc.
87 +
88 + * The bitmap-index feature from JGit has been ported, which should
89 + significantly improve performance when serving objects form a
90 + repository that uses it.
91 +
92 + * The way "git log --cc" shows a combined diff against multiple
93 + parents have been optimized.
94 +
95 + * The prefixcmp() and suffixcmp() functions are gone. Use
96 + starts_with() and ends_with(), and also consider if skip_prefix()
97 + suits your needs better when using the former.
98 +
99 +
100 +Also contains various documentation updates and code clean-ups.
101 +
102 +
103 +Fixes since v1.9 series
104 +-----------------------
105 +
106 +Unless otherwise noted, all the fixes since v1.9 in the maintenance
107 +track are contained in this release (see the maintenance releases'
108 +notes for details).
109 +
110 + * "merge-recursive" was broken in 1.7.7 era and stopped working in
111 + an empty (temporary) working tree, when there are renames
112 + involved. This has been corrected.
113 + (merge 6e2068a bk/refresh-missing-ok-in-merge-recursive later to maint.)
114 +
115 + * "git rev-parse" was loose in rejecting command line arguments
116 + that do not make sense, e.g. "--default" without the required
117 + value for that option.
118 + (merge a43219f ds/rev-parse-required-args later to maint.)
119 +
120 + * include.path variable (or any variable that expects a path that
121 + can use ~username expansion) in the configuration file is not a
122 + boolean, but the code failed to check it.
123 + (merge 67beb60 jk/config-path-include-fix later to maint.)
124 +
125 + * Commands that take pathspecs on the command line misbehaved when
126 + the pathspec is given as an absolute pathname (which is a
127 + practice not particularly encouraged) that points at a symbolic
128 + link in the working tree.
129 + (merge later 655ee9e mw/symlinks to maint.)
130 +
131 + * "git diff --quiet -- pathspec1 pathspec2" sometimes did not return
132 + correct status value.
133 + (merge f34b205 nd/diff-quiet-stat-dirty later to maint.)
134 +
135 + * Attempting to deepen a shallow repository by fetching over smart
136 + HTTP transport failed in the protocol exchange, when no-done
137 + extension was used. The fetching side waited for the list of
138 + shallow boundary commits after the sending end stopped talking to
139 + it.
140 + (merge 0232852 nd/http-fetch-shallow-fix later to maint.)
141 +
142 + * Allow "git cmd path/", when the 'path' is where a submodule is
143 + bound to the top-level working tree, to match 'path', despite the
144 + extra and unnecessary trailing slash (such a slash is often
145 + given by command line completion).
146 + (merge 2e70c01 nd/submodule-pathspec-ending-with-slash later to maint.)
RelNotes
+1 -1
@@ -1 +1 @@
1 -Documentation/RelNotes/1.9.0.txt
\ No newline at end of file
1 +Documentation/RelNotes/2.0.0.txt
\ No newline at end of file