Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 1 | Git v1.8.2 Release Notes |
| 2 | ======================== |
| 3 | |
| 4 | Backward compatibility notes |
| 5 | ---------------------------- |
| 6 | |
Junio C Hamano | ce209d0 | 2013-02-18 15:59:33 -0800 | [diff] [blame] | 7 | In the next major release Git 2.0 (not *this* one), we will change the |
| 8 | behavior of the "git push" command. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 9 | |
| 10 | When "git push [$there]" does not say what to push, we have used the |
| 11 | traditional "matching" semantics so far (all your branches were sent |
| 12 | to the remote as long as there already are branches of the same name |
| 13 | over there). We will use the "simple" semantics that pushes the |
| 14 | current branch to the branch with the same name, only when the current |
| 15 | branch is set to integrate with that remote branch. There is a user |
| 16 | preference configuration variable "push.default" to change this. |
| 17 | |
Junio C Hamano | 3587b51 | 2013-01-25 12:52:55 -0800 | [diff] [blame] | 18 | "git push $there tag v1.2.3" used to allow replacing a tag v1.2.3 |
| 19 | that already exists in the repository $there, if the rewritten tag |
| 20 | you are pushing points at a commit that is a decendant of a commit |
| 21 | that the old tag v1.2.3 points at. This was found to be error prone |
| 22 | and starting with this release, any attempt to update an existing |
| 23 | ref under refs/tags/ hierarchy will fail, without "--force". |
| 24 | |
Junio C Hamano | ce209d0 | 2013-02-18 15:59:33 -0800 | [diff] [blame] | 25 | When "git add -u" and "git add -A", that does not specify what paths |
| 26 | to add on the command line, is run from inside a subdirectory, the |
| 27 | scope of the operation has always been limited to the subirectory. |
| 28 | Many users found this counter-intuitive, given that "git commit -a" |
| 29 | and other commands operate on the entire tree regardless of where you |
| 30 | are. In this release, these commands give warning in such a case and |
| 31 | encourage the user to say "git add -u/-A ." instead when restricting |
| 32 | the scope to the current directory. At Git 2.0 (not *this* one), we |
| 33 | plan to change these commands without pathspec to operate on the |
| 34 | entire tree, and training your fingers to type "." will protect you |
| 35 | against the future change. |
| 36 | |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 37 | |
| 38 | Updates since v1.8.1 |
| 39 | -------------------- |
| 40 | |
| 41 | UI, Workflows & Features |
| 42 | |
Junio C Hamano | 3e293fb | 2013-01-03 10:33:22 -0800 | [diff] [blame] | 43 | * Initial ports to QNX and z/OS UNIX System Services have started. |
| 44 | |
| 45 | * Output from the tests is coloured using "green is okay, yellow is |
| 46 | questionable, red is bad and blue is informative" scheme. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 47 | |
Junio C Hamano | 2f19ada | 2013-02-05 16:20:16 -0800 | [diff] [blame] | 48 | * Mention of "GIT/Git/git" in the documentation have been updated to |
| 49 | be more uniform and consistent. The name of the system and the |
| 50 | concept it embodies is "Git"; the command the users type is "git". |
| 51 | All-caps "GIT" was merely a way to imitate "Git" typeset in small |
| 52 | caps in our ASCII text only documentation and to be avoided. |
| 53 | |
Junio C Hamano | aa39828 | 2013-02-10 20:47:28 -0800 | [diff] [blame] | 54 | * The completion script (in contrib/completion) used to let the |
| 55 | default completer to suggest pathnames, which gave too many |
| 56 | irrelevant choices (e.g. "git add" would not want to add an |
| 57 | unmodified path). It learnt to use a more git-aware logic to |
| 58 | enumerate only relevant ones. |
| 59 | |
Junio C Hamano | 32238ae | 2013-01-06 00:17:24 -0800 | [diff] [blame] | 60 | * In bare repositories, "git shortlog" and other commands now read |
| 61 | mailmap files from the tip of the history, to help running these |
| 62 | tools in server settings. |
| 63 | |
| 64 | * Color specifiers, e.g. "%C(blue)Hello%C(reset)", used in the |
| 65 | "--format=" option of "git log" and friends can be disabled when |
| 66 | the output is not sent to a terminal by prefixing them with |
| 67 | "auto,", e.g. "%C(auto,blue)Hello%C(auto,reset)". |
| 68 | |
| 69 | * Scripts can ask Git that wildcard patterns in pathspecs they give do |
| 70 | not have any significance, i.e. take them as literal strings. |
| 71 | |
Junio C Hamano | 3587b51 | 2013-01-25 12:52:55 -0800 | [diff] [blame] | 72 | * The patterns in .gitignore and .gitattributes files can have **/, |
| 73 | as a pattern that matches 0 or more levels of subdirectory. |
| 74 | E.g. "foo/**/bar" matches "bar" in "foo" itself or in a |
| 75 | subdirectory of "foo". |
Junio C Hamano | 99621af | 2013-01-10 14:36:23 -0800 | [diff] [blame] | 76 | |
Junio C Hamano | bcd45b4 | 2013-02-01 12:52:08 -0800 | [diff] [blame] | 77 | * When giving arguments without "--" disambiguation, object names |
| 78 | that come earlier on the command line must not be interpretable as |
| 79 | pathspecs and pathspecs that come later on the command line must |
| 80 | not be interpretable as object names. This disambiguation rule has |
| 81 | been tweaked so that ":/" (no other string before or after) is |
| 82 | always interpreted as a pathspec; "git cmd -- :/" is no longer |
| 83 | needed, you can just say "git cmd :/". |
| 84 | |
Junio C Hamano | f51a757 | 2013-02-04 10:44:26 -0800 | [diff] [blame] | 85 | * Various "hint" lines Git gives when it asks the user to edit |
| 86 | messages in the editor are commented out with '#' by default. The |
| 87 | core.commentchar configuration variable can be used to customize |
| 88 | this '#' to a different character. |
| 89 | |
| 90 | * "git add -u" and "git add -A" without pathspec issues warning to |
| 91 | make users aware that they are only operating on paths inside the |
| 92 | subdirectory they are in. Use ":/" (everything from the top) or |
| 93 | "." (everything from the $cwd) to disambiguate. |
| 94 | |
Junio C Hamano | 77d07f5 | 2013-01-14 08:21:35 -0800 | [diff] [blame] | 95 | * "git blame" (and "git diff") learned the "--no-follow" option. |
| 96 | |
Junio C Hamano | a923c31 | 2013-02-07 15:25:06 -0800 | [diff] [blame] | 97 | * "git branch" now rejects some nonsense combinations of command line |
| 98 | arguments (e.g. giving more than one branch name to rename) with |
| 99 | more case-specific error messages. |
| 100 | |
Junio C Hamano | 3587b51 | 2013-01-25 12:52:55 -0800 | [diff] [blame] | 101 | * "git check-ignore" command to help debugging .gitignore files has |
| 102 | been added. |
| 103 | |
Junio C Hamano | 99621af | 2013-01-10 14:36:23 -0800 | [diff] [blame] | 104 | * "git cherry-pick" can be used to replay a root commit to an unborn |
| 105 | branch. |
| 106 | |
Junio C Hamano | fe73786 | 2013-01-20 17:28:13 -0800 | [diff] [blame] | 107 | * "git commit" can be told to use --cleanup=whitespace by setting the |
| 108 | configuration variable commit.cleanup to 'whitespace'. |
| 109 | |
Junio C Hamano | 004825d | 2013-02-17 15:35:33 -0800 | [diff] [blame] | 110 | * "git diff" and other Porcelain commands can be told to use a |
| 111 | non-standard algorithm by setting diff.algorithm configuration |
| 112 | variable. |
| 113 | |
Junio C Hamano | 32238ae | 2013-01-06 00:17:24 -0800 | [diff] [blame] | 114 | * "git fetch --mirror" and fetch that uses other forms of refspec |
| 115 | with wildcard used to attempt to update a symbolic ref that match |
| 116 | the wildcard on the receiving end, which made little sense (the |
| 117 | real ref that is pointed at by the symbolic ref would be updated |
| 118 | anyway). Symbolic refs no longer are affected by such a fetch. |
| 119 | |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 120 | * "git format-patch" now detects more cases in which a whole branch |
| 121 | is being exported, and uses the description for the branch, when |
| 122 | asked to write a cover letter for the series. |
| 123 | |
Junio C Hamano | 94702dd | 2013-01-11 18:51:09 -0800 | [diff] [blame] | 124 | * "git format-patch" learned "-v $count" option, and prepends a |
| 125 | string "v$count-" to the names of its output files, and also |
| 126 | automatically sets the subject prefix to "PATCH v$count". This |
| 127 | allows patches from rerolled series to be stored under different |
| 128 | names and makes it easier to reuse cover letter messsages. |
| 129 | |
Junio C Hamano | fe73786 | 2013-01-20 17:28:13 -0800 | [diff] [blame] | 130 | * "git log" and friends can be told with --use-mailmap option to |
| 131 | rewrite the names and email addresses of people using the mailmap |
| 132 | mechanism. |
| 133 | |
Junio C Hamano | 02339dd | 2013-02-14 10:43:07 -0800 | [diff] [blame] | 134 | * "git log --cc --graph" now shows the combined diff output with the |
| 135 | ancestry graph. |
| 136 | |
Junio C Hamano | 004825d | 2013-02-17 15:35:33 -0800 | [diff] [blame] | 137 | * "git log --grep=<pattern>" honors i18n.logoutputencoding to look |
| 138 | for the pattern after fixing the log message to the specified |
| 139 | encoding. |
| 140 | |
Junio C Hamano | a923c31 | 2013-02-07 15:25:06 -0800 | [diff] [blame] | 141 | * "git mergetool" and "git difftool" learned to list the available |
| 142 | tool backends in a more consistent manner. |
| 143 | |
| 144 | * "git mergetool" is aware of TortoiseGitMerge now and uses it over |
| 145 | TortoiseMerge when available. |
| 146 | |
Junio C Hamano | 32238ae | 2013-01-06 00:17:24 -0800 | [diff] [blame] | 147 | * "git push" now requires "-f" to update a tag, even if it is a |
| 148 | fast-forward, as tags are meant to be fixed points. |
| 149 | |
Junio C Hamano | f51a757 | 2013-02-04 10:44:26 -0800 | [diff] [blame] | 150 | * Error messages from "git push" when it stops to prevent remote refs |
| 151 | from getting overwritten by mistake have been improved to explain |
| 152 | various situations separately. |
| 153 | |
Junio C Hamano | 3587b51 | 2013-01-25 12:52:55 -0800 | [diff] [blame] | 154 | * "git push" will stop without doing anything if the new "pre-push" |
| 155 | hook exists and exits with a failure. |
| 156 | |
Junio C Hamano | 99621af | 2013-01-10 14:36:23 -0800 | [diff] [blame] | 157 | * When "git rebase" fails to generate patches to be applied (e.g. due |
| 158 | to oom), it failed to detect the failure and instead behaved as if |
| 159 | there were nothing to do. A workaround to use a temporary file has |
| 160 | been applied, but we probably would want to revisit this later, as |
| 161 | it hurts the common case of not failing at all. |
| 162 | |
Junio C Hamano | c4ada62 | 2013-01-22 10:01:05 -0800 | [diff] [blame] | 163 | * Input and preconditions to "git reset" has been loosened where |
| 164 | appropriate. "git reset $fromtree Makefile" requires $fromtree to |
| 165 | be any tree (it used to require it to be a commit), for example. |
| 166 | "git reset" (without options or parameters) used to error out when |
| 167 | you do not have any commits in your history, but it now gives you |
| 168 | an empty index (to match non-existent commit you are not even on). |
| 169 | |
Junio C Hamano | 02339dd | 2013-02-14 10:43:07 -0800 | [diff] [blame] | 170 | * "git status" says what branch is being bisected or rebased when |
| 171 | able, not just "bisecting" or "rebasing". |
| 172 | |
Junio C Hamano | 32238ae | 2013-01-06 00:17:24 -0800 | [diff] [blame] | 173 | * "git submodule" started learning a new mode to integrate with the |
| 174 | tip of the remote branch (as opposed to integrating with the commit |
| 175 | recorded in the superproject's gitlink). |
| 176 | |
Junio C Hamano | 004825d | 2013-02-17 15:35:33 -0800 | [diff] [blame] | 177 | * "git upload-pack" which implements the service "ls-remote" and |
| 178 | "fetch" talk to can be told to hide ref hierarchies the server |
| 179 | side internally uses (and that clients have no business learning |
| 180 | about) with transfer.hiderefs configuration. |
| 181 | |
Junio C Hamano | 32238ae | 2013-01-06 00:17:24 -0800 | [diff] [blame] | 182 | |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 183 | Foreign Interface |
| 184 | |
Junio C Hamano | 32238ae | 2013-01-06 00:17:24 -0800 | [diff] [blame] | 185 | * "git fast-export" has been updated for its use in the context of |
| 186 | the remote helper interface. |
| 187 | |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 188 | * A new remote helper to interact with bzr has been added to contrib/. |
| 189 | |
Junio C Hamano | bcd45b4 | 2013-02-01 12:52:08 -0800 | [diff] [blame] | 190 | * "git p4" got various bugfixes around its branch handling. It is |
Junio C Hamano | f51a757 | 2013-02-04 10:44:26 -0800 | [diff] [blame] | 191 | also made usable with Python 2.4/2.5. In addition, its various |
| 192 | portability issues for Cygwin have been addressed. |
Junio C Hamano | c4ada62 | 2013-01-22 10:01:05 -0800 | [diff] [blame] | 193 | |
| 194 | * The remote helper to interact with Hg in contrib/ has seen a few |
| 195 | fixes. |
| 196 | |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 197 | |
| 198 | Performance, Internal Implementation, etc. |
| 199 | |
Junio C Hamano | 32238ae | 2013-01-06 00:17:24 -0800 | [diff] [blame] | 200 | * "git fsck" has been taught to be pickier about entries in tree |
| 201 | objects that should not be there, e.g. ".", ".git", and "..". |
| 202 | |
| 203 | * Matching paths with common forms of pathspecs that contain wildcard |
| 204 | characters has been optimized further. |
| 205 | |
Junio C Hamano | bcd45b4 | 2013-02-01 12:52:08 -0800 | [diff] [blame] | 206 | * We stopped paying attention to $GIT_CONFIG environment that points |
| 207 | at a single configuration file from any command other than "git config" |
| 208 | quite a while ago, but "git clone" internally set, exported, and |
| 209 | then unexported the variable during its operation unnecessarily. |
| 210 | |
Junio C Hamano | c4ada62 | 2013-01-22 10:01:05 -0800 | [diff] [blame] | 211 | * "git reset" internals has been reworked and should be faster in |
| 212 | general. We tried to be careful not to break any behaviour but |
| 213 | there could be corner cases, especially when running the command |
| 214 | from a conflicted state, that we may have missed. |
| 215 | |
Junio C Hamano | 32238ae | 2013-01-06 00:17:24 -0800 | [diff] [blame] | 216 | * The implementation of "imap-send" has been updated to reuse xml |
Junio C Hamano | 3587b51 | 2013-01-25 12:52:55 -0800 | [diff] [blame] | 217 | quoting code from http-push codepath, and lost a lot of unused |
| 218 | code. |
Junio C Hamano | 32238ae | 2013-01-06 00:17:24 -0800 | [diff] [blame] | 219 | |
Junio C Hamano | 99621af | 2013-01-10 14:36:23 -0800 | [diff] [blame] | 220 | * There is a simple-minded checker for the test scripts in t/ |
| 221 | directory to catch most common mistakes (it is not enabled by |
| 222 | default). |
| 223 | |
Junio C Hamano | 3587b51 | 2013-01-25 12:52:55 -0800 | [diff] [blame] | 224 | * You can build with USE_WILDMATCH=YesPlease to use a replacement |
| 225 | implementation of pattern matching logic used for pathname-like |
| 226 | things, e.g. refnames and paths in the repository. This new |
| 227 | implementation is not expected change the existing behaviour of Git |
| 228 | in this release, except for "git for-each-ref" where you can now |
| 229 | say "refs/**/master" and match with both refs/heads/master and |
| 230 | refs/remotes/origin/master. We plan to use this new implementation |
| 231 | in wider places (e.g. "git ls-files '**/Makefile' may find Makefile |
| 232 | at the top-level, and "git log '**/t*.sh'" may find commits that |
| 233 | touch a shell script whose name begins with "t" at any level) in |
| 234 | future versions of Git, but we are not there yet. By building with |
| 235 | USE_WILDMATCH, using the resulting Git daily and reporting when you |
| 236 | find breakages, you can help us get closer to that goal. |
| 237 | |
Junio C Hamano | bcd45b4 | 2013-02-01 12:52:08 -0800 | [diff] [blame] | 238 | * Some reimplementations of Git do not write all the stat info back |
| 239 | to the index due to their implementation limitations (e.g. jgit). |
| 240 | A configuration option can tell Git to ignore changes to most of |
| 241 | the stat fields and only pay attention to mtime and size, which |
| 242 | these implementations can reliably update. This can be used to |
| 243 | avoid excessive revalidation of contents. |
| 244 | |
Junio C Hamano | 7b6e784 | 2013-02-15 12:24:54 -0800 | [diff] [blame] | 245 | * Some platforms ship with old version of expat where xmlparse.h |
| 246 | needs to be included instead of expat.h; the build procedure has |
| 247 | been taught about this. |
| 248 | |
| 249 | * "make clean" on platforms that cannot compute header dependencies |
| 250 | on the fly did not work with implementations of "rm" that do not |
| 251 | like an empty argument list. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 252 | |
| 253 | Also contains minor documentation updates and code clean-ups. |
| 254 | |
| 255 | |
| 256 | Fixes since v1.8.1 |
| 257 | ------------------ |
| 258 | |
| 259 | Unless otherwise noted, all the fixes since v1.8.1 in the maintenance |
| 260 | track are contained in this release (see release notes to them for |
| 261 | details). |
| 262 | |
| 263 | * An element on GIT_CEILING_DIRECTORIES list that does not name the |
| 264 | real path to a directory (i.e. a symbolic link) could have caused |
| 265 | the GIT_DIR discovery logic to escape the ceiling. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 266 | |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 267 | * When attempting to read the XDG-style $HOME/.config/git/config and |
| 268 | finding that $HOME/.config/git is a file, we gave a wrong error |
| 269 | message, instead of treating the case as "a custom config file does |
| 270 | not exist there" and moving on. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 271 | |
Junio C Hamano | 3e293fb | 2013-01-03 10:33:22 -0800 | [diff] [blame] | 272 | * The behaviour visible to the end users was confusing, when they |
| 273 | attempt to kill a process spawned in the editor that was in turn |
| 274 | launched by Git with SIGINT (or SIGQUIT), as Git would catch that |
| 275 | signal and die. We ignore these signals now. |
Junio C Hamano | f51a757 | 2013-02-04 10:44:26 -0800 | [diff] [blame] | 276 | (merge 0398fc34 pf/editor-ignore-sigint later to maint). |
Junio C Hamano | 3e293fb | 2013-01-03 10:33:22 -0800 | [diff] [blame] | 277 | |
Junio C Hamano | 94702dd | 2013-01-11 18:51:09 -0800 | [diff] [blame] | 278 | * A child process that was killed by a signal (e.g. SIGINT) was |
| 279 | reported in an inconsistent way depending on how the process was |
| 280 | spawned by us, with or without a shell in between. |
Junio C Hamano | 94702dd | 2013-01-11 18:51:09 -0800 | [diff] [blame] | 281 | |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 282 | * After failing to create a temporary file using mkstemp(), failing |
| 283 | pathname was not reported correctly on some platforms. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 284 | |
Junio C Hamano | bcd45b4 | 2013-02-01 12:52:08 -0800 | [diff] [blame] | 285 | * We used to stuff "user@" and then append what we read from |
| 286 | /etc/mailname to come up with a default e-mail ident, but a bug |
| 287 | lost the "user@" part. |
Junio C Hamano | bcd45b4 | 2013-02-01 12:52:08 -0800 | [diff] [blame] | 288 | |
Junio C Hamano | 32238ae | 2013-01-06 00:17:24 -0800 | [diff] [blame] | 289 | * The attribute mechanism didn't allow limiting attributes to be |
| 290 | applied to only a single directory itself with "path/" like the |
Junio C Hamano | c4ada62 | 2013-01-22 10:01:05 -0800 | [diff] [blame] | 291 | exclude mechanism does. The initial implementation of this that |
| 292 | was merged to 'maint' and 1.8.1.2 was with a severe performance |
| 293 | degradations and needs to merge a fix-up topic. |
Junio C Hamano | 32238ae | 2013-01-06 00:17:24 -0800 | [diff] [blame] | 294 | |
Junio C Hamano | aa39828 | 2013-02-10 20:47:28 -0800 | [diff] [blame] | 295 | * The smart HTTP clients forgot to verify the content-type that comes |
| 296 | back from the server side to make sure that the request is being |
| 297 | handled properly. |
| 298 | (merge 3443db5 sp/smart-http-content-type-check later to maint). |
| 299 | |
Junio C Hamano | 08c0e7f | 2013-01-28 11:19:59 -0800 | [diff] [blame] | 300 | * "git am" did not parse datestamp correctly from Hg generated patch, |
| 301 | when it is run in a locale outside C (or en). |
Junio C Hamano | 08c0e7f | 2013-01-28 11:19:59 -0800 | [diff] [blame] | 302 | |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 303 | * "git apply" misbehaved when fixing whitespace breakages by removing |
| 304 | excess trailing blank lines. |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 305 | |
Junio C Hamano | aa39828 | 2013-02-10 20:47:28 -0800 | [diff] [blame] | 306 | * "git apply --summary" has been taught to make sure the similarity |
| 307 | value shown in its output is sensible, even when the input had a |
| 308 | bogus value. |
| 309 | (merge afcb6ac jk/apply-similaritly-parsing later to maint). |
| 310 | |
Junio C Hamano | 99621af | 2013-01-10 14:36:23 -0800 | [diff] [blame] | 311 | * A tar archive created by "git archive" recorded a directory in a |
| 312 | way that made NetBSD's implementation of "tar" sometimes unhappy. |
Junio C Hamano | 99621af | 2013-01-10 14:36:23 -0800 | [diff] [blame] | 313 | |
Junio C Hamano | 94702dd | 2013-01-11 18:51:09 -0800 | [diff] [blame] | 314 | * "git archive" did not record uncompressed size in the header when |
| 315 | streaming a zip archive, which confused some implementations of unzip. |
Junio C Hamano | 94702dd | 2013-01-11 18:51:09 -0800 | [diff] [blame] | 316 | |
Junio C Hamano | f51a757 | 2013-02-04 10:44:26 -0800 | [diff] [blame] | 317 | * "git archive" did not parse configuration values in tar.* namespace |
| 318 | correctly. |
| 319 | (merge b3873c3 jk/config-parsing-cleanup later to maint). |
| 320 | |
Junio C Hamano | bcd45b4 | 2013-02-01 12:52:08 -0800 | [diff] [blame] | 321 | * Attempt to "branch --edit-description" an existing branch, while |
| 322 | being on a detached HEAD, errored out. |
Junio C Hamano | bcd45b4 | 2013-02-01 12:52:08 -0800 | [diff] [blame] | 323 | |
Junio C Hamano | c4ada62 | 2013-01-22 10:01:05 -0800 | [diff] [blame] | 324 | * "git clean" showed what it was going to do, but sometimes end up |
| 325 | finding that it was not allowed to do so, which resulted in a |
| 326 | confusing output (e.g. after saying that it will remove an |
| 327 | untracked directory, it found an embedded git repository there |
| 328 | which it is not allowed to remove). It now performs the actions |
| 329 | and then reports the outcome more faithfully. |
| 330 | (merge f538a91 zk/clean-report-failure later to maint). |
| 331 | |
Junio C Hamano | 99621af | 2013-01-10 14:36:23 -0800 | [diff] [blame] | 332 | * When "git clone --separate-git-dir=$over_there" is interrupted, it |
| 333 | failed to remove the real location of the $GIT_DIR it created. |
| 334 | This was most visible when interrupting a submodule update. |
Junio C Hamano | 99621af | 2013-01-10 14:36:23 -0800 | [diff] [blame] | 335 | |
Junio C Hamano | 02339dd | 2013-02-14 10:43:07 -0800 | [diff] [blame] | 336 | * "git cvsimport" mishandled timestamps at DST boundary. |
| 337 | (merge 48c9162 bw/get-tz-offset-perl later to maint). |
| 338 | |
Junio C Hamano | aa39828 | 2013-02-10 20:47:28 -0800 | [diff] [blame] | 339 | * We used to have an arbitrary 32 limit for combined diff input, |
| 340 | resulting in incorrect number of leading colons shown when showing |
| 341 | the "--raw --cc" output. |
| 342 | (merge edbc00e jc/combine-diff-many-parents later to maint). |
| 343 | |
Junio C Hamano | bcd45b4 | 2013-02-01 12:52:08 -0800 | [diff] [blame] | 344 | * "git fetch --depth" was broken in at least three ways. The |
| 345 | resulting history was deeper than specified by one commit, it was |
| 346 | unclear how to wipe the shallowness of the repository with the |
| 347 | command, and documentation was misleading. |
| 348 | (merge cfb70e1 nd/fetch-depth-is-broken later to maint). |
| 349 | |
Junio C Hamano | f51a757 | 2013-02-04 10:44:26 -0800 | [diff] [blame] | 350 | * "git log --all -p" that walked refs/notes/textconv/ ref can later |
| 351 | try to use the textconv data incorrectly after it gets freed. |
| 352 | (merge be5c9fb jk/read-commit-buffer-data-after-free later to maint). |
| 353 | |
Junio C Hamano | 2f19ada | 2013-02-05 16:20:16 -0800 | [diff] [blame] | 354 | * We forgot to close the file descriptor reading from "gpg" output, |
| 355 | killing "git log --show-signature" on a long history. |
Junio C Hamano | 2f19ada | 2013-02-05 16:20:16 -0800 | [diff] [blame] | 356 | |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 357 | * The way "git svn" asked for password using SSH_ASKPASS and |
| 358 | GIT_ASKPASS was not in line with the rest of the system. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 359 | |
| 360 | * The --graph code fell into infinite loop when asked to do what the |
| 361 | code did not expect. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 362 | |
| 363 | * http transport was wrong to ask for the username when the |
| 364 | authentication is done by certificate identity. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 365 | |
| 366 | * "git pack-refs" that ran in parallel to another process that |
| 367 | created new refs had a nasty race. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 368 | |
Junio C Hamano | 2f19ada | 2013-02-05 16:20:16 -0800 | [diff] [blame] | 369 | * Rebasing the history of superproject with change in the submodule |
| 370 | has been broken since v1.7.12. |
Junio C Hamano | 2f19ada | 2013-02-05 16:20:16 -0800 | [diff] [blame] | 371 | |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 372 | * After "git add -N" and then writing a tree object out of the |
| 373 | index, the cache-tree data structure got corrupted. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 374 | |
Junio C Hamano | c4ada62 | 2013-01-22 10:01:05 -0800 | [diff] [blame] | 375 | * "git clone" used to allow --bare and --separate-git-dir=$there |
| 376 | options at the same time, which was nonsensical. |
| 377 | (merge 95b63f1 nd/clone-no-separate-git-dir-with-bare later to maint). |
| 378 | |
| 379 | * "git rebase --preserve-merges" lost empty merges in recent versions |
| 380 | of Git. |
Junio C Hamano | c4ada62 | 2013-01-22 10:01:05 -0800 | [diff] [blame] | 381 | |
Junio C Hamano | 99621af | 2013-01-10 14:36:23 -0800 | [diff] [blame] | 382 | * "git merge --no-edit" computed who were involved in the work done |
| 383 | on the side branch, even though that information is to be discarded |
| 384 | without getting seen in the editor. |
Junio C Hamano | 99621af | 2013-01-10 14:36:23 -0800 | [diff] [blame] | 385 | |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 386 | * "git merge" started calling prepare-commit-msg hook like "git |
| 387 | commit" does some time ago, but forgot to pay attention to the exit |
| 388 | status of the hook. |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 389 | |
Junio C Hamano | 2f19ada | 2013-02-05 16:20:16 -0800 | [diff] [blame] | 390 | * A failure to push due to non-ff while on an unborn branch |
| 391 | dereferenced a NULL pointer when showing an error message. |
Junio C Hamano | 2f19ada | 2013-02-05 16:20:16 -0800 | [diff] [blame] | 392 | |
Junio C Hamano | 77d07f5 | 2013-01-14 08:21:35 -0800 | [diff] [blame] | 393 | * When users spell "cc:" in lowercase in the fake "header" in the |
| 394 | trailer part, "git send-email" failed to pick up the addresses from |
| 395 | there. As e-mail headers field names are case insensitive, this |
| 396 | script should follow suit and treat "cc:" and "Cc:" the same way. |
Junio C Hamano | 77d07f5 | 2013-01-14 08:21:35 -0800 | [diff] [blame] | 397 | |
| 398 | * Output from "git status --ignored" showed an unexpected interaction |
| 399 | with "--untracked". |
Junio C Hamano | 77d07f5 | 2013-01-14 08:21:35 -0800 | [diff] [blame] | 400 | |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 401 | * "gitweb", when sorting by age to show repositories with new |
| 402 | activities first, used to sort repositories with absolutely |
| 403 | nothing in it early, which was not very useful. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 404 | |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 405 | * "gitweb"'s code to sanitize control characters before passing it to |
| 406 | "highlight" filter lost known-to-be-safe control characters by |
| 407 | mistake. |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 408 | |
Junio C Hamano | a923c31 | 2013-02-07 15:25:06 -0800 | [diff] [blame] | 409 | * "gitweb" pages served over HTTPS, when configured to show picon or |
| 410 | gravatar, referred to these external resources to be fetched via |
| 411 | HTTP, resulting in mixed contents warning in browsers. |
| 412 | (merge 5748558 ab/gitweb-use-same-scheme later to maint). |
| 413 | |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 414 | * When a line to be wrapped has a solid run of non space characters |
| 415 | whose length exactly is the wrap width, "git shortlog -w" failed |
| 416 | to add a newline after such a line. |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 417 | |
Junio C Hamano | bbc6f64 | 2013-01-18 11:26:11 -0800 | [diff] [blame] | 418 | * Command line completion leaked an unnecessary error message while |
| 419 | looking for possible matches with paths in <tree-ish>. |
Junio C Hamano | bbc6f64 | 2013-01-18 11:26:11 -0800 | [diff] [blame] | 420 | |
| 421 | * Command line completion for "tcsh" emitted an unwanted space |
| 422 | after completing a single directory name. |
Junio C Hamano | 08c0e7f | 2013-01-28 11:19:59 -0800 | [diff] [blame] | 423 | |
| 424 | * Command line completion code was inadvertently made incompatible with |
| 425 | older versions of bash by using a newer array notation. |
Junio C Hamano | bbc6f64 | 2013-01-18 11:26:11 -0800 | [diff] [blame] | 426 | |
Junio C Hamano | 7b6e784 | 2013-02-15 12:24:54 -0800 | [diff] [blame] | 427 | * "git push" was taught to refuse updating the branch that is |
| 428 | currently checked out long time ago, but the user manual was left |
| 429 | stale. |
| 430 | (merge d9be248 wk/man-deny-current-branch-is-default-these-days later to maint). |
| 431 | |
Junio C Hamano | 298caa7 | 2013-01-02 10:44:12 -0800 | [diff] [blame] | 432 | * Some shells do not behave correctly when IFS is unset; work it |
| 433 | around by explicitly setting it to the default value. |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 434 | |
| 435 | * Some scripted programs written in Python did not get updated when |
| 436 | PYTHON_PATH changed. |
| 437 | (cherry-pick 96a4647fca54031974cd6ad1 later to maint). |
| 438 | |
| 439 | * When autoconf is used, any build on a different commit always ran |
| 440 | "config.status --recheck" even when unnecessary. |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 441 | |
Junio C Hamano | 2f19ada | 2013-02-05 16:20:16 -0800 | [diff] [blame] | 442 | * A fix was added to the build procedure to work around buggy |
| 443 | versions of ccache broke the auto-generation of dependencies, which |
| 444 | unfortunately is still relevant because some people use ancient |
| 445 | distros. |
Junio C Hamano | 2f19ada | 2013-02-05 16:20:16 -0800 | [diff] [blame] | 446 | |
Junio C Hamano | aa39828 | 2013-02-10 20:47:28 -0800 | [diff] [blame] | 447 | * The autoconf subsystem passed --mandir down to generated |
| 448 | config.mak.autogen but forgot to do the same for --htmldir. |
| 449 | (merge fc1c541 ct/autoconf-htmldir later to maint). |
| 450 | |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 451 | * We have been carrying a translated and long-unmaintained copy of an |
| 452 | old version of the tutorial; removed. |
Junio C Hamano | 08c0e7f | 2013-01-28 11:19:59 -0800 | [diff] [blame] | 453 | |
| 454 | * t0050 had tests expecting failures from a bug that was fixed some |
| 455 | time ago. |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 456 | |
| 457 | * t4014, t9502 and t0200 tests had various portability issues that |
| 458 | broke on OpenBSD. |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 459 | |
| 460 | * t9020 and t3600 tests had various portability issues. |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 461 | |
| 462 | * t9200 runs "cvs init" on a directory that already exists, but a |
| 463 | platform can configure this fail for the current user (e.g. you |
| 464 | need to be in the cvsadmin group on NetBSD 6.0). |
Junio C Hamano | 44fe835 | 2013-01-09 10:19:49 -0800 | [diff] [blame] | 465 | |
| 466 | * t9020 and t9810 had a few non-portable shell script construct. |
Junio C Hamano | bcd45b4 | 2013-02-01 12:52:08 -0800 | [diff] [blame] | 467 | |
| 468 | * Scripts to test bash completion was inherently flaky as it was |
| 469 | affected by whatever random things the user may have on $PATH. |