【发布时间】:2010-07-19 14:08:45
【问题描述】:
在我的 Windows 机器上,我尝试使用命令 svn diff > my_patch.diff 创建一个 Subversion 补丁。生成的文件是用 UTF-16 编码的,而不是 UTF-8 或 ASCII,所以当我尝试使用 patch(来自 GnuWin32)来应用补丁时,它不起作用。
我能够通过在记事本中打开补丁文件并将其保存为所需的格式,将补丁文件转换为 UTF8,然后patch 处理得很好。但是,有没有办法让svn diff 在 Windows 上生成 UTF8?
更新:正如我的回答所示,事实证明问题与 Subversion、diff 或 patch 无关。正是 PowerShell 将输出转换为 Unicode 非常有帮助。我将问题保留原样,以便遇到类似问题的人可能会偶然发现它。
【问题讨论】:
-
在 linux 风格中,可以给出
--diff-cmd,Windows 命令行变体也是这种情况吗? -
--diff-cmd受支持。我应该使用什么作为参数? -
旁注:Subversion 不喜欢 UTF-16 或 UTF-32。它总是将它们视为二进制文件,因此
svn diff甚至对它们不起作用(脑死但仍然没有修复)。因此,(目前)不可能有svn diUnicode 在 UTF-8 之外的任何其他方式。 -
我遇到了这个确切的问题。谢谢!最令人沮丧的部分是 svn patch 没有报告任何类型的错误;刚刚执行,没有输出,也没有更改文件。
标签: svn powershell diff patch