【问题标题】:TeamCity VCS Server side checkout changes text files from unicode to UTF-8TeamCity VCS 服务器端结帐将文本文件从 unicode 更改为 UTF-8
【发布时间】:2016-04-12 17:38:54
【问题描述】:

我有一个从 Perforce 检出代码的构建,但是当我尝试将“VCS 检出模式”设置为服务器端时,我知道它会将工作区(和代码)复制到构建代理。好吧,我发现它正在破坏我们构建中的一些类似于文本文件的文件。它将它们从 UNICODE BOM 更改为 UTF-8,而我们用来解析这些文件的工具在构建中失败了。

有人知道为什么 TeamCity 服务器端结帐和复制会这样做吗?有谁知道如何补救这种情况?谢谢!

【问题讨论】:

    标签: unicode build teamcity perforce


    【解决方案1】:

    感谢您的帮助,我发现有问题的文件属于 utf16 类型,并且 Team City VCS Root 配置中实际上有一个选项可以启用对 utf16 文件的处理(支持 UTF-16 编码)。这似乎解决了这个问题。

    【讨论】:

      【解决方案2】:

      你说破坏只发生在 TeamCity。你能重新检查一下它在本地的表现吗?从文件系统中删除文件并运行p4 sync -f FILE 以从服务器中获取新文件。 BOM 是否保留?

      如果您可以在本地重现丢失的 BOM,那么您可能应该更改文件的文件类型(在 P4V 中,右键单击 | 更改文件类型 | 基本文件类型 = Unicode 或 UTF-16 视情况而定)。

      【讨论】:

      • 您可以使用'p4 files //files/of/interest/...'来检查感兴趣文件的当前文件类型。
      • 好的,所以看起来文件在 perforce 存储库中是 utf-16 类型的,所以当它们从 TeamCity 签出并以某种方式复制到构建代理时,它们会被更改为 utf-8 .不知道为什么会发生这种情况,我想知道这是否与 teamcity perforce 的设置方式有关?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 2014-06-30
      • 2012-01-24
      • 2011-01-24
      相关资源
      最近更新 更多