On Wed, 2005-10-19 at 16:44 +0200, Arnaud Charlet wrote: > Here are my first impressions on trying to use subversion. > > Note that I didn't go to any doc or wiki page yet, I simply copy/pasted > the commands I saw on the gcc list. I am familiar with cvs commands and > expect most things to be handled similarly. > > - first check out: > > svn co svn+ssh://gcc.gnu.org/svn/gcc/trunk > > took a lot of time, but I assume this is somewhat expected, and not really > a concern as I am not doing complete check outs often. > > Then tried a few "cvs" things without much success: > > $ cd trunk/gcc/ada > $ svn status Makefile.in > -> didn't get any answer > $ svn status --help Makefile.in > -> saw --verbose and --show-updates options > > $ svn status --verbose Makefile.in > 105364 103893 charlet Makefile.in > > Not clear how to interpret this output without having to go to the doc, > no easy way to guess with my cvs knowledge, nor with my english knowledge. > > I guess I was expecting something more verbose ala cvs, e.g a real "status" > in english, such as up-to-date, locally modified, needs merge, ... > instead of "nothing" or "M" which are rather cryptic for a subversion > novice. > > $ svn status --show-updates Makefile.in > Status against revision: 105364 > > All right, I guess my Makefile.in file is at revision 105364. > > Then: > > $ svn log Makefile.in | more > > figure out that the last two revs are 105364 and 103893 (and now I guess > I understand svn status --verbose output). > > Note: coming from a cvs background, having non incremental version numbers > *per file* is very disruptive and non intuitive. I suspect it will take > me some time to adjust to this. Any suggestions/tricks welcome.
> Now: > > $ svn diff -r101581 -r103893 Makefile.in > svn: Multiple revision arguments encountered; try '-r M:N' instead of '-r M > -r N' > > All right, not very friendly to cvs users, but ok... > > $ time svn diff -r101581:103893 Makefile.in > [repeated several times] > > took between 16 and 22 seconds. 18 seconds typically. > Most of this is ssh overhead, because your diff is so small. The ssh multiplexing stuff just written up on the wiki should help. The svn protocol was built for multiple cheap connections, which is true over tcp. We use svn+ssh because that's the auth scheme cvs used, and all we have implemented to auth people. Otherwise, we'd use svn+ssl or something. However, this requires a bunch of svn protocol connections tunneled through ssh connections :( time svn diff -r101581:103893 svn://gcc.gnu.org/svn/gcc/trunk/gcc/ada/Makefile.in (3-5 seconds) vs time svn diff -r101581:103893 svn +ssh://gcc.gnu.org/svn/gcc/trunk/gcc/ada/Makefile.in (15 seconds) Sad, but true. --Dan