CRITICAL: tuple index out of range error with RBTools 0.6 and Mercurial

286 views
Skip to first unread message

OPL X

unread,
May 23, 2014, 4:57:36 AM5/23/14
to revie...@googlegroups.com
Hello,

I had installed ReviewBoard 2.0 and set it up to work with Mercurial.  Unfortunately when I do an rbt post, I get this error:

CRITICAL: tuple index out of range

Adding --debug at the end produces this output:

----

>>> RBTools 0.6
>>> Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2]
>>> Running on Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty
>>> Home = /home/oplx
>>> Current directory = /home/oplx/rb_repo/hg0
>>> Checking for a Subversion repository...
>>> Running: svn info --non-interactive
>>> Command exited with rc 1: ['svn', 'info', '--non-interactive']
svn: E155007: '/home/oplx/rb_repo/hg0' is not a working copy
---
>>> Checking for a Git repository...
>>> Running: git rev-parse --git-dir
>>> Command exited with rc 128: ['git', 'rev-parse', '--git-dir']
fatal: Not a git repository (or any of the parent directories): .git
---
>>> Checking for a Mercurial repository...
>>> Running: hg root
>>> Running: hg showconfig
>>> Running: hg svn info
>>> Command exited with rc 255: ['hg', 'svn', 'info']
hg: unknown command 'svn'
Mercurial Distributed SCM

basic commands:

 add           add the specified files on the next commit
 annotate      show changeset information by line for each file
 clone         make a copy of an existing repository
 commit        commit the specified files or all outstanding changes
 diff          diff repository (or selected files)
 export        dump the header and diffs for one or more changesets
 forget        forget the specified files on the next commit
 init          create a new repository in the given directory
 log           show revision history of entire repository or files
 merge         merge working directory with another revision
 pull          pull changes from the specified source
 push          push changes to the specified destination
 remove        remove the specified files on the next commit
 serve         start stand-alone webserver
 status        show changed files in the working directory
 summary       summarize working directory state
 update        update working directory (or switch revisions)

use "hg help" for the full list of commands or "hg -v" for details
---
>>> repository info: Path: /home/oplx/rb_repo/hg0, Base path: /, Supports changesets: False
>>> Making HTTP GET request to http://localhost/reviewboard/api/
Traceback (most recent call last):
  File "/usr/local/bin/rbt", line 9, in <module>
    load_entry_point('RBTools==0.6', 'console_scripts', 'rbt')()
  File "/usr/local/lib/python2.7/dist-packages/RBTools-0.6-py2.7.egg/rbtools/commands/main.py", line 134, in main
    command.run_from_argv([RB_MAIN, command_name] + args)
  File "/usr/local/lib/python2.7/dist-packages/RBTools-0.6-py2.7.egg/rbtools/commands/__init__.py", line 422, in run_from_argv
    exit_code = self.main(*args) or 0
  File "/usr/local/lib/python2.7/dist-packages/RBTools-0.6-py2.7.egg/rbtools/commands/post.py", line 717, in main
    revisions = self.get_revisions()
  File "/usr/local/lib/python2.7/dist-packages/RBTools-0.6-py2.7.egg/rbtools/commands/post.py", line 619, in get_revisions
    self._revisions = self.tool.parse_revision_spec(self.cmd_args)
  File "/usr/local/lib/python2.7/dist-packages/RBTools-0.6-py2.7.egg/rbtools/clients/mercurial.py", line 222, in parse_revision_spec
    self._get_bottom_and_top_outgoing_revs_for_remote(rev='.')
  File "/usr/local/lib/python2.7/dist-packages/RBTools-0.6-py2.7.egg/rbtools/clients/mercurial.py", line 401, in _get_bottom_and_top_outgoing_revs_for_remote
    remote = self._get_remote_branch()
  File "/usr/local/lib/python2.7/dist-packages/RBTools-0.6-py2.7.egg/rbtools/clients/mercurial.py", line 383, in _get_remote_branch
    remote = self._remote_path[0]
IndexError: tuple index out of range

-----

Everything looks correct on my settings, but I am not sure what else I could be missing.  I get this same error when using ReviewBoard 1.7.25.

Thank you.

David Trowbridge

unread,
May 23, 2014, 3:11:50 PM5/23/14
to reviewboard
Can you show us the output of `hg showconfig`?

-David


--
Get the Review Board Power Pack at http://www.reviewboard.org/powerpack/
---
Sign up for Review Board hosting at RBCommons: https://rbcommons.com/
---
Happy user? Let us know at http://www.reviewboard.org/users/
---
You received this message because you are subscribed to the Google Groups "reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to reviewboard...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

OPL X

unread,
May 25, 2014, 9:31:49 PM5/25/14
to revie...@googlegroups.com
Hello,

Here's the output from 'hg showconfig'

---

