Skip to content

Commit 0202c41

Browse files
committed
Prepare for 2.9.4
Signed-off-by: Junio C Hamano <[email protected]>
1 parent 3e8e69a commit 0202c41

File tree

2 files changed

+84
-1
lines changed

2 files changed

+84
-1
lines changed

Documentation/RelNotes/2.9.4.txt

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
Git v2.9.4 Release Notes
2+
========================
3+
4+
Fixes since v2.9.3
5+
------------------
6+
7+
* There are certain house-keeping tasks that need to be performed at
8+
the very beginning of any Git program, and programs that are not
9+
built-in commands had to do them exactly the same way as "git"
10+
potty does. It was easy to make mistakes in one-off standalone
11+
programs (like test helpers). A common "main()" function that
12+
calls cmd_main() of individual program has been introduced to
13+
make it harder to make mistakes.
14+
15+
* "git merge" with renormalization did not work well with
16+
merge-recursive, due to "safer crlf" conversion kicking in when it
17+
shouldn't.
18+
19+
* The reflog output format is documented better, and a new format
20+
--date=unix to report the seconds-since-epoch (without timezone)
21+
has been added.
22+
23+
* "git push --force-with-lease" already had enough logic to allow
24+
ensuring that such a push results in creation of a ref (i.e. the
25+
receiving end did not have another push from sideways that would be
26+
discarded by our force-pushing), but didn't expose this possibility
27+
to the users. It does so now.
28+
29+
* "import-tars" fast-import script (in contrib/) used to ignore a
30+
hardlink target and replaced it with an empty file, which has been
31+
corrected to record the same blob as the other file the hardlink is
32+
shared with.
33+
34+
* "git mv dir non-existing-dir/" did not work in some environments
35+
the same way as existing mainstream platforms. The code now moves
36+
"dir" to "non-existing-dir", without relying on rename("A", "B/")
37+
that strips the trailing slash of '/'.
38+
39+
* The "t/" hierarchy is prone to get an unusual pathname; "make test"
40+
has been taught to make sure they do not contain paths that cannot
41+
be checked out on Windows (and the mechanism can be reusable to
42+
catch pathnames that are not portable to other platforms as need
43+
arises).
44+
45+
* When "git merge-recursive" works on history with many criss-cross
46+
merges in "verbose" mode, the names the command assigns to the
47+
virtual merge bases could have overwritten each other by unintended
48+
reuse of the same piece of memory.
49+
50+
* "git checkout --detach <branch>" used to give the same advice
51+
message as that is issued when "git checkout <tag>" (or anything
52+
that is not a branch name) is given, but asking with "--detach" is
53+
an explicit enough sign that the user knows what is going on. The
54+
advice message has been squelched in this case.
55+
56+
* "git difftool" by default ignores the error exit from the backend
57+
commands it spawns, because often they signal that they found
58+
differences by exiting with a non-zero status code just like "diff"
59+
does; the exit status codes 126 and above however are special in
60+
that they are used to signal that the command is not executable,
61+
does not exist, or killed by a signal. "git difftool" has been
62+
taught to notice these exit status codes.
63+
64+
* On Windows, help.browser configuration variable used to be ignored,
65+
which has been corrected.
66+
67+
* The "git -c var[=val] cmd" facility to append a configuration
68+
variable definition at the end of the search order was described in
69+
git(1) manual page, but not in git-config(1), which was more likely
70+
place for people to look for when they ask "can I make a one-shot
71+
override, and if so how?"
72+
73+
* The tempfile (hence its user lockfile) API lets the caller to open
74+
a file descriptor to a temporary file, write into it and then
75+
finalize it by first closing the filehandle and then either
76+
removing or renaming the temporary file. When the process spawns a
77+
subprocess after obtaining the file descriptor, and if the
78+
subprocess has not exited when the attempt to remove or rename is
79+
made, the last step fails on Windows, because the subprocess has
80+
the file descriptor still open. Open tempfile with O_CLOEXEC flag
81+
to avoid this (on Windows, this is mapped to O_NOINHERIT).
82+
83+
Also contains minor documentation updates and code clean-ups.

RelNotes

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

0 commit comments

Comments
 (0)