Fri, 15 Jan 2021 23:47:16 +0100 copies: fix some comment in _filter
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
Sat, 16 Jan 2021 00:54:33 +0100 discovery: move some debug output closer to were it belong
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
Sat, 16 Jan 2021 00:48:11 +0100 discovery: add a discovery.grow-sample.rate
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
Sat, 16 Jan 2021 00:29:17 +0100 discovery: add a `devel', b'discovery.grow-sample`
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
Sat, 16 Jan 2021 00:21:54 +0100 discovery: document the `devel.discovery.randomize` option
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
Tue, 12 Jan 2021 09:11:15 -0800 shelve: move listshelves() to new ShelfDir class, so caller need not pass vfs
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
Tue, 12 Jan 2021 09:02:47 -0800 shelve: also create class representing whole directory of shelves
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
Mon, 11 Jan 2021 23:08:37 -0800 shelve: add a method for deleting shelf to new shelf class
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
Mon, 11 Jan 2021 10:53:42 -0800 shelve: inline ".patch" constant now that it's only used in the Shelf class
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
Mon, 11 Jan 2021 23:06:45 -0800 shelve: use listshelves() in cleanupoldbackups()
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
Mon, 11 Jan 2021 23:02:20 -0800 shelve: make listshelves() list shelves in a given vfs
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
Tue, 12 Jan 2021 08:07:59 -0800 shelve: replace repo instance in Shelf class by vfs instance
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
Mon, 11 Jan 2021 10:35:52 -0800 shelve: use listdir() instead of readdir() when we don't need stat information
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
Fri, 08 Jan 2021 23:08:37 -0800 shelve: don't crash on file with unexpected extension in .hg/shelved/
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
Mon, 11 Jan 2021 09:26:48 -0800 shelve: don't include invalid shelves in `hg shelve --list`
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
Thu, 07 Jan 2021 23:32:19 -0800 shelve: extract some repeated creation of shelf instances to variables
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
Thu, 07 Jan 2021 23:18:24 -0800 shelve: teach new shelf class to check if .shelve file exists
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 23:18:24 -0800] rev 46286
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
Thu, 07 Jan 2021 22:45:17 -0800 shelve: move method for creating backup to new shelf class
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 22:45:17 -0800] rev 46285
shelve: move method for creating backup to new shelf class Differential Revision: https://phab.mercurial-scm.org/D9712
Thu, 07 Jan 2021 23:09:04 -0800 shelve: make gennames() helper generate relative backup paths
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 23:09:04 -0800] rev 46284
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
Thu, 07 Jan 2021 22:38:19 -0800 shelve: use listshelves() in cleanup function
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 22:38:19 -0800] rev 46283
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
Thu, 07 Jan 2021 16:08:30 -0800 shelve: inline shelvedfile.filename() since there are no callers outside class
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 16:08:30 -0800] rev 46282
shelve: inline shelvedfile.filename() since there are no callers outside class Differential Revision: https://phab.mercurial-scm.org/D9709
Thu, 07 Jan 2021 15:24:46 -0800 shelve: make listshelves() return shelf names instead of filenames
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 15:24:46 -0800] rev 46281
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 name). Differential Revision: https://phab.mercurial-scm.org/D9708
Thu, 07 Jan 2021 14:54:56 -0800 shelve: move method for getting stat (mtime) to new shelf class
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 14:54:56 -0800] rev 46280
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 move. 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
Thu, 07 Jan 2021 15:24:15 -0800 shelve: open patch using new shelf class instead of open()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 15:24:15 -0800] rev 46279
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
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 +3000 tip