summaryrefslogtreecommitdiff
path: root/devel/git-base
diff options
context:
space:
mode:
authoradam <adam>2016-06-14 16:50:03 +0000
committeradam <adam>2016-06-14 16:50:03 +0000
commit1c5ca2d5d1610a8b68f5bb4ddb4bd20efc82fd4c (patch)
tree6bf572a23ac195216d6d2a8f5adb907dc8e55219 /devel/git-base
parent37d0dfd182f8675d59382a93b3c7cc1d4a1f832b (diff)
downloadpkgsrc-1c5ca2d5d1610a8b68f5bb4ddb4bd20efc82fd4c.tar.gz
Git 2.9 Release Notes
===================== Backward compatibility notes ---------------------------- The end-user facing Porcelain level commands in the "git diff" and "git log" family by default enable the rename detection; you can still use "diff.renames" configuration variable to disable this. Merging two branches that have no common ancestor with "git merge" is by default forbidden now to prevent creating such an unusual merge by mistake. The output formats of "git log" that indents the commit log message by 4 spaces now expands HT in the log message by default. You can use the "--no-expand-tabs" option to disable this. "git commit-tree" plumbing command required the user to always sign its result when the user sets the commit.gpgsign configuration variable, which was an ancient mistake, which this release corrects. A script that drives commit-tree, if it relies on this mistake, now needs to read commit.gpgsign and pass the -S option as necessary. Updates since v2.8 ------------------ UI, Workflows & Features * Comes with git-multimail 1.3.1 (in contrib/). * The end-user facing commands like "git diff" and "git log" now enable the rename detection by default. * The credential.helper configuration variable is cumulative and there is no good way to override it from the command line. As a special case, giving an empty string as its value now serves as the signal to clear the values specified in various files. * A new "interactive.diffFilter" configuration can be used to customize the diff shown in "git add -i" sessions. * "git p4" now allows P4 author names to be mapped to Git author names. * "git rebase -x" can be used without passing "-i" option. * "git -c credential.<var>=<value> submodule" can now be used to propagate configuration variables related to credential helper down to the submodules. * "git tag" can create an annotated tag without explicitly given an "-a" (or "-s") option (i.e. when a tag message is given). A new configuration variable, tag.forceSignAnnotated, can be used to tell the command to create signed tag in such a situation. * "git merge" used to allow merging two branches that have no common base by default, which led to a brand new history of an existing project created and then get pulled by an unsuspecting maintainer, which allowed an unnecessary parallel history merged into the existing project. The command has been taught not to allow this by default, with an escape hatch "--allow-unrelated-histories" option to be used in a rare event that merges histories of two projects that started their lives independently. * "git pull" has been taught to pass the "--allow-unrelated-histories" option to underlying "git merge". * "git apply -v" learned to report paths in the patch that were skipped via --include/--exclude mechanism or being outside the current working directory. * Shell completion (in contrib/) updates. * The commit object name reported when "rebase -i" stops has been shortened. * "git worktree add" can be given "--no-checkout" option to only create an empty worktree without checking out the files. * "git mergetools" learned to drive ExamDiff. * "git pull --rebase" learned "--[no-]autostash" option, so that the rebase.autostash configuration variable set to true can be overridden from the command line. * When "git log" shows the log message indented by 4-spaces, the remainder of a line after a HT does not align in the way the author originally intended. The command now expands tabs by default to help such a case, and allows the users to override it with a new option, "--no-expand-tabs". * "git send-email" now uses a more readable timestamps when formulating a message ID. * "git rerere" can encounter two or more files with the same conflict signature that have to be resolved in different ways, but there was no way to record these separate resolutions. * "git p4" learned to record P4 jobs in Git commit that imports from the history in Perforce. * "git describe --contains" often made a hard-to-justify choice of tag to name a given commit, because it tried to come up with a name with smallest number of hops from a tag, causing an old commit whose close descendant that is recently tagged were not described with respect to an old tag but with a newer tag. It did not help that its computation of "hop" count was further tweaked to penalize being on a side branch of a merge. The logic has been updated to favor using the tag with the oldest tagger date, which is a lot easier to explain to the end users: "We describe a commit in terms of the (chronologically) oldest tag that contains the commit." * "git clone" learned the "--shallow-submodules" option. * HTTP transport clients learned to throw extra HTTP headers at the server, specified via http.extraHeader configuration variable. * The "--compaction-heuristic" option to "git diff" family of commands enables a heuristic to make the patch output more readable by using a blank line as a strong hint that the contents before and after it belong to logically separate units. It is still experimental. * A new configuration variable core.hooksPath allows customizing where the hook directory is. * An earlier addition of "sanitize_submodule_env" with 14111fc4 (git: submodule honor -c credential.* from command line, 2016-02-29) turned out to be a convoluted no-op; implement what it wanted to do correctly, and stop filtering settings given via "git -c var=val". * "git commit --dry-run" reported "No, no, you cannot commit." in one case where "git commit" would have allowed you to commit, and this improves it a little bit ("git commit --dry-run --short" still does not give you the correct answer, for example). This is a stop-gap measure in that "commit --short --dry-run" still gives an incorrect result. * The experimental "multiple worktree" feature gains more safety to forbid operations on a branch that is checked out or being actively worked on elsewhere, by noticing that e.g. it is being rebased. * "git format-patch" learned a new "--base" option to record what (public, well-known) commit the original series was built on in its output. * "git commit" learned to pay attention to the "commit.verbose" configuration variable and act as if the "--verbose" option was given from the command line. * Updated documentation gives hints to GMail users with two-factor auth enabled that they need app-specific-password when using "git send-email". * The manpage output of our documentation did not render well in terminal; typeset literals in bold by default to make them stand out more. * The mark-up in the top-level README.md file has been updated to typeset CLI command names differently from the body text. Performance, Internal Implementation, Development Support etc. * The embedded args argv-array in the child process is used to build the command line to run pack-objects instead of using a separate array of strings. * A test for tags has been restructured so that more parts of it can easily be run on a platform without a working GnuPG. * The startup_info data, which records if we are working inside a repository (among other things), are now uniformly available to Git subcommand implementations, and Git avoids attempting to touch references when we are not in a repository. * The command line argument parser for "receive-pack" has been rewritten to use parse-options. * A major part of "git submodule update" has been ported to C to take advantage of the recently added framework to run download tasks in parallel. Other updates to "git submodule" that move pieces of logic to C continues. * Rename bunch of tests on "git clone" for better organization. * The tests that involve running httpd leaked the system-wide configuration in /etc/gitconfig to the tested environment. * Build updates for MSVC. * The repository set-up sequence has been streamlined (the biggest change is that there is no longer git_config_early()), so that we do not attempt to look into refs/* when we know we do not have a Git repository. * Code restructuring around the "refs" API to prepare for pluggable refs backends. * Sources to many test helper binaries and the generated helpers have been moved to t/helper/ subdirectory to reduce clutter at the top level of the tree. * Unify internal logic between "git tag -v" and "git verify-tag" commands by making one directly call into the other. * "merge-recursive" strategy incorrectly checked if a path that is involved in its internal merge exists in the working tree. * The test scripts for "git p4" (but not "git p4" implementation itself) has been updated so that they would work even on a system where the installed version of Python is python 3. * As nobody maintains our in-tree git.spec.in and distros use their own spec file, we stopped pretending that we support "make rpm". * Move from "unsigned char[20]" to "struct object_id" continues. * The code for warning_errno/die_errno has been refactored and a new error_errno() reporting helper is introduced. (merge 1da045f nd/error-errno later to maint). * Running tests with '-x' option to trace the individual command executions is a useful way to debug test scripts, but some tests that capture the standard error stream and check what the command said can be broken with the trace output mixed in. When running our tests under "bash", however, we can redirect the trace output to another file descriptor to keep the standard error of programs being tested intact. * t0040 had too many unnecessary repetitions in its test data. Teach test-parse-options program so that a caller can tell what it expects in its output, so that these repetitions can be cleaned up. * Add perf test for "rebase -i". * Common mistakes when writing gitlink: in our documentation are found by "make check-docs". * t9xxx series has been updated primarily for readability, while fixing small bugs in it. A few scripted Porcelain commands have also been updated to fix possible bugs around their use of "test -z" and "test -n". * CI test was taught to run git-svn tests. * "git cat-file --batch-all" has been sped up, by taking advantage of the fact that it does not have to read a list of objects, in two ways. * test updates to make it more readable and maintainable. (merge e6273f4 es/t1500-modernize later to maint). * "make DEVELOPER=1" worked as expected; setting DEVELOPER=1 in config.mak didn't. (merge 51dd3e8 mm/makefile-developer-can-be-in-config-mak later to maint). * The way how "submodule--helper list" signals unmatch error to its callers has been updated. * A bash-ism "local" has been removed from "git submodule" scripted Porcelain. Also contains various documentation updates and code clean-ups.
Diffstat (limited to 'devel/git-base')
-rw-r--r--devel/git-base/PLIST3
-rw-r--r--devel/git-base/distinfo12
-rw-r--r--devel/git-base/patches/patch-aa20
3 files changed, 18 insertions, 17 deletions
diff --git a/devel/git-base/PLIST b/devel/git-base/PLIST
index fdfb83adc14..bc7cb04bdb1 100644
--- a/devel/git-base/PLIST
+++ b/devel/git-base/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.12 2016/02/07 10:27:23 adam Exp $
+@comment $NetBSD: PLIST,v 1.13 2016/06/14 16:50:04 adam Exp $
bin/git
bin/git-cvsserver
bin/git-receive-pack
@@ -177,6 +177,7 @@ libexec/git-core/mergetools/diffmerge
libexec/git-core/mergetools/diffuse
libexec/git-core/mergetools/ecmerge
libexec/git-core/mergetools/emerge
+libexec/git-core/mergetools/examdiff
libexec/git-core/mergetools/gvimdiff
libexec/git-core/mergetools/gvimdiff2
libexec/git-core/mergetools/gvimdiff3
diff --git a/devel/git-base/distinfo b/devel/git-base/distinfo
index 92090cfe3f6..37c20753a5b 100644
--- a/devel/git-base/distinfo
+++ b/devel/git-base/distinfo
@@ -1,10 +1,10 @@
-$NetBSD: distinfo,v 1.50 2016/06/12 13:27:03 wiz Exp $
+$NetBSD: distinfo,v 1.51 2016/06/14 16:50:04 adam Exp $
-SHA1 (git-2.8.4.tar.xz) = 2e1aec99d879b1170efd25383b04d28043fc6ff2
-RMD160 (git-2.8.4.tar.xz) = 9883ee08d0113bd52815a87eceb1b2de5b1bc2f3
-SHA512 (git-2.8.4.tar.xz) = 92c3b4437d1160cc23612b4df62646b80a1245d4ed482c3543ba19511f754a34d0185d5dd5d16f2a42bc3097bebc47ece0670c45a1c53ca38cbfbff7d43de87b
-Size (git-2.8.4.tar.xz) = 3982836 bytes
-SHA1 (patch-aa) = 38893bb1cff2668ac66e39fe1aa33de9636180d1
+SHA1 (git-2.9.0.tar.xz) = 7ac21a1ff58f57e7d40452a4aa8ec6c0d71ec709
+RMD160 (git-2.9.0.tar.xz) = 290dbf7092dafdd2a46f241f821e70ed8532aa79
+SHA512 (git-2.9.0.tar.xz) = 9433b4642482634d4c76884307d987155568c08a741285cff0eb3699de04d7ff970892f23587bdf6f9ea0083dd5aee652c3265842ba6cf789955e0040a3e5b6a
+Size (git-2.9.0.tar.xz) = 4014000 bytes
+SHA1 (patch-aa) = b419c3771945696da0411a358c231f0357766bc0
SHA1 (patch-ac) = 376cdd1c58b143c820ff6395987a8a77cf9b52ba
SHA1 (patch-ae) = 9bc2e6c7f0a8fbc385b6ffda638d3245a62dc5ca
SHA1 (patch-af) = 06460f220b4703a1ff98809006ec1aed5017bb23
diff --git a/devel/git-base/patches/patch-aa b/devel/git-base/patches/patch-aa
index 0b47efbcfd3..438224d99d3 100644
--- a/devel/git-base/patches/patch-aa
+++ b/devel/git-base/patches/patch-aa
@@ -1,17 +1,17 @@
-$NetBSD: patch-aa,v 1.6 2016/04/07 13:26:37 adam Exp $
+$NetBSD: patch-aa,v 1.7 2016/06/14 16:50:04 adam Exp $
---- Makefile.orig 2016-04-03 19:07:18.000000000 +0000
+--- Makefile.orig 2016-06-13 19:07:49.000000000 +0000
+++ Makefile
-@@ -379,8 +379,6 @@ GIT-VERSION-FILE: FORCE
-
- CFLAGS = -g -O2 -Wall
+@@ -385,8 +385,6 @@ DEVELOPER_CFLAGS = -Werror \
+ -Wunused \
+ -Wvla
LDFLAGS =
-ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
-ALL_LDFLAGS = $(LDFLAGS)
STRIP ?= strip
- ifdef DEVELOPER
-@@ -436,13 +434,9 @@ htmldir_relative = $(patsubst $(prefix)/
+ # Create as necessary, replace existing, make ranlib unneeded.
+@@ -430,13 +428,9 @@ htmldir_relative = $(patsubst $(prefix)/
export prefix bindir sharedir sysconfdir gitwebdir localedir
@@ -22,10 +22,10 @@ $NetBSD: patch-aa,v 1.6 2016/04/07 13:26:37 adam Exp $
-TAR = tar
FIND = find
-INSTALL = install
- RPMBUILD = rpmbuild
TCL_PATH = tclsh
TCLTK_PATH = wish
-@@ -1619,8 +1613,8 @@ ifdef DEFAULT_HELP_FORMAT
+ XGETTEXT = xgettext
+@@ -1613,8 +1607,8 @@ ifdef DEFAULT_HELP_FORMAT
BASIC_CFLAGS += -DDEFAULT_HELP_FORMAT='"$(DEFAULT_HELP_FORMAT)"'
endif
@@ -36,7 +36,7 @@ $NetBSD: patch-aa,v 1.6 2016/04/07 13:26:37 adam Exp $
export DIFF TAR INSTALL DESTDIR SHELL_PATH
-@@ -2315,11 +2309,10 @@ install: all
+@@ -2309,11 +2303,10 @@ install: all
ifndef NO_GETTEXT
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(localedir_SQ)'
(cd po/build/locale && $(TAR) cf - .) | \