Re: [ANNOUNCE] Git v2.12.0
On Fri, Feb 24, 2017 at 8:28 PM, Junio C Hamano wrote: > The latest feature release Git v2.12.0 is now available at the > usual places. It is comprised of 517 non-merge commits since > v2.11.0, contributed by 80 people, 24 of which are new faces. Yay, some explanations / notes / elaborations: > * "git diff" learned diff.interHunkContext configuration variable >that gives the default value for its --inter-hunk-context option. This is really cool. Now if you have e.g. lots of changed lines each 10 lines apart --inter-hunk-context=10 will show those all as one big hunk, instead of needing to specify -U10 as you had to before, which would give all hunks a context of 10 lines. > * An ancient repository conversion tool left in contrib/ has been >removed. I thought "what tool?" so here's what this is. git.git was born on April 7, 2005. For the first 13 days we'd hash the contents of *compressed* blobs, not their uncompressed contents. Linus changed this in: https://github.com/git/git/commit/d98b46f8d9 This tool was the ancient tool to convert these old incompatible repositories from the old format. If someone hasn't gotten around to this since 2005 they probably aren't ever going to do it :) > * 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. This is controlled via the log.graphColors variable. E.g.: git -c log.graphColors="red, green, yellow" log --graph HEAD~100.. Does anyone have a prettier invocation? > * "git diff" and its family had two experimental heuristics to shift >the contents of a hunk to make the patch easier to read. One of >them turns out to be better than the other, so leave only the >"--indent-heuristic" option and remove the other one. ... the other one being --compaction-heuristic.
Re: [ANNOUNCE] Git v2.12.0
On Sat, Feb 25, 2017 at 12:31:21AM -0800, Junio C Hamano wrote: > Willy Tarreau writes: > > > Hi Junio, > > > > On Fri, Feb 24, 2017 at 11:28:58AM -0800, Junio C Hamano wrote: > >> * 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). > > > > FWIW '.' is not equivalent to '' when it comes to grep or such commands, > > I am amused and amazed ;-). > > The above is not about "grep" but was meant to describe "pathspec". > We used to take "" as a pathspec element that means "every path > matches", but recently started deprecating it and ask users to be > more explicit by using "." (as a directory as a pathspec element > matches everything inside the directory). We are not changing the > pattern matching done by "git grep" or "log --grep". What is > changing is that between the two that means the same thing: > > cd t/ && git log "" > cd t/ && git log . > > the former is deprecated. Ah that's fun indeed I never used it like this :-) > I find it amusing that I have been writing the above in the draft > release notes without realizing that I failed to say that it is > about pathspec for quite some time, and without realizing that the > above can be misinterpreted as if it is talking about grep patterns. > > And I find it amazing that it took this long for somebody to spot > that misleading vagueness in this description and point it out. > > It should probably be updated to start like so: > > Use of an empty string as a pathspec element that is used > for 'everything matches' is ... Hey it's the usual matter of perspective and context. When you know what you do it's always obvious when you explain it while for others something different is obvious :-) Thanks for your clarification! Willy
Re: [ANNOUNCE] Git v2.12.0
Willy Tarreau writes: > Hi Junio, > > On Fri, Feb 24, 2017 at 11:28:58AM -0800, Junio C Hamano wrote: >> * 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). > > FWIW '.' is not equivalent to '' when it comes to grep or such commands, I am amused and amazed ;-). The above is not about "grep" but was meant to describe "pathspec". We used to take "" as a pathspec element that means "every path matches", but recently started deprecating it and ask users to be more explicit by using "." (as a directory as a pathspec element matches everything inside the directory). We are not changing the pattern matching done by "git grep" or "log --grep". What is changing is that between the two that means the same thing: cd t/ && git log "" cd t/ && git log . the former is deprecated. I find it amusing that I have been writing the above in the draft release notes without realizing that I failed to say that it is about pathspec for quite some time, and without realizing that the above can be misinterpreted as if it is talking about grep patterns. And I find it amazing that it took this long for somebody to spot that misleading vagueness in this description and point it out. It should probably be updated to start like so: Use of an empty string as a pathspec element that is used for 'everything matches' is ... Thanks.
Re: [ANNOUNCE] Git v2.12.0
Hi Junio, On Fri, Feb 24, 2017 at 11:28:58AM -0800, Junio C Hamano wrote: > * 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). FWIW '.' is not equivalent to '' when it comes to grep or such commands, you should suggest '^' or '$' instead, otherwise you'll miss empty lines and users will continue to use '' for that purpose. BTW I do use grep '' a lot, but only on file systems, not within git (eg: to display contents of /sys). Cheers, Willy