3

我正在使用 git-p4 在本地使用 git 并尝试将我的更改提交回 perforce 服务器。它提交更改回我没有做的服务器。

我设置了一个客户端,以便它包含客户端中的所有库依赖项(遵循Using git-p4 to setup a git clone of a perforce client 中的建议)

//depot/libA/... //workspace/libA/...
//depot/libB/... //workspace/libB/...

但是对于主线源,我在工作区目录中执行以下操作:

git-p4 clone //depot/my_project

这将在工作区中创建并填充 my_project 目录。

这样 src 中的代码就可以引用库了。

问题是当我做 git-p4 rebase 我得到以下错误:

$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

当我执行 git-p4 submit 时(在我进行单一更改并执行 git commit -a -m "test" 之后):

$ git-p4 submit --verbose
Reading pipe: git name-rev HEAD
Reading pipe: git config git-p4.allowSubmit
Reading pipe: git rev-parse --symbolic  --remotes
Reading pipe: git rev-parse p4/master
Reading pipe: git notes --ref=git-p4 show 6b75260b956cb72102014783fcfcb2e0da6eb637
Reading pipe: git notes --ref=git-p4 show HEAD~0
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~3

......

它需要很长时间(它是否向服务器询问所有变更集??)并且失败并出现错误:Traceback(最近一次调用最后一次):

 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 1088, in run
    self.depotPath = settings['depot-paths'][0]
KeyError: 'depot-paths'

我应该注意到我没有使用 git config 来设置任何 git-p4 选项(https://git.wiki.kernel.org/index.php/Git-p4_Usage上的 wiki似乎没有提到它需要)。

4

1 回答 1

2

你的客户规格包括//depot/my_project/...吗?

也许您可以将您的库放在一个客户端规范中,而将您的项目放在另一个规范中。

也许:

working/
    project-git/
       .perforce -> P4CONFIG with project-spec
       <p4-git project checkout>
    .perforce -> P4CONFIG with libs-spec
    libraries
perforce/
    .perforce -> P4CONFIG with project-spec
    <p4 project checkout>
于 2011-05-10T13:54:19.593 回答