# HG changeset patch # User Danny Hooper # Date 1530906422 25200 # Node ID f068495a1c28358c22695545ed15a00b54da0d45 # Parent 91618801d5c3fb1b9deed6c3dbf60e953b48ab65 fix: add test case that shows why --whole with --base is useful Differential Revision: https://phab.mercurial-scm.org/D3894 diff -r 91618801d5c3 -r f068495a1c28 hgext/fix.py --- a/hgext/fix.py Fri Jul 06 16:45:44 2018 -0700 +++ b/hgext/fix.py Fri Jul 06 12:47:02 2018 -0700 @@ -385,7 +385,9 @@ """Returns a map of the base contexts for each revision The base contexts determine which lines are considered modified when we - attempt to fix just the modified lines in a file. + attempt to fix just the modified lines in a file. It also determines which + files we attempt to fix, so it is important to compute this even when + --whole is used. """ # The --base flag overrides the usual logic, and we give every revision # exactly the set of baserevs that the user specified. diff -r 91618801d5c3 -r f068495a1c28 tests/test-fix.t --- a/tests/test-fix.t Fri Jul 06 16:45:44 2018 -0700 +++ b/tests/test-fix.t Fri Jul 06 12:47:02 2018 -0700 @@ -1027,3 +1027,29 @@ $ cd .. +The --base flag affects the set of files being fixed. So while the --whole flag +makes the base irrelevant for changed line ranges, it still changes the +meaning and effect of the command. In this example, no files or lines are fixed +until we specify the base, but then we do fix unchanged lines. + + $ hg init basewhole + $ cd basewhole + $ printf "foo1\n" > foo.changed + $ hg commit -Aqm "first" + $ printf "foo2\n" >> foo.changed + $ printf "bar\n" > bar.changed + $ hg commit -Aqm "second" + + $ hg fix --working-dir --whole + $ cat *.changed + bar + foo1 + foo2 + + $ hg fix --working-dir --base 0 --whole + $ cat *.changed + BAR + FOO1 + FOO2 + + $ cd ..