Mercurial > hg
changeset 7372:e17dbf140035
pull: update to branch tip if there is only one head on the current branch
On pull, if the current named branch has only one head, update to it.
author | Benoit Allard <benoit@aeteurope.nl> |
---|---|
date | Fri, 14 Nov 2008 14:36:17 +0100 |
parents | 6ad2b914acbd |
children | d9e9dd2b00fb |
files | mercurial/commands.py tests/test-pull-branch tests/test-pull-branch.out |
diffstat | 3 files changed, 136 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Fri Nov 14 13:48:23 2008 +0100 +++ b/mercurial/commands.py Fri Nov 14 14:36:17 2008 +0100 @@ -2091,7 +2091,7 @@ if modheads == 0: return if optupdate: - if modheads <= 1 or checkout: + if (modheads <= 1 or len(repo.branchheads()) == 1) or checkout: return hg.update(repo, checkout) else: ui.status(_("not updating, since new heads added\n"))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-pull-branch Fri Nov 14 14:36:17 2008 +0100 @@ -0,0 +1,75 @@ +#!/bin/sh + +hg init t +cd t +echo 1 > foo +hg ci -Am1 # 0 +hg branch branchA +echo a1 > foo +hg ci -ma1 # 1 + +cd .. +hg init tt +cd tt +hg pull ../t +hg up branchA + +cd ../t +echo a2 > foo +hg ci -ma2 # 2 +echo % create branch B +hg up 0 +hg branch branchB +echo b1 > foo +hg ci -mb1 # 3 + +cd ../tt +echo % a new branch is there +hg pull -u ../t + +echo % develop both branch +cd ../t +hg up branchA +echo a3 > foo +hg ci -ma3 # 4 +hg up branchB +echo b2 > foo +hg ci -mb2 # 5 + +cd ../tt +echo % should succeed, no new heads +hg pull -u ../t + +echo % add an head on other branch +cd ../t +hg up branchA +echo a4 > foo +hg ci -ma4 # 6 +hg up branchB +echo b3.1 > foo +hg ci -m b3.1 # 7 +hg up 5 +echo b3.2 > foo +hg ci -m b3.2 # 8 + +cd ../tt +echo % should succeed only one head on our branch +hg pull -u ../t + +cd ../t +hg up -C branchA +echo a5.1 > foo +hg ci -ma5.1 # 9 +hg up 6 +echo a5.2 > foo +hg ci -ma5.2 # 10 +hg up 7 +echo b4.1 > foo +hg ci -m b4.1 # 11 +hg up -C 8 +echo b4.2 > foo +hg ci -m b4.2 # 12 + +cd ../tt +echo % should fail new head in our branch +hg pull -u ../t
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-pull-branch.out Fri Nov 14 14:36:17 2008 +0100 @@ -0,0 +1,60 @@ +adding foo +marked working directory as branch branchA +pulling from ../t +requesting all changes +adding changesets +adding manifests +adding file changes +added 2 changesets with 2 changes to 1 files +(run 'hg update' to get a working copy) +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +% create branch B +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +marked working directory as branch branchB +created new head +% a new branch is there +pulling from ../t +searching for changes +adding changesets +adding manifests +adding file changes +added 2 changesets with 2 changes to 1 files (+1 heads) +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +% develop both branch +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +% should succeed, no new heads +pulling from ../t +searching for changes +adding changesets +adding manifests +adding file changes +added 2 changesets with 2 changes to 1 files +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +% add an head on other branch +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +created new head +% should succeed only one head on our branch +pulling from ../t +searching for changes +adding changesets +adding manifests +adding file changes +added 3 changesets with 3 changes to 1 files (+1 heads) +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +created new head +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +% should fail new head in our branch +pulling from ../t +searching for changes +adding changesets +adding manifests +adding file changes +added 4 changesets with 4 changes to 1 files (+1 heads) +not updating, since new heads added +(run 'hg heads' to see heads, 'hg merge' to merge)