view relnotes/next @ 47767:66ad7e32011f stable

fix: use scmutil.movedirstate() instead of reimplementing I wrote this patch 2 years ago as a little cleanup. I wanted to generally used `scmutil.movedirstate()` instead of manually updating the dirstate because that is easy to get wrong. I didn't know until today that the current code had a bug. So I added the test case two patches before this one and dusted off this one patch. This is a little slower than the previous code, as it diffs two manifests. However, it fixes the bug and I don't think it's going to be noticeably slower anyway. Differential Revision: https://phab.mercurial-scm.org/D11210
author Martin von Zweigbergk <martinvonz@google.com>
date Mon, 11 Mar 2019 10:59:35 -0700
parents ec77f709495c
children bad66df931b5
line wrap: on
line source

== New Features ==

 * `hg config` now has a `--source` option to show where each
   configuration value comes from.


== Default Format Change ==

These changes affects newly created repositories (or new clone) done with
Mercurial 5.8.


== New Experimental Features ==


== Bug Fixes ==


== Backwards Compatibility Changes ==


== Internal API Changes ==

The Dirstate API have been updated as the previous function leaked some
internal details and did not distinct between two important cases: "We are
changing parent and need to adjust the dirstate" and "some command is changing
which file is tracked". To clarify the situation:

* the following functions have been deprecated,

  - dirstate.add,
  - dirstate.normal,
  - dirstate.normallookup,
  - dirstate.merge,
  - dirstate.otherparent,
  - dirstate.remove,
  - dirstate.drop,

* these new functions are added for the "adjusting parents" use-case:

  - dirstate.update_file,
  - dirstate.update_file_p1,

* these new function are added for the "adjusting wc file" use-case":

  - dirstate.set_tracked,
  - dirstate.set_untracked,
  - dirstate.set_clean,
  - dirstate.set_possibly_dirty,

See inline documentation of the new functions for details.