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
Thu, 07 Jan 2021 14:48:57 -0800 shelve: move function for opening .patch file to new shelf class
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 14:48:57 -0800] rev 46278
shelve: move function for opening .patch file to new shelf class The `opener()` method was used specifically for the `.patch` file, and the new `Shelf` class deals with all files involved in a shelf, so I renamed the function in the process. Differential Revision: https://phab.mercurial-scm.org/D9705
(0) -30000 -10000 -3000 -1000 -300 -100 -14 +14 +100 +300 +1000 +3000 tip