What version are you running?
What steps will reproduce the problem?
- Locally apply the code fix I described in ticket 4818.
- cd into the root of an existing Perforce workspace with a file opened for "p4 edit" under a numbered CL.
- 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.
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
revisionslist looks like and where it's failing to parse it correctly?
- New + NeedInfo
I am also getting this issue on CentOS. I am using RBTools 1.0.2, Python 3.6.8 and p4 P4/LINUX26X86_64/2019.1/1813586 (2019/06/06). I debugged the issue and found out that p4 -G is generating Python dictionaries that contain byte literals instead of regular strings. I patched RBTools to convert all of these byte literals to strings before they are used, and I managed to make it work. The patch is just a workaround, but it's attached to this comment in case it can provide any insight.