Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 18:52:26 +0200] rev 48125
dirstatemap: create `_dirs_incr/_dirs_decr` methods on the common class
The Rust wrapper does not need them. However having a default, no-op,
implementation will help use to write code used by both implementation.
Differential Revision: https://phab.mercurial-scm.org/D11570
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 18:49:21 +0200] rev 48124
dirstatemap: small rework of the `set_untracked` method
This shuffle the code a bit to have it flowing more "naturally". This will help
us to create a common version of this code in the next changesets.
Differential Revision: https://phab.mercurial-scm.org/D11569
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Oct 2021 12:10:46 +0200] rev 48123
dirstatemap: arrange methods by category
The dirstatemap code cover various aspects, it grow a bit messy over the years. So we shuffle the code around into some documented categories.
This will help use to clean up the code.
No code was changed in this changeset, only code move.
Differential Revision: https://phab.mercurial-scm.org/D11568
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Oct 2021 12:01:50 +0200] rev 48122
dirstatemap: move a multiple simple functions in the common class
These are small and simple, lets factor them out.
Differential Revision: https://phab.mercurial-scm.org/D11567
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 17:10:24 +0200] rev 48121
dirstatemap: rename `_rustmap` to `_map`
This match the name of the `map` for the other implementation and will make it
simpler to share code between the two.
Differential Revision: https://phab.mercurial-scm.org/D11566
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 16:52:44 +0200] rev 48120
dirstatemap: use a common __init__ for dirstatemap
This is the first and simplest things to put in common.
Differential Revision: https://phab.mercurial-scm.org/D11565
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 16:14:29 +0200] rev 48119
dirstatemap: introduce a common base for the dirstatemap class
We have two dirstatemaps class. One for the python version of the dirstate map
and one for the Rust version (that has a python wrapper to deal with some
aspect of it). We end up with duplicated code between them, so we introduce a
common base class to start migrating common code in them.
Differential Revision: https://phab.mercurial-scm.org/D11564
Martin von Zweigbergk <martinvonz@google.com> [Tue, 28 Sep 2021 15:11:22 -0700] rev 48118
errors: raise InputError from revsingle() iff revset provided by the user
Same reasoning as for `revrange()` in an earlier patch.
Differential Revision: https://phab.mercurial-scm.org/D11562
Martin von Zweigbergk <martinvonz@google.com> [Tue, 28 Sep 2021 13:59:01 -0700] rev 48117
errors: raise InputError from revpair() iff revset provided by the user
Same reasoning as for `revrange()` in an earlier patch.
Differential Revision: https://phab.mercurial-scm.org/D11561
Martin von Zweigbergk <martinvonz@google.com> [Tue, 28 Sep 2021 08:47:11 -0700] rev 48116
errors: raise InputError on bad revset to revrange() iff provided by the user
Most callers of `scmutil.revrange()` pass in a revset provided by the
user. If there are problems resolving that, it should result in an
`InputError` and exit code 10 (when using detailed exit
codes). However, there are also some callers that pass in revsets not
provided by the user. `InputError` is not appropriate in those
cases. This patch therefore introduces a wrapper around
`scmutil.revrange()` that simply converts the exception type. I put it
in `logcmdutil.py` since that seems to be the lowest-level module in
the (poorly defined) UI layer.
Differential Revision: https://phab.mercurial-scm.org/D11560
Martin von Zweigbergk <martinvonz@google.com> [Tue, 28 Sep 2021 09:08:43 -0700] rev 48115
phase: avoid a no-op resolution of revset from revnums
I was surprised that `scmutil.revrange()` supports integers in the
list of revsets. I think it's clearer to not pass a list that's known
to contain only integers into the function.
Differential Revision: https://phab.mercurial-scm.org/D11559
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 15:19:37 +0200] rev 48114
dirstate: push back the future a bit in the test
The future was set to 2021-01-01, we push it by 10 years.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 30 Sep 2021 18:07:31 +0200] rev 48113
dirstate-item: point out that `merged` is set only with p1_tracked
This is currently True, and we will use this fact to simplify the API in the
next commit. However, we add this assertion first to validate that this is
True in the whole test-suite.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 01:23:10 +0200] rev 48112
dirstate-item: update the attribute documentation
It was very outdated. We are about to change these attribute so we should has
well have them documented so that the change get easier to grasp.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 03:50:37 +0200] rev 48111
dirstate-item: use `any_tracked` more
This simplify more code.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 03:49:03 +0200] rev 48110
dirstate-item: drop an outdated comments
This comment is no longer relevant since we moved away from the `state` internal
representation, multiple weeks ago.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 00:00:29 +0200] rev 48109
dirstate: remove a update_file's special case for `merged` file
This case was fishy and can be dealt with by passing more accurate data a higher
level.
This clarify the API and prepare for a larger rework of the data we feeds to
the dirstate.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 30 Sep 2021 18:00:39 +0200] rev 48108
dirstate: remove a update_file's special case for tracked file with p2 data
This case was fishy and can be dealt with by passing more accurate data a higher
level.
This clarify the API and prepare for a larger rework of the data we feeds to
the dirstate.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 02:34:32 +0200] rev 48107
dirstate: deprecate `__getitem__` access
If we want to drop `state` usage, we need to deprecate this.
Differential Revision: https://phab.mercurial-scm.org/D11544
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 18:39:02 +0200] rev 48106
dirstate-item: use item's property instead of `state` in largefile
Differential Revision: https://phab.mercurial-scm.org/D11543
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 18:37:54 +0200] rev 48105
dirstate-item: use `added` instead of `state` when moving dirstate
Differential Revision: https://phab.mercurial-scm.org/D11542
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 18:37:20 +0200] rev 48104
dirstate-item: use item's property instead of `state` in revert
Differential Revision: https://phab.mercurial-scm.org/D11541
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 18:36:12 +0200] rev 48103
dirstate-item: use item's property when computing a copies
Differential Revision: https://phab.mercurial-scm.org/D11540
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 18:32:21 +0200] rev 48102
dirstate-item: use item's property instead of `state` in copy
Differential Revision: https://phab.mercurial-scm.org/D11539
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 17:52:39 +0200] rev 48101
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 48100
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 48099
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 48098
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 48097
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 48096
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 48095
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 48094
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 48093
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 48092
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 48091
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 48090
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 48089
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 48088
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 48087
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 48086
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 48085
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 48084
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 48083
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 48082
rust: remove dead code
Differential Revision: https://phab.mercurial-scm.org/D11549
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Oct 2021 21:17:31 +0530] rev 48081
Added signature for changeset
750920b18aaa
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Oct 2021 21:17:23 +0530] rev 48080
Added tag 5.9.2 for changeset
750920b18aaa
Raphaël Gomès <rgomes@octobus.net> [Sat, 11 Sep 2021 00:09:29 +0200] rev 48079
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 48078
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 48077
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 48076
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 48075
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 48074
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 48073
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 48072
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 48071
branching: merge with stable
Raphaël Gomès <rgomes@octobus.net> [Tue, 28 Sep 2021 13:26:08 +0200] rev 48070
windows-ci: temporarily allow Windows jobs to fail
We have unfortunately ran out of free credit on the runners we were using from
OVH for the Windows CI. We will be disabling the two remaining ones on the 30th
of September, hence we need the CI to pass even if Windows jobs cannot start as
a temporary measure. Hopefully we can find another way of getting Windows
runners soon.
Differential Revision: https://phab.mercurial-scm.org/D11499