Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 17:52:39 +0200] rev 48113
dirstate-item: use `added` in debugrebuilddirstate
(instead of `state`)
Differential Revision: https://phab.mercurial-scm.org/D11538
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 17:42:57 +0200] rev 48112
dirstate-item: use `maybe_clean` instead of `state` in record
Differential Revision: https://phab.mercurial-scm.org/D11537
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 15:40:13 +0200] rev 48111
dirstate-item: use `any_tracked` instead of `state` to apply patches
Differential Revision: https://phab.mercurial-scm.org/D11536
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 15:39:33 +0200] rev 48110
dirstate-item: use item's property instead of `state` in addremove
Differential Revision: https://phab.mercurial-scm.org/D11535
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 15:26:30 +0200] rev 48109
dirstate-item: use `tracked` instead of `state` during copy detection
Differential Revision: https://phab.mercurial-scm.org/D11534
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 15:23:57 +0200] rev 48108
dirstate-item: use `maybe_clean` instead of `state` in `strip`
Differential Revision: https://phab.mercurial-scm.org/D11533
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 15:07:21 +0200] rev 48107
dirstate-item: use `tracked` instead of `state` in context.matches
Differential Revision: https://phab.mercurial-scm.org/D11532
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 30 Sep 2021 15:28:42 +0200] rev 48106
dirstate-item: use `tracked` instead of the `state` in context's iter
Differential Revision: https://phab.mercurial-scm.org/D11531
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 14:57:54 +0200] rev 48105
dirstate-item: use `tracked` instead of the `state` in context
Differential Revision: https://phab.mercurial-scm.org/D11530
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 14:56:23 +0200] rev 48104
dirstate-item: use item's property to deal with hgsubstate in mq
This is clearer than processing the `state`.
Differential Revision: https://phab.mercurial-scm.org/D11529
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 14:56:05 +0200] rev 48103
dirstate-item: use `added` instead of the `state` in the `mq` extension
Differential Revision: https://phab.mercurial-scm.org/D11528
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 14:55:29 +0200] rev 48102
dirstate-item: use maybe_clean instead of `state` in the eol extension
Differential Revision: https://phab.mercurial-scm.org/D11527
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 30 Sep 2021 12:00:15 +0200] rev 48101
dirstate: move verification code within the dirstate itself
This move implementation details further down the stack and make it the
verification code easier to discover.
Differential Revision: https://phab.mercurial-scm.org/D11526
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 14:52:44 +0200] rev 48100
dirstate-entry: use `?` for the state of entry without any tracking
This is what the dirstate use at a higher level.
Differential Revision: https://phab.mercurial-scm.org/D11525
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 14:51:31 +0200] rev 48099
dirstate-item: introduce a `any_tracked` property
This property is True is the file is tracked anywhere, either the working copy,
or any of the parent.
Differential Revision: https://phab.mercurial-scm.org/D11524
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 14:41:19 +0200] rev 48098
dirstate-item: introduce a `maybe_clean` property
It is useful for some extension that seek to invalidate some state.
Differential Revision: https://phab.mercurial-scm.org/D11523
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 02:37:24 +0200] rev 48097
dirstate: add a `get_entry` method to the dirstate
This method give access to the underlying `DirstateEntry` object (or an empty
one if None was there). It should allow us to use the more semantic property of
the entry instead of the state where we needs it.
Differential Revision: https://phab.mercurial-scm.org/D11522
Simon Sapin <simon.sapin@octobus.net> [Thu, 30 Sep 2021 18:06:34 +0200] rev 48096
dirstate-item: Make constructor parameters optional
… in the C implementation of DirstateItem, like they already were in the
Python and Rust ones.
Differential Revision: https://phab.mercurial-scm.org/D11521
Martin von Zweigbergk <martinvonz@google.com> [Fri, 01 Oct 2021 08:44:56 -0700] rev 48095
hg-core: silence dead-code warning by adding RevlogEntry::revion() accessor
Nightly `rustc` warns about the `RevlogEntry::rev` field not being
used. Rather than removing it, I added an accessor since it seems
useful to be able to get the entry's revision.
Differential Revision: https://phab.mercurial-scm.org/D11548
Raphaël Gomès <rgomes@octobus.net> [Fri, 01 Oct 2021 18:14:56 +0200] rev 48094
rust: remove dead code
Differential Revision: https://phab.mercurial-scm.org/D11549
Raphaël Gomès <rgomes@octobus.net> [Sat, 11 Sep 2021 00:09:29 +0200] rev 48093
rust-revset: support explicit `.` revision
This is basically the same thing as not specifying a revision, except this is
done in the revset resolution function.
This allows calls like `rhg cat some-file -r .` to work without falling back.
Differential Revision: https://phab.mercurial-scm.org/D11402
Raphaël Gomès <rgomes@octobus.net> [Sat, 11 Sep 2021 00:05:08 +0200] rev 48092
rust-revset: add separate match logic for shortcuts
The next change will add a shortcut for the `.` revision.
One day we might start matching `tip` and others, so this is an easy refactor.
Differential Revision: https://phab.mercurial-scm.org/D11401
Raphaël Gomès <rgomes@octobus.net> [Mon, 13 Sep 2021 15:12:35 +0200] rev 48091
rhg: fall back if subrepos are detected
We do not handle subrepos yet, the addition of the support for `-r .` will
break if we don't fall back.
Differential Revision: https://phab.mercurial-scm.org/D11403
Raphaël Gomès <rgomes@octobus.net> [Wed, 01 Sep 2021 18:09:35 +0200] rev 48090
rhg: fallback if `defaults` config is set for the current command
Differential Revision: https://phab.mercurial-scm.org/D11381
Raphaël Gomès <rgomes@octobus.net> [Wed, 01 Sep 2021 17:41:51 +0200] rev 48089
rhg: fallback if the current command has any generic hook defined
We do not handle hooks yet.
Differential Revision: https://phab.mercurial-scm.org/D11380
Raphaël Gomès <rgomes@octobus.net> [Wed, 01 Sep 2021 17:41:08 +0200] rev 48088
rhg-cat: fallback in presence of a fileset
These are unsupported so far.
Differential Revision: https://phab.mercurial-scm.org/D11379
Raphaël Gomès <rgomes@octobus.net> [Wed, 01 Sep 2021 17:40:25 +0200] rev 48087
rhg-cat: fallback when detecting `.` or `..` path segments
We do not normalize paths correctly yet, so exclude the shortcuts.
Differential Revision: https://phab.mercurial-scm.org/D11378
Raphaël Gomès <rgomes@octobus.net> [Wed, 01 Sep 2021 16:13:25 +0200] rev 48086
rhg: add support for calling `rhg cat` without a revision
Turns out the necessary pieces were there already.
Like the Python implementation, we default to the first parent of the dirstate.
Differential Revision: https://phab.mercurial-scm.org/D11377
Raphaël Gomès <rgomes@octobus.net> [Thu, 30 Sep 2021 17:34:28 +0200] rev 48085
branching: merge with stable
Simon Sapin <simon.sapin@octobus.net> [Mon, 27 Sep 2021 13:52:49 +0200] rev 48084
dirstate: Remove the Rust abstraction DirstateMapMethods
This Rust trait used to exist in order to allow the DirstateMap class exposed
to Python to be backed by either of two implementations: one similar to the
Python implementation based on a "flat" `HashMap<HgPathBuf, DirstateEntry>`,
and the newer one based on a tree of nodes matching the directory structure
of tracked files. A boxed trait object was used with dynamic dispatch.
With the flat implementation removed and only the tree one remaining, this
abstraction is not useful anymore and the concrete type can be stored directly.
It remains that the trait was implemented separately for `DirstateMap<'_>`
(which takes a lifetime parameter) and `OwningDirstateMap` (whose job is to
wrap the former and hide the lifetime parameter), with the latter impl only
forwarding calls.
This changeset also removes this forwarding. Instead, the methods formerly of
the `DirstateMapMethods` trait are now inherent methods implemented for
`OwningDirstateMap` (where they will actually be used) but in the module that
defines `DirstateMap`. This unusual setup gives access to the private fields
of `DirstateMap` from those methods.
Differential Revision: https://phab.mercurial-scm.org/D11517