JUN
21
2005

websvn missing functionality

To be honest: While I really love the added functionality that subversion brings (offline diffs/reverts, atomic commits), websvn (or rather the viewcvs that we use on websvn.kde.org) just sucks for my use.

There are several things that I'm really, really missing compared to the old webcvs:

  1. Annotations: Whenever I found something strange (in the code or in a backtrace), I'd go to webcvs and look at the annotated file, which shows me the line numbers together with the person that last changed that line. => You immediately know who to blame (well, mostly it's the case that I need to hide in shame myself ;-) )
  2. Now with websvn I couldn't even find the functionality to show line numbers with the code (the " (view)" simply shows the code without any line numbers!). Am I missing something, or is websvn really that bad in this respect?
  3. With webcvs it was easy to get the diff of the latest version in branch compared to the latest version in head. Since svn creates copies and doesn't tag, how can I compare the latest versions of trunk and branch in websvn, so I can quickly see which fixes have been backported?
  4. How can I see which were the branch points for the kde x.x branches in the past? That's needed e.g. to see if a particular fix happened before a release or after (and needs to be checked for backporting)

I hope, I'm just missing something and that functionality is simply hiding somewhere...

Comments

What you see and don't like is viewcvs with svn support. The real websvn has a lot of promise (and needs quite some work too):

http://websvn.tigris.org/

An example (yes, it has annotate, it even has rss streaming)
http://www.drqueue.org/websvn/listing.php?repname=DrQueue&path=%2Ftrunk%2F&rev=0&sc=0

KDE doesn't use websvn right now because it has problems with the huge number of revisions we have in our repository.


By Cristian Tibirna at Tue, 06/21/2005 - 14:27

Hi. I can't address all of your items, but I'll comment on numbers 1 and 2.

Annotations are called "Blame" in Subversion. Just browse to a file revision in the websvn interface, and you should see a link that says "blame." When you click on the link, you get a page that show the line number and the last author to commit something to that line number displayed for each line in the file. That's something like you wanted in items 1 and 2 above. It's not quite as nice, but approaching what you asked for.


By Travis Cripps at Fri, 06/24/2005 - 16:08

Well, I forgot to mention that I was talking about websvn.kde.org in particular. I am aware that svn uses the word blame instead of annotate (quite handy on the command line, but a webfront end with a link to the correct revision with the log message and the diff is simply more usable). But on websvn.kde.org, I couldn't find such a thing (because that's viewcvs with subversion support running there): E.g. http://websvn.kde.org/trunk/KDE/kdepim/korganizer/calendarview.cpp doesn't have a "blame" link, while the old webcvs (before KDE's switch to subversion) had a " (annotate)" link: http://webcvs.kde.org/kdepim/korganizer/calendarview.cpp

And from what I can see from several other websvn pages on the web, the blame functionality in websvn is just for the latest revision of a file, but not for previous revisions. That's fine if you only need to find the person who made that last commit to a piece of code that broke the app, but not enough to find out how the code has evolved over time, and why the code has exactly the structure it has.

And one thing I forgot in my original rant about websvn.kde.org: It's dead slow. With svn it now takes 30-40 seconds to show these pages, in the old webcvs.kde.org it took only 10 seconds to show the corresponding page.


By Reinhold Kainhofer at Fri, 06/24/2005 - 16:58