[PATCH] shelve: support shared repositories
sean at farley.io
Mon Mar 14 19:10:22 EDT 2016
Oleg Afanasyev <olegaf at fb.com> writes:
> # HG changeset patch
> # User Oleg Afanasyev <olegaf at fb.com>
> # Date 1457972723 25200
> # Mon Mar 14 09:25:23 2016 -0700
> # Node ID 6ec353e7cc031f453d26925fcbf15a035aaf2c90
> # Parent 1c658391b22fb4d98ccfb60c0e57315b55634117
> shelve: support shared repositories
> Shelve will use shared data instead of its own shelves. That would
> allow moving changes from share to share using shelve.
> When unshare is performed shelve will not be cloned to new repo. That
> would change behaviour from what it is doing now e.g. shelves created
> in share will disappear when unshare is done vs now shares have their
> own shelves.
> diff --git a/hgext/shelve.py b/hgext/shelve.py
> --- a/hgext/shelve.py
> +++ b/hgext/shelve.py
> @@ -61,6 +61,12 @@
> backupdir = 'shelve-backup'
> +def shareawarevfs(repo):
> + if repo.shared():
> + return scmutil.vfs(repo.sharedpath)
> + else:
> + return repo.vfs
This is beginning to become a pattern in a few extensions now. I think
that this is a good example of something that should go into core so
that all extensions can benefit.
Is there a reason 'repo.vfs' can't easily return the shared path? When
does it make sense for it to return the 'parent' repo path?
Off the top of my head, I would expect 'repo.vfs' to return the repo I'm
currently in (i.e. the repo.sharedpath).
More information about the Mercurial-devel