Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 3490 by [email protected]: rbt post with Perforce fails when a
file has been renamed twice
http://code.google.com/p/reviewboard/issues/detail?id=3490
What version are you running?
RBTools 0.6.2
What's the URL of the page containing the problem?
N/A
What steps will reproduce the problem?
1. In any Perforce repository, create a file named TestHistory.txt and
submit it, creating changelist A.
2. Rename the file to TestHistory2.txt and submit the change, creating
changelist B.
3. Rename the file to TestHistory3.txt and submit the change, creating
changelist C.
4. Run rbt post <changelist C>
What is the expected output? What do you see instead?
- The expected output is:
Generating diff for range of submitted changes: <changelist B> to
<changelist C>
Review request #XY posted.
[...]
- Instead, the output is:
Generating diff for range of submitted changes: <changelist B> to
<changelist C>
CRITICAL: 'file1,0'
- If I enable debugging: rbt post -d <changelist C>, the output is:
RBTools 0.6.2
Python 2.7.5 (default, Aug 25 2013, 00:04:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)]
Running on Darwin-13.1.0-x86_64-i386-64bit
Home = /Users/samuel
Current directory =
/Users/samuel/Perforce/Samuel_samuels-mbp_PerforceTest_7554
Checking for a Subversion repository...
Running: svn info --non-interactive
Command exited with rc 1: ['svn', 'info', '--non-interactive']
svn: E155007: '/Users/samuel/Perforce/Samuel_samuels-mbp_PerforceTest_7554'
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...
Unable to execute "hg --help": skipping Mercurial
Checking for a CVS repository...
Unable to execute "cvs": skipping CVS
Checking for a Perforce repository...
Running: p4 info
Running: diff --version
repository info: Path: centauri:1666, Base path: None, Supports
changesets: True
Making HTTP GET request to http://192.168.1.201/reviewboard/api/
Generating diff for range of submitted changes: 3310 to 3311
Traceback (most recent call last):
File "/usr/local/bin/rbt", line 8, in <module>
load_entry_point('RBTools==0.6.2', 'console_scripts', 'rbt')()
File "/Library/Python/2.7/site-packages/RBTools-0.6.2-py2.7.egg/rbtools/commands/main.py",
line 134, in main
command.run_from_argv([RB_MAIN, command_name] + args)
File "/Library/Python/2.7/site-packages/RBTools-0.6.2-py2.7.egg/rbtools/commands/__init__.py",
line 416, in run_from_argv
exit_code = self.main(*args) or 0
File "/Library/Python/2.7/site-packages/RBTools-0.6.2-py2.7.egg/rbtools/commands/post.py",
line 738, in main
extra_args=extra_args)
File "/Library/Python/2.7/site-packages/RBTools-0.6.2-py2.7.egg/rbtools/clients/perforce.py",
line 460, in diff
base, tip, depot_include_files, local_include_files)
File "/Library/Python/2.7/site-packages/RBTools-0.6.2-py2.7.egg/rbtools/clients/perforce.py",
line 672, in _compute_range_changes
change['newFilename'] = file_entry['file1,%d' % cid]
KeyError: 'file1,0'
What operating system are you using? What browser?
- Mac OS X 10.9.2
- Python 2.7.5
- P4 Rev. P4/MACOSX105X86_64/2014.1/821990 (2014/04/08)
Please provide any additional information below.
In the logs we can see that the key "file1,0" is absent from the file entry
returned by p4. If I edit perforce.py to print the contents of file_entry
just before the exception is raised, I get this:
{'code': 'stat', 'desc0': 'Rename
TestHistory2.txt. ', 'user0': 'Samuel', 'client0': 'Samuel_samuels-mbp_PerforceTest_7554', 'time0': '1406067096', 'action0': 'move/delete', 'depotFile': '//[...]/PerforceTest/TestHistory2.txt', 'rev0': '2', 'type0': 'text', 'change0': '3311'}
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
You received this message because you are subscribed to the Google Groups
"reviewboard-issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/reviewboard-issues.
For more options, visit https://groups.google.com/d/optout.