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
Received on 2015-02-14 17:02:25 CET