<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/diff.h, branch v2.18.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.18.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.18.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2018-05-08T07:19:41Z</updated>
<entry>
<title>merge: add merge.renames config setting</title>
<updated>2018-05-08T07:19:41Z</updated>
<author>
<name>Ben Peart</name>
<email>Ben.Peart@microsoft.com</email>
</author>
<published>2018-05-02T16:01:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=85b460305ce7ed399c83499851f46c4f870ce280'/>
<id>urn:sha1:85b460305ce7ed399c83499851f46c4f870ce280</id>
<content type='text'>
Add the ability to control rename detection for merge via a config setting.
This setting behaves the same and defaults to the value of diff.renames but only
applies to merge.

Reviewed-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Helped-by: Elijah Newren &lt;newren@gmail.com&gt;
Signed-off-by: Ben Peart &lt;benpeart@microsoft.com&gt;
Reviewed-by: Elijah Newren &lt;newren@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'nd/diff-stat-with-summary'</title>
<updated>2018-03-14T19:01:02Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-03-14T19:01:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=868f7d23384931641aa4901aab27f3f23577e63b'/>
<id>urn:sha1:868f7d23384931641aa4901aab27f3f23577e63b</id>
<content type='text'>
"git diff" and friends learned "--compact-summary" that shows the
information usually given with the "--summary" option on the same
line as the diffstat output of the "--stat" option (which saves
vertical space and keeps info on a single path at the same place).

* nd/diff-stat-with-summary:
  diff: add --compact-summary
  diff.c: refactor pprint_rename() to use strbuf
</content>
</entry>
<entry>
<title>diff: add --compact-summary</title>
<updated>2018-02-27T23:22:47Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2018-02-24T14:09:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ddf88fa6166473be15822739e0a12aad4edfbbc5'/>
<id>urn:sha1:ddf88fa6166473be15822739e0a12aad4edfbbc5</id>
<content type='text'>
Certain information is currently shown with --summary, but when used
in combination with --stat it's a bit hard to read since info of the
same file is in two places (--stat and --summary).

On top of that, commits that add or remove files double the number of
display lines, which could be a lot if you add or remove a lot of
files.

--compact-summary embeds most of --summary back in --stat in the
little space between the file name part and the graph line, e.g. with
commit 0433d533f1:

   Documentation/merge-config.txt         |  4 +
   builtin/merge.c                        |  2 +
   ...-pull-verify-signatures.sh (new +x) | 81 ++++++++++++++
   t/t7612-merge-verify-signatures.sh     | 45 ++++++++
   4 files changed, 132 insertions(+)

It helps both condensing information and saving some text
space. What's new in diffstat is:

- A new 0644 file is shown as (new)
- A new 0755 file is shown as (new +x)
- A new symlink is shown as (new +l)
- A deleted file is shown as (gone)
- A mode change adding executable bit is shown as (mode +x)
- A mode change removing it is shown as (mode -x)

Note that --compact-summary does not contain all the information
--summary provides. Rewrite percentage is not shown but it could be
added later, like R50% or C20%.

Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'sb/diff-blobfind-pickaxe'</title>
<updated>2018-01-23T21:16:37Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-01-23T21:16:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c0d75f0e2e2cbf432358bfd00be593fd28e257a3'/>
<id>urn:sha1:c0d75f0e2e2cbf432358bfd00be593fd28e257a3</id>
<content type='text'>
"diff" family of commands learned "--find-object=&lt;object-id&gt;" option
to limit the findings to changes that involve the named object.

* sb/diff-blobfind-pickaxe:
  diff: use HAS_MULTI_BITS instead of counting bits manually
  diff: properly error out when combining multiple pickaxe options
  diffcore: add a pickaxe option to find a specific blob
  diff: introduce DIFF_PICKAXE_KINDS_MASK
  diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit
  diff.h: make pickaxe_opts an unsigned bit field
</content>
</entry>
<entry>
<title>diffcore: add a pickaxe option to find a specific blob</title>
<updated>2018-01-04T23:02:40Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2018-01-04T22:50:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=15af58c1adba431c216e2a45fa0d22944560ba02'/>
<id>urn:sha1:15af58c1adba431c216e2a45fa0d22944560ba02</id>
<content type='text'>
Sometimes users are given a hash of an object and they want to
identify it further (ex.: Use verify-pack to find the largest blobs,
but what are these? or [1])

One might be tempted to extend git-describe to also work with blobs,
such that `git describe &lt;blob-id&gt;` gives a description as
'&lt;commit-ish&gt;:&lt;path&gt;'.  This was implemented at [2]; as seen by the sheer
number of responses (&gt;110), it turns out this is tricky to get right.
The hard part to get right is picking the correct 'commit-ish' as that
could be the commit that (re-)introduced the blob or the blob that
removed the blob; the blob could exist in different branches.

