[PATCH 1 of 8 shelve-ext] shelve: move possible shelve file extensions to a single place

Durham Goode durham at fb.com
Wed Nov 9 05:02:44 EST 2016


On 11/8/16 1:51 PM, Kostia Balytskyi wrote:

> # HG changeset patch
> # User Kostia Balytskyi <ikostia at fb.com>
> # Date 1478529210 28800
> #      Mon Nov 07 06:33:30 2016 -0800
> # Node ID b2d851fac63c8e12605948c7d182f86974b5096c
> # Parent  d500ddae7494772e5eb867fccc6876f5f0c21dac
> shelve: move possible shelve file extensions to a single place
>
> This and a couple of following patches are a preparation to
> implementing obsolescense-enabled shelve which was discussed
> on a Sprint. If this refactoring is not done, shelve is going
> to look even more hackish than now.
>
> diff --git a/hgext/shelve.py b/hgext/shelve.py
> --- a/hgext/shelve.py
> +++ b/hgext/shelve.py
> @@ -62,6 +62,7 @@ testedwith = 'ships-with-hg-core'
>   
>   backupdir = 'shelve-backup'
>   shelvedir = 'shelved'
> +shelvefileextensions = ['hg', 'patch']
>   
>   class shelvedfile(object):
>       """Helper for the file storing a single shelve
> @@ -221,7 +222,7 @@ def cleanupoldbackups(repo):
>               # keep it, because timestamp can't decide exact order of backups
>               continue
>           base = f[:-3]
> -        for ext in 'hg patch'.split():
> +        for ext in shelvefileextensions:
>               try:
>                   vfs.unlink(base + '.' + ext)
>               except OSError as err:
> @@ -399,7 +400,7 @@ def cleanupcmd(ui, repo):
>       with repo.wlock():
>           for (name, _type) in repo.vfs.readdir(shelvedir):
>               suffix = name.rsplit('.', 1)[-1]
> -            if suffix in ('hg', 'patch'):
> +            if suffix in shelvefileextensions:
>                   shelvedfile(repo, name).movetobackup()
>               cleanupoldbackups(repo)
>   
> @@ -410,8 +411,15 @@ def deletecmd(ui, repo, pats):
>       with repo.wlock():
>           try:
>               for name in pats:
> -                for suffix in 'hg patch'.split():
> -                    shelvedfile(repo, name, suffix).movetobackup()
> +                for suffix in shelvefileextensions:
> +                    shfile = shelvedfile(repo, name, suffix)
> +                    # patch file is necessary, as it should
> +                    # be present for any kind of shelve,
> +                    # but the .hg file is optional as in future we
> +                    # will add obsolete shelve with does not create a
> +                    # bundle
> +                    if shfile.exists() or suffix == 'patch':
> +                        shfile.movetobackup()
This looks like a behavior change?  It's not really called out in the 
commit message.
>               cleanupoldbackups(repo)
>           except OSError as err:
>               if err.errno != errno.ENOENT:
> @@ -557,7 +565,7 @@ def restorebranch(ui, repo, branchtorest
>   def unshelvecleanup(ui, repo, name, opts):
>       """remove related files after an unshelve"""
>       if not opts.get('keep'):
> -        for filetype in 'hg patch'.split():
> +        for filetype in shelvefileextensions:
>               shelvedfile(repo, name, filetype).movetobackup()
>           cleanupoldbackups(repo)
>   
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mercurial-2Dscm.org_mailman_listinfo_mercurial-2Ddevel&d=DQIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=nuarHzhP1wi1T9iURRCj1A&m=z5Ll5d4mE1EHiwu5Roi5JoJU6un1cNPw8pHygm_ZIrM&s=gyy77Eat1tYdIPnEdHLBNs_ff6jcZYIn1fCL4_RJsrc&e=



More information about the Mercurial-devel mailing list