在“Beyond Compare”中进行 3 路合并时,由于代码相似性,我们可以得到以下错位(X 是已删除的代码段,仅显示两个文件):
/* XXXXXXXXXXXXXXXXX
somefunc() somefunc() <---2
{ {
body body
... ...
} }
*/ XXXXXXXXXXXXXXXXX
somefunc() <---1 XXXXXXXXXXXXXXXXX
{ XXXXXXXXXXXXXXXXX
modified body XXXXXXXXXXXXXXXXX
... XXXXXXXXXXXXXXXXX
} XXXXXXXXXXXXXXXXX
...next segment ...next segment
所需的对齐方式如下:
/* XXXXXXXXXXXXXXXXX
somefunc() XXXXXXXXXXXXXXXXX
{ XXXXXXXXXXXXXXXXX
body XXXXXXXXXXXXXXXXX
... XXXXXXXXXXXXXXXXX
} XXXXXXXXXXXXXXXXX
*/ XXXXXXXXXXXXXXXXX
somefunc() somefunc()
{ {
modified body body
... ...
} }
...next segment ...next segment
所以我在位置 2 和位置 1 之间进行了手动对齐,而我实际得到的是:
/* XXXXXXXXXXXXXXXXX
somefunc() XXXXXXXXXXXXXXXXX
{ XXXXXXXXXXXXXXXXX
body XXXXXXXXXXXXXXXXX
... XXXXXXXXXXXXXXXXX
} XXXXXXXXXXXXXXXXX
*/ XXXXXXXXXXXXXXXXX
somefunc() somefunc()
XXXXXXXXXXXXXXXXX {
XXXXXXXXXXXXXXXXX body
XXXXXXXXXXXXXXXXX ...
XXXXXXXXXXXXXXXXX }
{ XXXXXXXXXXXXXXXXX
modified body XXXXXXXXXXXXXXXXX
... XXXXXXXXXXXXXXXXX
} XXXXXXXXXXXXXXXXX
...next segment ...next segment
因此它设法在一行上进行对齐,但随后将其余代码向下移动。
我们如何使用手动对齐来获得预期的结果?更改设置以修改对齐参数也不会达到预期的结果。(另外注意:body和modified body很相似,所以不能错过搭配)
他们在他们的论坛上发表了一篇文章,其中提到了逐行对齐,但对于较长的部分来说,这将是非常乏味的。
编辑: 如果在当前版本中无法进行上述对齐,是否可以禁用输入和输出编辑器窗格的自动同步滚动,以便用户可以同时查看未对齐的代码部分。这些部分不会被程序对齐,但从用户的角度来看会被认为是对齐的。