Junio hinted at a different approach of solving this problem, which this
patch implements. Teach the diff machinery another flag for restricting
the information to what is shown. For example:

    $ ./git log --oneline --find-object=v2.0.0:Makefile
    b2feb64309 Revert the whole "ask curl-config" topic for now
    47fbfded53 i18n: only extract comments marked with "TRANSLATORS:"

we observe that the Makefile as shipped with 2.0 was appeared in
v1.9.2-471-g47fbfded53 and in v2.0.0-rc1-5-gb2feb6430b.  The
reason why these commits both occur prior to v2.0.0 are evil
merges that are not found using this new mechanism.

[1] https://stackoverflow.com/questions/223678/which-commit-has-this-blob
[2] https://public-inbox.org/git/20171028004419.10139-1-sbeller@google.com/

Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>diff: introduce DIFF_PICKAXE_KINDS_MASK</title>
<updated>2018-01-04T23:02:40Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2018-01-04T22:50:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=cf63051adad03e827e0313a57db0a79ad39a04a0'/>
<id>urn:sha1:cf63051adad03e827e0313a57db0a79ad39a04a0</id>
<content type='text'>
Currently the check whether to perform pickaxing is done via checking
`diffopt-&gt;pickaxe`, which contains the command line argument that we
want to pickaxe for. Soon we'll introduce a new type of pickaxing, that
will not store anything in the `.pickaxe` field, so let's migrate the
check to be dependent on pickaxe_opts.

It is not enough to just replace the check for pickaxe by pickaxe_opts,
because flags might be set, but pickaxing was not requested ('-i').
To cope with that, introduce a mask to check only for the bits indicating
the modes of operation.

Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit</title>
<updated>2018-01-04T23:02:40Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2018-01-04T22:50:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c1ddc4610c553b06591aac74b610b56448cbb976'/>
<id>urn:sha1:c1ddc4610c553b06591aac74b610b56448cbb976</id>
<content type='text'>
Currently flags for pickaxing are found in different places. Unify the
flags into the `pickaxe_opts` field, which will contain any pickaxe related
flags.

Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>diff.h: make pickaxe_opts an unsigned bit field</title>
<updated>2018-01-04T23:02:40Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2018-01-04T22:50:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=929ed70a7263fc3be909b363993672b649153706'/>
<id>urn:sha1:929ed70a7263fc3be909b363993672b649153706</id>
<content type='text'>
This variable is used as a bit field[1], and as we are about to add more
fields, indicate its usage as a bit field by making it unsigned.

[1] containing the bits

    #define DIFF_PICKAXE_ALL	1
    #define DIFF_PICKAXE_REGEX	2
    #define DIFF_PICKAXE_KIND_S	4
    #define DIFF_PICKAXE_KIND_G	8

Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>diff: support anchoring line(s)</title>
<updated>2017-11-28T01:40:04Z</updated>
<author>
<name>Jonathan Tan</name>
<email>jonathantanmy@google.com</email>
</author>
<published>2017-11-27T19:47:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2477ab2ea8651920a9909f6d05b15ad9004a6c64'/>
<id>urn:sha1:2477ab2ea8651920a9909f6d05b15ad9004a6c64</id>
<content type='text'>
Teach diff a new algorithm, one that attempts to prevent user-specified
lines from appearing as a deletion or addition in the end result. The
end user can use this by specifying "--anchored=&lt;text&gt;" one or more
times when using Git commands like "diff" and "show".

Signed-off-by: Jonathan Tan &lt;jonathantanmy@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'bw/diff-opt-impl-to-bitfields'</title>
<updated>2017-11-09T05:31:27Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-11-09T05:31:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8cc633286a4803025d84b77c808a2c7ad8616f2f'/>
<id>urn:sha1:8cc633286a4803025d84b77c808a2c7ad8616f2f</id>
<content type='text'>
A single-word "unsigned flags" in the diff options is being split
into a structure with many bitfields.

* bw/diff-opt-impl-to-bitfields:
  diff: make struct diff_flags members lowercase
  diff: remove DIFF_OPT_CLR macro
  diff: remove DIFF_OPT_SET macro
  diff: remove DIFF_OPT_TST macro
  diff: remove touched flags
  diff: add flag to indicate textconv was set via cmdline
  diff: convert flags to be stored in bitfields
  add, reset: use DIFF_OPT_SET macro to set a diff flag
</content>
</entry>
</feed>
