/!\ This page is primarily intended for Mercurial's developers.

Revision Context

Status: Project

Main proponents: Pierre-YvesDavid, YuyaNishihara

/!\ This is a speculative project and does not represent any firm decisions on future behavior.

Fileset and revset might depend of revision context, there is current

1. Goal

Various fileset (eg: added(…), modified(…), …) and revset (follow(…), followllines(…)) depends of the "revision context". Currently they mostly use the working copy parent for this and sometime a revision specified to the command through another argument. We aim to provide a way to specify a wider range of revision context for them.

An example usecase would be to be able to do hg archive --rev X 'set: rev(Y::X, modified() + added() to archive all the file modified between Y and X at the state they are at X.

2. Detailed Definition

There is multiple kind of eligible fileset.

2.1. changes-filesets

The one matching changes between multiple rev:

There is multiples way to specify revision here:

2.2. property-filesets

The one matching a property specific to a content:

There is multiple way to patch this:

2.3. revsets

In addition, some revset are also "content dependent" and need revision reference:

It is unclear if we need to use the same approach for fileset and revset but the problem seems similar enough to be mentioned at the same time.

3. Brain storming

Brain storming on possibilities

4. Proposal

(name are open for bikeshedding)

5. See Also

CategoryDeveloper CategoryNewFeatures

RevContextPlan (last edited 2017-03-03 13:06:32 by Pierre-YvesDavid)