Git p4, как отправить cl после утверждения cl с полки

В настоящее время у меня есть проект, поддерживаемый git. Другая команда того же проекта использует perforce. И они ни за что не собираются использовать git.

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

https://git-scm.com/docs/git-p4

https://developer.atlassian.com/blog/2015/01/work-with-git-and-perforce/

https://owenou.com/git-up-perforce-with-git-p4

Однако я застрял в обзоре Swarm от Perforce.

/home/user/projectgit << folder for git project where I work on
/home/user/projectp4 << workspace folder for git p4

Перед отправкой в ​​Perforce я должен сначала отложить обновления, которые я могу сделать с помощью git p4 submit --shelved.

Теперь, когда мой cl одобрен, как мне его отправить?

Нет git p4 submit <cl>

Я попробовал git p4 unshelved <cl>, но что мне теперь делать с фиксацией без полки в refs/remote/p4/unsheved/<cl>?

Я также пробовал использовать p4 submit <cl> (находясь в рабочем пространстве git p4), но он жалуется на отсутствие файлов для фиксации.

Заранее спасибо за помощь.


529
2

Ответы:

Решено

I also tried using p4 submit (while in the git p4's workspace) but it complains about no files to commit

Вы может делаете это, вызывая команды p4 самостоятельно, но поскольку вы столкнулись с проблемой (и, вероятно, не очень заинтересованы в изучении деталей p4), я предлагаю позволить git-p4 сделать большую часть работы за вас.

В своем репозитории git проверьте ветку, из которой вы сделали git p4 submit --shelve (или фиксацию, созданную с помощью git p4 unshelve), а затем просто выполните git p4 submit (без --shelve). Он создаст новый список изменений из того же коммита и немедленно отправит его на принудительную обработку.

Вы также можете привести в порядок сторону принудительного использования, удалив список изменений, созданный git p4 submit --shelve. Из рабочей области p4 запустите p4 shelve -d <cl>, а затем p4 change -d <cl>.


Чтобы делать то, что вы хотите, вы можете сделать следующее: p4 unshelve -s -c p4 отправить -c p4 вернуться // ...

Примечание: я делаю это из своего репозитория git, но у меня есть действующий файл .p4config в этом репо, который указывает на рабочее пространство p4, в котором я создаю свою полку.