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