Ошибка отправки git-p4 - PullRequest
3 голосов
/ 05 мая 2011

Я использую git-p4 для локальной работы с git и пытаюсь отправить свои изменения обратно в выполнять сервер. Это отправка изменений обратно на сервер, что я не могу сделать.

У меня есть клиент, настроенный так, чтобы он включал все зависимости библиотеки в клиенте (следуйте рекомендациям в Использование git-p4 для настройки клона git клиента Perforce )

//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, похоже, не упоминается что это нужно).

1 Ответ

2 голосов
/ 10 мая 2011

Есть ли у вас спецификация клиента //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>
...