Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 15 Jan 2021 23:47:16 +0100] rev 46302
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
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Jan 2021 00:54:33 +0100] rev 46301
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 <pierre-yves.david@octobus.net> [Sat, 16 Jan 2021 00:48:11 +0100] rev 46300
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
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Jan 2021 00:29:17 +0100] rev 46299
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 <pierre-yves.david@octobus.net> [Sat, 16 Jan 2021 00:21:54 +0100] rev 46298
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 <martinvonz@google.com> [Tue, 12 Jan 2021 09:11:15 -0800] rev 46297
shelve: move listshelves() to new ShelfDir class, so caller need not pass vfs
Differential Revision: https://phab.mercurial-scm.org/D9744
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Jan 2021 09:02:47 -0800] rev 46296
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 <martinvonz@google.com> [Mon, 11 Jan 2021 23:08:37 -0800] rev 46295
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`
class.
Differential Revision: https://phab.mercurial-scm.org/D9742
Martin von Zweigbergk <martinvonz@google.com> [Mon, 11 Jan 2021 10:53:42 -0800] rev 46294
shelve: inline ".patch" constant now that it's only used in the Shelf class
Differential Revision: https://phab.mercurial-scm.org/D9741
Martin von Zweigbergk <martinvonz@google.com> [Mon, 11 Jan 2021 23:06:45 -0800] rev 46293
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
Martin von Zweigbergk <martinvonz@google.com> [Mon, 11 Jan 2021 23:02:20 -0800] rev 46292
shelve: make listshelves() list shelves in a given vfs
Differential Revision: https://phab.mercurial-scm.org/D9739
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Jan 2021 08:07:59 -0800] rev 46291
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 <martinvonz@google.com> [Mon, 11 Jan 2021 10:35:52 -0800] rev 46290
shelve: use listdir() instead of readdir() when we don't need stat information
Differential Revision: https://phab.mercurial-scm.org/D9737
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Jan 2021 23:08:37 -0800] rev 46289
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 <martinvonz@google.com> [Mon, 11 Jan 2021 09:26:48 -0800] rev 46288
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 <martinvonz@google.com> [Thu, 07 Jan 2021 23:32:19 -0800] rev 46287
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