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

Reply via email to