Path to this page:
Subject: CVS commit: pkgsrc/devel
From: Adam Ciarcinski
Date: 2018-01-22 15:17:25
Message id: 20180122141725.295BDFBDE@cvs.NetBSD.org
Log Message:
git: updated to 2.16.0
Git 2.16 Release Notes
Backward compatibility notes and other notable changes.
* Use of an empty string as a pathspec element that is used for
'everything matches' is now an error.
Updates since v2.15
UI, Workflows & Features
* An empty string as a pathspec element that means "everything"
i.e. 'git add ""', is now illegal. We started this by first
deprecating and warning a pathspec that has such an element in
2.11 (Nov 2016).
* A hook script that is set unexecutable is simply ignored. Git
notifies when such a file is ignored, unless the message is
squelched via advice.ignoredHook configuration.
* "git pull" has been taught to accept "--[no-]signoff" \
option and
pass it down to "git merge".
* The "--push-option=<string>" option to "git push" \
now defaults to a
list of strings configured via push.pushOption variable.
* "gitweb" checks if a directory is searchable with Perl's "-x"
operator, which can be enhanced by using "filetest 'access'"
pragma, which now we do.
* "git stash save" has been deprecated in favour of "git stash \
push".
* The set of paths output from "git status --ignored" was tied
closely with its "--untracked=<mode>" option, but now it can be
controlled more flexibly. Most notably, a directory that is
ignored because it is listed to be ignored in the ignore/exclude
mechanism can be handled differently from a directory that ends up
to be ignored only because all files in it are ignored.
* The remote-helper for talking to MediaWiki has been updated to
truncate an overlong pagename so that ".mw" suffix can still be
added.
* The remote-helper for talking to MediaWiki has been updated to
work with mediawiki namespaces.
* The "--format=..." option "git for-each-ref" takes \
learned to show
the name of the 'remote' repository and the ref at the remote side
that is affected for 'upstream' and 'push' via "%(push:remotename)"
and friends.
* Doc and message updates to teach users "bisect view" is a synonym
for "bisect visualize".
* "git bisect run" that did not specify any command to run used to go
ahead and treated all commits to be tested as 'good'. This has
been corrected by making the command error out.
* The SubmittingPatches document has been converted to produce an
HTML version via AsciiDoc/Asciidoctor.
* We learned to optionally talk to a file system monitor via new
fsmonitor extension to speed up "git status" and other operations
that need to see which paths have been modified. Currently we only
support "watchman". See File System Monitor section of
git-update-index(1) for more detail.
* The "diff" family of commands learned to ignore differences in
carriage return at the end of line.
* Places that know about "sendemail.to", like documentation and shell
completion (in contrib/) have been taught about "sendemail.tocmd",
too.
* "git add --renormalize ." is a new and safer way to record the fact
that you are correcting the end-of-line convention and other
"convert_to_git()" glitches in the in-repository data.
* "git branch" and "git checkout -b" are now forbidden from \
creating
a branch whose name is "HEAD".
* "git branch --list" learned to show its output through the pager by
default when the output is going to a terminal, which is controlled
by the pager.branch configuration variable. This is similar to a
recent change to "git tag --list".
* "git grep -W", "git diff -W" and their friends learned a \
heuristic
to extend a pre-context beyond the line that matches the "function
pattern" (aka "diff.*.xfuncname") to include a comment block, if
exists, that immediately precedes it.
* "git config --expiry-date gc.reflogexpire" can read \
"2.weeks" from
the configuration and report it as a timestamp, just like "--int"
would read "1k" and report 1024, to help consumption by scripts.
* The shell completion (in contrib/) learned that "git pull" can take
the "--autostash" option.
* The tagnames "git log --decorate" uses to annotate the commits can
now be limited to subset of available refs with the two additional
options, --decorate-refs[-exclude]=<pattern>.
* "git grep" compiled with libpcre2 sometimes triggered a segfault,
which is being fixed.
* "git send-email" tries to see if the sendmail program is available
in /usr/lib and /usr/sbin; extend the list of locations to be
checked to also include directories on $PATH.
* "git diff" learned, "--anchored", a variant of the \
"--patience"
algorithm, to which the user can specify which 'unique' line to be
used as anchoring points.
* The way "git worktree add" determines what branch to create from
where and checkout in the new worktree has been updated a bit.
* Ancient part of codebase still shows dots after an abbreviated
object name just to show that it is not a full object name, but
these ellipses are confusing to people who newly discovered Git
who are used to seeing abbreviated object names and find them
confusing with the range syntax.
* With a configuration variable rebase.abbreviateCommands set,
"git rebase -i" produces the todo list with a single-letter
command names.
* "git worktree add" learned to run the post-checkout hook, just like
"git checkout" does, after the initial checkout.
* "git svn" has been updated to strip CRs in the commit messages, as
recent versions of Subversion rejects them.
* "git imap-send" did not correctly quote the folder name when
making a request to the server, which has been corrected.
* Error messages from "git rebase" have been somewhat cleaned up.
* Git has been taught to support an https:// URL used for http.proxy
when using recent versions of libcurl.
* "git merge" learned to pay attention to merge.verifySignatures
configuration variable and pretend as if '--verify-signatures'
option was given from the command line.
* "git describe" was taught to dig trees deeper to find a
<commit-ish>:<path> that refers to a given blob object.
Files: