Skip to content
  • Kyle Lippincott's avatar
    commit: if interactive, look elsewhere for whitespace settings (BC) · 66399f2e92aa
    Kyle Lippincott authored
    Previously, when doing `commit -i`, we respected `diff.ignorews` and other
    whitespace-related settings, which is probably unexpected. The primary reason
    for this is to support hgext.record's commandline options, it's probably
    accidental that the `[diff]` settings were also considered. See comments on
    issue6042 and D5490. This can cause problems (issue5839, issue6042).
    
    It is assumed by the author that the `[diff]` section is primarily for *viewing*
    diffs, and that it is unlikely what people intend when attempting to commit or
    revert.
    
    With this change, if a user wants the behavior, they can clone their `[diff]`
    settings to `commands.commit.interactive.<setting>`. This is thus a mild BC
    change, but one I suspect is not going to be relied on by anyone.
    
    Note: while doing a partial commit/revert, we do not know what command the user
    is actually running. This means that the split extension, which ends up calling
    into this code, will respect the `commands.commit.interactive.<setting>`
    settings, and not a hypothetical `commands.split.interactive.<setting>`. This
    *also* means that setting `commands.commit.interactive.ignoreblanklines`, for
    example, will still cause issue5839. Considering the highly unlikely chance that
    a user actually sets `commands.commit.interactive.<setting>`, the author deems
    this risk acceptable.
    
    Differential Revision: https://phab.mercurial-scm.org/D5834
    66399f2e92aa