Bryan O'Sullivan <bryano@fb.com> [Fri, 30 Nov 2012 15:55:07 -0800] rev 18017
dirstate: move file type filtering to its source
This prepares us to move to a much faster statfiles implementation on Unix.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 30 Nov 2012 22:34:21 +0100] rev 18016
clfilter: rename `unfilteredmeth` to `unfilteredmethod`
As originally intended.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 30 Nov 2012 21:47:04 +0100] rev 18015
clfilter: fix a false positive in the test-obsolete.t
We push between two repo which once filtered looks unrelated. Weakness in the
current implementation allows this push to be done without -f. But later
improvement with filtering will make this push fails for unrelatedness. However
we want this push to fail for including bumped changeset. So we had a smaller
push --force to make them related.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 08 Oct 2012 19:34:04 +0200] rev 18014
clfilter: ensure that filecache on localrepo is unfiltered
All filecache usage on repo is for logic that should be unfiltered. The
caches should be common to all filtered instances, and computation must
be done unfiltered. A dedicated storecache subclass is created for
this purpose.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 08 Oct 2012 20:02:20 +0200] rev 18013
clfilter: add a propertycache that must be unfiltered
Some of the localrepo property caches must be computed unfiltered and
stored globally. Some others must see the filtered version and store data
relative to the current filtering.
This changeset introduces two classes `unfilteredpropertycache`
and `filteredpropertycache` for this purpose. A new function
`hasunfilteredcache` is introduced for unambiguous checking for cached
values on unfiltered repos.
A few tweaks are made to the property cache class to allow overriding
the way the computed value is stored on the object.
Some logic relative to _tagcaches is cleaned up in the process.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 18:11:56 +0200] rev 18012
largefile: status is buggy on repoproxy, so run unfiltered
For some yet-unkown reason, largefile status does not work on
repoproxy. As status is not affected by filtering, we run it unfiltered.
Na'Tosha Bard's view on this issue:
"but, well, largefiles status is kind of an unholy piece of code"
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 20:01:40 +0200] rev 18011
clfilter: mq should not warn about filtered mq patches
MQ warns when qstatus contains unknown nodes. With changelog filtering,
a node may be unknown because it is filtered. Thus, an unfiltered repo
is used for this check.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 18:02:25 +0200] rev 18010
clfilter: ensure that mq performs commits on unfiltered repos
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:50:02 +0200] rev 18009
clfilter: use unfiltered repo for bookmark push logic
The remote location of the bookmark may be filtered locally. This
changeset ensures that bookmark movement logic has access to all the
repo's content.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:26:23 +0200] rev 18008
clfilter: `bookmark.validdest` should run on unfiltered repo
The logic recently added to `bookmark.validdest` uses data about obsolete
changesets to see if a bookmark destination is valid. Obsolete changesets
are likely to be filtered, so we need to work on an unfiltered repository.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:41:07 +0200] rev 18007
clfilter: unfilter some parts of the push logic
Computation of common changesets during push needs to be done on the
widest set possible. An unfiltered version of the repo is kept for
discovery and various revset calls. The discovery code itself enforces
the filtering of unserved outgoing changeset.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 30 Nov 2012 00:43:55 +0900] rev 18006
subrepo: add argument to "diff()" to pass "ui" of caller side (
issue3712) (API)
Color extension achieves colorization by overriding the class of
"ui" object just before command execution.
Before this patch, "diff()" of abstractsubrepo and classes
derived from it has no "ui" argument, so "diff()" of hgsubrepo
uses "self._repo.ui" to invoke "cmdutil.diffordiffstat()".
For separation of configuration between repositories, revision
573bec4ab7ba changed the initialization source of "self._repo.ui"
from "ui"(overridden) to "baseui"(plain) of parent repository.
And this caused break of colorization.
This patch adds "ui" argument to "diff()" of abstractsubrepo and
classes derived from it to pass "ui" object of caller side.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:15:08 +0200] rev 18005
clfilter: prevent unwanted warning about filtered parents as unknown
During changectx __init__ the dirstate's parents MAY be checked. If
the repo is filtered, this check will complain "working directory has
unknown parents" even if the parents are perfectly known.
This may happen when the repo is used for serving and the dirstate has
parents that are secret, as those secret changesets will be filtered.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:12:09 +0200] rev 18004
clfilter: strip logic should be unfiltered
Strip is a "write" operation that needs to be aware of the whole repo's
content before destroying changesets.
Only the low level function is altered. The top level command will still
process its argument filtered (if any filtering is in place).
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:08:52 +0200] rev 18003
clfilter: verify logic should be unfiltered
To verify a changelog obviously needs all of it. The verify logic now
ensures it works on an unfiltered repository.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 21 Nov 2012 00:53:45 +0100] rev 18002
clfilter: phases logic should be unfiltered
Phase computations and boundary movements need to be aware of all
revisions that exist in the repository to return correct results.