Skip to content

Commit 384364b

Browse files
committed
Start preparing for Git 2.0
Signed-off-by: Junio C Hamano <[email protected]>
1 parent e3f1185 commit 384364b

File tree

2 files changed

+147
-1
lines changed

2 files changed

+147
-1
lines changed

Documentation/RelNotes/2.0.0.txt

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Documentation/RelNotes/1.9.0.txt
1+
Documentation/RelNotes/2.0.0.txt

0 commit comments

Comments
 (0)