Mercurial > public > mercurial-scm > hg-stable
diff tests/test-newbranch.t @ 12279:28e2e3804f2e
combine tests
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Tue, 14 Sep 2010 12:20:51 +0200 |
parents | tests/test-newbranch@4c94b6d0fb1c |
children | 4134686b83e1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-newbranch.t Tue Sep 14 12:20:51 2010 +0200 @@ -0,0 +1,316 @@ + $ branchcache=.hg/branchheads.cache + + $ hg init t + $ cd t + + $ hg branches + $ echo foo > a + $ hg add a + $ hg ci -m "initial" + $ hg branch foo + marked working directory as branch foo + $ hg branch + foo + $ hg ci -m "add branch name" + $ hg branch bar + marked working directory as branch bar + $ hg ci -m "change branch name" + +Branch shadowing: + + $ hg branch default + abort: a branch of the same name already exists (use 'hg update' to switch to it) + + $ hg branch -f default + marked working directory as branch default + + $ hg ci -m "clear branch name" + created new head + +There should be only one default branch head + + $ hg heads . + changeset: 3:9d567d0b51f9 + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: clear branch name + + + $ hg co foo + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg branch + foo + $ echo bleah > a + $ hg ci -m "modify a branch" + + $ hg merge default + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + + $ hg branch + foo + $ hg ci -m "merge" + + $ hg log + changeset: 5:dc140083783b + branch: foo + tag: tip + parent: 4:98d14f698afe + parent: 3:9d567d0b51f9 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: merge + + changeset: 4:98d14f698afe + branch: foo + parent: 1:0079f24813e2 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: modify a branch + + changeset: 3:9d567d0b51f9 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: clear branch name + + changeset: 2:ed2bbf4e0102 + branch: bar + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: change branch name + + changeset: 1:0079f24813e2 + branch: foo + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: add branch name + + changeset: 0:db01e8ea3388 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: initial + + $ hg branches + foo 5:dc140083783b + default 3:9d567d0b51f9 (inactive) + bar 2:ed2bbf4e0102 (inactive) + + $ hg branches -q + foo + default + bar + +Test for invalid branch cache: + + $ hg rollback + rolling back to revision 4 (undo commit) + + $ cp $branchcache .hg/bc-invalid + + $ hg log -r foo + changeset: 4:98d14f698afe + branch: foo + tag: tip + parent: 1:0079f24813e2 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: modify a branch + + $ cp .hg/bc-invalid $branchcache + + $ hg --debug log -r foo + invalidating branch cache (tip differs) + changeset: 4:98d14f698afeaff8cb612dcf215ce95e639effc3 + branch: foo + tag: tip + parent: 1:0079f24813e2b73a891577c243684c5066347bc8 + parent: -1:0000000000000000000000000000000000000000 + manifest: 4:d01b250baaa05909152f7ae07d7a649deea0df9a + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + files: a + extra: branch=foo + description: + modify a branch + + + $ rm $branchcache + $ echo corrupted > $branchcache + + $ hg log -qr foo + 4:98d14f698afe + + $ cat $branchcache + 98d14f698afeaff8cb612dcf215ce95e639effc3 4 + 9d567d0b51f9e2068b054e1948e1a927f99b5874 default + 98d14f698afeaff8cb612dcf215ce95e639effc3 foo + ed2bbf4e01029020711be82ca905283e883f0e11 bar + +Push should update the branch cache: + + $ hg init ../target + +Pushing just rev 0: + + $ hg push -qr 0 ../target + + $ cat ../target/$branchcache + db01e8ea3388fd3c7c94e1436ea2bd6a53d581c5 0 + db01e8ea3388fd3c7c94e1436ea2bd6a53d581c5 default + +Pushing everything: + + $ hg push -qf ../target + + $ cat ../target/$branchcache + 98d14f698afeaff8cb612dcf215ce95e639effc3 4 + 9d567d0b51f9e2068b054e1948e1a927f99b5874 default + 98d14f698afeaff8cb612dcf215ce95e639effc3 foo + ed2bbf4e01029020711be82ca905283e883f0e11 bar + +Update with no arguments: tipmost revision of the current branch: + + $ hg up -q -C 0 + $ hg up -q + $ hg id + 9d567d0b51f9 + + $ hg up -q 1 + $ hg up -q + $ hg id + 98d14f698afe (foo) tip + + $ hg branch foobar + marked working directory as branch foobar + + $ hg up + abort: branch foobar not found + +Fastforward merge: + + $ hg branch ff + marked working directory as branch ff + + $ echo ff > ff + $ hg ci -Am'fast forward' + adding ff + + $ hg up foo + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + + $ hg merge ff + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + + $ hg branch + foo + $ hg commit -m'Merge ff into foo' + $ hg parents + changeset: 6:917eb54e1b4b + branch: foo + tag: tip + parent: 4:98d14f698afe + parent: 5:6683a60370cb + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: Merge ff into foo + + $ hg manifest + a + ff + + +Test merging, add 3 default heads and one test head: + + $ cd .. + $ hg init merges + $ cd merges + $ echo a > a + $ hg ci -Ama + adding a + + $ echo b > b + $ hg ci -Amb + adding b + + $ hg up 0 + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo c > c + $ hg ci -Amc + adding c + created new head + + $ hg up 0 + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo d > d + $ hg ci -Amd + adding d + created new head + + $ hg up 0 + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg branch test + marked working directory as branch test + $ echo e >> e + $ hg ci -Ame + adding e + + $ hg log + changeset: 4:3a1e01ed1df4 + branch: test + tag: tip + parent: 0:cb9a9f314b8b + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: e + + changeset: 3:980f7dc84c29 + parent: 0:cb9a9f314b8b + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: d + + changeset: 2:d36c0562f908 + parent: 0:cb9a9f314b8b + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: c + + changeset: 1:d2ae7f538514 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: b + + changeset: 0:cb9a9f314b8b + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: a + +Implicit merge with test branch as parent: + + $ hg merge + abort: branch 'test' has one head - please merge with an explicit rev + (run 'hg heads' to see all heads) + $ hg up -C default + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + +Implicit merge with default branch as parent: + + $ hg merge + abort: branch 'default' has 3 heads - please merge with an explicit rev + (run 'hg heads .' to see heads) + +3 branch heads, explicit merge required: + + $ hg merge 2 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg ci -m merge + +2 branch heads, implicit merge works: + + $ hg merge + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) +