Open
Bug 1200362
Opened 9 years ago
Updated 8 years ago
Stand up a ViewVC server to replace Bonsai
Categories
(Developer Services :: General, task)
Developer Services
General
Tracking
(Not tracked)
NEW
People
(Reporter: gps, Unassigned)
References
Details
Bonsai was turned off. Various people want a web view of CVS history. ViewVC is a newer, less insecure version of Bonsai. Let's stand up a ViewVC instance somewhere on the Internet that serves up old CVS repositories.
We'll also want to install HTTP 301 redirects from old Bonsai URLs to ViewVC so URLs in e.g. Bugzilla comments continue to work.
Reporter | ||
Comment 1•9 years ago
|
||
I quickly provisioned an EC2 instance and installed ViewVC on it: http://52.25.115.98/viewvc/main/
It is still performing the repository->MySQL indexing, so the query feature may not be fully available. I also haven't fully gone through the ViewVC config file to tweak various options.
bz: Please let me know if this satisfies your requirements for a web-based CVS viewer. If so, I'll spend the additional work to "productionize" it.
Flags: needinfo?(bzbarsky)
Comment 2•9 years ago
|
||
Ccing Olli too, since he's also a Bonsai user.
ViewVC looks like it'll be good enough for what I typically want. Looks like it does show deleted files (though not sure what it does when a file is deleted and then a new one created in its place with the same name, which I think we did in some places in layout), and lets me link to a particular blame line. Not sure whether it does line range highlighting, but lack of that is not a showstopper for me.
Flags: needinfo?(bzbarsky)
Comment 3•9 years ago
|
||
And also, thank you for doing this! I really appreciate it.
Comment 4•9 years ago
|
||
Rather cluttered UI, unfortunately. Like showing all those CVS tags. But that is something one can live with.
But, doesn't have the super handy hover-over-line-to-show-commit-message-and-possible-link-to-the-relevant-bug - that is close to a show-stopper (unlike range highlighting which just happens to be very useful). Perhaps I just don't know yet how to use ViewVC efficiently.
Comment 5•9 years ago
|
||
Ok, figured out how to get from a line to the relevant bug.
bonsai requires one click (1)
ViewVC needs: click the relevant line's revision (1),
in the diff view click the same revision on top right (2),
and then you see the relevant commit message from which the bug number can be copied (3),
and then you load a bugzilla page or put some bugzilla url to the location bar and remove its bug#(4)
paste the bug number (5)
press enter (6)
Far from the usefulness of bonsai, but not that much worse comparing to hg or git annotate.
I can live with this.
Thanks for helping us ancient code archaeologists, gps!
Comment 6•9 years ago
|
||
:gps thanks!
Comment 7•9 years ago
|
||
This came up again today, when someone was trying to look up blame via mxr/dxr code searches...
Reporter | ||
Comment 8•9 years ago
|
||
Continue pointing people at the URL in comment #1 until I have time to deal with this. A single ping every ~3 weeks is not sufficient to make this a priority for me.
Comment 9•9 years ago
|
||
OK, I'll ping whenever this comes up as an issue for me personally. ;)
Comment 10•9 years ago
|
||
This is an issue for me, since given that looking at the cvs era blame is harder than it should be, I don't look at it so likely, which possibly reduces the quality of reviews and such.
(but good that at least http://52.25.115.98/viewvc/main/ is running)
Comment 11•9 years ago
|
||
Came up again today when trying to look up blame in nsExpatDriver; https://github.com/mozilla/gecko-dev/commit/d5c2b484c4239d8d28e2ea3aaba8d4780f9d90b6?diff=split helpfully says "434 additions, 415 deletions not shown" for the nsExpatDriver.cpp bits I cared about.
Comment 12•9 years ago
|
||
Oh, but the viewvc instance did get me the info I wanted. Lots more clicking than Bonsai, but I got there eventually. So thank you for that!
Comment 13•9 years ago
|
||
It really would be nice to have mxr (http://mxr.mozilla.org/seamonkey) to link to some instance of
ViewVC (or some other tool showing the blame)
Comment 14•9 years ago
|
||
Comment 15•9 years ago
|
||
Since pings seem to be desired here I'll mention that today the link in comment 1 was able to provide me the info I needed that github gecko-dev web interface was unable to provide me.
Comment 16•9 years ago
|
||
Ended up using the viewvc instance again today to look up when nsCycleCollector.h was initially checked into the tree. The fact that the "CVS log" link from MXR didn't point to anything useful was a pain. :(
Comment 17•9 years ago
|
||
(In reply to Boris Zbarsky [:bz] from comment #16)
> The fact that the
> "CVS log" link from MXR didn't point to anything useful was a pain. :(
Worse than that, it points to a site which makes you think if you wait an hour the site will come back. I was fooled by the page.
Comment 18•9 years ago
|
||
Recently I've needed cvs era blame at least for xul fastload/cache, docshell, dom events and uriload/* stuff.
I mentioned this in http://bit.ly/1iQJVK0 (I think that is Moco internal, sorry. Don't know why.)
Reporter | ||
Comment 19•9 years ago
|
||
Random question: is the Git repo's converted-from-CVS history "good enough?" I know the CVS history is a mess and oddities are multiplied when converted to Git/Mercurial. But I'm not sure I've ever heard anyone quantify how often they absolutely need access to the CVS history when the Git conversion fails them. Inquiring minds want to know.
Comment 20•9 years ago
|
||
Which git repo. Looks like github gives "This blame took too long to generate." errors quite easily.
And I couldn't find annotation/blame easily from git.mozilla.org, but I'm probably looking at wrong place.
Reporter | ||
Comment 21•9 years ago
|
||
We have blame disabled on git.mozilla.org for performance reasons.
In theory you could run `git blame` or a Git HTTP server locally. But if nobody has done that, then I guess we don't know how good the Git history is for CVS forensics.
Comment 22•9 years ago
|
||
(In reply to Gregory Szorc [:gps] from comment #21)
> In theory you could run `git blame` or a Git HTTP server locally. But if
> nobody has done that, then I guess we don't know how good the Git history is
> for CVS forensics.
I've used it plenty of times, via github, and it seems to produce good results. The only problem I've had is that it times out for large files like nsGlobalWindow.cpp.
Comment 23•9 years ago
|
||
(In reply to Andrew McCreight [:mccr8] from comment #22)
> (In reply to Gregory Szorc [:gps] from comment #21)
> > In theory you could run `git blame` or a Git HTTP server locally. But if
> > nobody has done that, then I guess we don't know how good the Git history is
> > for CVS forensics.
>
> I've used it plenty of times, via github, and it seems to produce good
> results. The only problem I've had is that it times out for large files like
> nsGlobalWindow.cpp.
I've wanted to look at a large diff, only to have github truncate it the bits that I'm interested in. Not sure if I'm too dumb to figure out how to get around that, or it's not possible.
Comment 24•9 years ago
|
||
Used this again today to look up nsGlobalWindow blame.
Comment 25•9 years ago
|
||
Used this again to look up blame for html.css.
Comment 26•9 years ago
|
||
was looking at nsILayoutHistoryState.h today
Comment 27•9 years ago
|
||
Used this today for MIMEHeaderParam.
Comment 28•9 years ago
|
||
Tried to use this today for looking at the history of nsConsoleService. Stymied by CVS's non-atomic commits; when I attempted to query the revision history for a file named nsConsoleService.cpp, I got:
An Exception Has Occurred
Python Traceback
Traceback (most recent call last):
File "/mnt/data/viewvc/lib/viewvc.py", line 4848, in main
request.run_viewvc()
File "/mnt/data/viewvc/lib/viewvc.py", line 402, in run_viewvc
self.view_func(self)
File "/mnt/data/viewvc/lib/viewvc.py", line 4475, in view_query
import cvsdb
File "/mnt/data/viewvc/lib/cvsdb.py", line 21, in <module>
import dbi
File "/mnt/data/viewvc/lib/dbi.py", line 18, in <module>
import MySQLdb
ImportError: No module named MySQLdb
Comment 29•9 years ago
|
||
I've needed cvs blame again couple of times this week.
Comment 30•9 years ago
|
||
Used this for xpcwrappednative.cpp.
Comment 31•9 years ago
|
||
Thanks again for running this!
Comment 32•9 years ago
|
||
Used this today for HTMLInputElement.
Comment 33•9 years ago
|
||
Have spent now an hour or two trying to find some old code using hints in seamonkey mxr and viewvc. Bonsai would have probably cut the time to 1/4.
Comment 34•9 years ago
|
||
Used this for nsDocShell today.
Reporter | ||
Comment 35•9 years ago
|
||
https://hg.mozilla.org/experimental/gecko-dev/ exists now. It is a straight conversion of the gecko-dev Git repo to Mercurial. Please leave feedback in bug 1265493, not here.
Comment 36•8 years ago
|
||
(In reply to Gregory Szorc [:gps] from comment #1)
> I quickly provisioned an EC2 instance and installed ViewVC on it:
> http://52.25.115.98/viewvc/main/
:gps, could you add the l10n and www repos (from http://archive.mozilla.org/pub/vcs-archive/) to this? I need to try and get them into DXR and can't use the copies on MXR. High priority.
(In reply to Olli Pettay [:smaug] (high review load, please consider other reviewers) from comment #13)
> It really would be nice to have mxr (http://mxr.mozilla.org/seamonkey) to
> link to some instance of ViewVC (or some other tool showing the blame)
No promises, but I'll see if we can get DXR to do that.
Flags: needinfo?(gps)
Comment 37•8 years ago
|
||
:gps never mind. I'm not sure why I assumed one could clone from viewvc. :-) /me tries to remember anything about cvs. feh!
Flags: needinfo?(gps)
Comment 38•8 years ago
|
||
FWIW, searchfox.org provides now pretty much all the functionality I need: fast and easy way to use blame and version control history going back to 1998. It has still some issues in file renames, but those are being worked on.
Reporter | ||
Comment 39•8 years ago
|
||
I think I was leaving this assigned to me so we could better "productionize" Bonsai. I have some unlanded commits sitting around in my user repo to do that. But I'm not actively working on this. So unassigning.
Assignee: gps → nobody
Status: ASSIGNED → NEW
You need to log in
before you can comment on or make changes to this bug.
Description
•