Mercurial > hg
annotate tests/test-rebase-bookmarks.t @ 17046:4116504d1ec4 stable
bookmarks: correctly update current bookmarks on rebase (issue2277)
When you rebased with a currently active bookmark, that bookmark would
always point at the new tip, regardless of what revision it pointed at
before the rebase.
All bookmarks will now point at the equivalent post-rebase commit.
However, the currently active bookmark will cease to be active unless
it points at the new tip post-rebase. Rebase will always leave the
new tip as the working copy parent, which is incompatible with having
an active bookmark that points at some other revision. The common
case should be that the active bookmark will point at the new tip
post-rebase.
author | David Schleimer <dschleimer@fb.com> |
---|---|
date | Fri, 22 Jun 2012 11:40:31 -0700 |
parents | 65df60a3f96b |
children | fba17a64fa49 |
rev | line source |
---|---|
14884
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
1 $ cat >> $HGRCPATH <<EOF |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
2 > [extensions] |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
3 > graphlog= |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
4 > rebase= |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
5 > |
15742
65df60a3f96b
phases: prevent rebase to rebase immutable changeset.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
14884
diff
changeset
|
6 > [phases] |
65df60a3f96b
phases: prevent rebase to rebase immutable changeset.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
14884
diff
changeset
|
7 > publish=False |
65df60a3f96b
phases: prevent rebase to rebase immutable changeset.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
14884
diff
changeset
|
8 > |
14884
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
9 > [alias] |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
10 > tglog = log -G --template "{rev}: '{desc}' bookmarks: {bookmarks}\n" |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
11 > EOF |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
12 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
13 Create a repo with several bookmarks |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
14 $ hg init a |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
15 $ cd a |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
16 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
17 $ echo a > a |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
18 $ hg ci -Am A |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
19 adding a |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
20 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
21 $ echo b > b |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
22 $ hg ci -Am B |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
23 adding b |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
24 $ hg book 'X' |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
25 $ hg book 'Y' |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
26 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
27 $ echo c > c |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
28 $ hg ci -Am C |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
29 adding c |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
30 $ hg book 'Z' |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
31 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
32 $ hg up -q 0 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
33 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
34 $ echo d > d |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
35 $ hg ci -Am D |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
36 adding d |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
37 created new head |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
38 |
17046
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
39 $ hg book W |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
40 |
14884
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
41 $ hg tglog |
17046
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
42 @ 3: 'D' bookmarks: W |
14884
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
43 | |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
44 | o 2: 'C' bookmarks: Y Z |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
45 | | |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
46 | o 1: 'B' bookmarks: X |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
47 |/ |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
48 o 0: 'A' bookmarks: |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
49 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
50 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
51 Move only rebased bookmarks |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
52 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
53 $ cd .. |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
54 $ hg clone -q a a1 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
55 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
56 $ cd a1 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
57 $ hg up -q Z |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
58 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
59 $ hg rebase --detach -s Y -d 3 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
60 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob) |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
61 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
62 $ hg tglog |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
63 @ 3: 'C' bookmarks: Y Z |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
64 | |
17046
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
65 o 2: 'D' bookmarks: W |
14884
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
66 | |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
67 | o 1: 'B' bookmarks: X |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
68 |/ |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
69 o 0: 'A' bookmarks: |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
70 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
71 Keep bookmarks to the correct rebased changeset |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
72 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
73 $ cd .. |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
74 $ hg clone -q a a2 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
75 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
76 $ cd a2 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
77 $ hg up -q Z |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
78 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
79 $ hg rebase -s 1 -d 3 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
80 saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob) |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
81 |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
82 $ hg tglog |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
83 @ 3: 'C' bookmarks: Y Z |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
84 | |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
85 o 2: 'B' bookmarks: X |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
86 | |
17046
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
87 o 1: 'D' bookmarks: W |
14884
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
88 | |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
89 o 0: 'A' bookmarks: |
c0ccd70df52c
rebase: reset bookmarks (issue2265 and issue2873)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff
changeset
|
90 |
17046
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
91 |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
92 Keep active bookmark on the correct changeset |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
93 |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
94 $ cd .. |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
95 $ hg clone -q a a3 |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
96 |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
97 $ cd a3 |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
98 $ hg up -q X |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
99 |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
100 $ hg rebase -d W |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
101 saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob) |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
102 |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
103 $ hg tglog |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
104 @ 3: 'C' bookmarks: Y Z |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
105 | |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
106 o 2: 'B' bookmarks: X |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
107 | |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
108 o 1: 'D' bookmarks: W |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
109 | |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
110 o 0: 'A' bookmarks: |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
111 |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
112 |
4116504d1ec4
bookmarks: correctly update current bookmarks on rebase (issue2277)
David Schleimer <dschleimer@fb.com>
parents:
15742
diff
changeset
|
113 $ cd .. |