Sat Feb 25 08:32:57 2017 UTC ()
Git 2.12 Release Notes
======================

Backward compatibility notes.

 * Use of an empty string that is used for 'everything matches' is
   still warned and Git asks users to use a more explicit '.' for that
   instead.  The hope is that existing users will not mind this
   change, and eventually the warning can be turned into a hard error,
   upgrading the deprecation into removal of this (mis)feature.  That
   is not scheduled to happen in the upcoming release (yet).

 * The historical argument order "git merge <msg> HEAD <commit>..."
   has been deprecated for quite some time, and will be removed in a
   future release.

 * An ancient script "git relink" has been removed.

Updates since v2.11
-------------------

UI, Workflows & Features

 * Various updates to "git p4".

 * "git p4" didn't interact with the internal of .git directory
   correctly in the modern "git-worktree"-enabled world.

 * "git branch --list" and friends learned "--ignore-case" option to
   optionally sort branches and tags case insensitively.

 * In addition to %(subject), %(body), "log --pretty=format:..."
   learned a new placeholder %(trailers).

 * "git rebase" learned "--quit" option, which allows a user to
   remove the metadata left by an earlier "git rebase" that was
   manually aborted without using "git rebase --abort".

 * "git clone --reference $there --recurse-submodules $super" has been
   taught to guess repositories usable as references for submodules of
   $super that are embedded in $there while making a clone of the
   superproject borrow objects from $there; extend the mechanism to
   also allow submodules of these submodules to borrow repositories
   embedded in these clones of the submodules embedded in the clone of
   the superproject.

 * Porcelain scripts written in Perl are getting internationalized.

 * "git merge --continue" has been added as a synonym to "git commit"
   to conclude a merge that has stopped due to conflicts.

 * Finer-grained control of what protocols are allowed for transports
   during clone/fetch/push have been enabled via a new configuration
   mechanism.

 * "git shortlog" learned "--committer" option to group commits by
   committer, instead of author.

 * GitLFS integration with "git p4" has been updated.

 * The isatty() emulation for Windows has been updated to eradicate
   the previous hack that depended on internals of (older) MSVC
   runtime.

 * Some platforms no longer understand "latin-1" that is still seen in
   the wild in e-mail headers; replace them with "iso-8859-1" that is
   more widely known when conversion fails from/to it.

 * "git grep" has been taught to optionally recurse into submodules.

 * "git rm" used to refuse to remove a submodule when it has its own
   git repository embedded in its working tree.  It learned to move
   the repository away to $GIT_DIR/modules/ of the superproject
   instead, and allow the submodule to be deleted (as long as there
   will be no loss of local modifications, that is).

 * A recent updates to "git p4" was not usable for older p4 but it
   could be made to work with minimum changes.  Do so.

 * "git diff" learned diff.interHunkContext configuration variable
   that gives the default value for its --inter-hunk-context option.

 * The prereleaseSuffix feature of version comparison that is used in
   "git tag -l" did not correctly when two or more prereleases for the
   same release were present (e.g. when 2.0, 2.0-beta1, and 2.0-beta2
   are there and the code needs to compare 2.0-beta1 and 2.0-beta2).

 * "git submodule push" learned "--recurse-submodules=only option to
   push submodules out without pushing the top-level superproject.

 * "git tag" and "git verify-tag" learned to put GPG verification
   status in their "--format=<placeholders>" output format.

 * An ancient repository conversion tool left in contrib/ has been
   removed.

 * "git show-ref HEAD" used with "--verify" because the user is not
   interested in seeing refs/remotes/origin/HEAD, and used with
   "--head" because the user does not want HEAD to be filtered out,
   i.e. "git show-ref --head --verify HEAD", did not work as expected.

 * "git submodule add" used to be confused and refused to add a
   locally created repository; users can now use "--force" option
   to add them.
   (merge 619acfc78c sb/submodule-add-force later to maint).

 * Some people feel the default set of colors used by "git log --graph"
   rather limiting.  A mechanism to customize the set of colors has
   been introduced.

 * "git read-tree" and its underlying unpack_trees() machinery learned
   to report problematic paths prefixed with the --super-prefix option.

 * When a submodule "A", which has another submodule "B" nested within
   it, is "absorbed" into the top-level superproject, the inner
   submodule "B" used to be left in a strange state.  The logic to
   adjust the .git pointers in these submodules has been corrected.

 * The user can specify a custom update method that is run when
   "submodule update" updates an already checked out submodule.  This
   was ignored when checking the submodule out for the first time and
   we instead always just checked out the commit that is bound to the
   path in the superproject's index.

 * The command line completion (in contrib/) learned that
   "git diff --submodule=" can take "diff" as a recently added option.

 * The "core.logAllRefUpdates" that used to be boolean has been
   enhanced to take 'always' as well, to record ref updates to refs
   other than the ones that are expected to be updated (i.e. branches,
   remote-tracking branches and notes).

 * Comes with more command line completion (in contrib/) for recently
   introduced options.


