Я настроил git-зеркало perforce-репозитория через git-p4, как описано в http://answers.perforce.com/articles/KB_Article/Git-P4, и работал нормально в течение некоторого времени: я смог получить изменения в git и внести изменения git в perforce. Затем команда git p4 submit
перестала работать. Когда я бегу, я получаю сообщение об ошибке:git-p4 submit не работает с ошибкой «Путь не в корне клиента»
You have files opened with perforce! Close them before starting the sync.
Когда я запускаю его в расширенном режиме он показывает, что команда p4 -c <client name> -G opened ...
выдает следующий вывод:
{scodeserrorsdatasrPath '/path/to/git/clone/...' is not under client's root '/path/to/git-p4-area'.
severityisgenerici0%
Ну, это на самом деле не под /path/to/git-p4-area
, но это не было проблемой раньше. Также я все равно могу запустить git p4 rebase
без проблем. Как исправить ошибку Path is not under client's root
?
Update
Я был в состоянии решить эту проблему благодаря ответу Брайана. Оказывается, ошибка, которую я получил, была правильной, у меня действительно были файлы, открытые в perforce. Я вернул их командой p4 revert ...
внутри /path/to/git-p4-area
и теперь git p4 submit
отлично работает.
Ошибка путала меня, потому что, когда вы используете git-p4, вы не меняете файлы в рабочей области perforce, вместо этого вы работаете с репозиторием git, а git-p4 переводит git-commits в perforce-изменения и наоборот. Оказывается, мой перманентный билет истек в середине последней операции отправки (билет истекает каждые 12 часов). Поэтому некоторые файлы были оставлены открытыми в рабочей области perforce. Лучшим решением будет работа менее 12 часов ...
Спасибо вам за ответ! Это помогло мне решить проблему. Я не касался папки, где perforce хранит свои файлы. Оказывается, ошибка 'git p4 submit' была правильной. У меня действительно были файлы, открытые в perforce, как только я вернул их, я смог прогнать 'git p4 submit' успешно. – neverov