4870: rbt post fails with a git-svn repo

ANohPh0p

What version are you running?

>>> RBTools 1.0.3

What steps will reproduce the problem?

  1. git svn clone https://svn.corp.com/thing/trunk thing
  2. cd thing
  3. ...
  4. git commit -m Foo
  5. rbt post

What is the expected output? What do you see instead?

Expected a web browser to open with my new review request.

Saw instead

CRITICAL: This clone has no configured remotes.

What operating system are you using?

>>> Running on Linux-5.6.7-300.fc32.x86_64-x86_64-with-glibc2.2.5

Attach the debug out from the command.

% ~/.local/bin/rbt post --debug
>>> RBTools 1.0.3
>>> Python 3.8.2 (default, Feb 28 2020, 00:00:00) 
[GCC 10.0.1 20200216 (Red Hat 10.0.1-0.8)]
>>> Running on Linux-5.6.7-300.fc32.x86_64-x86_64-with-glibc2.2.5
>>> Home = /home/me
>>> Current directory = /home/me/thing
>>> Command line: rbt post --debug
>>> Running: tf vc help
>>> Checking for a Bazaar repository...
>>> Unable to execute "bzr help": skipping Bazaar
>>> Checking for a ClearCase repository...
>>> Unable to execute "cleartool help": skipping ClearCase
>>> Checking for a CVS repository...
>>> Unable to execute "cvs": skipping CVS
>>> Checking for a Git repository...
>>> Running: git rev-parse --git-dir
>>> Running: git config core.bare
>>> Running: git rev-parse --show-toplevel
>>> Running: git symbolic-ref -q HEAD
>>> Running: git svn info
>>> Repository info: Path: https://svn.corp.com, Base path: /thing/trunk, Supports changesets: False
>>> Checking for a Mercurial repository...
>>> Running: hg root
>>> Command exited with rc 255: ['hg', 'root']
abort: no repository found in '/home/me/thing' (.hg not found)!
---
>>> Checking for a Perforce repository...
>>> Unable to execute "p4 help": skipping Perforce
>>> Checking for a Plastic repository...
>>> Unable to execute "cm version": skipping Plastic
>>> Checking for a Subversion repository...
>>> Running: svn --non-interactive info
>>> Command exited with rc 1: ['svn', '--non-interactive', 'info']
>>> Checking for a Team Foundation Server repository...
>>> Unable to execute "tf help": skipping TFS
>>> Making HTTP GET request to https://reviewboard.corp.com/api/
>>> Making HTTP GET request to https://reviewboard.corp.com/api/repositories/?tool=Subversion
>>> Cached response for HTTP GET https://reviewboard.corp.com/api/repositories/?tool=Subversion expired and was modified
>>> Running: git rev-parse refs/heads/master
>>> Running: git svn rebase -n
>>> Running: git branch --remotes
>>> Running: git config --get branch.refs/remotes/git-svn.remote
>>> Command exited with rc 1: ['git', 'config', '--get', 'branch.refs/remotes/git-svn.remote']
---
>>> Running: git remote
Traceback (most recent call last):
  File "/home/me/.local/bin/rbt", line 8, in <module>
    sys.exit(main())
  File "/home/me/.local/lib/python3.8/site-packages/rbtools/commands/main.py", line 120, in main
    command.run_from_argv([RB_MAIN, command_name] + args)
  File "/home/me/.local/lib/python3.8/site-packages/rbtools/commands/__init__.py", line 725, in run_from_argv
    exit_code = self.main(*args) or 0
  File "/home/me/.local/lib/python3.8/site-packages/rbtools/commands/post.py", line 793, in main
    self.revisions = get_revisions(self.tool, self.cmd_args)
  File "/home/me/.local/lib/python3.8/site-packages/rbtools/utils/review_request.py", line 67, in get_revisions
    revisions = tool.parse_revision_spec(cmd_args)
  File "/home/me/.local/lib/python3.8/site-packages/rbtools/clients/git.py", line 150, in parse_revision_spec
    remote = self._find_remote(parent_branch)
  File "/home/me/.local/lib/python3.8/site-packages/rbtools/clients/git.py", line 1336, in _find_remote
    raise SCMError('This clone has no configured remotes.')
rbtools.clients.errors.SCMError: This clone has no configured remotes.

Please provide any additional information below.

The same problem occurs with the system-installed RBTools 1.0.2.

This worked as recently as a few months ago with Fedora 31 (I just upgraded to Fedora 32). I couldn't say what version of RBTools this was working with, though.

#1 ANohPh0p

The same error occurs with RBTools 1.0.1 and 1.0.0.

I suspect it would work with 0.7.11, but I'm getting an error

% ~/.local/bin/rbt post --debug
>>> RBTools 0.7.11
>>> Python 3.8.2 (default, Feb 28 2020, 00:00:00)
[GCC 10.0.1 20200216 (Red Hat 10.0.1-0.8)]
>>> Running on Linux-5.6.7-300.fc32.x86_64-x86_64-with-glibc2.2.5
>>> Home = /home/me
>>> Current directory = /home/me/thing
Traceback (most recent call last):
  File "/home/me/.local/bin/rbt", line 11, in <module>
    load_entry_point('RBTools==0.7.11', 'console_scripts', 'rbt')()
  File "/home/me/.local/lib/python3.8/site-packages/rbtools/commands/main.py", line 133, in main
    command.run_from_argv([RB_MAIN, command_name] + args)
  File "/home/me/.local/lib/python3.8/site-packages/rbtools/commands/__init__.py", line 662, in run_from_argv
    subprocess.list2cmdline(argv).decode('utf8'))
AttributeError: 'str' object has no attribute 'decode'

which is presumably a Python 3-related issue.

#2 ANohPh0p

Actually, RBTools 1.0.1 and 1.0.0 fail, but with a different error.