Perforce не может редактировать файл, так как он говорит, что он уже открыт, однако «p4 открыт» сообщает об обратном

у меня такая ситуация

когда я пытаюсь запустить p4 edit <file>, он говорит

- can't edit (already opened on this client)

Однако, когда я запускал p4 opened <file> (с опцией -a и -x), он говорит

-  - file(s) not opened on this client.

Теперь я остаюсь в этом подвешенном состоянии.

  • Я не могу проверить файл,
  • я не могу восстановить файл,
  • и я не могу проверить в файле.

Как я могу это исправить? А что произошло на самом деле?


2 720
1

Ответ:

Решено

Во-первых, дважды проверьте, что все пути к файлам, которые вы удалили из своего вопроса, действительно совпадают друг с другом. Способ законный получить эту ошибку, если вы пытаетесь отредактировать файл депо, который уже открыт по другому пути местный на том же клиенте (потому что вы открыли его, а затем изменили представление клиента), и вы пытаетесь снова открыть тот же файл хранилища через «новый» локальный путь, пока он все еще имеет ожидающие изменения в предыдущем местоположении. Убедитесь, что вы используете p4 opened <file> и p4 revert <file> на точно такой же путь к депо, который был возвращен ошибкой can't edit.

Как только это устранено:

Эта ошибка, возникающая, когда ее не должно быть, обычно является признаком несогласованности внутренней базы данных на сервере Perforce — файл хранилища записан в таблице db.locks как открытый на вашем клиенте, но соответствующий файл клиента не открыт. в рабочей таблице db.work.

Самый простой способ исправить это — для администратора запустить p4d -xf 925 в корне сервера; это команда исправления, которая ищет это точное несоответствие и должна исправить его, удалив несопоставленные записи db.locks.

p4d -xx также исправит это (эта команда сканирует набор различных несоответствий и записывает файл исправления журнала для их исправления).