зеркало из https://github.com/microsoft/git.git
116 строки
5.0 KiB
Plaintext
116 строки
5.0 KiB
Plaintext
|
Git v2.0.1 Release Notes
|
||
|
========================
|
||
|
|
||
|
* We used to unconditionally disable the pager in the pager process
|
||
|
we spawn to feed out output, but that prevented people who want to
|
||
|
run "less" within "less" from doing so.
|
||
|
|
||
|
* Tools that read diagnostic output in our standard error stream do
|
||
|
not want to see terminal control sequence (e.g. erase-to-eol).
|
||
|
Detect them by checking if the standard error stream is connected
|
||
|
to a tty.
|
||
|
* Reworded the error message given upon a failure to open an existing
|
||
|
loose object file due to e.g. permission issues; it was reported as
|
||
|
the object being corrupt, but that is not quite true.
|
||
|
|
||
|
* "git log -2master" is a common typo that shows two commits starting
|
||
|
from whichever random branch that is not 'master' that happens to
|
||
|
be checked out currently.
|
||
|
|
||
|
* The "%<(10,trunc)%s" pretty format specifier in the log family of
|
||
|
commands is used to truncate the string to a given length (e.g. 10
|
||
|
in the example) with padding to column-align the output, but did
|
||
|
not take into account that number of bytes and number of display
|
||
|
columns are different.
|
||
|
|
||
|
* The "mailmap.file" configuration option did not support the tilde
|
||
|
expansion (i.e. ~user/path and ~/path).
|
||
|
|
||
|
* The completion scripts (in contrib/) did not know about quite a few
|
||
|
options that are common between "git merge" and "git pull", and a
|
||
|
couple of options unique to "git merge".
|
||
|
|
||
|
* "--ignore-space-change" option of "git apply" ignored the spaces
|
||
|
at the beginning of line too aggressively, which is inconsistent
|
||
|
with the option of the same name "diff" and "git diff" have.
|
||
|
|
||
|
* "git blame" miscounted number of columns needed to show localized
|
||
|
timestamps, resulting in jaggy left-side-edge of the source code
|
||
|
lines in its output.
|
||
|
|
||
|
* "git blame" assigned the blame to the copy in the working-tree if
|
||
|
the repository is set to core.autocrlf=input and the file used CRLF
|
||
|
line endings.
|
||
|
|
||
|
* "git commit --allow-empty-message -C $commit" did not work when the
|
||
|
commit did not have any log message.
|
||
|
|
||
|
* "git diff --find-copies-harder" sometimes pretended as if the mode
|
||
|
bits have changed for paths that are marked with assume-unchanged
|
||
|
bit.
|
||
|
|
||
|
* "git format-patch" did not enforce the rule that the "--follow"
|
||
|
option from the log/diff family of commands must be used with
|
||
|
exactly one pathspec.
|
||
|
|
||
|
* "git gc --auto" was recently changed to run in the background to
|
||
|
give control back early to the end-user sitting in front of the
|
||
|
terminal, but it forgot that housekeeping involving reflogs should
|
||
|
be done without other processes competing for accesses to the refs.
|
||
|
|
||
|
* "git grep -O" to show the lines that hit in the pager did not work
|
||
|
well with case insensitive search. We now spawn "less" with its
|
||
|
"-I" option when it is used as the pager (which is the default).
|
||
|
|
||
|
* We used to disable threaded "git index-pack" on platforms without
|
||
|
thread-safe pread(); use a different workaround for such
|
||
|
platforms to allow threaded "git index-pack".
|
||
|
|
||
|
* The error reporting from "git index-pack" has been improved to
|
||
|
distinguish missing objects from type errors.
|
||
|
|
||
|
* "git mailinfo" used to read beyond the end of header string while
|
||
|
parsing an incoming e-mail message to extract the patch.
|
||
|
|
||
|
* On a case insensitive filesystem, merge-recursive incorrectly
|
||
|
deleted the file that is to be renamed to a name that is the same
|
||
|
except for case differences.
|
||
|
|
||
|
* "git pack-objects" unnecessarily copied the previous contents when
|
||
|
extending the hashtable, even though it will populate the table
|
||
|
from scratch anyway.
|
||
|
|
||
|
* "git rerere forget" did not work well when merge.conflictstyle
|
||
|
was set to a non-default value.
|
||
|
|
||
|
* "git remote rm" and "git remote prune" can involve removing many
|
||
|
refs at once, which is not a very efficient thing to do when very
|
||
|
many refs exist in the packed-refs file.
|
||
|
|
||
|
* "git log --exclude=<glob> --all | git shortlog" worked as expected,
|
||
|
but "git shortlog --exclude=<glob> --all", which is supposed to be
|
||
|
identical to the above pipeline, was not accepted at the command
|
||
|
line argument parser level.
|
||
|
|
||
|
* The autostash mode of "git rebase -i" did not restore the dirty
|
||
|
working tree state if the user aborted the interactive rebase by
|
||
|
emptying the insn sheet.
|
||
|
|
||
|
* "git show -s" (i.e. show log message only) used to incorrectly emit
|
||
|
an extra blank line after a merge commit.
|
||
|
|
||
|
* "git status", even though it is a read-only operation, tries to
|
||
|
update the index with refreshed lstat(2) info to optimize future
|
||
|
accesses to the working tree opportunistically, but this could
|
||
|
race with a "read-write" operation that modify the index while it
|
||
|
is running. Detect such a race and avoid overwriting the index.
|
||
|
|
||
|
* "git status" (and "git commit") behaved as if changes in a modified
|
||
|
submodule are not there if submodule.*.ignore configuration is set,
|
||
|
which was misleading. The configuration is only to unclutter diff
|
||
|
output during the course of development, and should not to hide
|
||
|
changes in the "status" output to cause the users forget to commit
|
||
|
them.
|
||
|
|
||
|
* The mode to run tests with HTTP server tests disabled was broken.
|