What version are you running?
RBTools-1.0.2
What steps will reproduce the problem?
- branch off of any repo's master branch
- make any commit
rbt post --tracking-branch=origin/master --parent=CURRENT_SHA_ON_MASTER --branch=BRANCH_FROM_STEP_ONE
- the
rbt post
should error out trying togit rev-parse FIRST_COMMIT_SHA_ON_MASTER^
What is the expected output? What do you see instead?
I expect a review to be posted. Instead I see
WARNING: Could not determine specific upstream remote to use for diffs. We recommend setting TRACKING_BRANCH in reviewboardrc to your nearest upstream remote branch. CRITICAL: Failed to execute command: ['git', 'rev-parse', 'e181f11730060fb3682016c233533d90602a0c2c^'] ``` where `e181f11730060fb3682016c233533d90602a0c2c` is the first commit ever made to the repo I ran this on. # What operating system are you using? OS: `macOS Mojave (10.14.3)` # Attach the debug out from the command.rbt post --debug --server=https://INTERNALREVIEWBOARD --repository=REPO --tracking-branch=origin/master --parent=4ccc43cb299d7498f19de6178408f2a078e51859 --branch=luisp/test
RBTools 1.0.2
Python 3.7.3 (default, Mar 27 2019, 09:23:15)
[Clang 10.0.1 (clang-1001.0.46.3)]
Running on Darwin-18.2.0-x86_64-i386-64bit
Home = /Users/luisp
Current directory = /Users/luisp/REPO
Command line: rbt post --debug --server=https://INTERNALREVIEWBOARD --repository=REPO --tracking-branch=origin/master --parent=4ccc43cb299d7498f19de6178408f2a078e51859 --branch=luisp/test
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 config --get remote.4ccc43cb299d7498f19de6178408f2a078e51859.url
Command exited with rc 1: ['git', 'config', '--get', 'remote.4ccc43cb299d7498f19de6178408f2a078e51859.url']
Repository info: Path: /Users/luisp/REPO/.git, Base path: , Supports changesets: False
Checking for a Mercurial repository...
Unable to execute "hg --help": skipping Mercurial
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://INTERNALREVIEWBOARD/api/
Running: git rev-parse refs/heads/luisp/test
Running: git branch --remotes
Running: git config --get branch.4ccc43cb299d7498f19de6178408f2a078e51859.remote
Command exited with rc 1: ['git', 'config', '--get', 'branch.4ccc43cb299d7498f19de6178408f2a078e51859.remote']
Running: git remote
WARNING: Could not determine specific upstream remote to use for diffs. We recommend setting TRACKING_BRANCH in reviewboardrc to your nearest upstream remote branch.
Running: git rev-parse 4ccc43cb299d7498f19de6178408f2a078e51859
Running: git rev-list 4ccc43cb299d7498f19de6178408f2a078e51859 --not --remotes=originRunning: git rev-parse e181f11730060fb3682016c233533d90602a0c2c^
Command exited with rc 128: ['git', 'rev-parse', 'e181f11730060fb3682016c233533d90602a0c2c^']
fatal: ambiguous argument 'e181f11730060fb3682016c233533d90602a0c2c^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
e181f11730060fb3682016c233533d90602a0c2c^
Traceback (most recent call last):
File "/Users/luisp/.dotfiles/venv/bin/rbt", line 10, in <module>
sys.exit(main())
File "/Users/luisp/.dotfiles/venv/lib/python3.7/site-packages/rbtools/commands/main.py", line 120, in main
command.run_from_argv([RB_MAIN, command_name] + args)
File "/Users/luisp/.dotfiles/venv/lib/python3.7/site-packages/rbtools/commands/init.py", line 725, in run_from_argv
exit_code = self.main(args) or 0
File "/Users/luisp/.dotfiles/venv/lib/python3.7/site-packages/rbtools/commands/post.py", line 793, in main
self.revisions = get_revisions(self.tool, self.cmd_args)
File "/Users/luisp/.dotfiles/venv/lib/python3.7/site-packages/rbtools/utils/review_request.py", line 67, in get_revisions
revisions = tool.parse_revision_spec(cmd_args)
File "/Users/luisp/.dotfiles/venv/lib/python3.7/site-packages/rbtools/clients/git.py", line 147, in parse_revision_spec
parent_ref, remote)
File "/Users/luisp/.dotfiles/venv/lib/python3.7/site-packages/rbtools/clients/git.py", line 569, in _rev_list_youngest_remote_ancestor
youngest_remote_commit = self._rev_parse('%s^' % local_commit)[0]
File "/Users/luisp/.dotfiles/venv/lib/python3.7/site-packages/rbtools/clients/git.py", line 537, in _rev_parse
revisions = self._execute([self.git, 'rev-parse'] + revisions)
File "/Users/luisp/.dotfiles/venv/lib/python3.7/site-packages/rbtools/clients/git.py", line 1225, in _execute
return execute(cmdline, cwd=self._git_toplevel, args, **kwargs)
File "/Users/luisp/.dotfiles/venv/lib/python3.7/site-packages/rbtools/utils/process.py", line 189, in execute
raise Exception('Failed to execute command: %s' % command)
Exception: Failed to execute command: ['git', 'rev-parse', 'e181f11730060fb3682016c233533d90602a0c2c^']
```Please provide any additional information below.
Git:
git version 2.20.1 (Apple Git-117)
Python:3.7.3
reviewboardrc: NoneFrom some debugging, it seems like https://github.com/reviewboard/rbtools/blob/5a58d03c7b9eb709330436ee415a268aebee15bb/rbtools/clients/git.py#L143 is returning
origin\n
which is then passed into https://github.com/reviewboard/rbtools/blob/5a58d03c7b9eb709330436ee415a268aebee15bb/rbtools/clients/git.py#L146. I added a breakpoint and ranself._rev_list_youngest_remote_ancestor(parent_ref, 'origin\n')
to verify and saw the same stracktrace aboutException: Failed to execute command: ['git', 'rev-parse', 'e181f11730060fb3682016c233533d90602a0c2c^']
. I then ranself._rev_list_youngest_remote_ancestor(parent_ref, 'origin')
didn't get a traceback.Seems like a quick fix would be to to call strip() before returning in https://github.com/reviewboard/rbtools/blob/5a58d03c7b9eb709330436ee415a268aebee15bb/rbtools/clients/git.py#L143, but I'm not sure if this should be done at a lower level (or if it should be done in a more targetted fashion inside
parse_revision_spec
.