Mercurial > evolve
comparison tests/test-topic-debugcb.t @ 2899:32306ee32806
topics: add a new debugconvertbookmark command to convert bookmarks to topics
This new command, aliased to debugcb converts bookmarks to topics. This command
either accept name of a bookmark using flag '-b' or '--all'.
If a bookmark is passed using '-b', the whole stack defined by that bookmark is
converted to topics. If '--all' is passed, the above thing is repeated for every
bookmark in the repository.
If the revset which we are using unable to decides revisions of the stack and
return an expty set, in that cases we are not deleting the bookmark as we are
not writing any topics of the same name as that of bookmark. Also currently if a
changeset has two bookmarks, than there is buggy behaviour. So these are known
lackings in the current implementation which will be fixed in upcoming patches.
This also adds tests for the same.
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Fri, 01 Sep 2017 18:02:50 +0200 |
parents | |
children | 1928e9c802dd |
comparison
equal
deleted
inserted
replaced
2898:3dfc88c06378 | 2899:32306ee32806 |
---|---|
1 Test for `hg debugconvertbookmark` added by topics | |
2 ================================================== | |
3 | |
4 $ . "$TESTDIR/testlib/topic_setup.sh" | |
5 | |
6 $ cat << EOF >> $HGRCPATH | |
7 > [ui] | |
8 > logtemplate = [{rev}:{node|short}] {desc|firstline}\n\ | |
9 > {if(bookmarks, " bookmark: {join(bookmarks,"\n bookmark:")}\n")}\ | |
10 > {if(topics, " topic: {topics}\n")} | |
11 > EOF | |
12 | |
13 $ hg init repo | |
14 $ cd repo | |
15 $ echo "Hello" > a | |
16 $ hg commit -Aqm "First commit" | |
17 $ echo "Hello" > b | |
18 $ hg commit -Aqm "Second commit" | |
19 $ hg bookmark "hellos" | |
20 $ hg up 0 -q | |
21 $ echo "Fix 1" > l | |
22 $ hg commit -Aqm "Fixing first" | |
23 $ echo "Fix 2" > m | |
24 $ hg commit -Aqm "Fixing second" | |
25 $ hg bookmark "secondfix" | |
26 | |
27 $ hg log -G | |
28 @ [3:b985e4fea4a4] Fixing second | |
29 | bookmark: secondfix | |
30 o [2:8e79b09248c2] Fixing first | |
31 | | |
32 | o [1:50634233706a] Second commit | |
33 |/ bookmark: hellos | |
34 o [0:3caf92e45cfb] First commit | |
35 | |
36 Help for the command | |
37 ==================== | |
38 | |
39 $ hg help debugconvertbookmark | |
40 hg debugcb [-b BOOKMARK] [--all] | |
41 | |
42 aliases: debugconvertbookmark | |
43 | |
44 Converts a bookmark to a topic with the same name. | |
45 | |
46 options: | |
47 | |
48 -b --bookmark VALUE bookmark to convert to topic | |
49 --all convert all bookmarks to topics | |
50 | |
51 (some details hidden, use --verbose to show complete help) | |
52 | |
53 Running without any argument | |
54 ============================ | |
55 | |
56 $ hg debugconvertbookmark | |
57 abort: you must specify either '--all' or '-b' | |
58 [255] | |
59 | |
60 Changing a particular bookmark to topic | |
61 ======================================= | |
62 | |
63 $ hg debugconvertbookmark -b hellos | |
64 changed topic to "hellos" on 1 revisions | |
65 $ hg log -G | |
66 o [4:ca8825a7eb18] Second commit | |
67 | topic: hellos | |
68 | @ [3:b985e4fea4a4] Fixing second | |
69 | | bookmark: secondfix | |
70 | o [2:8e79b09248c2] Fixing first | |
71 |/ | |
72 o [0:3caf92e45cfb] First commit | |
73 | |
74 Changing all bookmarks to topic | |
75 =============================== | |
76 | |
77 $ hg debugconvertbookmark --all | |
78 switching to topic secondfix | |
79 changed topic to "secondfix" on 2 revisions | |
80 $ hg log -G | |
81 @ [6:6efc0524f97a] Fixing second | |
82 | topic: secondfix | |
83 o [5:0a4244c62a16] Fixing first | |
84 | topic: secondfix | |
85 | o [4:ca8825a7eb18] Second commit | |
86 |/ topic: hellos | |
87 o [0:3caf92e45cfb] First commit | |
88 | |
89 Trying with multiple bookmarks on a single changeset | |
90 ==================================================== | |
91 | |
92 $ echo "multiple bookmarks" >> m | |
93 $ hg commit -Aqm "Trying multiple bookmarks" | |
94 $ hg bookmark book1 | |
95 $ hg bookmark book2 | |
96 $ hg log -G | |
97 @ [7:7c46b4bbdda3] Trying multiple bookmarks | |
98 | bookmark: book1 | |
99 | bookmark:book2 | |
100 | topic: secondfix | |
101 o [6:6efc0524f97a] Fixing second | |
102 | topic: secondfix | |
103 o [5:0a4244c62a16] Fixing first | |
104 | topic: secondfix | |
105 | o [4:ca8825a7eb18] Second commit | |
106 |/ topic: hellos | |
107 o [0:3caf92e45cfb] First commit | |
108 | |
109 XXX: When we have multiple bookmarks on the same changeset, we should skip that | |
110 and do nothing. This should be fixed. | |
111 | |
112 $ hg debugconvertbookmark --all | |
113 switching to topic book1 | |
114 changed topic to "book1" on 3 revisions | |
115 changed topic to "book2" on 3 revisions | |
116 $ hg log -G | |
117 o [13:f979f772bd7d] Trying multiple bookmarks | |
118 | topic: book2 | |
119 o [12:2397fdab7b79] Fixing second | |
120 | topic: book2 | |
121 o [11:0dd194861ea1] Fixing first | |
122 | topic: book2 | |
123 | @ [10:e738ed1df4b2] Trying multiple bookmarks | |
124 | | topic: book1 | |
125 | o [9:4198fce21412] Fixing second | |
126 | | topic: book1 | |
127 | o [8:221a9ddef504] Fixing first | |
128 |/ topic: book1 | |
129 | o [4:ca8825a7eb18] Second commit | |
130 |/ topic: hellos | |
131 o [0:3caf92e45cfb] First commit | |
132 |