(adam)
diff -r1.52 -r1.53 pkgsrc/devel/git/Makefile.version
diff -r1.14 -r1.15 pkgsrc/devel/git-base/PLIST
diff -r1.58 -r1.59 pkgsrc/devel/git-base/distinfo
diff -r1.2 -r1.3 pkgsrc/devel/git-base/patches/patch-ac
diff -r1.5 -r1.6 pkgsrc/devel/git-docs/PLIST
diff -r1.5 -r1.6 pkgsrc/devel/git-gitk/PLIST

cvs diff -r1.52 -r1.53 pkgsrc/devel/git/Makefile.version (expand / switch to unified diff)

--- pkgsrc/devel/git/Makefile.version 2017/02/04 11:14:47 1.52
+++ pkgsrc/devel/git/Makefile.version 2017/02/25 08:32:57 1.53
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
1# $NetBSD: Makefile.version,v 1.52 2017/02/04 11:14:47 adam Exp $ 1# $NetBSD: Makefile.version,v 1.53 2017/02/25 08:32:57 adam Exp $
2# 2#
3# used by devel/git/Makefile.common 3# used by devel/git/Makefile.common
4# used by devel/git-cvs/Makefile 4# used by devel/git-cvs/Makefile
5# used by devel/git-svn/Makefile 5# used by devel/git-svn/Makefile
6 6
7GIT_VERSION= 2.11.1 7GIT_VERSION= 2.12.0

cvs diff -r1.14 -r1.15 pkgsrc/devel/git-base/PLIST (expand / switch to unified diff)