bundle.mainreporoot=/home/oplx/rb_repo/hg0
merge-tools.kdiff3.args=--auto --L1 base --L2 local --L3 other $base $local $other -o $output
merge-tools.kdiff3.regkey=Software\KDiff3
merge-tools.kdiff3.regkeyalt=Software\Wow6432Node\KDiff3
merge-tools.kdiff3.regappend=\kdiff3.exe
merge-tools.kdiff3.fixeol=True
merge-tools.kdiff3.gui=True
merge-tools.kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child
merge-tools.gvimdiff.args=--nofork -d -g -O $local $other $base
merge-tools.gvimdiff.regkey=Software\Vim\GVim
merge-tools.gvimdiff.regkeyalt=Software\Wow6432Node\Vim\GVim
merge-tools.gvimdiff.regname=path
merge-tools.gvimdiff.priority=-9
merge-tools.vimdiff.args=$local $other $base -c 'redraw | echomsg "hg merge conflict, type \":cq\" to abort vimdiff"'
merge-tools.vimdiff.check=changed
merge-tools.vimdiff.priority=-10
merge-tools.merge.check=conflicts
merge-tools.merge.priority=-100
merge-tools.gpyfm.gui=True
merge-tools.meld.gui=True
merge-tools.meld.args=--label='local' $local --label='merged' $base --label='other' $other -o $output
merge-tools.meld.check=changed
merge-tools.meld.diffargs=-a --label='$plabel1' $parent --label='$clabel' $child
merge-tools.tkdiff.args=$local $other -a $base -o $output
merge-tools.tkdiff.gui=True
merge-tools.tkdiff.priority=-8
merge-tools.tkdiff.diffargs=-L '$plabel1' $parent -L '$clabel' $child
merge-tools.xxdiff.args=--show-merged-pane --exit-with-merge-status --title1 local --title2 base --title3 other --merged-filename $output --merge $local $base $other
merge-tools.xxdiff.gui=True
merge-tools.xxdiff.priority=-8
merge-tools.xxdiff.diffargs=--title1 '$plabel1' $parent --title2 '$clabel' $child
merge-tools.diffmerge.regkey=Software\SourceGear\SourceGear DiffMerge\
merge-tools.diffmerge.regkeyalt=Software\Wow6432Node\SourceGear\SourceGear DiffMerge\
merge-tools.diffmerge.regname=Location
merge-tools.diffmerge.priority=-7
merge-tools.diffmerge.args=-nosplash -merge -title1=local -title2=merged -title3=other $local $base $other -result=$output
merge-tools.diffmerge.check=changed
merge-tools.diffmerge.gui=True
merge-tools.diffmerge.diffargs=--nosplash --title1='$plabel1' --title2='$clabel' $parent $child
merge-tools.p4merge.args=$base $local $other $output
merge-tools.p4merge.regkey=Software\Perforce\Environment
merge-tools.p4merge.regkeyalt=Software\Wow6432Node\Perforce\Environment
merge-tools.p4merge.regname=P4INSTROOT
merge-tools.p4merge.regappend=\p4merge.exe
merge-tools.p4merge.gui=True
merge-tools.p4merge.priority=-8
merge-tools.p4merge.diffargs=$parent $child
merge-tools.tortoisemerge.args=/base:$base /mine:$local /theirs:$other /merged:$output
merge-tools.tortoisemerge.regkey=Software\TortoiseSVN
merge-tools.tortoisemerge.regkeyalt=Software\Wow6432Node\TortoiseSVN
merge-tools.tortoisemerge.check=changed
merge-tools.tortoisemerge.gui=True
merge-tools.tortoisemerge.priority=-8
merge-tools.tortoisemerge.diffargs=/base:$parent /mine:$child /basename:'$plabel1' /minename:'$clabel'
merge-tools.ecmerge.args=$base $local $other --mode=merge3 --title0=base --title1=local --title2=other --to=$output
merge-tools.ecmerge.regkey=Software\Elli\xc3\xa9 Computing\Merge
merge-tools.ecmerge.regkeyalt=Software\Wow6432Node\Elli\xc3\xa9 Computing\Merge
merge-tools.ecmerge.gui=True
merge-tools.ecmerge.diffargs=$parent $child --mode=diff2 --title1='$plabel1' --title2='$clabel'
merge-tools.filemerge.executable=/Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge
merge-tools.filemerge.args=-left $other -right $local -ancestor $base -merge $output
merge-tools.filemerge.gui=True
merge-tools.beyondcompare3.args=$local $other $base $output /ro /lefttitle=local /centertitle=base /righttitle=other /automerge /reviewconflicts /solo
merge-tools.beyondcompare3.regkey=Software\Scooter Software\Beyond Compare 3
merge-tools.beyondcompare3.regname=ExePath
merge-tools.beyondcompare3.gui=True
merge-tools.beyondcompare3.priority=-2
merge-tools.beyondcompare3.diffargs=/lro /lefttitle='$plabel1' /righttitle='$clabel' /solo /expandall $parent $child
merge-tools.bcompare.args=$local $other $base -mergeoutput=$output -ro -lefttitle=parent1 -centertitle=base -righttitle=parent2 -outputtitle=merged -automerge -reviewconflicts -solo
merge-tools.bcompare.premerge=False
merge-tools.bcompare.gui=True
merge-tools.bcompare.priority=-1
merge-tools.bcompare.diffargs=-lro -lefttitle='$plabel1' -righttitle='$clabel' -solo -expandall $parent $child
merge-tools.winmerge.args=/e /x /wl /ub /dl other /dr local $other $local $output
merge-tools.winmerge.regkey=Software\Thingamahoochie\WinMerge
merge-tools.winmerge.regkeyalt=Software\Wow6432Node\Thingamahoochie\WinMerge\
merge-tools.winmerge.regname=Executable
merge-tools.winmerge.check=changed
merge-tools.winmerge.gui=True
merge-tools.winmerge.priority=-10
merge-tools.winmerge.diffargs=/r /e /x /ub /wl /dl '$plabel1' /dr '$clabel' $parent $child
merge-tools.araxis.regkey=SOFTWARE\Classes\TypeLib\{46799e0a-7bd1-4330-911c-9660bb964ea2}\7.0\HELPDIR
merge-tools.araxis.regappend=\ConsoleCompare.exe
merge-tools.araxis.priority=-2
merge-tools.araxis.args=/3 /a2 /wait /merge /title1:"Other" /title2:"Base" /title3:"Local :"$local $other $base $local $output
merge-tools.araxis.premerge=False
merge-tools.araxis.checkconflict=True
merge-tools.araxis.binary=True
merge-tools.araxis.gui=True
merge-tools.araxis.diffargs=/2 /wait /title1:"$plabel1" /title2:"$clabel" $parent $child
merge-tools.diffuse.priority=-3
merge-tools.diffuse.args=$local $base $other
merge-tools.diffuse.gui=True
merge-tools.diffuse.diffargs=$parent $child
merge-tools.UltraCompare.regkey=Software\Microsoft\Windows\CurrentVersion\App Paths\UC.exe
merge-tools.UltraCompare.regkeyalt=Software\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\UC.exe
merge-tools.UltraCompare.args=$base $local $other -title1 base -title3 other
merge-tools.UltraCompare.priority=-2
merge-tools.UltraCompare.gui=True
merge-tools.UltraCompare.binary=True
merge-tools.UltraCompare.check=conflicts,changed
merge-tools.UltraCompare.diffargs=$child $parent -title1 $clabel -title2 $plabel1
web.cacerts=/etc/ssl/certs/ca-certificates.crt

