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
work: 
http://groups.google.com/group/reviewboard/browse_thread/thread/3423e2c8f71c5c3a?pli=1

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
-d
>>> 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
None

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",
options.tracking]).strip()

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 
http://www.reviewboard.org/donate/
Happy user? Let us know at http://www.reviewboard.org/users/
-~----------~----~----~----~------~----~------~--~---
To unsubscribe from this group, send email to 
reviewboard+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en

Reply via email to