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 я заметил, что файл "не извлечен" (даже если он отображался в списке изменений как измененный).
Решение: я снова проверил вручную, а затем смог отправить штраф.