---

Thank you kindly.

David Trowbridge

unread,
Jun 3, 2014, 6:25:45 PM6/3/14
to reviewboard
The issue here is that rbt can't figure out which branch is your upstream (that is, which one is also available on the repository configured in review board). You can use --tracking-branch to specify this manually.

We'll get a fix for the terrible error message in for 0.6.1

-David

OPL X

unread,
Jun 4, 2014, 9:35:59 PM6/4/14
to revie...@googlegroups.com
Hello,

Thank you for taking a look at the problem.  When I issue:  "rbt post --tracking-branch default" for on the designated Mercurial repository, the same error message is reported.  Shall I just wait for version 0.6.1?  Thank you.

David Trowbridge

unread,
Jun 4, 2014, 10:13:58 PM6/4/14
to reviewboard
I believe you need to use = when specifying long options:

rbt post --tracking-branch=default

That said, if your upstream branch is named 'default', it should be able to find it. I'm not sure why there are no "paths.<branch>" entries in your 'hg showconfig'

-David

OPL X

unread,
Jun 5, 2014, 10:25:32 PM6/5/14
to revie...@googlegroups.com
Hello again,

I tried:

rbt post --tracking-branch=default

and came up with the same error.  I will try to take a bit of a deeper look as to what may be going on with Mercurial.  On the same test machine that I am using, Subversion works without any problems.

If I discover the reason, I will be sure to let you know.  Thanks again!

OPL X

unread,
Oct 6, 2014, 2:51:41 AM10/6/14
to revie...@googlegroups.com
Hello,

After much trial and error, I managed to get ReviewBoard working!  I believe there was an issue with how I had set up the paths and permissions on the test machine I had.

One thing I noticed is that when I make any changes locally and execute:  rbt post, I get 'CRITICAL: There are no outgoing changes'.  This only happens if I do not issue an 'hg commit'.

I had thought that I should be able to 'rbt post' without having to commit.  Am I missing something?  Thank you again.

chri...@beanbaginc.com

unread,
Oct 6, 2014, 3:53:31 PM10/6/14
to revie...@googlegroups.com, OPL X
Hi,

For Git, Mercurial, etc., the workflow is:

1) Commit changes to a branch.
2) Run rbt post

The commit messages will then be used as the default summary and description for the review request.

Christian

--
Christian Hammond - chri...@beanbaginc.com
Review Board - https://www.reviewboard.org
Beanbag, Inc. - https://www.beanbaginc.com
> >> to find it. I'm not sure why there are no "paths." entries in your
> >>>>>>> Mercurial. Unfortunately when I do an *rbt post*, I get this error:

OPL X

unread,
Oct 7, 2014, 2:14:31 AM10/7/14
to revie...@googlegroups.com, oplx...@gmail.com, chri...@beanbaginc.com
Thank you for the information!
Reply all
Reply to author
Forward
0 new messages