4819: "rbt post" is broken (will not accept Perforce changelist number) in 1.0.2 under Python 3.7.3

c0d3h4x0r

What version are you running?

RBTools==1.0.2

What steps will reproduce the problem?

  1. Locally apply the code fix I described in ticket 4818.
  2. cd into the root of an existing Perforce workspace with a file opened for "p4 edit" under a numbered CL.
  3. rbt post <CL#>

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

Expected: It should work.

Actual:

CRITICAL: Path 1802276 does not match a valid Perforce path.

What operating system are you using?

Windows 10 Enterprise 64-bit

Attach the debug out from the command.

>>> RBTools 1.0.2
>>> Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)]
>>> Running on Windows-10-10.0.16299-SP0
>>> Home = C:\Users\kkelly\AppData\Roaming
>>> Current directory = D:\p4\depot\teams\near
>>> Command line: rbt post --debug 1802276
>>> 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
>>> 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...
>>> Unable to execute "hg --help": skipping Mercurial
>>> Checking for a Perforce repository...
>>> Running: p4 info
>>> Running: diff --version
>>> Repository info: Path: dvp4edgepl009.tsi.lan:1666, Base path: None, Supports changesets: True
>>> 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 http://reviewboard/api/
>>> Running: p4 info
Traceback (most recent call last):
  File "c:\python37\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\python37\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Python37\Scripts\rbt.exe\__main__.py", line 9, in <module>
  File "c:\python37\lib\site-packages\rbtools\commands\main.py", line 120, in main
    command.run_from_argv([RB_MAIN, command_name] + args)
  File "c:\python37\lib\site-packages\rbtools\commands\__init__.py", line 725, in run_from_argv
    exit_code = self.main(*args) or 0
  File "c:\python37\lib\site-packages\rbtools\commands\post.py", line 806, in main
    extra_args=extra_args)
  File "c:\python37\lib\site-packages\rbtools\clients\perforce.py", line 729, in diff
    return self._path_diff(extra_args, exclude_patterns)
  File "c:\python37\lib\site-packages\rbtools\clients\perforce.py", line 1470, in _path_diff
    % path)
rbtools.clients.errors.SCMError: Path 1802276 does not match a valid Perforce path.

Please provide any additional information below.

I tried upgrading my p4.exe command-line client to the latest (Rev. P4/NTX64/2019.1/1796703 (2019/04/30)), but that did not help.

david
#1 david

I'm not able to reproduce this problem.

Do you think you could trace through parse_revision_spec in rbtools/clients/perforce.py and see what the revisions list looks like and where it's failing to parse it correctly?

  • -New
    +NeedInfo