mercurial/helptext/deprecated.txt
author Georges Racinet on incendie.racinet.fr <georges@racinet.fr>
Tue, 17 Oct 2023 22:42:40 +0200
changeset 51224 43241f31cf5b
parent 43632 2e017696181f
permissions -rw-r--r--
rust-index: find_gca_candidates bit sets genericization This allows to use arbitratry size of inputs in `find_gca_candidates()`. We're genericizing so that the common case of up to 63 inputs can be treated with the efficient implementation backed by `u64`. Some complications with the borrow checker came, because arbitrary sized bit sets will not be `Copy`, hence mutating them keeps a mut ref on the `seen` vector. This is solved by some cloning, most of which can be avoided, preferably in a follow-up after proof that this works (hence after exposition to Python layer). As far as performance is concerned, calling `clone()` on a `Copy` object (good case when number of revs is less than 64) should end up just doing a copy, according to this excerpt of the `Clone` trait documentation: Types that are Copy should have a trivial implementation of Clone. More formally: if T: Copy, x: T, and y: &T, then let x = y.clone(); is equivalent to let x = *y;. Manual implementations should be careful to uphold this invariant; however, unsafe code must not rely on it to ensure memory safety. We kept the general structure, hence why there are some double negations. This also could be made nicer in a follow-up. The `NonStaticPoisonableBitSet` is included to ensure that the `PoisonableBitSet` trait is general enough (had to correct `vec_of_empty()` for instance). Moving the genericization one level to encompass the `seen` vector and not its elements would be better for performance, if worth it.

Mercurial evolves over time, some features, options, commands may be replaced by
better and more secure alternatives. This topic will help you migrating your
existing usage and/or configuration to newer features.

Commands
========

The following commands are still available but their use are not recommended:

``locate``

This command has been replaced by `hg files`.

``parents``

This command can be replaced by `hg summary` or `hg log` with appropriate
revsets. See `hg help revsets` for more information.

``tip``

The recommended alternative is `hg heads`.

Options
=======

``web.allowpull``
    Renamed to `allow-pull`.

``web.allow_push``
    Renamed to `allow-push`.