|
Foreign interfaces, subsystems and ports.
* The HTTP transport, when talking GSS-Negotiate, uses "100
Continue" response to avoid having to rewind and resend a large
payload, which may not be always doable.
* Various bugfixes to remote-bzr and remote-hg (in contrib/).
* The build procedure is aware of MirBSD now.
* Various "git p4", "git svn" and "gitk" updates.
UI, Workflows & Features
* Fetching from a shallowly-cloned repository used to be forbidden,
primarily because the codepaths involved were not carefully vetted
and we did not bother supporting such usage. This release attempts
to allow object transfer out of a shallowly-cloned repository in a
more controlled way (i.e. the receiver becomes a shallow repository
with a truncated history).
* Just like we give a reasonable default for "less" via the LESS
environment variable, we now specify a reasonable default for "lv"
via the "LV" environment variable when spawning the pager.
* Two-level configuration variable names in "branch.*" and "remote.*"
hierarchies, whose variables are predominantly three-level, were
not completed by hitting a <TAB> in bash and zsh completions.
* Fetching a 'frotz' branch with "git fetch", while a 'frotz/nitfol'
remote-tracking branch from an earlier fetch was still there, would
error out, primarily because the command was not told that it is
allowed to lose any information on our side. "git fetch --prune"
now can be used to remove 'frotz/nitfol' to make room for fetching and
storing the 'frotz' remote-tracking branch.
* "diff.orderfile=<file>" configuration variable can be used to
pretend as if the "-O<file>" option were given from the command
line of "git diff", etc.
* The negative pathspec syntax allows "git log -- . ':!dir'" to tell
us "I am interested in everything but 'dir' directory".
* "git difftool" shows how many different paths there are in total,
and how many of them have been shown so far, to indicate progress.
* "git push origin master" used to push our 'master' branch to update
the 'master' branch at the 'origin' repository. This has been
enhanced to use the same ref mapping "git push origin" would use to
determine what ref at the 'origin' to be updated with our 'master'.
For example, with this configuration
[remote "origin"]
push = refs/heads/*:refs/review/*
that would cause "git push origin" to push out our local branches
to corresponding refs under refs/review/ hierarchy at 'origin',
"git push origin master" would update 'refs/review/master' over
there. Alternatively, if push.default is set to 'upstream' and our
'master' is set to integrate with 'topic' from the 'origin' branch,
running "git push origin" while on our 'master' would update their
'topic' branch, and running "git push origin master" while on any
of our branches does the same.
* "gitweb" learned to treat ref hierarchies other than refs/heads as
if they are additional branch namespaces (e.g. refs/changes/ in
Gerrit).
* "git for-each-ref --format=..." learned a few formatting directives;
e.g. "%(color:red)%(HEAD)%(color:reset) %(refname:short) %(subject)".
* The command string given to "git submodule foreach" is passed
directly to the shell, without being eval'ed. This is a backward
incompatible change that may break existing users.
* "git log" and friends learned the "--exclude=<glob>" option, to
allow people to say "list history of all branches except those that
match this pattern" with "git log --exclude='*/*' --branches".
* "git rev-parse --parseopt" learned a new "--stuck-long" option to
help scripts parse options with an optional parameter.
* The "--tags" option to "git fetch" no longer tells the command to
fetch _only_ the tags. It instead fetches tags _in addition to_
what are fetched by the same command line without the option.
|