Mike Edgar <adgar@google.com> [Fri, 06 Feb 2015 00:55:29 +0000] rev 24120
revlog: in addgroup, reject ill-formed deltas based on censored nodes
To ensure interoperability when clones disagree about which file nodes are
censored, a restriction is made on deltas based on censored nodes. Any such
delta must replace the full text of the base in a single patch.
If the recipient of a delta considers the base to be censored and the delta
is not in the expected form, the recipient must reject it, as it can't know
if the source has also censored the base.
For background and broader design of the censorship feature, see:
http://mercurial.selenic.com/wiki/CensorPlan
Mike Edgar <adgar@google.com> [Wed, 21 Jan 2015 16:35:09 -0500] rev 24119
mdiff: add helper for making deltas which replace the full text of a revision
This helper will be used initially for censor-aware delta generation. Deltas
which replace the full contents of the base revision are guaranteed to apply
correctly regardless of whether the delta recipient has censored the base.
For background and broader design of the censorship feature, see:
http://mercurial.selenic.com/wiki/CensorPlan
Mike Edgar <adgar@google.com> [Fri, 23 Jan 2015 17:01:39 -0500] rev 24118
revlog: add "iscensored()" to revlog public API
The iscensored method will be used by the exchange layer to reject
nonconforming deltas involving censored revisions (and to produce
conforming deltas).
For background and broader design of the censorship feature, see:
http://mercurial.selenic.com/wiki/CensorPlan
Mike Edgar <adgar@google.com> [Fri, 06 Feb 2015 01:44:24 +0000] rev 24117
filelog: allow censored files to contain padding data
To ensure delta compatibility, when a revision is censored, it is
padded to match the original data in size. The previous check does
not allow for padding because it was added before padding was found
to be a requirement.
For more background and design of the censorship feature, see:
mercurial.selenic.com/wiki/CensorPlan
Yuya Nishihara <yuya@tcha.org> [Thu, 08 Jan 2015 23:43:15 +0900] rev 24116
revset: drop factory that promotes spanset to fullreposet
All callers use fullreposet where appropriate.
Backed out changeset
fbae659543cf
Yuya Nishihara <yuya@tcha.org> [Thu, 08 Jan 2015 23:46:54 +0900] rev 24115
revset: specify fullreposet without using spanset factory
The factory function will be removed because the subsequent patches will
make fullreposet(repo) not fully compatible with spanset(repo).
Yuya Nishihara <yuya@tcha.org> [Mon, 02 Feb 2015 22:21:07 +0900] rev 24114
revset: make match function initiate query from full set by default
This change is intended to avoid exposing the implementation detail to
callers. I'm going to extend fullreposet to support "null" revision, so
these mfunc calls will have to use fullreposet() instead of spanset().