You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Julian Foad <ju...@btopenworld.com> on 2015/02/14 13:41:13 UTC

svn diff --summarize with --ignore-properties or --properties-only

Try this in a subversion source WC, using current trunk:

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --properties-only 
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --ignore-properties 
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
 M      subversion/tests/libsvn_fs_fs

The --properties-only and --ignore-properties options have no effect.

I call this a bug. (I see the same with 1.8.10 and current trunk.)


Desired behaviour:


Either:


  Show the result of stripping out all (prop | non-prop) changes.

or

  Show full information for each path that has any (prop | non-prop) changes.

Details:

  An add or delete or replace is not considered to include a property change, for these purposes, no matter what properties the item had.

So, the expected output from the example above would be:

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --properties-only
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --ignore-properties
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

OR

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --properties-only
 M      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --ignore-properties
M       subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

Makes sense?

I haven't yet looked at which of those behaviours fits better with non-summarizing diff, or with anything else, which I'd want to do before deciding which to go for.

- Julian


Re: svn diff --summarize with --ignore-properties or --properties-only

Posted by Bert Huijben <be...@qqmail.nl>.
Just thinking.,. I don’t think svn diff --summarize supports --git either.


I’m guessing that svn switch --relocate has the same argument handling problem. (--accept?)


But I don’t think separating the command on diff is as good as it was when we introduced svn relocate.


Bert






Sent from Windows Mail





From: Bert Huijben
Sent: ‎Saturday‎, ‎February‎ ‎14‎, ‎2015 ‎4‎:‎57‎ ‎PM
To: 'Subversion Development', Julian Foad





The api for diff summarize doesn’t support those flags. They are only used by the output generation of the normal diff code.

…. In about the same way as --summarize also changes the output. (But we avoid text transfers on that diff mode)




So ‘svn’ could apply some filtering itself, but the --summarize api can’t really do something useful. (It can’t really be optimized to support those flags, the way we create diffs)










Bert






Sent from Windows Mail





From: Julian Foad
Sent: ‎Saturday‎, ‎February‎ ‎14‎, ‎2015 ‎1‎:‎41‎ ‎PM
To: 'Subversion Development'





Try this in a subversion source WC, using current trunk:

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --properties-only 
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --ignore-properties 
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
 M      subversion/tests/libsvn_fs_fs

The --properties-only and --ignore-properties options have no effect.

I call this a bug. (I see the same with 1.8.10 and current trunk.)


Desired behaviour:


Either:


  Show the result of stripping out all (prop | non-prop) changes.

or

  Show full information for each path that has any (prop | non-prop) changes.

Details:

  An add or delete or replace is not considered to include a property change, for these purposes, no matter what properties the item had.

So, the expected output from the example above would be:

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --properties-only
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --ignore-properties
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

OR

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --properties-only
 M      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --ignore-properties
M       subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

Makes sense?

I haven't yet looked at which of those behaviours fits better with non-summarizing diff, or with anything else, which I'd want to do before deciding which to go for.

- Julian

Re: svn diff --summarize with --ignore-properties or --properties-only

Posted by Bert Huijben <be...@qqmail.nl>.
The api for diff summarize doesn’t support those flags. They are only used by the output generation of the normal diff code.

…. In about the same way as --summarize also changes the output. (But we avoid text transfers on that diff mode)


So ‘svn’ could apply some filtering itself, but the --summarize api can’t really do something useful. (It can’t really be optimized to support those flags, the way we create diffs)




Bert






Sent from Windows Mail





From: Julian Foad
Sent: ‎Saturday‎, ‎February‎ ‎14‎, ‎2015 ‎1‎:‎41‎ ‎PM
To: 'Subversion Development'





Try this in a subversion source WC, using current trunk:

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --properties-only 
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --ignore-properties 
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
 M      subversion/tests/libsvn_fs_fs

The --properties-only and --ignore-properties options have no effect.

I call this a bug. (I see the same with 1.8.10 and current trunk.)


Desired behaviour:


Either:


  Show the result of stripping out all (prop | non-prop) changes.

or

  Show full information for each path that has any (prop | non-prop) changes.

Details:

  An add or delete or replace is not considered to include a property change, for these purposes, no matter what properties the item had.

So, the expected output from the example above would be:

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --properties-only
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --ignore-properties
MM      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

OR

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --properties-only
 M      subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
 M      subversion/tests/libsvn_fs_fs

$ svn diff --summarize -r1630000:1640000 subversion/tests/libsvn_fs_fs --ignore-properties
M       subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
A       subversion/tests/libsvn_fs_fs/fs-fs-private-test.c
M       subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

Makes sense?

I haven't yet looked at which of those behaviours fits better with non-summarizing diff, or with anything else, which I'd want to do before deciding which to go for.

- Julian