P4 Отправить отмененную ошибку - как разрешить

Ошибка p4 со следующей ошибкой:

Submit aborted -- fix problems then use 'p4 submit -c XXXX'.
Some file(s) could not be transferred from client.

Я прочитал еще одно решение на сайте о том, как могут возникнуть проблемы с файлами.

Как получить дополнительную информацию об ошибке в p4?

Ответ 1

Обычно вы увидите эту ошибку при отправке, когда в списке изменений есть файл в списке изменений, который не существует на клиенте и поэтому не может быть передан серверу. Есть как минимум два условия, которые могут вызвать эту проблему: -

  • Во-первых, Perforce позволяет добавлять файлы в список изменений (через p4 add), которых не существует. Просто перейдите в приглашение и введите p4 add blahblah.txt (предполагая, что blahblah.txt не существует). Perforce будет счастливо добавить файл в список изменений по умолчанию. Если вы попытаетесь отправить этот список изменений (и файл все еще не существует), тогда вы получите указанная выше ошибка).

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

Если вы используете командную строку или p4win (или p4v, я полагаю), тогда будет вывод, который сообщит вам оскорбительный файл (ы). Вы могли бы видеть строки типа:

open for read: d:\path\to\file\somefile.txt: The system cannot find the file specified.

Эта ошибка сообщит вам, что файл не существует. Этот вывод будет отображаться на панели вывода в p4win или будет отображаться в выходной строке из командной строки p4.

Ответ 2

Решение проблем при сбоях подачи больших изменений

Мне пришлось отправить недавно набор изменений, в котором было 400 000+ файлов, и он не удался с ошибкой:

Submit aborted -- fix problems then use 'p4 submit -c 11111'.

В консольном буфере не было достаточно истории, чтобы проверить, что не удалось, и что удалось. Поэтому я выполнил команду, предложенную в сообщении об ошибке , и вывести stdout в файл:

p4 submit -c 11111 > p4_submit_11111.txt

Когда это произошло, в командной строке были выведены ошибки (stderr), что позволило мне решить проблемы (как описано в других ответах). В моем случае это был файл, который я добавил в набор изменений, но после удаления в соответствии с первым пунктом в ответе Марка:

open for read: /home/myUserName/yada/_files.txt: No such file or directory

Итак, чтобы справиться с этим, я просто вернул его из набора изменений...

$  p4 revert  /home/myUserName/yada/_files.txt
//P4Root/Proj1/yada/_files.txt#none - was add, unlocked and abandoned

... и затем повторно отправил список изменений, используя ту же команду:

p4 submit -c 11111 > p4_submit_11111.txt

Этот подчиненный преуспел.

Ответ 3

Иногда P4 не может отправлять файлы, содержащие необычные кодировки. Чтобы устранить проблему, верните их, затем используйте

p4 add -t binary <fileset>

Ответ 4

Если это обычно происходит, потому что либо у вас нет доступа к файлам, либо прав на их вхождение.

Когда это происходит со мной, я разбиваю список изменений на куски, чтобы найти преступника. Это можно сделать несколькими способами. Задайте новый вопрос, если вам нужны указатели.

Ответ 5

Другая причина: P4 считает ANSI-кодированный файл равным <Unicode> .

ANSI файл обычно не может рассматриваться как файл UTF-8 (который P4 вызывает <unicode>), потому что не все байтовые последовательности в Кодировка UTF-8 действительна, а P4 вызывает в этом случае следующую ошибку:

Translation of file content failed near line 384 file D:\P4
\etc\file.txt
Submit aborted -- fix problems then use 'p4 submit -c 125'.
Some file(s) could not be transferred from client.

В этом случае контрольная строка 384 обнаружила, что в ней содержится символ ľ, и файл был закодирован в ANSI, но Perforce автоматически и ошибочно помечен как <unicode> (UTF-8).

Решение: perforce filetype и фактическое содержимое файла должны быть синхронизированы

  • Если приложение, связанное с файлом, позволяет преобразовать файл в UTF-8 и сохранить тип файла <unicode>.
    Как правило, это лучшее решение - вы получаете файл для международных и специальных символов.

  • Если файл должен храниться в ANSI, измените тип файла на <text>

Ответ 6

Perforce также может не понравиться именование вашего файла.

например. [email protected]: система не может найти указанный файл.

Ответ 7

В моем случае у меня был список изменений "отменить-отменить", в котором я исправлял проблему с предыдущей отправкой. Чтобы устранить эту проблему, я внес изменения в другой файл, который отображался в списке изменений, однако при попытке отправить сообщение об ошибке показало ошибку (Отправить прервано - исправить проблемы, а затем использовать "p4 submit -c xxxx".)

При щелчке правой кнопкой мыши в клиенте P4V я заметил, что файл "не извлечен" (даже если он отображался в списке изменений как измененный).

Решение: я снова проверил вручную, а затем смог отправить штраф.