[PATCH V10] update: fix bare --clean to work on new branch (issue5003) (BC)

Piotr Listkiewicz piotr.listkiewicz at gmail.com
Thu May 19 22:40:23 UTC 2016


>
> Since this patch involves BC and isn't a trivial change, I want to revisit
> it after May 1.


Should i send a new patch dealing with issues you mentioned or wait until
you revisit it?

2016-04-22 17:02 GMT+02:00 Yuya Nishihara <yuya at tcha.org>:

> On Wed, 20 Apr 2016 09:53:20 +0200, liscju wrote:
> > # HG changeset patch
> > # User liscju <piotr.listkiewicz at gmail.com>
> > # Date 1459834201 -7200
> > #      Tue Apr 05 07:30:01 2016 +0200
> > # Branch stable
> > # Node ID fed812b73ca807061f484aa16eb5ca5383ad9b85
> > # Parent  97811ff7964710d32cae951df1da8019b46151a2
> > update: fix bare --clean to work on new branch (issue5003) (BC)
> >
> > Before this commit bare update --clean on newly created branch
> > updates to the parent commit, even if there are later commits
> > on the parent commit's branch. Update to the latest head on the
> > parent commit's branch instead.
> >
> > This seems reasonable as clean should discard uncommited changes,
> > branch is one of them.
> >
> > diff -r 97811ff79647 -r fed812b73ca8 mercurial/destutil.py
> > --- a/mercurial/destutil.py   Sat Mar 26 18:50:56 2016 +0900
> > +++ b/mercurial/destutil.py   Tue Apr 05 07:30:01 2016 +0200
> > @@ -95,7 +95,16 @@ def _destupdatebranch(repo, clean, check
> >      wc = repo[None]
> >      movemark = node = None
> >      currentbranch = wc.branch()
> > -    if currentbranch in repo.branchmap():
> > +
> > +    if clean:
> > +        parentbranch = repo['.'].branch()
> > +        heads = repo.branchheads(parentbranch)
> > +        if heads:
> > +            node = repo.revs('max(.::(%ln))', heads).first()
>
> It would have the missing "default" branch issue we've hit before.
>
>   $ cd repo-with-no-default-branch
>   $ hg update null
>   $ hg update -C  # perhaps this should bring us to tipmost unclosed
> branch head
>
> https://selenic.com/repo/hg/rev/d9539959167d
>
> So basically, we would want the following behavior:
>
>   if clean:
>       currentbranch = wc.p1().branch()
>   if currentbranch in repo.branchmap():
>       heads = repo.branchheads(currentbranch)
>       ...
>
> > +            if currentbranch not in repo.branchmap():
> > +                repo.ui.warn(_('updating to the head of parent branch
> %s\n')
> > +                             % parentbranch)
>
> Hmm, the warning message seems not match with the condition. Which kind of
> problems do you have in mind?
>
>  a) uncommitted branch is discarded
>  b) update to head of parent branch, not to head of new branch
>  c) ?
>
> Since this patch involves BC and isn't a trivial change, I want to revisit
> it after May 1.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20160520/58d9144c/attachment.html>


More information about the Mercurial-devel mailing list