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