Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View

Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

Pierre-Yves David
discovery: add a `devel', b'discovery.grow-sample`

That option make it possible to disable the "sample growing" behavior when doing
analysis and comparison.

Differential Revision: https://phab.mercurial-scm.org/D9798
Pierre-Yves David
persistent-nodemap: add a revlog.storage.persistent-nodemap.slow-path option

As discussed during the sprint, we want to prevent user to get an unexpected
performance regression when accessing a repository using "persistent-nodemap"
without the associated Rust extension.

We start by adding a config declaration and some documentation.

Since "allow" is the current behavior, we don't need to add any code. The option
possible value will come later.

Note that we already have a `storage.revlog.nodemap.mode` option, but that
option is a bit different. It does some warning and checking at revlog
instantiation time. While we want something done at requirements checking time.

Since we plan for new names and new config value names, we introduce a new
option and will drop the old one later.

Differential Revision: https://phab.mercurial-scm.org/D9758
Pierre-Yves David
discovery: add a discovery.grow-sample.rate

This allow to control the effect of the growth rate on the discovery process
while doing analysis.

Differential Revision: https://phab.mercurial-scm.org/D9799
Martin von Zweigbergk
shelve: move method for getting stat (mtime) to new shelf class

Only the mtime was needed, so I made it restricted to that in the

The new `Shelf` class expects its argument to be a shelf name (not a
arbitrary filename like `shelvedfile` would accept), so only the
shelf name is now passed in.

Differential Revision: https://phab.mercurial-scm.org/D9707
Martin von Zweigbergk
shelve: teach new shelf class to check if .shelve file exists

This removes the only remaining use for `shelvedfile`, so the class
now goes away.

Differential Revision: https://phab.mercurial-scm.org/D9713
Martin von Zweigbergk
shelve: use listshelves() in cleanupoldbackups()

With this patch, there are no more assumptions outside the `Shelf`
class about which files (`.patch`, `.hg`, `.shelve`) make up a
shelf. As such, this finishes the preparations for making phase-based
shelve (perhaps optionally) not write the `.patch` and `.hg` files.

Differential Revision: https://phab.mercurial-scm.org/D9740
Pierre-Yves David
persistent-nodemap: rename the storage.revlog.nodemap.mmap option

Since the feature is publicly known as "persistent-nodemap" this seems better to
reference it as "persistent-nodemap" in related config too. So we rename the
option to `storage.revlog.persistent-nodemap.mmap`.

Differential Revision: https://phab.mercurial-scm.org/D9756
Pierre-Yves David
persistent-nodemap: write down the sprint conclusion

This write down the plan for turning feature that are only fast when the rust
extension exists. Future changesets will implement it.

Differential Revision: https://phab.mercurial-scm.org/D9754
Martin von Zweigbergk
shelve: move method for creating backup to new shelf class

Differential Revision: https://phab.mercurial-scm.org/D9712
Martin von Zweigbergk
shelve: replace repo instance in Shelf class by vfs instance

I'd like to be able to teach the `Shelf` class to read shelves from
`.hg/shelve-backup/` in addition to `.hg/shelved/`. That means that
we'll have to pass in a vfs instead of the repo, so this patch does
that preparation.

Differential Revision: https://phab.mercurial-scm.org/D9738
Martin von Zweigbergk
shelve: make gennames() helper generate relative backup paths

When I saw `gennames()`, I thought it was meant to take a relative
filename as argument. Maybe it was or maybe it wasn't, but it seems
simpler to pass it a relative path anyway, so that's what this patch
does. That also makes the call to backupvfs.exists() more natural (I
expect a relative path to be passed there too).

Differential Revision: https://phab.mercurial-scm.org/D9711
Pierre-Yves David
persistent-nodemap: document storage.revlog.persistent-nodemap.mmap=no

The feature is gaining public facing document, its options too.

Differential Revision: https://phab.mercurial-scm.org/D9757
Pierre-Yves David
persistent-nodemap: remove the "experimental" tag to the feature

This has been around for a while and has all the discussed configuration

Differential Revision: https://phab.mercurial-scm.org/D9764
Pierre-Yves David
persistent-nodemap: document the feature in `hg help config.format`

This is necessary before we advertise the feature more.

Differential Revision: https://phab.mercurial-scm.org/D9755
Martin von Zweigbergk
shelve: open patch using new shelf class instead of open()

For some reason the existing code didn't use `shelvedfile().opener()`
so here we migrate to `shelf().open_patch()` from the `open()` system
call instead.

Differential Revision: https://phab.mercurial-scm.org/D9706
Pierre-Yves David
persistent-nodemap: document the `devel.persistent-nodemap` option

What it does is not obvious.

Differential Revision: https://phab.mercurial-scm.org/D9753
Pierre-Yves David
discovery: document the `devel.discovery.randomize` option

Gratuitous improvement as I was passing by this config section to add more.

Differential Revision: https://phab.mercurial-scm.org/D9797
Martin von Zweigbergk
shelve: inline ".patch" constant now that it's only used in the Shelf class

Differential Revision: https://phab.mercurial-scm.org/D9741
Pierre-Yves David
discovery: move some debug output closer to were it belong

