问题
I have a problem setting up git with perforce using git-p4. After finishing all the steps from this excellent blog post: http://owenou.com/2011/03/23/git-up-perforce-with-git-p4.html, I try to add a new file/modify an existing file in the local git repository.
When trying to rebase I get:
$git-p4 rebase
Traceback (most recent call last):
File "/home/user/bin/git-p4", line 2362, in <module>
main()
File "/home/user/bin/git-p4", line 2357, in main
if not cmd.run(args):
File "/home/user/bin/git-p4", line 2051, in run
sync.run([])
File "/home/user/bin/git-p4", line 2004, in run
changes = self.p4.p4ChangesForPaths(self.depotPaths, self.changeRange)
File "/home/user/bin/git-p4", line 232, in p4ChangesForPaths
assert depotPaths
AssertionError
After committing the change to git and executinggit p4 submit --verbose
which should push the changes to the p4 repository, I get 65534 lines of output:
Reading pipe: git notes --ref=git-p4 show HEAD~1
Reading pipe: git notes --ref=git-p4 show HEAD~2
[...]
Reading pipe: git notes --ref=git-p4 show HEAD~65534
Traceback (most recent call last):
File "/home/wgorski/opt/git-p4/git-p4", line 2754, in <module>
main()
File "/home/wgorski/opt/git-p4/git-p4", line 2749, in main
if not cmd.run(args):
File "/home/wgorski/opt/git-p4/git-p4", line 1125, in run
self.depotPath = settings['depot-paths'][0]
KeyError: 'depot-paths'
Needless to say, the changes are not pushed to the p4 repository.
回答1:
The problem was the git version. I had git 1.7.0 installed and the git-p4 script requires git version >= 1.7.1. I suggest updating to the latest git version.
If upgrading git is not an option, you could downgrade the git-p4 script to a revision which doesn't use notes, like this:
git checkout 994ec6ce71cb03786a27a77da77ac33a9e53e090 .
after downgrading git-p4, you need to check out the local git repo from perforce.
来源:https://stackoverflow.com/questions/12367328/git-p4-depot-path-error