--- pkgsrc/devel/git-base/PLIST 2016/09/07 08:56:33 1.14
+++ pkgsrc/devel/git-base/PLIST 2017/02/25 08:32:57 1.15
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.14 2016/09/07 08:56:33 adam Exp $ 1@comment $NetBSD: PLIST,v 1.15 2017/02/25 08:32:57 adam Exp $
2bin/git 2bin/git
3bin/git-cvsserver 3bin/git-cvsserver
4bin/git-receive-pack 4bin/git-receive-pack
5bin/git-shell 5bin/git-shell
6bin/git-upload-archive 6bin/git-upload-archive
7bin/git-upload-pack 7bin/git-upload-pack
8libexec/git-core/git 8libexec/git-core/git
9libexec/git-core/git-add 9libexec/git-core/git-add
10libexec/git-core/git-add--interactive 10libexec/git-core/git-add--interactive
11libexec/git-core/git-am 11libexec/git-core/git-am
12libexec/git-core/git-annotate 12libexec/git-core/git-annotate
13libexec/git-core/git-apply 13libexec/git-core/git-apply
14libexec/git-core/git-archimport 14libexec/git-core/git-archimport
@@ -105,27 +105,26 @@ libexec/git-core/git-parse-remote @@ -105,27 +105,26 @@ libexec/git-core/git-parse-remote
105libexec/git-core/git-patch-id 105libexec/git-core/git-patch-id
106libexec/git-core/git-prune 106libexec/git-core/git-prune
107libexec/git-core/git-prune-packed 107libexec/git-core/git-prune-packed
108libexec/git-core/git-pull 108libexec/git-core/git-pull
109libexec/git-core/git-push 109libexec/git-core/git-push
110libexec/git-core/git-quiltimport 110libexec/git-core/git-quiltimport
111libexec/git-core/git-read-tree 111libexec/git-core/git-read-tree
112libexec/git-core/git-rebase 112libexec/git-core/git-rebase
113libexec/git-core/git-rebase--am 113libexec/git-core/git-rebase--am
114libexec/git-core/git-rebase--interactive 114libexec/git-core/git-rebase--interactive
115libexec/git-core/git-rebase--merge 115libexec/git-core/git-rebase--merge
116libexec/git-core/git-receive-pack 116libexec/git-core/git-receive-pack
117libexec/git-core/git-reflog 117libexec/git-core/git-reflog
118libexec/git-core/git-relink 
119libexec/git-core/git-remote 118libexec/git-core/git-remote
120libexec/git-core/git-remote-ext 119libexec/git-core/git-remote-ext
121libexec/git-core/git-remote-fd 120libexec/git-core/git-remote-fd
122libexec/git-core/git-remote-ftp 121libexec/git-core/git-remote-ftp
123libexec/git-core/git-remote-ftps 122libexec/git-core/git-remote-ftps
124libexec/git-core/git-remote-http 123libexec/git-core/git-remote-http
125libexec/git-core/git-remote-https 124libexec/git-core/git-remote-https
126libexec/git-core/git-remote-testsvn 125libexec/git-core/git-remote-testsvn
127libexec/git-core/git-repack 126libexec/git-core/git-repack
128libexec/git-core/git-replace 127libexec/git-core/git-replace
129libexec/git-core/git-request-pull 128libexec/git-core/git-request-pull
130libexec/git-core/git-rerere 129libexec/git-core/git-rerere
131libexec/git-core/git-reset 130libexec/git-core/git-reset

cvs diff -r1.58 -r1.59 pkgsrc/devel/git-base/distinfo (expand / switch to unified diff)

--- pkgsrc/devel/git-base/distinfo 2017/02/04 11:14:47 1.58
+++ pkgsrc/devel/git-base/distinfo 2017/02/25 08:32:57 1.59
@@ -1,15 +1,15 @@ @@ -1,15 +1,15 @@
1$NetBSD: distinfo,v 1.58 2017/02/04 11:14:47 adam Exp $ 1$NetBSD: distinfo,v 1.59 2017/02/25 08:32:57 adam Exp $
2 2
3SHA1 (git-2.11.1.tar.xz) = c253e1d3e60d6e512a21e220a7e1c21bda8f28b7 3SHA1 (git-2.12.0.tar.xz) = 42aafae5c29324b1fee0264a6c804fdffbd1d8d1
4RMD160 (git-2.11.1.tar.xz) = b0250e6c09ee4aa5516bab2b355854c20673ebdc 4RMD160 (git-2.12.0.tar.xz) = 8ae8a4dc51973d4ad154ce0f08b23122601b9db9
5SHA512 (git-2.11.1.tar.xz) = c9d4196ad9c4f656b5a25fe688c06248bfce4fadac38e9bc835e5e9063ab95e3d4b3db4174acea0b3b64c5455adc93d39870f2b6009d2dd6aa0edb5a5f5bda40 5SHA512 (git-2.12.0.tar.xz) = 8696de600f6800748096de9ccb54a0ba59a9128617fc6c9a5bc48857798a775209b99ad484aef777d5d6b5c3ac172e5e5071740d073e0ac8d52c54561a9bed0b
6Size (git-2.11.1.tar.xz) = 4208132 bytes 6Size (git-2.12.0.tar.xz) = 4269944 bytes
7SHA1 (patch-aa) = a58f3c2f45c1fbafd751d10b9ef34e6c9afc2c6f 7SHA1 (patch-aa) = a58f3c2f45c1fbafd751d10b9ef34e6c9afc2c6f
8SHA1 (patch-ac) = 376cdd1c58b143c820ff6395987a8a77cf9b52ba 8SHA1 (patch-ac) = e5d2112d158fe493a89b244a10d2e4b998a23d98
9SHA1 (patch-ae) = 9bc2e6c7f0a8fbc385b6ffda638d3245a62dc5ca 9SHA1 (patch-ae) = 9bc2e6c7f0a8fbc385b6ffda638d3245a62dc5ca
10SHA1 (patch-af) = 06460f220b4703a1ff98809006ec1aed5017bb23 10SHA1 (patch-af) = 06460f220b4703a1ff98809006ec1aed5017bb23
11SHA1 (patch-ag) = 4f0b9a5745203ea7ef369c8272b3ea7c644762f0 11SHA1 (patch-ag) = 4f0b9a5745203ea7ef369c8272b3ea7c644762f0
12SHA1 (patch-ah) = f22a2160631fb624e9e20616c68ad1a4aa2bebc7 12SHA1 (patch-ah) = f22a2160631fb624e9e20616c68ad1a4aa2bebc7
13SHA1 (patch-ai) = 56b63d4790a11f5eb128186ad5efdd1bcf102f2e 13SHA1 (patch-ai) = 56b63d4790a11f5eb128186ad5efdd1bcf102f2e
14SHA1 (patch-config.mak.uname) = 5316873147acf5b6ef29e426946280bb6441c886 14SHA1 (patch-config.mak.uname) = 5316873147acf5b6ef29e426946280bb6441c886
15SHA1 (patch-wrapper.c) = 1fb629ec301d0431cb5bebd716b1c3a7ae45577f 15SHA1 (patch-wrapper.c) = 1fb629ec301d0431cb5bebd716b1c3a7ae45577f