I assume these debug output, increment and comment drifted over time.

Differential Revision: https://phab.mercurial-scm.org/D9800
Pierre-Yves David
persistent-node: check the value of the slow-path config

We should probably provide some standard for this in config item, but this is a
quest for another adventure.

Differential Revision: https://phab.mercurial-scm.org/D9760
Pierre-Yves David
persistent-nodemap: drop the storage.revlog.nodemap.mode config

We now have a new, better, higher level, option. So we can drop the older one as

Differential Revision: https://phab.mercurial-scm.org/D9763
Martin von Zweigbergk
shelve: move method for reading .hg to new shelf class

Differential Revision: https://phab.mercurial-scm.org/D9704
Pierre-Yves David
persistent-nodemap: add a "abort" option to the slow-path config

We make it the default, and document the behavior in the help for the main
config option.

Differential Revision: https://phab.mercurial-scm.org/D9762
Pierre-Yves David
persistent-nodemap: add a "warn" option to the slow-path config

And make it the default until we get an abort option.

Differential Revision: https://phab.mercurial-scm.org/D9761
Pierre-Yves David
copies: fix some comment in _filter

The scenario the comment describes match case 6, not case 2.

Differential Revision: https://phab.mercurial-scm.org/D9793
Martin von Zweigbergk
shelve: add a method for deleting shelf to new shelf class

This is not necessary for my future changes, but it's more consistent
to encapsulate the knowledge of the various files in the `Shelf`

Differential Revision: https://phab.mercurial-scm.org/D9742
Martin von Zweigbergk
shelve: also create class representing whole directory of shelves

It's a little annoying to have to create and pass in a vfs into
`listshelves()`. This patch attempts to start addressing that by
creating a class that represents a directory containing shelves (the
directory can be either `.hg/shelved/` or `.hg/shelve-backup/`).

Differential Revision: https://phab.mercurial-scm.org/D9743
Martin von Zweigbergk
shelve: move listshelves() to new ShelfDir class, so caller need not pass vfs

Differential Revision: https://phab.mercurial-scm.org/D9744
Martin von Zweigbergk
shelve: make listshelves() list shelves in a given vfs

Differential Revision: https://phab.mercurial-scm.org/D9739
Martin von Zweigbergk
shelve: remove a bundlerepo method

It was added in 43816070284e (shelve: add a bundlerepo method,
2014-10-10), but I haven't been able to find a place it was used.

Differential Revision: https://phab.mercurial-scm.org/D9696
Martin von Zweigbergk
shelve: use listshelves() in cleanup function

The point of this patch is to make it so all the callers of
`shelvedfile.movetobackup()` look the same, so I can move it over to
the new `Shelf` class next.

Differential Revision: https://phab.mercurial-scm.org/D9710
Martin von Zweigbergk
shelve: don't crash on file with unexpected extension in .hg/shelved/

We assumed that the files in the `.hg/shelved/` directory have an
extension. That's a valid assumption except that users may put garbage
in the directory. This patch fixes the crash by simply not assuming
that the result of splittin a string at '.' yields an extension. We
don't use the extension since the previous patch anyway.

Differential Revision: https://phab.mercurial-scm.org/D9720
Martin von Zweigbergk
shelve: extract some repeated creation of shelf instances to variables

This just looks cleaner to me; I'd be surprised if there's any
measurable performance improvement.

Differential Revision: https://phab.mercurial-scm.org/D9714
Martin von Zweigbergk
shelve: use listdir() instead of readdir() when we don't need stat information

Differential Revision: https://phab.mercurial-scm.org/D9737
Martin von Zweigbergk
shelve: don't include invalid shelves in `hg shelve --list`

Before this patch, if a shelved change is missing its `.hg` file, we
still list it in `hg shelve --list`, but then `hg unshelve`
crashes. This patch makes it so we only list valid shelved changes.

This patch means that users who do `touch .hg/shelve/buy-milk.patch`
as a form of TODO list will no longer see their TODO items in `hg
shelve --list`.

Differential Revision: https://phab.mercurial-scm.org/D9719
Martin von Zweigbergk
shelve: inline shelvedfile.filename() since there are no callers outside class

Differential Revision: https://phab.mercurial-scm.org/D9709
Martin von Zweigbergk
shelve: raise more specific errors

Differential Revision: https://phab.mercurial-scm.org/D9699
Martin von Zweigbergk
shelve: move method for writing bundle to new shelf class

Differential Revision: https://phab.mercurial-scm.org/D9703
Martin von Zweigbergk
shelve: trust caller of shelvedfile.opener() to check that the file exists

The only place we call `shelvedfile.opener()` is when we're about to
apply a bundle. The file should always exist. If it doesn't, the
`.hg/` directory is corrupt and we don't provide any guarantees about
supporting corrupt repos (besides, telling the user that the shelve
doesn't exist when `hg shelve --list` lists it is not very helpful).

Differential Revision: https://phab.mercurial-scm.org/D9698
Martin von Zweigbergk
shelve: make listshelves() return shelf names instead of filenames

All three callers now prefer the shelf name over the filename (already
before my recent patches, two out of three callers preferred the shelf

Differential Revision: https://phab.mercurial-scm.org/D9708