Variable: smerge-refine-weight-hack

smerge-refine-weight-hack is a variable defined in smerge-mode.el.gz.

Value

t

Documentation

If non-nil, pass to diff as many lines as there are chars in the region.

I.e. each atomic element (e.g. word) will be copied as many times (on different lines) as it has chars. This has two advantages:
- if diff tries to minimize the number *lines* (rather than chars)
  added/removed, this adjust the weights so that adding/removing long
  symbols is considered correspondingly more costly.
- smerge-refine-forward-function only needs to be called when chopping up
  the regions, and forward-char can be used afterwards.
It has the following disadvantages:
- cannot use diff -w because the weighting causes added spaces in a line
  to be represented as added copies of some line, so diff -w can't do the
  right thing any more.
- Is a bit more costly (may in degenerate cases use temp files that are 10x
  larger than the refined regions).

Source Code

;; Defined in /usr/src/emacs/lisp/vc/smerge-mode.el.gz
(defvar smerge-refine-weight-hack t
  "If non-nil, pass to diff as many lines as there are chars in the region.
I.e. each atomic element (e.g. word) will be copied as many times (on different
lines) as it has chars.  This has two advantages:
- if `diff' tries to minimize the number *lines* (rather than chars)
  added/removed, this adjust the weights so that adding/removing long
  symbols is considered correspondingly more costly.
- `smerge-refine-forward-function' only needs to be called when chopping up
  the regions, and `forward-char' can be used afterwards.
It has the following disadvantages:
- cannot use `diff -w' because the weighting causes added spaces in a line
  to be represented as added copies of some line, so `diff -w' can't do the
  right thing any more.
- Is a bit more costly (may in degenerate cases use temp files that are 10x
  larger than the refined regions).")