On Wed, May 12, 2010 at 08:13:55AM -0400, Mark Phippard wrote: > It would also be easy to script and that has always been our position > on adding options like this. Especially if we cannot implement the > option internally more efficiently than the script.
Oh, it's not quite the same thing. What I wrote in the log message has apparently mislead you. Sorry. Let me try to explain better: To get the same output (log message, diff, log message, diff, etc.) a script would be even slower because it would have to open an entirely new connection to the server to get the log of every single revision. It would work like this: for rev in [1-1000]: svn log -r $rev svn diff -r ($rev - 1):$rev While the command line client can do this: client: server, give me all log messages from r1 to r1000 over a single connection * server starts spooling log information to the client. while server is spooling: * client opens another connection (#2) client: I just got the log for rN. What would svn diff -r(N-1):N do? * server starts diff-editor drive client: thanks! * client prints diff * client closes connection #2 So in this example the script needs about 1000 connections more than the client does. The script could achieve a similar level of performance by using three threads: T1: svn log -r 1-1000 T2: for rev in [1-1000]: svn diff -r ($rev - 1):$rev and a third thread that joins the output the other two appropriately. But I don't think anyone would bother to write such a script. In fact, adding the feature to the CLI client was fairly easy, probably easier than a wrapper script that does the above. Stefan