summaryrefslogtreecommitdiff
path: root/tests/test-rebase-named-branches.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-rebase-named-branches.t')
-rw-r--r--tests/test-rebase-named-branches.t243
1 files changed, 243 insertions, 0 deletions
diff --git a/tests/test-rebase-named-branches.t b/tests/test-rebase-named-branches.t
new file mode 100644
index 0000000..0f2f904
--- /dev/null
+++ b/tests/test-rebase-named-branches.t
@@ -0,0 +1,243 @@
+ $ cat >> $HGRCPATH <<EOF
+ > [extensions]
+ > graphlog=
+ > rebase=
+ >
+ > [phases]
+ > publish=False
+ >
+ > [alias]
+ > tglog = log -G --template "{rev}: '{desc}' {branches}\n"
+ > EOF
+
+ $ hg init a
+ $ cd a
+ $ hg unbundle "$TESTDIR/bundles/rebase.hg"
+ adding changesets
+ adding manifests
+ adding file changes
+ added 8 changesets with 7 changes to 7 files (+2 heads)
+ (run 'hg heads' to see heads, 'hg merge' to merge)
+ $ hg up tip
+ 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ cd ..
+
+ $ hg clone -q -u . a a1
+
+ $ cd a1
+
+ $ hg update 3
+ 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ $ hg branch dev-one
+ marked working directory as branch dev-one
+ (branches are permanent and global, did you want a bookmark?)
+ $ hg ci -m 'dev-one named branch'
+
+ $ hg update 7
+ 2 files updated, 0 files merged, 3 files removed, 0 files unresolved
+ $ hg branch dev-two
+ marked working directory as branch dev-two
+ (branches are permanent and global, did you want a bookmark?)
+
+ $ echo x > x
+
+ $ hg add x
+
+ $ hg ci -m 'dev-two named branch'
+
+ $ hg tglog
+ @ 9: 'dev-two named branch' dev-two
+ |
+ | o 8: 'dev-one named branch' dev-one
+ | |
+ o | 7: 'H'
+ | |
+ +---o 6: 'G'
+ | | |
+ o | | 5: 'F'
+ | | |
+ +---o 4: 'E'
+ | |
+ | o 3: 'D'
+ | |
+ | o 2: 'C'
+ | |
+ | o 1: 'B'
+ |/
+ o 0: 'A'
+
+
+Branch name containing a dash (issue3181)
+
+ $ hg rebase -b dev-two -d dev-one --keepbranches
+ saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
+
+ $ hg tglog
+ @ 9: 'dev-two named branch' dev-two
+ |
+ o 8: 'H'
+ |
+ | o 7: 'G'
+ |/|
+ o | 6: 'F'
+ | |
+ o | 5: 'dev-one named branch' dev-one
+ | |
+ | o 4: 'E'
+ | |
+ o | 3: 'D'
+ | |
+ o | 2: 'C'
+ | |
+ o | 1: 'B'
+ |/
+ o 0: 'A'
+
+ $ hg rebase -s dev-one -d 0 --keepbranches
+ saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
+
+ $ hg tglog
+ @ 8: 'dev-two named branch' dev-two
+ |
+ o 7: 'H'
+ |
+ | o 6: 'G'
+ |/|
+ o | 5: 'F'
+ | |
+ | o 4: 'E'
+ |/
+ | o 3: 'D'
+ | |
+ | o 2: 'C'
+ | |
+ | o 1: 'B'
+ |/
+ o 0: 'A'
+
+ $ hg update 3
+ 3 files updated, 0 files merged, 3 files removed, 0 files unresolved
+ $ hg branch dev-one
+ marked working directory as branch dev-one
+ (branches are permanent and global, did you want a bookmark?)
+ $ hg ci -m 'dev-one named branch'
+
+ $ hg tglog
+ @ 9: 'dev-one named branch' dev-one
+ |
+ | o 8: 'dev-two named branch' dev-two
+ | |
+ | o 7: 'H'
+ | |
+ | | o 6: 'G'
+ | |/|
+ | o | 5: 'F'
+ | | |
+ | | o 4: 'E'
+ | |/
+ o | 3: 'D'
+ | |
+ o | 2: 'C'
+ | |
+ o | 1: 'B'
+ |/
+ o 0: 'A'
+
+ $ hg rebase -b 'max(branch("dev-two"))' -d dev-one --keepbranches
+ saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
+
+ $ hg tglog
+ @ 9: 'dev-two named branch' dev-two
+ |
+ o 8: 'H'
+ |
+ | o 7: 'G'
+ |/|
+ o | 6: 'F'
+ | |
+ o | 5: 'dev-one named branch' dev-one
+ | |
+ | o 4: 'E'
+ | |
+ o | 3: 'D'
+ | |
+ o | 2: 'C'
+ | |
+ o | 1: 'B'
+ |/
+ o 0: 'A'
+
+ $ hg rebase -s 'max(branch("dev-one"))' -d 0 --keepbranches
+ saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
+
+ $ hg tglog
+ @ 8: 'dev-two named branch' dev-two
+ |
+ o 7: 'H'
+ |
+ | o 6: 'G'
+ |/|
+ o | 5: 'F'
+ | |
+ | o 4: 'E'
+ |/
+ | o 3: 'D'
+ | |
+ | o 2: 'C'
+ | |
+ | o 1: 'B'
+ |/
+ o 0: 'A'
+
+
+Rebasing descendant onto ancestor across different named branches
+
+ $ hg rebase -s 1 -d 8 --keepbranches
+ saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
+
+ $ hg tglog
+ @ 8: 'D'
+ |
+ o 7: 'C'
+ |
+ o 6: 'B'
+ |
+ o 5: 'dev-two named branch' dev-two
+ |
+ o 4: 'H'
+ |
+ | o 3: 'G'
+ |/|
+ o | 2: 'F'
+ | |
+ | o 1: 'E'
+ |/
+ o 0: 'A'
+
+ $ hg rebase -s 4 -d 5
+ abort: source is ancestor of destination
+ [255]
+
+ $ hg rebase -s 5 -d 4
+ saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
+
+ $ hg tglog
+ @ 8: 'D'
+ |
+ o 7: 'C'
+ |
+ o 6: 'B'
+ |
+ o 5: 'dev-two named branch'
+ |
+ o 4: 'H'
+ |
+ | o 3: 'G'
+ |/|
+ o | 2: 'F'
+ | |
+ | o 1: 'E'
+ |/
+ o 0: 'A'
+
+ $ cd ..