review board diff not uploading

2019-02-11 05:28发布

问题:

i am currently attempting to do a diff using review board but keep getting an ambiguous error message:

Error uploading diff
Your review request still exists, but the diff is not attached.

The debug messages do not give much away either, no errors whatsoever....

>>> RBTools 0.4.1
>>> Home = /home/tom
>>> HTTP GETting api/
>>> HTTP GETting http://127.0.0.1/api/info/
>>> Using the new web API
Index: /trunk/0.1/scripts/configure-apache.sh
===================================================================
--- /trunk/0.1/scripts/configure-apache.sh  (revision 143)
+++ /trunk/0.1/scripts/configure-apache.sh  (working copy)
@@ -1,5 +1,5 @@
#! /bin/bash
-
+echo hello
cd ..
#SRCHEAD="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
SRCHEAD=$SRC_HEAD

This is what my ".reviewboardrc" file contains:

REVIEWBOARD_URL = "http://127.0.0.1/"

the repository path is: "https://XXX/svn/infinity/trunk/0.1"

does anyone know where i can start in order to resolve this issue i am seeing?

thanks in advance

回答1:

The problem you are facing may be that the relative path in the diff file is not correlated with the path of the repository as it is configured in Reviewboard.

Reviewboard, in order to find in the repository the files mentioned in the diff, will concatenate the URLs like this:

  • URL of the repo as configured in Reviewboard
    +
  • optionally - the Base directory as it appears in the Reviewboard Upload diff dialog - which can be absolute/complete but also relative(!)
    +
  • the relative path of the modified file as it appears in the diff file.

All these must be correlated.

Therefore, in your case, if your repository configured URL is:
https://XXX/svn/infinity/trunk/0.1
and your relative path in the diff file is:
/trunk/0.1/scripts/configure-apache.sh
... that will not work because the resulting absolute path of the file in the repo will be incorrect:
https://XXX/svn/infinity/trunk/0.1/trunk/0.1/scripts/configure-apache.sh

Possible solutions would be:
Your URL for SVN should be configured in Reviewboard like this:
https://XXX/svn/infinity
OR
The diff should be created at a lower level in the folders hierarchy - in this case it should be done at ../0.1/ level so that the path in the diff file results in /scripts/configure-apache.sh

HTH!



回答2:

a workaround is to do a manual svn diff and save to a file and then compare the working copy with the trunk in the web ui