[PATCH] test-rebase-base: add test cases about multiple branches with merges
Mateusz Kwapich
mitrandir at fb.com
Fri Nov 25 08:43:37 EST 2016
Please, forgive my email client (or my misuse of it). The proper
contents of my last reply are following:
LGTM
Excerpts from Jun Wu's message of 2016-11-25 12:49:01 +0000:
> # HG changeset patch
> # User Jun Wu <quark at fb.com>
> # Date 1480077830 0
> # Fri Nov 25 12:43:50 2016 +0000
> # Node ID c0a9c4c2c6ae2a779c060dc2424942099d7c984d
> # Parent fd4175ec0f4e9bd68f4bfdcd601e11d77499d486
> # Available At https://bitbucket.org/quark-zju/hg-draft
> # hg pull https://bitbucket.org/quark-zju/hg-draft -r c0a9c4c2c6ae
> test-rebase-base: add test cases about multiple branches with merges
>
> This helps clarify the current behavior. When a merge changeset is selected
> in --base directly, only one path will be chosen. The behavior remains the
> same before and after "rebase: calculate ancestors for --base separately
> (issue5420)".
>
> diff --git a/tests/test-rebase-base.t b/tests/test-rebase-base.t
> --- a/tests/test-rebase-base.t
> +++ b/tests/test-rebase-base.t
> @@ -93,2 +93,169 @@ Mixed rebasable and non-rebasable bases
> nothing to rebase
> [1]
> +
> + $ cd ..
> +
> +Multiple branches with merges:
> +
> + $ hg init b
> + $ cd b
> +
> + $ hg debugdrawdag <<EOS
> + > h g
> + > | /|
> + > | f |
> + > |/ /
> + > | e
> + > |/ d
> + > | /|
> + > | c |
> + > |/ /
> + > | b
> + > |/
> + > a
> + > EOS
> +
> + $ hg rebase -b b+f -d h
> + rebasing 1:488e1b7e7341 "b" (b)
> + rebasing 6:0c088b72e768 "d" (d)
> + rebasing 4:0e9bbb7dd767 "f" (f)
> + rebasing 7:9bdc802fd225 "g" (g tip)
> + saved backup bundle to $TESTTMP/b/.hg/strip-backup/0e9bbb7dd767-ff8b132b-backup.hg (glob)
> + $ hg tglog
> + o 7: g
> + |\
> + | o 6: f
> + | |
> + | | o 5: d
> + | | |\
> + | +---o 4: b
> + | | |
> + | o | 3: h
> + | | |
> + o | | 2: e
> + |/ /
> + | o 1: c
> + |/
> + o 0: a
> +
> + $ cd ..
> +
> +Multiple branches with multiple merges:
> +
> + $ hg init c
> + $ cd c
> +
> + $ hg debugdrawdag <<'EOS'
> + > j i
> + > | |
> + > | h
> + > | /|
> + > | g | k
> + > | /| |/
> + > | f | |
> + > |/ / |
> + > | e /
> + > |/ d
> + > | /|
> + > | c |
> + > |/ /
> + > | b
> + > |/
> + > a
> + > EOS
> + $ hg rebase -b b+f -d j
> + rebasing 1:488e1b7e7341 "b" (b)
> + rebasing 4:0e9bbb7dd767 "f" (f)
> + rebasing 6:0c088b72e768 "d" (d)
> + rebasing 9:91358dadd39b "k" (k)
> + rebasing 7:9bdc802fd225 "g" (g)
> + rebasing 8:91a34cc1f2a7 "h" (h)
> + rebasing 10:f0d5af4cc88e "i" (i tip)
> + saved backup bundle to $TESTTMP/c/.hg/strip-backup/0e9bbb7dd767-6f921be4-backup.hg (glob)
> + $ hg tglog
> + o 10: i
> + |
> + o 9: h
> + |\
> + | o 8: g
> + | |\
> + +-----o 7: k
> + | | |
> + o | | 6: d
> + |\ \ \
> + | | | o 5: f
> + | | | |
> + | o---+ 4: b
> + | / /
> + | | o 3: j
> + | | |
> + | o | 2: e
> + | |/
> + o / 1: c
> + |/
> + o 0: a
> +
> +
> + $ cd ..
> +
> +Pick merge changesets in -b, only one of the two parents is selected:
> +
> + $ hg init d
> + $ cd d
> +
> + $ hg debugdrawdag <<'EOS'
> + > dest n
> + > | |\
> + > m | g d
> + > |\ | /|
> + > | l | f |
> + > \ \|/ /
> + > k | e
> + > i \|/ d
> + > |\ | /|
> + > | h | c |
> + > \ \|/ /
> + > j | b
> + > \|/
> + > a
> + > EOS
> +
> + $ hg rebase -b n+i -d dest
> + rebasing 6:e22eece29d69 "h" (h)
> + rebasing 12:edd90b885ce0 "i" (i)
> + rebasing 1:488e1b7e7341 "b" (b)
> + rebasing 10:0c088b72e768 "d" (d)
> + rebasing 14:f188fc87af23 "n" (n tip)
> + saved backup bundle to $TESTTMP/d/.hg/strip-backup/e22eece29d69-0eeca84a-backup.hg (glob)
> + $ hg tglog
> + o 14: n
> + |\
> + | o 13: d
> + | |\
> + | | o 12: b
> + | | |
> + | | | o 11: i
> + | | | |\
> + | | +---o 10: h
> + | | | |
> + | | | | o 9: m
> + | | | | |\
> + o \ \ \ \ \ 8: g
> + |\ \ \ \ \ \
> + | | | | | | o 7: l
> + | | | | | | |
> + | | | | | o | 6: k
> + | | | | | |/
> + | | | | o / 5: j
> + | | | | |/
> + | o-----+ 4: f
> + | / / /
> + o-----+ 3: e
> + / / /
> + | o / 2: dest
> + | |/
> + o / 1: c
> + |/
> + o 0: a
> +
> + $ cd ..
--
More information about the Mercurial-devel
mailing list