I am currently using RB 3.0.18. I've configured our instance, which runs in 
Docker, with a number of Git repos.

The configuration uses ssh; so entries look like this:

ssh://gitoliteuser@gitserver/mygitrepo.git

We link to our own internal gitweb instance, and entries for the raw url 
file mask look like this:

http://gitserver/gitweb/mygitrepo.git;a=blob_plain;f=<filename>;h=<revision>

Initial access to the repo, and linking reviews for new code works just 
fine:

rbt post -d a23476f834ef86d8f9549f3c35b258422911421fe
...
...
Review request #5 posted.

However, if I edit a file that already exists in my Git branch, commit, and 
then try to submit code for review, I get an Error 207 (File not found):

rbt post -d a08f68f834ef86d8f9549fa3eb258422911421fe
>>> RBTools 1.0.3
>>> Python 2.7.16 (default, Oct 10 2019, 22:02:15) 
[GCC 8.3.0]
>>> Running on Linux-5.4.0-0.bpo.4-amd64-x86_64-with-debian-10.0
>>> Home = /home/myuser
>>> Current directory = /home/myuser/src/mygitrepo
>>> Command line: rbt post -d a08f68f834ef86d8f9549fa3eb258422911421fe
>>> Running: tf vc help
>>> Checking for a Git repository...
>>> Running: git rev-parse --git-dir
>>> Running: git config core.bare
>>> Running: git rev-parse --show-toplevel
>>> Running: git symbolic-ref -q HEAD
>>> Running: git config --get branch.master.merge
>>> Running: git config --get branch.master.remote
>>> Running: git config --get remote.origin.url
>>> Repository info: Path: git:mygitrepo, Base path: , Supports changesets: 
False
>>> Making HTTP GET request to http://reviewboard.oursite.com/api/
>>> Running: git rev-parse a08f68f834ef86d8f9549fa3eb258422911421fe
>>> Running: git rev-parse a08f68f834ef86d8f9549fa3eb258422911421fe^
>>> Running: git config --get branch.master.merge
>>> Running: git config --get branch.master.remote
>>> Running: git branch --remotes
>>> Running: git rev-list e66800919f5d3dfba8a6416ad393794485aa2b9c --not 
--remotes=origin
>>> Running: git version
>>> Running: git -c core.quotepath=false -c diff.noprefix=false diff 
--no-color --full-index --ignore-submodules -M --no-ext-diff 
e66800919f5d3dfba8a6416ad393794485aa2b9c..a08f68f834ef86d8f9549fa3eb258422911421fe
>>> Generated diff size: 310 bytes
>>> Making HTTP GET request to 
http://reviewboard.oursite.com/api/validation/diffs/
>>> Cached response for HTTP GET 
http://reviewboard.oursite.com/api/validation/diffs/ expired and was 
modified
>>> Making HTTP POST request to 
http://reviewboard.oursite.com/api/validation/diffs/
>>> Got API Error 207 (HTTP code 400): The file was not found in the 
repository.
>>> Error data: {u'stat': u'fail', u'file': u'test.foo', u'err': {u'msg': 
u'The file was not found in the repository.', u'code': 207}, u'revision': 
u'b646fadbca709a770dfcca95cadaeb50aac92627'}
Traceback (most recent call last):
  File "/usr/local/bin/rbt", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/rbtools/commands/main.py", 
line 120, in main
    command.run_from_argv([RB_MAIN, command_name] + args)
  File 
"/usr/local/lib/python2.7/dist-packages/rbtools/commands/__init__.py", line 
725, in run_from_argv
    exit_code = self.main(*args) or 0
  File "/usr/local/lib/python2.7/dist-packages/rbtools/commands/post.py", 
line 874, in main
    (msg_prefix, e))
rbtools.commands.CommandError: Error validating diff

test.foo: The file was not found in the repository. (HTTP 400, API Error 
207)

Note the very first git diff command:
>>> Running: git -c core.quotepath=false -c diff.noprefix=false diff 
--no-color --full-index --ignore-submodules -M --no-ext-diff 
e66800919f5d3dfba8a6416ad393794485aa2b9c..a08f68f834ef86d8f9549fa3eb258422911421fe

This command has the actual, correct git hashes.

Note the API error:

>>> Got API Error 207 (HTTP code 400): The file was not found in the 
repository.
>>> Error data: {u'stat': u'fail', u'file': u'test.foo', u'err': {u'msg': 
u'The file was not found in the repository.', u'code': 207}, u'revision': 
u'b646fadbca709a770dfcca95cadaeb50aac92627'}

This has an incorrect hash, one that doesn't seem to exist in the remote 
repo, or my local working copy at all.

I put some debugging code in rbtools/api/request.py in "def 
make_request(self, request)" on the client to see if I could figure out 
what was going on, and I can confirm that the rbt client is in fact sending 
the wrong hash:

            print("BODY: ", request.url, " ", body, " ", headers)

I get the following output: 

rbt post a08f68f834ef86d8f9549fa3eb258422911421fe
(u'BODY: ', 'http://reviewboard.oursite.com/api/', u' ', None, u' ', 
{u'Content-Length': u'0'})
(u'BODY: ', 'http://reviewboard.oursite.com/api/validation/diffs/', u' ', 
None, u' ', {u'Content-Length': u'0'})
(u'BODY: ', 'http://reviewboard.oursite.com/api/validation/diffs/', u' ', 
'--===============6823395440781781946==\r\nContent-Disposition: form-data; 
name="base_commit_id"\r\n\r\ne66800919f5d3dfba8a6416ad393794485aa2b9c\r\n--===============6823395440781781946==\r\nContent-Disposition:
 
form-data; 
name="repository"\r\n\r\nmygitrepo\r\n--===============6823395440781781946==\r\nContent-Disposition:
 
form-data; name="path"; filename="diff"\r\nContent-Type: 
application/octet-stream\r\n\r\ndiff --git a/test.foo b/test.foo\nindex 
b646fadbca709a770dfcca95cadaeb50aac92627..0c3894442990dcaf42f8099cc3c0d9a731332174
 
100644\n--- a/test.foo\n+++ b/test.foo\n@@ -2,3 +2,5 @@\n exec /bin/bash\n 
# oh no I forgot another thing\n exec /bin/anotherthing\n+# boy do I love 
forgetting things\n+exec 
/bin/forgettingthings\n\r\n--===============6823395440781781946==--\r\n\r\n', 
u' ', {u'Content-Length': '741', u'Content-Type': u'multipart/form-data; 
boundary================6823395440781781946=='})
ERROR: Error validating diff

There's that git hash that doesn't exist:

diff --git a/test.foo b/test.foo\nindex 
b646fadbca709a770dfcca95cadaeb50aac92627..0c3894442990dcaf42f8099cc3c0d9a731332174
 
100644\n--- a/test.foo\n+++ b/test.foo\n@@ -2,3 +2,5

Where is the rbt client getting this hash? Should I have my RB repostories 
configured differently?

Thanks,

Ed

-- 
Supercharge your Review Board with Power Pack: 
https://www.reviewboard.org/powerpack/
Want us to host Review Board for you? Check out RBCommons: 
https://rbcommons.com/
Happy user? Let us know! https://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"Review Board Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/reviewboard/d5079684-2c9d-46e7-9499-0cafdfc0ba60n%40googlegroups.com.

Reply via email to