HomePhabricator

fix: allow tools to use :linerange, but also run if a file is unchanged

Authored by hooper.

Description

fix: allow tools to use :linerange, but also run if a file is unchanged

The definition of "unchanged" here is subtle, because pure deletion diff hunks
are ignored. That means this is different from using the --whole flag. This
change allows you to configure, for example, a code formatter that:

  1. Formats specific line ranges if specified via flags
  2. Does not format the entire file when there are no line ranges provided
  3. Performs some other kind of formatting regardless of provided line ranges

This sounds a little far fetched, but it is meant to address a specific corner
case encountered in Google's use of the fix extension. The default behavior is
kept because it exists to prevent mistakes that could erase uncommitted
changes.

Differential Revision: https://phab.mercurial-scm.org/D6723

Details