从我的 perforce 客户端 (p4v) 提交时出现以下错误消息:
文件内容翻译失败 第 1 行附近提交中止 -- 修复 出现问题然后使用“p4 Submit -c 22”。 某些文件无法传输 来自客户。
我不知道这意味着什么或如何解决问题。
真正的问题是编码,使用“连接 -> 选择字符编码...”菜单项将编码设置为 UTF-8 解决了问题
Perforce 可能会对文件类型感到困惑。也许这是 Perforce 认为是文本的二进制文件?右键单击该文件并选择“更改文件类型...”项。这将打开一个对话框,允许您更改文件的类型。确保设置正确并再次提交文件。
FWIW,这个问题刚刚发生在我身上,我无法恢复任何文件或执行几乎任何操作。即使从工作区中删除文件然后尝试再次获取它们也会导致文件内容的翻译错误。 P4V 崩溃后,这个问题开始出现在我身上。
要修复它,我只需转到“连接”>“选择字符编码”,然后单击对话框上的“确定”(没有将编码更改为其他任何内容 - 保持原有状态),然后就为我修复了它。
当文件实际上不存在于磁盘上时,也会出现此问题。有几个场景可以发挥作用。
老实说,我有点惊讶原始问题中指出的错误是由于文件类型不匹配造成的。我从来没有见过这样的情况。在情况 (1) 中,如果磁盘上不存在文件,则默认情况下将添加“p4 add”文件作为“text”类型。如果该文件应该是二进制文件,则表明类型不匹配,但这并不是无法从客户端传输文件的原因。事实上该文件不存在。
无论如何,这就是我的经验。我想我会分享我看到这个错误的案例。
这是您的本地工作区认为该文件与服务器愿意通过其类型映射接受的内容进行比较的不匹配。
我的本地工作区 AssemblyInfo.cs 似乎将文件转换为 UTF16(因为它包含一些 UTF16 字符)。当我将文件类型更改回文本时,我能够完美地提交。
所以你也可以。
p4 typemap
看到的内容。 (例如:text //....cs
表示.cs文件应该是文本类型。)