A p4 check-in failed with the following error:
Submit aborted -- fix problems then use \'p4 submit -c XXXX\'.
Some file(s) could not be transferred from client.
Typically you will see this error on submit when there is a file in the changelist that does not exist on the client, and therefore cannot be transferred to the server. There are at least two conditions that can cause this problem:-
First, Perforce allows you to add files to your changelist (via p4
add
) that don't exist. Just drop to a prompt and type p4 add
blahblah.txt
(assuming blahblah.txt doesn't exist). Perforce will
happily add a file to your default changelist. If you try and submit
that changelist (and the file still doesn't exist), then you will get
the above error).
Second, you can p4 edit
a file, then delete it locally, then try
and submit the file (or the changelist that the file was in). You
will get the same error.
If you are using the command line or p4win (or p4v I presume), then there will be output that will tell you the offending file(s). You might see lines like:
open for read: d:\path\to\file\somefile.txt: The system cannot find the file specified.
This error will tell you that the file doesn't exist. This output will be in the output pane in p4win, or will show up in the output spew from the p4 command line.
Another reason: P4 considers ANSI-encoded file to be <Unicode>.
ANSI file cannot be generally treated as UTF-8 file (which P4 calls <unicode>
) because not all byte sequences in UTF-8 encoding are valid and P4 produces the following error in such a case:
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.
In this case, checking line 384 revealed that it contained character ľ
and the file was encoded in ANSI, but Perforce automatically and mistakenly marked it as <unicode>
(UTF-8).
Solution: perforce filetype and actual file content must be put in sync
if application related to the file allows that, convert the file to UTF-8 and keep file type <unicode>
.
Generally, this is better solution – you get the file ready for international and special characters.
if file must me kept in ANSI, change file type to <text>