I'm new to reviewboard, so maybe I have totally the wrong idea.  My
org uses svn, but I'm using git-svn.  I have a chain of commits in my
git repos, and I want to post them as separate review requests, but I
can't seem to get post-review to do this.

My git repos looks like this:

O <-- change-3
O <-- change-2
O <-- change-1
O <-- master <-- remotes/trunk

I want to be able to do something like:

git checkout change-3
post-review --parent=change-2

and post a diff between change-2 and change-3 for review (ideally,
just saying "post-review HEAD^ HEAD" would be even better), even
though the repository from reviewboard's point of view is SVN.

I've seen some discussion that seems to suggest that this ought to

but it doesn't for me :(.  It appears I'm getting empty diffs?

$ git checkout change-3
$ post-review --parent=change-2
Traceback (most recent call last):
  File "/usr/local/bin/post-review", line 8, in <module>
    load_entry_point('RBTools==0.2', 'console_scripts', 'post-review')
  File "build/bdist.linux-x86_64/egg/rbtools/postreview.py", line
2861, in main
  File "build/bdist.linux-x86_64/egg/rbtools/postreview.py", line
2554, in tempt_fate
  File "build/bdist.linux-x86_64/egg/rbtools/postreview.py", line 503,
in upload_diff
TypeError: object of type 'NoneType' has no len()

$ post-review --parent=change-2 --output-diff  --tracking-branch=trunk
>>> svn info
>>> git rev-parse --git-dir
>>> git symbolic-ref -q HEAD
>>> git svn info
>>> repository info: Path: https://dev.pluggd.com/svn, Base path: 
>>> /frontend/HtmlClient/Player/trunk, Supports changesets: False
>>> git config --get reviewboard.url
>>> git merge-base change-2 refs/heads/change-3
>>> git diff --no-color --no-prefix -r -u change-2..
>>> git svn find-rev change-2
>>> git diff --no-color --no-prefix -r -u 
>>> dae96a154b9f395a9945b833973654d813ea8e5f..change-2
>>> git svn find-rev dae96a154b9f395a9945b833973654d813ea8e5f

dae96a.. is change-2, so it makes sense that the diff is empty.  It
should also be noted that the "git svn find-rev change-2" doesn't
return anything, since change-2 isn't in svn.  As a last thrash, I
tried modifying postreview.py's GitClient.make_svn_diff, and added:

if not rev:
    rev = execute(["git", "svn", "find-rev",

after the first line that tries to find the parent's svn rev.  This
makes post-review generate the right diff!  But if I post it to review
board, I can't view it, presumably because it's trying to apply it
against the version in svn.  Here I gave up.

Is there a solution?

Want to help the Review Board project? Donate today at 
Happy user? Let us know at http://www.reviewboard.org/users/
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to