cvs diff -r1.2 -r1.3 pkgsrc/devel/git-base/patches/Attic/patch-ac (expand / switch to unified diff)

--- pkgsrc/devel/git-base/patches/Attic/patch-ac 2014/08/01 19:18:39 1.2
+++ pkgsrc/devel/git-base/patches/Attic/patch-ac 2017/02/25 08:32:57 1.3
@@ -1,17 +1,18 @@ @@ -1,17 +1,18 @@
1$NetBSD: patch-ac,v 1.2 2014/08/01 19:18:39 schmonz Exp $ 1$NetBSD: patch-ac,v 1.3 2017/02/25 08:32:57 adam Exp $
2 2
3--- gitk-git/Makefile.orig 2014-05-30 21:38:10.000000000 +0000 3--- gitk-git/Makefile.orig 2017-02-24 19:17:39.000000000 +0000
4+++ gitk-git/Makefile 4+++ gitk-git/Makefile
5@@ -50,9 +50,9 @@ endif 5@@ -50,10 +50,9 @@ endif
6 all:: gitk-wish $(ALL_MSGFILES) 6 all:: gitk-wish $(ALL_MSGFILES)
7  7
8 install:: all 8 install:: all
 9- $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
9- $(INSTALL) -m 755 gitk-wish '$(DESTDIR_SQ)$(bindir_SQ)'/gitk 10- $(INSTALL) -m 755 gitk-wish '$(DESTDIR_SQ)$(bindir_SQ)'/gitk
10- $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(msgsdir_SQ)' 11- $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(msgsdir_SQ)'
11- $(foreach p,$(ALL_MSGFILES), $(INSTALL) -m 644 $p '$(DESTDIR_SQ)$(msgsdir_SQ)' &&) true 12- $(foreach p,$(ALL_MSGFILES), $(INSTALL) -m 644 $p '$(DESTDIR_SQ)$(msgsdir_SQ)' &&) true
12+ $(BSD_INSTALL_SCRIPT) gitk-wish '$(DESTDIR_SQ)$(bindir_SQ)'/gitk 13+ $(BSD_INSTALL_SCRIPT) gitk-wish '$(DESTDIR_SQ)$(bindir_SQ)'/gitk
13+ $(BSD_INSTALL_DATA_DIR) '$(DESTDIR_SQ)$(msgsdir_SQ)' 14+ $(BSD_INSTALL_DATA_DIR) '$(DESTDIR_SQ)$(msgsdir_SQ)'
14+ $(foreach p,$(ALL_MSGFILES), $(BSD_INSTALL_DATA) $p '$(DESTDIR_SQ)$(msgsdir_SQ)' &&) true 15+ $(foreach p,$(ALL_MSGFILES), $(BSD_INSTALL_DATA) $p '$(DESTDIR_SQ)$(msgsdir_SQ)' &&) true
15  16
16 uninstall:: 17 uninstall::
17 $(foreach p,$(ALL_MSGFILES), $(RM) '$(DESTDIR_SQ)$(msgsdir_SQ)'/$(notdir $p) &&) true 18 $(foreach p,$(ALL_MSGFILES), $(RM) '$(DESTDIR_SQ)$(msgsdir_SQ)'/$(notdir $p) &&) true

