对于 UNIX 和 Windows,缺省比较工具在 ccm.properties 文件中指定。可以为各对象类型指定其他比较工具。指定的比较工具应用于不具有指定比较工具的指定类型和任何子类型。缺省情况下,仅 ASCII 文件类型具有已定义的比较工具。
例如,如果定义“japanese”文件类型,并且您希望使用不同于 ASCII 文件的编码对日语文件进行比较,那么可以按如下指定该文件。
ccm.cli.tools.compare.japanese.windows="%ccm_home\\\\bin\\\\util\\\\cc_dff.bat" "%ccm_home" %{encoding[null='SJIS']} %outfile %file1 %file2
缺省情况下,对于二进制类型或其子类型未设置比较工具,但是可以手动设置比较工具。
此外,还可在 ccm.properties 文件中设置编码规则,以便比较的文件显示正确的语言,如下所示:
// Command to compare source objects on UNIX and its checkstatus.
ccm.cli.tools.compare.ascii.unix=%ccm_home/bin/util/cc_dff %ccm_home %{encoding[null='CP1252']} %outfile %file1 %file2^M
// Command to compare source objects on Windows and its checkstatus.
ccm.cli.tools.compare.ascii.windows="%ccm_home\\\\bin\\\\util\\\\cc_dff.bat" "%ccm_home" %{encoding[null='CP1252']} %outfile %file1 %file2
通过 ccm_diff 命令的第二个参数,可以为要比较的文件指定编码。语法 “%{encoding[null='CP1252']}” 解释如下:
如果对象类型使用 encoding_rules 属性指定工作区编码,请将该编码用于比较。否则,请使用 CP1252 编码。(请参阅文件编码以获取有关 encoding_rules 属性的讨论。)
可以为此参数指定除 CP1252 以外的缺省编码。例如,以下语法指出,如果未对对象类型指定编码,那么使用 UTF8 编码:
ccm.cli.tools.compare.ascii.windows="%ccm_home\\\\bin\\\\util\\\\cc_dff.bat" "%ccm_home" %{encoding[null='UTF8']} %outfile %file1 %file2
以下语法指出一律使用 CP1252 编码:
ccm.cli.tools.compare.ascii.windows="%ccm_home\\\\bin\\\\util\\\\cc_dff.bat" "%ccm_home" CP1252 %outfile %file1 %file2
有效编码包括 CP1252、UTF8、BIG5、eucJP、EUC-KR、SJIS 和 GB18030。
要比较的文件和祖代文件必须具有相同编码。
例如,在中文数据库中,可以为 ascii 类型设置以下编码规则:
Server-encoding: GB18030
Unix-wa-encoding: GB18030
Windows-wa-encoding: GB18030
假设使用 ccm_diff 命令的缺省编码参数,然后以 GB18030 编码来调用 CLI 和 GUI 比较工具。
或者,如果站点仅包含中文数据库,那么可以按如下更改缺省比较命令,从而在 ascii 类型上无需 encoding_rules 属性。
ccm.cli.tools.compare.ascii.windows="%ccm_home\\\\bin\\\\util\\\\cc_dff.bat" "%ccm_home" %{encoding[null='GB18030']} %outfile %file1 %file2
ccm diff [-vc|-versioncompare] object_spec1 [object_spec2]