[PATCH 1 of 2 V3] shelve: make bare shelve not preserving newly created branch

Yuya Nishihara yuya at tcha.org
Tue Mar 8 10:46:42 EST 2016


On Mon, 07 Mar 2016 23:49:54 +0100, liscju wrote:
> # HG changeset patch
> # User liscju <piotr.listkiewicz at gmail.com>
> # Date 1457387891 -3600
> #      Mon Mar 07 22:58:11 2016 +0100
> # Node ID 2e4c8569d7fed28a7853417cd178ed374446ef9f
> # Parent  a036e1ae1fbe88ab99cb861ebfc2e4da7a3912ca
> shelve: make bare shelve not preserving newly created branch
> 
> This patch makes bare shelve setting branch of working directory
> to the first parent branch before commiting, making it not
> remember newly created branch.
> 
> This patch prepares for restoring branch name on newly created
> branch on bare shelve, because newly created branch name will be
> only saved on bare shelve.
> 
> diff -r a036e1ae1fbe -r 2e4c8569d7fe hgext/shelve.py
> --- a/hgext/shelve.py	Sun Feb 07 00:49:31 2016 -0600
> +++ b/hgext/shelve.py	Mon Mar 07 22:58:11 2016 +0100
> @@ -312,6 +312,10 @@ def _docreatecmd(ui, repo, pats, opts):
>                  extra['shelve_unknown'] = '\0'.join(s.unknown)
>                  repo[None].add(s.unknown)
>  
> +        if pats:
> +            # In non-bare shelve we don't store newly created branch
> +            repo.dirstate.setbranch(repo['.'].branch())

Well, I'm like a broken record, but if new branch isn't shelved, the current
working branch should stay unchanged. It doesn't make sense that "hg shelve"
discards uncommitted changes.


More information about the Mercurial-devel mailing list