<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/diff.h, branch v1.2.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v1.2.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v1.2.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2006-02-10T10:50:53Z</updated>
<entry>
<title>combine-diff: Record diff status a bit more faithfully</title>
<updated>2006-02-10T10:50:53Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-02-10T10:30:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d416df8869d803282fb254a18505eccceee9ba3e'/>
<id>urn:sha1:d416df8869d803282fb254a18505eccceee9ba3e</id>
<content type='text'>
This shows "new file mode XXXX" and "deleted file mode XXXX"
lines like two-way diff-patch output does, by checking the
status from each parent.

The diff-raw output for combined diff is made a bit uglier by
showing diff status letters with each parent.  While most of the
case you would see "MM" in the output, an Evil Merge that
touches a path that was added by inheriting from one parent is
possible and it would be shown like these:

    $ git-diff-tree --abbrev -c HEAD
    2d7ca89675eb8888b0b88a91102f096d4471f09f
    ::000000 000000 100644 0000000... 0000000... 31dd686... AA	b
    ::000000 100644 100644 0000000... 6c884ae... c6d4fa8... AM	d
    ::100644 100644 100644 4f7cbe7... f8c295c... 19d5d80... RR	e

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>combine-diff: move formatting logic to show_combined_diff()</title>
<updated>2006-02-09T23:23:06Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-02-09T23:23:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0a798076b8d1a4a31bf2b24c564e2a99fd1c43a1'/>
<id>urn:sha1:0a798076b8d1a4a31bf2b24c564e2a99fd1c43a1</id>
<content type='text'>
This way, diff-files can make use of it.  Also implement the
full suite of what diff_flush_raw() supports just for
consistency.  With this, 'diff-tree -c -r --name-status' would
show what is expected.

There is no way to get the historical output (useful for
debugging and low-level Plumbing work) anymore, so tentatively
it makes '-m' to mean "do not combine and show individual diffs
with parents".

diff-files matches diff-tree to produce raw output for -c.  For
textual combined diff, use -p -c.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>diff-tree -c raw output</title>
<updated>2006-02-09T19:46:05Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@osdl.org</email>
</author>
<published>2006-02-09T18:30:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ee63802422af14e43eccce3c6dc4150a27ceb1a3'/>
<id>urn:sha1:ee63802422af14e43eccce3c6dc4150a27ceb1a3</id>
<content type='text'>
NOTE! This makes "-c" be the default, which effectively means that merges 
are never ignored any more, and "-m" is a no-op. So it changes semantics.

I would also like to make "--cc" the default if you do patches, but didn't 
actually do that.

The raw output format is not wonderfully pretty, but it's distinguishable 
from a "normal patch" in that a normal patch with just one parent has just 
one colon at the beginning, while a multi-parent raw diff has &lt;n&gt; colons 
for &lt;n&gt; parents.

So now, in the kernel, when you do

	git-diff-tree cce0cac125623f9b68f25dd1350f6d616220a8dd

(to see the manual ARM merge that had a conflict in arch/arm/Kconfig), you 
get

	cce0cac125623f9b68f25dd1350f6d616220a8dd
	::100644 100644 100644 4a63a8e2e45247a11c068c6ed66c6e7aba29ddd9 77eee38762d69d3de95ae45dd9278df9b8225e2c 2f61726d2f4b636f6e66696700dbf71a59dad287       arch/arm/Kconfig

ie you see two colons (two parents), then three modes (parent modes 
followed by result mode), then three sha1s (parent sha1s followed by
result sha1).

Which is pretty close to the normal raw diff output.

Cool/stupid exercise:

	$ git-whatchanged | grep '^::' | cut -f2- | sort |
	  uniq -c | sort -n | less -S

will show which files have needed the most file-level merge conflict
resolution. Useful? Probably not. But kind of interesting.

For the kernel, it's

     ....
     10 arch/ia64/Kconfig
     11 drivers/scsi/Kconfig
     12 drivers/net/Makefile
     17 include/linux/libata.h
     18 include/linux/pci_ids.h
     23 drivers/net/Kconfig
     24 drivers/scsi/libata-scsi.c
     28 drivers/scsi/libata-core.c
     43 MAINTAINERS

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>combine-diff: show mode changes as well.</title>
<updated>2006-02-06T21:06:49Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-02-06T20:53:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2454c962fbe82f23aac4a5d78a0c3b5ffaed83a0'/>
<id>urn:sha1:2454c962fbe82f23aac4a5d78a0c3b5ffaed83a0</id>
<content type='text'>
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>combine-diff: remove misguided --show-empty hack.</title>
<updated>2006-02-06T06:25:00Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-02-06T06:25:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e3c3a550d4815d34b5674776c36cdd6d8a31ab85'/>
<id>urn:sha1:e3c3a550d4815d34b5674776c36cdd6d8a31ab85</id>
<content type='text'>
Now --always flag is available in diff-tree, there is no reason
to have that hack in the diffcore side.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>Make the "struct tree_desc" operations available to others</title>
<updated>2006-02-01T00:07:01Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@osdl.org</email>
</author>
<published>2006-01-31T22:10:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=50f9a858ada10b3b57691a313a1c78b0bcbe5947'/>
<id>urn:sha1:50f9a858ada10b3b57691a313a1c78b0bcbe5947</id>
<content type='text'>
We have operations to "extract" and "update" a "struct tree_desc", but we
only used them in tree-diff.c and they were static to that file.

But other tree traversal functions can use them to their advantage

Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>Merge lt/revlist,jc/diff,jc/revparse,jc/abbrev</title>
<updated>2006-01-28T08:16:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-01-28T08:16:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=addafaf92eeb86033da91323d0d3ad7a496dae83'/>
<id>urn:sha1:addafaf92eeb86033da91323d0d3ad7a496dae83</id>
<content type='text'>
</content>
</entry>
<entry>
<title>abbrev cleanup: use symbolic constants</title>
<updated>2006-01-28T08:09:38Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-01-25T09:03:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=46a6c2620ba421397eec627b8eb18eb530e694fc'/>
<id>urn:sha1:46a6c2620ba421397eec627b8eb18eb530e694fc</id>
<content type='text'>
The minimum length of abbreviated object name was hardcoded in
different places to be 4, risking inconsistencies in the future.
Also there were three different "default abbreviation
precision".  Use two C preprocessor symbols to clean up this
mess.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>diff-files: -c and --cc options.</title>
<updated>2006-01-28T08:08:29Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-01-28T08:03:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ea726d02e9677a66586d7ffebe97f112ab6dab33'/>
<id>urn:sha1:ea726d02e9677a66586d7ffebe97f112ab6dab33</id>
<content type='text'>
This ports the "combined diff" to diff-files so that differences
to the working tree files since stage 2 and stage 3 are shown
the same way as combined diff output from diff-tree for the
merge commit would be shown if the current working tree files
are committed.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>diff-tree --cc: denser combined diff output for a merge commit.</title>
<updated>2006-01-28T08:08:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-01-24T09:22:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d8f4790e6fe7a9d94468ea83d1370643604d43e5'/>
<id>urn:sha1:d8f4790e6fe7a9d94468ea83d1370643604d43e5</id>
<content type='text'>
Building on the previous '-c' (combined) option, '--cc' option
squelches the output further by omitting hunks that consist of
difference with solely one parent.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
</feed>
