Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 07 Jan 2013 17:23:25 +0100] rev 1184
branchmap: allow to use cache of subset
Filtered repository are *subset* of unfiltered repository. This means that a
filtered branchmap could be use to compute the unfiltered version.
And filtered version happen to be subset of each other:
- "all() - unserved()" is a subset of "all() - hidden()"
- "all() - hidden()" is a subset of "all()"
This means that branchmap with "unfiltered" filter can be used as a base for
"hidden" branchmap that itself could be used as a base for unfiltered
branchmap.
unserved < hidden < None
This changeset implements this mechanism. If the on disk branchcache is not valid
we use the branchcache of the nearest subset as base instead of computing it from
scratch. Such fallback can be cascaded multiple time is necessary.
Note that both "hidden" and "unserved" set are a bit volatile. We will add more
stable filtering in next changesets.
This changeset enables collaboration between no filtering and "unserved"
filtering. Fixing performance regression introduced by 47f00b0de337
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Jan 2013 02:00:43 +0100] rev 1183
run-tests.py: don't use console for stdin when running in debug mode
Tests would wait for input instead of using non-interactive mode.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Jan 2013 02:00:43 +0100] rev 1182
tests: make hghave and run-tests exit on unknown feature requirements
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Fri, 04 Jan 2013 20:12:31 +0000] rev 1181
Merge with stable
Idan Kamara <idankk86@gmail.com> [Fri, 21 Dec 2012 17:19:52 +0100] rev 1180
localrepo: filter unknown nodes from the phasecache on destroyed
When commit is followed by strip (qrefresh), phasecache contains nodes that were
removed from the changelog. Since phasecache is filecached with .hg/store/phaseroots
which doesn't change as a result of stripping, we have to filter it manually.
If we don't write it immediately, the next time it is read from disk the nodes
will be filtered again. That's what happened before, but there's no reason not
to write it immediately.
The change in test-keyword.t is caused by the above.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Sat, 29 Dec 2012 02:35:54 +0000] rev 1179
Merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Dec 2012 00:02:40 +0100] rev 1178
strip: do not update branchcache during strip (issue3745)
At this moment, the cache is invalid, and will be thrown away.
Later the strip function will call the `localrepo.destroyed` method
that will update the branchmap cache.
[ original upstream message ]
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 24 Dec 2012 02:49:59 +0100] rev 1177
branchmap: move validity logic in the object itself
In several place, We check if a branchcache is still valid regarding the current
state of the repository. This changeset puts this logic in a method of the object
that can be reused when necessary.
A branch map is considered valid whenever it is up to date or a strict subset of
the repository state.
The change will help making branchcache aware of filtered revision.
The change in keyword is expected. the branch cache is actually invalid after
the amend. The previous check did not detected it.
[ original upstream message ]