比较对象

针对可以比较其源的各类对象,Rational® Synergy 为 CLI 和 GUI 均预定义了比较工具。GUI 的缺省比较工具为交互式,CLI 的缺省比较工具为自动式。比较工具会显示不同版本的文件或目录之间的差异。

对于 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]
object_spec1
object_spec1 指定要比较的第一个文件或目录。对于一个文件或目录,可以将 object_spec1 设置为对象规范
object_spec2
object_spec2 指定要比较的第二个文件或目录。对于一个文件或目录,可以将 object_spec2 设置为对象规范。如果 object_spec1 是文件,那么 object_spec2 也必须是文件。如果 object_spec1 是目录,那么 object_spec2 也必须是目录。

反馈