1969: API Error 207 -- The file was not found in the repository

apsof*****@gmai***** (Google Code) (Is this you? Claim this profile.)
chipx86
chipx86
Feb. 2, 2011
What version are you running?
RBTools 0.3
Review Board 1.5.2 

What's the URL of the page containing the problem?
???
post-review issue

What steps will reproduce the problem?
1. post-review

What is the expected output? What do you see instead?


What operating system are you using? What browser?
ubuntu linux
firefox

Please provide any additional information below.
Initial setup problem.  I am sure that it is my configuration error, but all of the other people that report the same bug -- the answers are too generic for helping me debug the problem.

Here is what I know:
1) I am using SVN as a source code repository
2) I configured the server as https://svn.xxx.com:10023/svn2/myproject/trunk
** Note that the reviewboard configuration accepted this as a valid repo

3) I made a simple change to a file to make sure everything works
4) Running post-review -d I get the following

<pre>

andyp@XXX:~/aaa/myproject$ post-review -d
>>> RBTools 0.3
>>> Home = /home/andyp
>>> svn info
>>> diff --version
>>> repository info: Path: https://svn.xxx.com:10023/svn2, Base path: /myproject/trunk, Supports changesets: False
>>> svn diff --diff-cmd=diff
>>> svn info android/service/project/src/com/xxx/service/test.java
>>> svn info android/service/project/src/com/xxx/service/test.java
>>> svn info android/service/project/src/com/xxx/service/test.java
>>> svn info android/service/project/src/com/xxx/service/test.java
>>> HTTP GETting api/
>>> HTTP GETting http://reviewboard.xxx.com/api/info/
>>> Using the new web API
>>> HTTP GETting http://reviewboard.xxx.com/api/repositories/
>>> HTTP GETting http://reviewboard.xxx.com/api/repositories/1/
>>> HTTP GETting http://reviewboard.xxx.com/api/repositories/1/info/
>>> repository info: Path: https://svn.xxx.com:10023/svn2/myproject/trunk, Base path: /, Supports changesets: False
>>> Attempting to create review request on https://svn.xxx.com:10023/svn2/myproject/trunk for None
>>> HTTP POSTing to http://reviewboard.xxx.com/api/review-requests/: {'repository': u'https://svn.xxx.com:10023/svn2/myproject/trunk'}
>>> Review request created
>>> Uploading diff, size: 692
>>> HTTP POSTing to http://reviewboard.xxx.com/api/review-requests/5/diffs/: {'basedir': '/'}
>>> Got API Error 207 (HTTP code 400): The file was not found in the repository
>>> Error data: {u'stat': u'fail', u'file': u'/myproject/trunk/android/service/project/src/com/xxx/service/test.java', u'err': {u'msg': u'The file was not found in the repository', u'code': 207}, u'revision': u'2908'}

Error uploading diff

</pre>



** Note that other answers state:  "Yeah, you must point to the base of the repository, *not* a path inside of it."

My problem is that I don't know what this means.  Is this a server configuration, or is it a client configuration??   Is there some kind of "validation test" that I can run to make sure that I have things set up correctly?  

Thanks,
-Andy
chipx86
#1 chipx86
Hi Andy,

Review Board accepted that path during configuration, but really we shouldn't. It should point to the root of the SVN repository.

The reason is that diffs in SVN provide a relative path from the directory that 'svn diff' was run in, and post-review will look at relative path to the root and prepend that to the paths in the diff.

The resulting path looked up on Review Board in your case would be /trunk/trunk/whatever. This should, of course, be /trunk/whatever, but you told Review Board that the root is /trunk, and that conflicts with post-review.

So just changing that back will fix things :)
  • +SetupIssue
  • -Type-Defect
    +Type-Support
  • +chipx86
#2 apsof*****@gmai***** (Google Code) (Is this you? Claim this profile.)
I tried a whole variety of possibilities for configuring the server.  Only two are "accepted" by the web UI.

* https://svn.xxx.com:10023/svn2/myproject/trunk
* https://svn.xxx.com:10023/svn2/myproject

Both result in the same post-review error:  
>>> Got API Error 207 (HTTP code 400): The file was not found in the repository

Note that post-review -d --output-diff does give me a reasonable diff.
chipx86
#3 chipx86
Is the root of the repository /svn2 or /svn2/myproject?
#4 apsof*****@gmai***** (Google Code) (Is this you? Claim this profile.)
Note that the difference file looks like this:

Index: /myproject/trunk/android/service/project/src/com/xxx/service/test.java
===================================================================
--- /myproject/trunk/android/service/project/src/com/xxx/service/test.java	(revision 2908)
+++ /myproject/trunk/android/service/project/src/com/xxx/service/test.java	(working copy)
@@ -12,6 +12,9 @@


-- I am not an expert in reading these, but doesn't this indicate that my root should be "/myproject/trunk"?
#5 apsof*****@gmai***** (Google Code) (Is this you? Claim this profile.)
Sorry for the collision in comments.  How can I figure out what the root is supposed to be?  The web interface will not accept https://svn.xxx.com:10023/svn2
#6 apsof*****@gmai***** (Google Code) (Is this you? Claim this profile.)
Ahh.. svn info tells me the following:
Repository Root: https://svn.xxx.com:10023/svn2

I wonder if my username/password has access to the root...
chipx86
#7 chipx86
It won't accept it? What does it say?

The path in the diff isn't saying that /myproject/trunk is the root, but that it's *in* the root. So, myproject is a subdirectory of the root.

So it does look to me like /svn2 is the correct path. We need to figure out why it's not accepting that.

Do you have some sort of complex ACL scheme for your SVN?
#8 apsof*****@gmai***** (Google Code) (Is this you? Claim this profile.)
I am going to have to have some detailed conversations with the IT department.  They did see some errors in the log last night:

[Tue Feb 01 22:57:37 2011] [error] [client 10.1.1.16] Access denied: 'andyp' OPTIONS svn2:/


The error from the Web UI says this:

Change repository
Please correct the error below.
    * A repository was not found at the specified path.


My assumption is that I have not been granted access to the root of SVN at this company.  I only have access to the specific branch that I am on.
#9 apsof*****@gmai***** (Google Code) (Is this you? Claim this profile.)
Configuration issue on my end.  The solution was to have an account used that had access to the root of the project.  It was confusing as I don't have permission at the root level (didn't know that), and the message was too generic to figure out what needed to change.

Note that you might consider adding a link on "how to find what the SVN root is supposed to be", to take away guesswork.   svn info (on a source tree) gives the svn root needed.

Thanks for your help!
chipx86
#10 chipx86
Glad it works :)

We do need more inline help. I think the docs cover what's needed to a degree. Either way, we'd need a separate bug report for that.