677: CVSClient in post-review is particularly fragile with respect to qualified domains
- Fixed
- Review Board
skip.mo*******@gmai***** (Google Code) (Is this you? Claim this profile.) | |
Oct. 7, 2008 |
What's the URL of the page containing the problem? (internal to our corporate intranet) What steps will reproduce the problem? 1. Run post-review 2. 3. What is the expected output? What do you see instead? I sort of expected post-review to What operating system are you using? What browser? Please provide any additional information below.
Damn... slip of the pinky... I hit the return key instead of the ' key while typing the summary so of course Firefox (un)helpfully submitted the form for me. At any rate, when I run post-review I get this error: Error creating review request: The repository path specified is not in the list of known repositories (code 206) I added a debug() call to RepositoryInfo.__init__ and get this output when running with the -d flag: >>> Repository info 'Path: cvs.trdlnk.com:/cvs, Base path: None, Supports changesets: False' >>> cvs diff -uN >>> Looking for 'udesktop116.wacker.trdlnk.com /' cookie in /home/titan/skipm/.post-review-cookies.txt >>> Loaded valid cookie -- no login required >>> Attempting to create review request for None >>> HTTP POSTing to http://udesktop116.wacker.trdlnk.com:8000/api/json/reviewrequests/new/: {'repository_path': 'cvs.trdlnk.com:/cvs'} Error creating review request: The repository path specified is not in the list of known repositories (code 206) We are using :pserver:. If I force a :pserver: prefix in post-review it still fails. If I add :pserver: to the repository path on the server attempts to use the web interface fail.
The repository info in the web interface lists CVS as the tool, contains a username and password and the :pserver: info without the :pserver: prefix, e.g.: "cvs.example.com:/cvs" If I add the :pserver: prefix the web interface doesn't work. Based on what poking around I did that appeared to be a known issue. Skip
If the repository info exactly matches the "repository_path" being sent (as shown in the debug output), then you certainly should not be seeing this error. We just look up a Repository containing that value directly. Stupid question probably, but is there any chance that it's talking to the wrong Review Board server? A development server instead of a production server, for instance?
Aha! We abuse DNS in horrible ways, so "cvs.trdlnk.com" resolves though the I have the repository registered as cvs.wacker.trdlnk.com. Lots of developers use simply "cvs" as the CVS server's hostname. I ran cvs_chroot on my sandbox so the hostname in CVS/Root matches the path in the repository. Now it works. Is there some way around this short of making everyone run cvs_chroot? Maybe create a bunch of repositories all with different hostnames? Skip
OK, here's a patch that converts whatever hostname it finds in the repository path to its canonical name then uses that when querying the server. You just need to use the FQDN as the hostname when creating a CVS repository. This is probably a bit fragile, but I think you'll get the general idea. Skip
-
+
I've tried several times to post it in the past few minutes, but I have no idea what it wants for "Base Diff Path". I tried the following: reviewboard reviewboard/contrib/tools reviewboard/reviewboard . http://reviewboard.googlecode.com/svn All yielded tracebacks when I tried to view the diff. I am completely flummoxed by this field. The unidiff was created from my reviewboard sandbox and compares these files: Index: contrib/tools/post-review =================================================================== --- contrib/tools/post-review (revision 1513) +++ contrib/tools/post-review (working copy) I checked out the reviewboard code with this svn command: vn checkout http://reviewboard.googlecode.com/svn/trunk/ reviewboard So, what should I use for the Base Diff Path field? I googled for "reviewboard base diff path" and was led to this blog: http://www.chipx86.com/blog/?p=222 where it states, "the path relative to the root of your Subversion repository where you generated the diff". Thx, Skip P.S. In case you hadn't noticed, I am a complete novice at this reviewboard. Coincidentally, I'm also pretty much of a code review and Subversion novice, so my mistakes are likely to be ones which you might want to cover thoroughly in tutorial material.
Can't anybody help me with Comment 10?
If using svn diff, you should make sure you're in the top-level reviewboard directory (containing the contrib directory) and run svn diff. For the base diff path, you'll then use "/trunk/reviewboard"
Thanks, that worked. It was just the base diff path I couldn't figure out. I just published a patch: http://reviews.review-board.org/r/576/ Feel free to close this issue or direct it toward your documentation maven(s).