cvs diff -r1.5 -r1.6 pkgsrc/devel/git-docs/PLIST (expand / switch to unified diff)

--- pkgsrc/devel/git-docs/PLIST 2015/07/31 12:57:23 1.5
+++ pkgsrc/devel/git-docs/PLIST 2017/02/25 08:32:57 1.6
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.5 2015/07/31 12:57:23 adam Exp $ 1@comment $NetBSD: PLIST,v 1.6 2017/02/25 08:32:57 adam Exp $
2man/man1/git-add.1 2man/man1/git-add.1
3man/man1/git-am.1 3man/man1/git-am.1
4man/man1/git-annotate.1 4man/man1/git-annotate.1
5man/man1/git-apply.1 5man/man1/git-apply.1
6man/man1/git-archimport.1 6man/man1/git-archimport.1
7man/man1/git-archive.1 7man/man1/git-archive.1
8man/man1/git-bisect.1 8man/man1/git-bisect.1
9man/man1/git-blame.1 9man/man1/git-blame.1
10man/man1/git-branch.1 10man/man1/git-branch.1
11man/man1/git-bundle.1 11man/man1/git-bundle.1
12man/man1/git-cat-file.1 12man/man1/git-cat-file.1
13man/man1/git-check-attr.1 13man/man1/git-check-attr.1
14man/man1/git-check-ignore.1 14man/man1/git-check-ignore.1
@@ -89,27 +89,26 @@ man/man1/git-pack-objects.1 @@ -89,27 +89,26 @@ man/man1/git-pack-objects.1
89man/man1/git-pack-redundant.1 89man/man1/git-pack-redundant.1
90man/man1/git-pack-refs.1 90man/man1/git-pack-refs.1
91man/man1/git-parse-remote.1 91man/man1/git-parse-remote.1
92man/man1/git-patch-id.1 92man/man1/git-patch-id.1
93man/man1/git-prune-packed.1 93man/man1/git-prune-packed.1
94man/man1/git-prune.1 94man/man1/git-prune.1
95man/man1/git-pull.1 95man/man1/git-pull.1
96man/man1/git-push.1 96man/man1/git-push.1
97man/man1/git-quiltimport.1 97man/man1/git-quiltimport.1
98man/man1/git-read-tree.1 98man/man1/git-read-tree.1
99man/man1/git-rebase.1 99man/man1/git-rebase.1
100man/man1/git-receive-pack.1 100man/man1/git-receive-pack.1
101man/man1/git-reflog.1 101man/man1/git-reflog.1
102man/man1/git-relink.1 
103man/man1/git-remote-ext.1 102man/man1/git-remote-ext.1
104man/man1/git-remote-fd.1 103man/man1/git-remote-fd.1
105man/man1/git-remote-testgit.1 104man/man1/git-remote-testgit.1
106man/man1/git-remote.1 105man/man1/git-remote.1
107man/man1/git-repack.1 106man/man1/git-repack.1
108man/man1/git-replace.1 107man/man1/git-replace.1
109man/man1/git-request-pull.1 108man/man1/git-request-pull.1
110man/man1/git-rerere.1 109man/man1/git-rerere.1
111man/man1/git-reset.1 110man/man1/git-reset.1
112man/man1/git-rev-list.1 111man/man1/git-rev-list.1
113man/man1/git-rev-parse.1 112man/man1/git-rev-parse.1
114man/man1/git-revert.1 113man/man1/git-revert.1
115man/man1/git-rm.1 114man/man1/git-rm.1

