Checking the changes for many svn versions, one version at a time

Say you want to see both the log and diff of a given svn version, just the differences between it and the previous version, plus log message (i.e. what was committed, and why, for version NUM) The following will work at a bash command prompt:

$ r=NUM; rr=-r`expr $r - 1`:$r; svn log -r$r; svn diff $rr

It looks a bit unwieldy, but you can keep pressing the up arrow and home key, and re-editing NUM, multiple times to look at multiple changes:

$ r=320; rr=-r`expr $r - 1`:$r; svn log -r$r; svn diff $rr
. . .
$ r=321; rr=-r`expr $r - 1`:$r; svn log -r$r; svn diff $rr
. . .
$ r=322; rr=-r`expr $r - 1`:$r; svn log -r$r; svn diff $rr

Also, you can automate your checking to loop gradually over a range of changes:

$ for ((r=310;r< =336;r+=1))
> do rr=-r`expr $r - 1`:$r; svn log -r$r; svn diff $rr
> cat -
> done

Press CTRL-D whenever you’re finished looking at a given change, and the next change will come up.