Continuous integration p4在文件名中添加撇号
我们有一个我正在尝试自动化的过程,在这个过程中,我必须将生成的输出文件检查到perforce中。我知道这远非理想,但这不是我能真正做到的。为了确保所有生成的文件都进入perforce,我必须将整个目录检查到perforce中。根据perforce的文档,您可以运行一个看似愚蠢但有效的命令:Continuous integration p4在文件名中添加撇号,continuous-integration,special-characters,perforce,Continuous Integration,Special Characters,Perforce,我们有一个我正在尝试自动化的过程,在这个过程中,我必须将生成的输出文件检查到perforce中。我知道这远非理想,但这不是我能真正做到的。为了确保所有生成的文件都进入perforce,我必须将整个目录检查到perforce中。根据perforce的文档,您可以运行一个看似愚蠢但有效的命令: dir /s /b /a-d | p4 -x - add 当您执行此操作时,所有内容在开始时都运行良好,对于每个带有撇号(单引号?)的文件名,我收到一条消息说 文件名-缺少,假定为文本 尽管我要添加的文件列
dir /s /b /a-d | p4 -x - add
当您执行此操作时,所有内容在开始时都运行良好,对于每个带有撇号(单引号?)的文件名,我收到一条消息说
文件名-缺少,假定为文本
尽管我要添加的文件列表是由dir生成的,但仍然存在这种情况。换句话说,这些文件中的一个不可能丢失(除非另一个进程干扰),因为它是目录中的文件列表
如果我尝试提交生成的变更列表,当无法找到丢失的文件时,提交将失败。我已经尝试了一些长技巧,比如将dir输出重定向到一个文件中,然后从该文件中读取add的参数,但效果一样
也许这一切中最疯狂的部分是我发现
p4 add Jim's_File.txt
如果使用tab complete,则可以工作,但如果键入、粘贴或管道化名称,则会失败。我不知道如何处理这种行为,但我真的很想知道一些想法。对我很有用:
创建了一个名为“file.txt”的文件
c:\some_path>p4 add a'file.txt
//source/path-in-depot/a'file.txt#1 - opened for add
也许你应该提到你的performe版本和操作系统
一般来说,最好将每个文件名用引号(
“a'file.txt”
)括起来,或者在Windows shell中,使用^
符号转义任何具有特殊含义的字符。在2012.1版中,有一个新的p4协调
命令,使得goofydir | p4 add
技巧变得不必要<代码>p4协调将处理文件名中的撇号以及其他难以引用的字符串
我认为2012.1服务器仍处于测试阶段。这可能是本书中没有提到它的原因。很有趣。我已经试过引用文件名了,但没有什么不同。我将执行更多的测试,如果它们不起作用,我将发布各种版本信息。好的,我们已经确定“撇号”实际上不是撇号。在windows资源管理器中仔细查看文件名和我自己手工制作的“a'file.txt”版本,可以发现我的问题文件中有一个奇怪的标点符号,是文档作者或文档工具之一不知何故放在那里的。在许多字体中,它看起来像一个撇号,复制粘贴甚至将其视为撇号,但我猜这种处理方式不一致,导致了我的问题。感谢您提供第二组数据以供使用!听起来不错。恐怕我无法让他们仅为我将Performance升级到beta版本,但我期待着有一天我们会有它投票失败的原因是什么?如果我不知道出了什么问题,我就写不出更好的问题。