[PATCH 2 of 2 V8] update: fix bare --clean to work on new branch (issue5003) (BC)
Piotr Listkiewicz
piotr.listkiewicz at gmail.com
Wed Apr 13 07:32:24 EDT 2016
>
> Again, "this commit" is implied; you can reword this in a simpler fashion
> with something like "bare update --clean on a 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".
> Otherwise, this looks good to me.
Right, changed it in V9. I need some english writing classes :P
2016-04-13 12:31 GMT+02:00 Simon Farnsworth <simonfar at fb.com>:
> On 13/04/2016 09:48, liscju wrote:
>
>> # HG changeset patch
>> # User liscju <piotr.listkiewicz at gmail.com>
>> # Date 1459834201 -7200
>> # Tue Apr 05 07:30:01 2016 +0200
>> # Node ID dece0d6bc1442e50db920cd6ee04bebf786cddd1
>> # Parent cabc4e5224db4d4f02e4460f4349df2e7ffd2e52
>> update: fix bare --clean to work on new branch (issue5003) (BC)
>>
>> Before this commit bare update --clean on newly created branch
>> resulted in updating to the parent. After applying this commit bare
>> update --clean results in updating to the max head of the parents
>> branch.
>>
>>
> Again, "this commit" is implied; you can reword this in a simpler fashion
> with something like "bare update --clean on a 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".
>
> Otherwise, this looks good to me.
>
> This seems reasonable as clean should discard uncommited changes,
>> branch is one of them.
>>
>> diff -r cabc4e5224db -r dece0d6bc144 mercurial/destutil.py
>> --- a/mercurial/destutil.py Tue Apr 05 06:53:33 2016 +0200
>> +++ b/mercurial/destutil.py Tue Apr 05 07:30:01 2016 +0200
>> @@ -95,14 +95,24 @@ def _destupdatebranch(repo, clean, check
>> wc = repo[None]
>> movemark = node = None
>> currentbranch = wc.branch()
>> - if currentbranch in repo.branchmap():
>> - heads = repo.branchheads(currentbranch)
>> +
>> + if clean:
>> + heads = repo.branchheads(repo['.'].branch())
>> if heads:
>> node = repo.revs('max(.::(%ln))', heads).first()
>> - if bookmarks.isactivewdirparent(repo):
>> - movemark = repo['.'].node()
>> + if currentbranch not in repo.branchmap():
>> + repo.ui.warn(_('uncommitted branch %s does not exist, '
>> + 'updating to the head of parent branch\n')
>> + % currentbranch)
>> else:
>> - node = repo['.'].node()
>> + if currentbranch in repo.branchmap():
>> + heads = repo.branchheads(currentbranch)
>> + if heads:
>> + node = repo.revs('max(.::(%ln))', heads).first()
>> + if bookmarks.isactivewdirparent(repo):
>> + movemark = repo['.'].node()
>> + else:
>> + node = repo['.'].node()
>> return node, movemark, None
>>
>> def _destupdatebranchfallback(repo, clean, check):
>> diff -r cabc4e5224db -r dece0d6bc144 tests/test-newbranch.t
>> --- a/tests/test-newbranch.t Tue Apr 05 06:53:33 2016 +0200
>> +++ b/tests/test-newbranch.t Tue Apr 05 07:30:01 2016 +0200
>> @@ -391,3 +391,58 @@ We expect that bare update on new branch
>> commit: (new branch)
>> update: (current)
>> phases: 3 draft
>> +
>> + $ cd ..
>> +
>> +We expect that update --clean discard changes in working directory,
>> +and updates to the head of parent branch.
>> +
>> + $ hg init updatebareclean
>> + $ cd updatebareclean
>> + $ hg update --clean
>> + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
>> + $ touch a
>> + $ hg commit -A -m "a"
>> + adding a
>> + $ touch b
>> + $ hg commit -A -m "b"
>> + adding b
>> + $ touch c
>> + $ hg commit -A -m "c"
>> + adding c
>> + $ hg log
>> + changeset: 2:991a3460af53
>> + tag: tip
>> + user: test
>> + date: Thu Jan 01 00:00:00 1970 +0000
>> + summary: c
>> +
>> + changeset: 1:0e067c57feba
>> + user: test
>> + date: Thu Jan 01 00:00:00 1970 +0000
>> + summary: b
>> +
>> + changeset: 0:3903775176ed
>> + user: test
>> + date: Thu Jan 01 00:00:00 1970 +0000
>> + summary: a
>> +
>> + $ hg update -r 1
>> + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
>> + $ hg branch new-branch
>> + marked working directory as branch new-branch
>> + (branches are permanent and global, did you want a bookmark?)
>> + $ echo "aa" >> a
>> + $ hg update --clean
>> + uncommitted branch new-branch does not exist, updating to the head of
>> parent branch
>> + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
>> + $ hg status
>> + $ hg branch
>> + default
>> + $ hg parent
>> + changeset: 2:991a3460af53
>> + tag: tip
>> + user: test
>> + date: Thu Jan 01 00:00:00 1970 +0000
>> + summary: c
>> +
>> _______________________________________________
>> 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=CwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=mEgSWILcY4c4W3zjApBQLA&m=0CfCsgbAHYSJuudfZETgD37V8iW7OcgWbJlLm-esIw8&s=8f-McLAsJIV4rTria6XwDa_05Mwhp52IY0DG9vca3HE&e=
>>
>>
> --
> Simon Farnsworth
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20160413/9f66c394/attachment.html>
More information about the Mercurial-devel
mailing list