The duplicate removal filter for -g can suppress revisions that are expected to
be sent later, but if those revisions are also suppressed by --limit then they
do not appear in the output.
The script below creates a repository, makes a branch and merges it back in r8.
This command doesn't show any of the merged revisions:
$ svn log -qg --limit 1 file://`pwd`/repo
------------------------------------------------------------------------
r8 | pm | 2011-07-20 12:19:11 +0100 (Wed, 20 Jul 2011)
------------------------------------------------------------------------
But running it on a path deeper inside the repository does:
$ svn log -qg --limit 1 file://`pwd`/repo/A
------------------------------------------------------------------------
r8 | pm | 2011-07-20 12:19:11 +0100 (Wed, 20 Jul 2011)
------------------------------------------------------------------------
r7 | pm | 2011-07-20 12:19:08 +0100 (Wed, 20 Jul 2011)
Merged via: r8
------------------------------------------------------------------------
r5 | pm | 2011-07-20 12:19:05 +0100 (Wed, 20 Jul 2011)
Merged via: r8
------------------------------------------------------------------------
r4 | pm | 2011-07-20 12:19:05 +0100 (Wed, 20 Jul 2011)
Merged via: r8
------------------------------------------------------------------------
#!/bin/sh -e
svn=svn ; svnadmin=svnadmin ; svnlook=svnlook ; svnmucc=svnmucc
repo=repo ; wc=wc ; url=file:///`pwd`/$repo
rm -rf $repo $wc
$svnadmin create $repo
# create 'A' as trunk
$svn mkdir -mm $url/A
$svn mkdir -mm $url/A/B
$svnmucc -mm -- put - $url/A/B/f <<EOD
111
222
333
EOD
# create 'X' as branch
$svn cp -mm $url/A $url/X
# modifications on trunk and branch
$svnmucc -mm -- put - $url/X/B/f <<EOD
111
222x
333
EOD
$svnmucc -mm -- put - $url/A/B/f <<EOD
111a
222
333
EOD
# merge branch to trunk
$svn co $url/X $wc
$svn merge ^/A $wc
$svn ci -mm $wc
$svn sw $url/A $wc
$svn merge --reintegrate ^/X $wc
$svn ci -mm $wc