You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
259 lines
9.1 KiB
259 lines
9.1 KiB
GIT v1.6.1 Release Notes |
|
======================== |
|
|
|
Updates since v1.6.0 |
|
-------------------- |
|
|
|
When some commands (e.g. "git log", "git diff") spawn pager internally, we |
|
used to make the pager the parent process of the git command that produces |
|
output. This meant that the exit status of the whole thing comes from the |
|
pager, not the underlying git command. We swapped the order of the |
|
processes around and you will see the exit code from the command from now |
|
on. |
|
|
|
(subsystems) |
|
|
|
* gitk can call out to git-gui to view "git blame" output; git-gui in turn |
|
can run gitk from its blame view. |
|
|
|
* Various git-gui updates including updated translations. |
|
|
|
* Various gitweb updates from repo.or.cz installation. |
|
|
|
(portability) |
|
|
|
* A few test scripts used nonportable "grep" that did not work well on |
|
some platforms, e.g. Solaris. |
|
|
|
* Sample pre-auto-gc script has OS X support. |
|
|
|
* Makefile has support for (ancient) FreeBSD 4.9. |
|
|
|
(performance) |
|
|
|
* The underlying diff machinery to produce textual output has been |
|
optimized, which would result in faster "git blame" processing. |
|
|
|
* Most of the test scripts (but not the ones that try to run servers) |
|
can be run in parallel. |
|
|
|
* Bash completion of refnames in a repository with massive number of |
|
refs has been optimized. |
|
|
|
* Cygwin port uses native stat/lstat implementations when applicable, |
|
which leads to improved performance. |
|
|
|
* "git push" pays attention to alternate repositories to avoid sending |
|
unnecessary objects. |
|
|
|
* "git svn" can rebuild an out-of-date rev_map file. |
|
|
|
(usability, bells and whistles) |
|
|
|
* When you mistype a command name, git helpfully suggests what it guesses |
|
you might have meant to say. help.autocorrect configuration can be set |
|
to a non-zero value to accept the suggestion when git can uniquely |
|
guess. |
|
|
|
* The packfile machinery hopefully is more robust when dealilng with |
|
corrupt packs if redundant objects involved in the corruption are |
|
available elsehwere. |
|
|
|
* "git add -N path..." adds the named paths as an empty blob, so that |
|
subsequent "git diff" will show a diff as if they are creation events. |
|
|
|
* "git apply" learned --include=paths option, similar to the existing |
|
--exclude=paths option. |
|
|
|
* "git bisect" is careful about a user mistake and suggests testing of |
|
merge base first when good is not a strict ancestor of bad. |
|
|
|
* "git blame" re-encodes the commit metainfo to UTF-8 from i18n.commitEncoding |
|
by default. |
|
|
|
* "git check-attr --stdin" can check attributes for multiple paths. |
|
|
|
* "git checkout --track origin/hack" used to be a syntax error. It now |
|
DWIMs to create a corresponding local branch "hack", i.e. acts as if you |
|
said "git checkout --track -b hack origin/hack". |
|
|
|
* "git checkout --ours/--theirs" can be used to check out one side of a |
|
conflicting merge during conflict resolution. |
|
|
|
* "git checkout -m" can be used to recreate the initial conflicted state |
|
during conflict resolution. |
|
|
|
* "git cherry-pick" can also utilize rerere for conflict resolution. |
|
|
|
* "git clone" learned to be verbose with -v |
|
|
|
* "git commit --author=$name" can look up author name from existing |
|
commits. |
|
|
|
* output from "git commit" has been reworded in a more concise and yet |
|
more informative way. |
|
|
|
* "git count-objects" reports the on-disk footprint for packfiles and |
|
their corresponding idx files. |
|
|
|
* "git daemon" learned --max-connections=<count> option. |
|
|
|
* "git daemon" exports REMOTE_ADDR to record client address, so that |
|
spawned programs can act differently on it. |
|
|
|
* "git describe --tags" favours closer lightweight tags than farther |
|
annotated tags now. |
|
|
|
* "git diff" learned to mimic --suppress-blank-empty from GNU diff via a |
|
configuration option. |
|
|
|
* "git diff" learned to put more sensible hunk headers for Python, |
|
HTML and ObjC contents. |
|
|
|
* "git diff" learned to vary the a/ vs b/ prefix depending on what are |
|
being compared, controlled by diff.mnemonicprefix configuration. |
|
|
|
* "git diff" learned --dirstat-by-file to count changed files, not number |
|
of lines, when summarizing the global picture. |
|
|
|
* "git diff" learned "textconv" filters --- a binary or hard-to-read |
|
contents can be munged into human readable form and the difference |
|
between the results of the conversion can be viewed (obviously this |
|
cannot produce a patch that can be applied, so this is disabled in |
|
format-patch among other things). |
|
|
|
* "git diff" hunk header pattern for ObjC has been added. |
|
|
|
* "--cached" option to "git diff has an easier to remember synonym "--staged", |
|
to ask "what is the difference between the given commit and the |
|
contents staged in the index?" |
|
|
|
* a "textconv" filter that makes binary files textual form for human |
|
consumption can be specified as an attribute for paths; "git diff" |
|
learnt to make use of it. |
|
|
|
* "git for-each-ref" learned "refname:short" token that gives an |
|
unambiguously abbreviated refname. |
|
|
|
* Auto-numbering of the subject lines is the default for "git |
|
format-patch" now. |
|
|
|
* "git grep" learned to accept -z similar to GNU grep. |
|
|
|
* "git help" learned to use GIT_MAN_VIEWER environment variable before |
|
using "man" program. |
|
|
|
* "git imap-send" can optionally talk SSL. |
|
|
|
* "git index-pack" is more careful against disk corruption while |
|
completing a thin pack. |
|
|
|
* "git log --check" and "git log --exit-code" passes their underlying diff |
|
status with their exit status code. |
|
|
|
* "git log" learned --simplify-merges, a milder variant of --full-history; |
|
"gitk --simplify-merges" is easier to view than with --full-history. |
|
|
|
* "git log" learned "--source" to show what ref each commit was reached |
|
from. |
|
|
|
* "git log" also learned "--simplify-by-decration" to show the |
|
birds-eye-view of the topology of the history. |
|
|
|
* "git log --pretty=format:" learned "%d" format element that inserts |
|
names of tags that point at the commit. |
|
|
|
* "git merge --squash" and "git merge --no-ff" into an unborn branch are |
|
noticed as user errors. |
|
|
|
* "git merge -s $strategy" can use a custom built strategy if you have a |
|
command "git-merge-$strategy" on your $PATH. |
|
|
|
* "git push" can be told to reject deletion of refs with receive.denyDeletes |
|
configuration. |
|
|
|
* "git rebase" honours pre-rebase hook; use --no-verify to bypass it. |
|
|
|
* "git rebase -p" uses interactive rebase machinery now to preserve the merges. |
|
|
|
* "git reflog expire branch" can be used in place of "git reflog expire |
|
refs/heads/branch". |
|
|
|
* "git remote show $remote" lists remote branches one-per-line now. |
|
|
|
* when giving up resolving a conflicted merge, "git reset --hard" failed |
|
to remove new paths from the working tree. [cherry-pick to 'maint'?] |
|
|
|
* "git submodule foreach" subcommand allows you to iterate over checked |
|
out submodules. |
|
|
|
* "git submodule sync" subcommands allows you to update the origin URL |
|
recorded in submodule directories from the toplevel .gitmodules file. |
|
|
|
* "git svn branch" can create new branches on the other end. |
|
|
|
* "gitweb" can use more saner PATH_INFO based URL. |
|
|
|
(internal) |
|
|
|
* "git hash-object" learned to lie about the path being hashed, so that |
|
correct gitattributes processing can be done while hashing contents |
|
stored in a temporary file. |
|
|
|
* various callers of git-merge-recursive avoid forking it as an external |
|
process. |
|
|
|
* Git class defined in "Git.pm" can be subclasses a bit more easily. |
|
|
|
* We used to link GNU regex library as a compatibility layer for some |
|
platforms, but it turns out it is not necessary on most of them. |
|
|
|
* Some path handling routines used fixed number of buffers used alternately |
|
but depending on the call depth, this arrangement led to hard to track |
|
bugs. This issue is being addressed. |
|
|
|
|
|
Fixes since v1.6.0 |
|
------------------ |
|
|
|
All of the fixes in v1.6.0.X maintenance series are included in this |
|
release, unless otherwise noted. |
|
|
|
* "git add" and "git update-index" incorrectly allowed adding S/F when S |
|
is a tracked symlink that points at a directory D that has a path F in |
|
it (we still need to fix a similar nonsense when S is a submodule and F |
|
is a path in it). |
|
|
|
* "git diff --stdin" used to take two trees on a line and compared them, |
|
but we dropped support for such a use case long time ago. This has |
|
been resurrected. |
|
|
|
* Giving 3 or more tree-ish to "git diff" is supposed to show the combined |
|
diff from second and subsequent trees to the first one. b75271d ("git |
|
diff <tree>{3,}": do not reverse order of arguments, 2008-10-10) needs |
|
to be cherry-picked to 'maint'. |
|
|
|
* "git filter-branch" failed to rewrite a tag name with slashes in it. |
|
|
|
* "git repack" used to grab objects out of packs marked with .keep |
|
into a new pack (fix scheduled to be further downmerged to maint). |
|
|
|
* "git push --tags --all $there" failed with generic usage message without |
|
telling saying these two options are incompatible. |
|
|
|
* "git log --author/--committer" match used to potentially match the |
|
timestamp part, exposing internal implementation detail. Also these did |
|
not work with --fixed-strings match at all. |
|
|
|
* "git tag" did not complain about incompatible combination of options |
|
e.g. "tag -l -d" (fix scheduled to be further downmerged to maint). |
|
|
|
* Internal diff machinery had a corner case performance bug that choked on a |
|
large file with many repeated contents (fix scheduled to be further cherry- |
|
picked to maint). |
|
|
|
-- |
|
exec >/var/tmp/1 |
|
O=v1.6.0.4-697-g168d5bd |
|
echo O=$(git describe master) |
|
git shortlog --no-merges $O..master ^maint
|
|
|