]>
Commit | Line | Data |
---|---|---|
0202c411 JH |
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 | ||
d61226c1 JH |
83 | * "git-shell" rejects a request to serve a repository whose name |
84 | begins with a dash, which makes it no longer possible to get it | |
85 | confused into spawning service programs like "git-upload-pack" with | |
86 | an option like "--help", which in turn would spawn an interactive | |
87 | pager, instead of working with the repository user asked to access | |
88 | (i.e. the one whose name is "--help"). | |
89 | ||
0202c411 | 90 | Also contains minor documentation updates and code clean-ups. |