Perforce p4提交中止错误-如何解决
p4签入失败,出现以下错误:Perforce p4提交中止错误-如何解决,perforce,Perforce,p4签入失败,出现以下错误: Submit aborted -- fix problems then use 'p4 submit -c XXXX'. Some file(s) could not be transferred from client. 我在网站上读到了另一个解决方案,关于文件类型可能有多不正确 如何获取有关p4中错误的更多信息?通常情况下,这是因为您没有访问文件的权限,或者没有将文件推入的权限 当这种情况发生在我身上时,我会将变更列表分解成碎片,以找到违规者。这可以通过多种方
Submit aborted -- fix problems then use 'p4 submit -c XXXX'.
Some file(s) could not be transferred from client.
我在网站上读到了另一个解决方案,关于文件类型可能有多不正确
如何获取有关p4中错误的更多信息?通常情况下,这是因为您没有访问文件的权限,或者没有将文件推入的权限
当这种情况发生在我身上时,我会将变更列表分解成碎片,以找到违规者。这可以通过多种方式实现。如果需要指针,请提出新问题。通常,当变更列表中的某个文件在客户端不存在,因此无法传输到服务器时,您会在提交时看到此错误。至少有两种情况会导致此问题:-
- 首先,Perforce允许您将文件添加到变更列表中(通过
)。只需在提示符处输入p4) 添加不存在的
(假设blahblah.txt不存在)。执行遗嘱 愉快地将文件添加到默认更改列表中。如果你尝试提交 更改列表(文件仍然不存在),然后您将获得 上述错误)p4 add即可 blahblah.txt
- 其次,您可以
p4编辑一个文件,然后在本地删除它,然后重试 并提交文件(或文件所在的变更列表)。你 将得到相同的错误
open for read: d:\path\to\file\somefile.txt: The system cannot find the file specified.
此错误将告诉您该文件不存在。此输出将显示在p4win的输出窗格中,或显示在p4命令行的输出输出中。有时p4无法提交包含异常编码的文件。要解决此问题,请还原它们,然后使用
p4 add -t binary <fileset>
p4添加-t二进制文件
另一个原因:P4认为ANSI编码的文件是无效的。
ANSI文件通常不能被视为UTF-8文件(P4调用
),因为在这种情况下,和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编码的,但它会自动错误地将其标记为
(UTF-8)
解决方案:Performce文件类型和实际文件内容必须同步
- 如果与文件相关的应用程序允许,请将文件转换为UTF-8,并保留文件类型
一般来说,这是一个更好的解决方案—您可以为国际字符和特殊字符准备好文件 - 如果文件必须保存在ANSI中,请将文件类型更改为
- 性能也可能不喜欢文件的命名
e、 g。example@somefile.txt:系统找不到指定的文件 解决大型变更集提交失败的问题
我最近不得不提交一个变更集,该变更集包含400000+个文件,但由于错误而失败:
Submit aborted -- fix problems then use 'p4 submit -c 11111'.
控制台缓冲区中没有足够的历史记录来查看失败和成功的内容。因此,我运行了错误消息中建议的命令,并将stdout输出到一个文件:
p4 submit -c 11111 > p4_submit_11111.txt
运行时,错误(stderr)被输出到命令行,允许我解决问题(如其他答案中所述)。在我的情况下,它是一个我添加到变更集中但后来被删除的文件,根据:
所以为了解决这个问题,我刚刚从变更集中恢复了它
$ 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
此提交成功。在我的案例中,我有一个“撤消”变更列表,其中我正在修复前一次提交的问题。为了解决这个问题,我对变更列表中显示的另一个文件进行了更改,但是,当我尝试提交时,它显示了错误(提交被中止——修复问题,然后使用“p4 submit-c xxxx”。)
我在P4V客户端中右键单击时注意到该文件“未签出”(即使它在变更列表中显示为已修改)
解决方案:我再次手动签出它,然后可以很好地提交。p4 revert-a---还原所有失败的文件
p4打开---显示需要提交的文件
p4提交-c“变更列表”。创建有问题文件的备份 删除工作区中的那些文件 将备份粘贴到原始位置
提交。在P4 Eclipse插件中,打开“P4日志控制台”查看丢失的文件路径。将文本文件保留为二进制文件类型并不能系统地解决添加3
时遇到的问题。原始文件——三个文件中的一个被检测为“UTF-16”,而不是二进制文件。Perforce似乎在添加文件时尝试检测编码。还原并使用此命令修复了此问题。将文件添加到变更列表时,这是一个重要的考虑事项(p4 add-f
必须用于添加包含@#*…/%[0-9]
)的文件),但这不应影响变更列表的提交,只应影响将文件添加到变更列表。有关详细信息,请参阅此链接中的“保留字符”:
p4 submit -c 11111 > p4_submit_11111.txt