* gitk can call out to git-gui to view "git blame" output; git-gui in turn
can run gitk from its blame view.
-(portability)
+* Various git-gui updates including updated translations.
+
+* Various gitweb updates from repo.or.cz installation.
-* ...
+(portability)
-(documentation)
+* 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.
(performance)
* 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
to a non-zero value to accept the suggestion when git can uniquely
guess.
+* "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 and
- HTML contents.
+* "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" hunk header pattern for ObjC has been added.
+
+* 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 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.
+
Fixes since v1.6.0
------------------
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 push --tags --all $there" failed with generic usage message without
--
exec >/var/tmp/1
-O=v1.6.0.2-295-g34a5d35
+O=v1.6.0.3-610-g94dc4b8
echo O=$(git describe master)
git shortlog --no-merges $O..master ^maint