# [RFC diff-tree -c with copy/rename]

2 messages from 2006-08-17 to 2006-08-18. Participants: Marco Costalba, Junio C Hamano.
Thread: https://gitlist.dev/t/5306

## Marco Costalba, 2006-08-17 11:02

Subject: [RFC diff-tree -c with copy/rename]
Message-ID: <e5bfff550608170402w25b9eaeaqe69665bdddaead3c@mail.gmail.com>
URL: https://gitlist.dev/e/e5bfff550608170402w25b9eaeaqe69665bdddaead3c%40mail.gmail.com

```
>From current git tree:

$ git-diff-tree -r -m -C bb266cb118 (I removed extra useless lines)

bb266cb11842f76712ebff1d8b1bd086dc65337f
:100644 100644 dfb1c44 8d0dbad R093	checkout-index.c	builtin-checkout-index.c
:100644 100644 357970d 7d39d9b R083	verify-pack.c	builtin-verify-pack.c
:100644 100644 6484cb9 6484cb9 R100	builtin-help.c	help.c

bb266cb11842f76712ebff1d8b1bd086dc65337f
:100644 100644 29ea6fd 8d0dbad M	builtin-checkout-index.c
:100644 100644 d700761 7d39d9b M	builtin-verify-pack.c
:100644 100644 7a7f775 6484cb9 M	help.c


$ git-diff-tree -r -c -C bb266cb118

bb266cb11842f76712ebff1d8b1bd086dc65337f
::100644 100644 100644 dfb1c44 29ea6f 8d0dbad RM	builtin-checkout-index.c
::100644 100644 100644 357970d d70076 7d39d9b RM	builtin-verify-pack.c
::100644 100644 100644 6484cb9 7a7f77 6484cb9 RM	help.c

Is it correct do not show in -c case:

- the similarity value
- the origin file:

As example

'R093MM	checkout-index.c builtin-checkout-index.c'

 instead of current

'RM	builtin-checkout-index.c'


Thanks
Marco

P.S: -c with --stat gives both origin and destination files
(checkout-index.c and builtin-checkout-index.c):

$ git-diff-tree -r -c -C --stat bb266cb118
bb266cb11842f76712ebff1d8b1bd086dc65337f
 Makefile                                     |   81 +++++++++++++++---------
 checkout-index.c => builtin-checkout-index.c |   26 ++++----
 builtin-count.c => builtin-count-objects.c   |    0
 name-rev.c => builtin-name-rev.c             |    4 +
 pack-objects.c => builtin-pack-objects.c     |    4 +
 symbolic-ref.c => builtin-symbolic-ref.c     |    4 +
 unpack-objects.c => builtin-unpack-objects.c |    7 +-
 verify-pack.c => builtin-verify-pack.c       |   15 ++---
 builtin.h                                    |   80 ++++++++++++------------
 git.c                                        |   86 ++++++++++++++------------
 builtin-help.c => help.c                     |    0
 11 files changed, 166 insertions(+), 141 deletions(-)

```

## Junio C Hamano, 2006-08-18 04:09

Subject: Re: [RFC diff-tree -c with copy/rename]
Message-ID: <7v3bbuelcj.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v3bbuelcj.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <e5bfff550608170402w25b9eaeaqe69665bdddaead3c@mail.gmail.com>

```
"Marco Costalba" <mcostalba@gmail.com> writes:

> As example
>
> 'R093MM	checkout-index.c builtin-checkout-index.c'
>
> instead of current
>
> 'RM	builtin-checkout-index.c'

I am not particularly opposed to have an option to do this.  I
originally did not show this because I did not particularly find
it interesting (and I still don't).  The output would become a
very long line, not for human consumption, though.

But it should not be too involved if you want to do this.  We
already compute all the information necessary to do so before
combine-diff.c::intersect_paths() converts the usual <from,to>
representation (struct diff_filepair) into <result, list of
parents' blobs> representation (struct combine_diff_path), which
is used by combine-diff.c routines.

We currently do not retain that information when this conversion
happens to be used for the output.  You would need to add a few
fields to record the preimage filename, similarity score and
status in struct combine_diff_parent and populate them in
intersect_paths() and adjust the output routines.

```
