]>
Commit | Line | Data |
---|---|---|
785c58e5 | 1 | Git v1.6.6 Release Notes |
ad12b812 JH |
2 | ======================== |
3 | ||
66abce05 JH |
4 | Notes on behaviour change |
5 | ------------------------- | |
6 | ||
7 | * In this release, "git fsck" defaults to "git fsck --full" and | |
8 | checks packfiles, and because of this it will take much longer to | |
9 | complete than before. If you prefer a quicker check only on loose | |
10 | objects (the old default), you can say "git fsck --no-full". This | |
11 | has been supported by 1.5.4 and newer versions of git, so it is | |
12 | safe to write it in your script even if you use slightly older git | |
13 | on some of your machines. | |
14 | ||
15 | Preparing yourselves for compatibility issues in 1.7.0 | |
16 | ------------------------------------------------------ | |
17 | ||
18 | In git 1.7.0, which is planned to be the release after 1.6.6, there will | |
19 | be a handful of behaviour changes that will break backward compatibility. | |
20 | ||
21 | These changes were discussed long time ago and existing behaviours have | |
22 | been identified as more problematic to the userbase than keeping them for | |
23 | the sake of backward compatibility. | |
24 | ||
ab0964d9 | 25 | When necessary, a transition strategy for existing users has been designed |
66abce05 | 26 | not to force them running around setting configuration variables and |
c86485dd | 27 | updating their scripts in order to either keep the traditional behaviour |
ab0964d9 | 28 | or adjust to the new behaviour, on the day their sysadmin decides to install |
c86485dd JH |
29 | the new version of git. When we switched from "git-foo" to "git foo" in |
30 | 1.6.0, even though the change had been advertised and the transition | |
31 | guide had been provided for a very long time, the users procrastinated | |
22e5e58a | 32 | during the entire transition period, and ended up panicking on the day |
8eb65d96 JH |
33 | their sysadmins updated their git installation. We are trying to avoid |
34 | repeating that unpleasantness in the 1.7.0 release. | |
66abce05 | 35 | |
8eb65d96 | 36 | For changes decided to be in 1.7.0, commands that will be affected |
ab0964d9 JH |
37 | have been much louder to strongly discourage such procrastination, and |
38 | they continue to be in this release. If you have been using recent | |
39 | versions of git, you would have seen warnings issued when you used | |
40 | features whose behaviour will change, with a clear instruction on how | |
41 | to keep the existing behaviour if you want to. You hopefully are | |
42 | already well prepared. | |
66abce05 | 43 | |
8eb65d96 JH |
44 | Of course, we have also been giving "this and that will change in |
45 | 1.7.0; prepare yourselves" warnings in the release notes and | |
46 | announcement messages for the past few releases. Let's see how well | |
47 | users will fare this time. | |
66abce05 JH |
48 | |
49 | * "git push" into a branch that is currently checked out (i.e. pointed by | |
50 | HEAD in a repository that is not bare) will be refused by default. | |
51 | ||
52 | Similarly, "git push $there :$killed" to delete the branch $killed | |
53 | in a remote repository $there, when $killed branch is the current | |
54 | branch pointed at by its HEAD, will be refused by default. | |
55 | ||
56 | Setting the configuration variables receive.denyCurrentBranch and | |
57 | receive.denyDeleteCurrent to 'ignore' in the receiving repository | |
58 | can be used to override these safety features. Versions of git | |
8eb65d96 JH |
59 | since 1.6.2 have issued a loud warning when you tried to do these |
60 | operations without setting the configuration, so repositories of | |
61 | people who still need to be able to perform such a push should | |
62 | already have been future proofed. | |
66abce05 JH |
63 | |
64 | Please refer to: | |
65 | ||
65175d9e | 66 | https://archive.kernel.org/oldwiki/git.wiki.kernel.org/index.php/GitFaq.html#non-bare |
d23f9c8e | 67 | https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/ |
66abce05 JH |
68 | |
69 | for more details on the reason why this change is needed and the | |
70 | transition process that already took place so far. | |
71 | ||
72 | * "git send-email" will not make deep threads by default when sending a | |
c86485dd JH |
73 | patch series with more than two messages. All messages will be sent |
74 | as a reply to the first message, i.e. cover letter. Git 1.6.6 (this | |
75 | release) will issue a warning about the upcoming default change, when | |
76 | it uses the traditional "deep threading" behaviour as the built-in | |
77 | default. To squelch the warning but still use the "deep threading" | |
78 | behaviour, give --chain-reply-to option or set sendemail.chainreplyto | |
79 | to true. | |
80 | ||
81 | It has been possible to configure send-email to send "shallow thread" | |
82 | by setting sendemail.chainreplyto configuration variable to false. | |
83 | The only thing 1.7.0 release will do is to change the default when | |
84 | you haven't configured that variable. | |
66abce05 JH |
85 | |
86 | * "git status" will not be "git commit --dry-run". This change does not | |
87 | affect you if you run the command without pathspec. | |
88 | ||
89 | Nobody sane found the current behaviour of "git status Makefile" useful | |
90 | nor meaningful, and it confused users. "git commit --dry-run" has been | |
91 | provided as a way to get the current behaviour of this command since | |
92 | 1.6.5. | |
93 | ||
94 | * "git diff" traditionally treated various "ignore whitespace" options | |
95 | only as a way to filter the patch output. "git diff --exit-code -b" | |
96 | exited with non-zero status even if all changes were about changing the | |
22e5e58a | 97 | amount of whitespace and nothing else. and "git diff -b" showed the |
66abce05 JH |
98 | "diff --git" header line for such a change without patch text. |
99 | ||
100 | In 1.7.0, the "ignore whitespaces" will affect the semantics of the | |
101 | diff operation itself. A change that does not affect anything but | |
102 | whitespaces will be reported with zero exit status when run with | |
103 | --exit-code, and there will not be "diff --git" header for such a | |
104 | change. | |
f29cd393 | 105 | |
ad12b812 JH |
106 | |
107 | Updates since v1.6.5 | |
108 | -------------------- | |
109 | ||
110 | (subsystems) | |
111 | ||
80d93611 JH |
112 | * various gitk updates including use of themed widgets under Tk 8.5, |
113 | Japanese translation, a fix to a bug when running "gui blame" from | |
114 | a subdirectory, etc. | |
785c58e5 | 115 | |
80d93611 JH |
116 | * various git-gui updates including new translations, wm states fixes, |
117 | Tk bug workaround after quitting, improved heuristics to trigger gc, | |
118 | etc. | |
119 | ||
120 | * various git-svn updates. | |
12fb25dc JH |
121 | |
122 | * "git fetch" over http learned a new mode that is different from the | |
123 | traditional "dumb commit walker". | |
124 | ||
ad12b812 JH |
125 | (portability) |
126 | ||
12fb25dc JH |
127 | * imap-send can be built on mingw port. |
128 | ||
ad12b812 JH |
129 | (performance) |
130 | ||
12fb25dc JH |
131 | * "git diff -B" has smaller memory footprint. |
132 | ||
ad12b812 JH |
133 | (usability, bells and whistles) |
134 | ||
610f99ec JH |
135 | * The object replace mechanism can be bypassed with --no-replace-objects |
136 | global option given to the "git" program. | |
137 | ||
12fb25dc JH |
138 | * In configuration files, a few variables that name paths can begin with ~/ |
139 | and ~username/ and they are expanded as expected. | |
140 | ||
141 | * "git subcmd -h" now shows short usage help for many more subcommands. | |
142 | ||
785c58e5 JH |
143 | * "git bisect reset" can reset to an arbitrary commit. |
144 | ||
145 | * "git checkout frotz" when there is no local branch "frotz" but there | |
146 | is only one remote tracking branch "frotz" is taken as a request to | |
147 | start the named branch at the corresponding remote tracking branch. | |
148 | ||
c86485dd JH |
149 | * "git commit -c/-C/--amend" can be told with a new "--reset-author" option |
150 | to ignore authorship information in the commit it is taking the message | |
151 | from. | |
152 | ||
785c58e5 JH |
153 | * "git describe" can be told to add "-dirty" suffix with "--dirty" option. |
154 | ||
155 | * "git diff" learned --submodule option to show a list of one-line logs | |
156 | instead of differences between the commit object names. | |
157 | ||
c86485dd JH |
158 | * "git diff" learned to honor diff.color.func configuration to paint |
159 | function name hint printed on the hunk header "@@ -j,k +l,m @@" line | |
160 | in the specified color. | |
161 | ||
66abce05 JH |
162 | * "git fetch" learned --all and --multiple options, to run fetch from |
163 | many repositories, and --prune option to remove remote tracking | |
164 | branches that went stale. These make "git remote update" and "git | |
165 | remote prune" less necessary (there is no plan to remove "remote | |
166 | update" nor "remote prune", though). | |
167 | ||
f29cd393 JH |
168 | * "git fsck" by default checks the packfiles (i.e. "--full" is the |
169 | default); you can turn it off with "git fsck --no-full". | |
170 | ||
12fb25dc JH |
171 | * "git grep" can use -F (fixed strings) and -i (ignore case) together. |
172 | ||
610f99ec JH |
173 | * import-tars contributed fast-import frontend learned more types of |
174 | compressed tarballs. | |
175 | ||
176 | * "git instaweb" knows how to talk with mod_cgid to apache2. | |
177 | ||
ad12b812 JH |
178 | * "git log --decorate" shows the location of HEAD as well. |
179 | ||
66abce05 JH |
180 | * "git log" and "git rev-list" learned to take revs and pathspecs from |
181 | the standard input with the new "--stdin" option. | |
182 | ||
785c58e5 JH |
183 | * "--pretty=format" option to "log" family of commands learned: |
184 | ||
185 | . to wrap text with the "%w()" specifier. | |
186 | . to show reflog information with "%g[sdD]" specifier. | |
187 | ||
12fb25dc JH |
188 | * "git notes" command to annotate existing commits. |
189 | ||
785c58e5 JH |
190 | * "git merge" (and "git pull") learned --ff-only option to make it fail |
191 | if the merge does not result in a fast-forward. | |
192 | ||
193 | * "git mergetool" learned to use p4merge. | |
194 | ||
610f99ec JH |
195 | * "git rebase -i" learned "reword" that acts like "edit" but immediately |
196 | starts an editor to tweak the log message without returning control to | |
197 | the shell, which is done by "edit" to give an opportunity to tweak the | |
198 | contents. | |
199 | ||
c86485dd JH |
200 | * "git send-email" can be told with "--envelope-sender=auto" to use the |
201 | same address as "From:" address as the envelope sender address. | |
202 | ||
203 | * "git send-email" will issue a warning when it defaults to the | |
204 | --chain-reply-to behaviour without being told by the user and | |
205 | instructs to prepare for the change of the default in 1.7.0 release. | |
206 | ||
12fb25dc JH |
207 | * In "git submodule add <repository> <path>", <path> is now optional and |
208 | inferred from <repository> the same way "git clone <repository>" does. | |
209 | ||
785c58e5 JH |
210 | * "git svn" learned to read SVN 1.5+ and SVK merge tickets. |
211 | ||
af57b41d EW |
212 | * "git svn" learned to recreate empty directories tracked only by SVN. |
213 | ||
c86485dd JH |
214 | * "gitweb" can optionally render its "blame" output incrementally (this |
215 | requires JavaScript on the client side). | |
216 | ||
610f99ec JH |
217 | * Author names shown in gitweb output are links to search commits by the |
218 | author. | |
219 | ||
ad12b812 JH |
220 | Fixes since v1.6.5 |
221 | ------------------ | |
222 | ||
223 | All of the fixes in v1.6.5.X maintenance series are included in this | |
224 | release, unless otherwise noted. |