cvs diff -r1.5 -r1.6 pkgsrc/devel/git-gitk/PLIST (expand / switch to unified diff)

--- pkgsrc/devel/git-gitk/PLIST 2016/12/05 14:07:32 1.5
+++ pkgsrc/devel/git-gitk/PLIST 2017/02/25 08:32:57 1.6
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.5 2016/12/05 14:07:32 adam Exp $ 1@comment $NetBSD: PLIST,v 1.6 2017/02/25 08:32:57 adam Exp $
2bin/gitk 2bin/gitk
3libexec/git-core/git-citool 3libexec/git-core/git-citool
4libexec/git-core/git-gui 4libexec/git-core/git-gui
5libexec/git-core/git-gui--askpass 5libexec/git-core/git-gui--askpass
6share/git-gui/lib/about.tcl 6share/git-gui/lib/about.tcl
7share/git-gui/lib/blame.tcl 7share/git-gui/lib/blame.tcl
8share/git-gui/lib/branch.tcl 8share/git-gui/lib/branch.tcl
9share/git-gui/lib/branch_checkout.tcl 9share/git-gui/lib/branch_checkout.tcl
10share/git-gui/lib/branch_create.tcl 10share/git-gui/lib/branch_create.tcl
11share/git-gui/lib/branch_delete.tcl 11share/git-gui/lib/branch_delete.tcl
12share/git-gui/lib/branch_rename.tcl 12share/git-gui/lib/branch_rename.tcl
13share/git-gui/lib/browser.tcl 13share/git-gui/lib/browser.tcl
14share/git-gui/lib/checkout_op.tcl 14share/git-gui/lib/checkout_op.tcl
@@ -63,16 +63,17 @@ share/git-gui/lib/tools.tcl @@ -63,16 +63,17 @@ share/git-gui/lib/tools.tcl
63share/git-gui/lib/tools_dlg.tcl 63share/git-gui/lib/tools_dlg.tcl
64share/git-gui/lib/transport.tcl 64share/git-gui/lib/transport.tcl
65share/git-gui/lib/win32.tcl 65share/git-gui/lib/win32.tcl
66share/git-gui/lib/win32_shortcut.js 66share/git-gui/lib/win32_shortcut.js
67share/gitk/lib/msgs/bg.msg 67share/gitk/lib/msgs/bg.msg
68share/gitk/lib/msgs/ca.msg 68share/gitk/lib/msgs/ca.msg
69share/gitk/lib/msgs/de.msg 69share/gitk/lib/msgs/de.msg
70share/gitk/lib/msgs/es.msg 70share/gitk/lib/msgs/es.msg
71share/gitk/lib/msgs/fr.msg 71share/gitk/lib/msgs/fr.msg
72share/gitk/lib/msgs/hu.msg 72share/gitk/lib/msgs/hu.msg
73share/gitk/lib/msgs/it.msg 73share/gitk/lib/msgs/it.msg
74share/gitk/lib/msgs/ja.msg 74share/gitk/lib/msgs/ja.msg
75share/gitk/lib/msgs/pt_br.msg 75share/gitk/lib/msgs/pt_br.msg
 76share/gitk/lib/msgs/pt_pt.msg
76share/gitk/lib/msgs/ru.msg 77share/gitk/lib/msgs/ru.msg
77share/gitk/lib/msgs/sv.msg 78share/gitk/lib/msgs/sv.msg
78share/gitk/lib/msgs/vi.msg 79share/gitk/lib/msgs/vi.msg