tests/test-topic-debugcb.t
changeset 2899 32306ee32806
child 2900 1928e9c802dd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-topic-debugcb.t	Fri Sep 01 18:02:50 2017 +0200
@@ -0,0 +1,132 @@
+Test for `hg debugconvertbookmark` added by topics
+==================================================
+
+  $ . "$TESTDIR/testlib/topic_setup.sh"
+
+  $ cat << EOF >> $HGRCPATH
+  > [ui]
+  > logtemplate = [{rev}:{node|short}] {desc|firstline}\n\
+  > {if(bookmarks, "  bookmark: {join(bookmarks,"\n  bookmark:")}\n")}\
+  > {if(topics, "  topic: {topics}\n")}
+  > EOF
+
+  $ hg init repo
+  $ cd repo
+  $ echo "Hello" > a
+  $ hg commit -Aqm "First commit"
+  $ echo "Hello" > b
+  $ hg commit -Aqm "Second commit"
+  $ hg bookmark "hellos"
+  $ hg up 0 -q
+  $ echo "Fix 1" > l
+  $ hg commit -Aqm "Fixing first"
+  $ echo "Fix 2" > m
+  $ hg commit -Aqm "Fixing second"
+  $ hg bookmark "secondfix"
+
+  $ hg log -G
+  @  [3:b985e4fea4a4] Fixing second
+  |    bookmark: secondfix
+  o  [2:8e79b09248c2] Fixing first
+  |
+  | o  [1:50634233706a] Second commit
+  |/     bookmark: hellos
+  o  [0:3caf92e45cfb] First commit
+  
+Help for the command
+====================
+
+  $ hg help debugconvertbookmark
+  hg debugcb [-b BOOKMARK] [--all]
+  
+  aliases: debugconvertbookmark
+  
+  Converts a bookmark to a topic with the same name.
+  
+  options:
+  
+   -b --bookmark VALUE bookmark to convert to topic
+      --all            convert all bookmarks to topics
+  
+  (some details hidden, use --verbose to show complete help)
+
+Running without any argument
+============================
+
+  $ hg debugconvertbookmark
+  abort: you must specify either '--all' or '-b'
+  [255]
+
+Changing a particular bookmark to topic
+=======================================
+
+  $ hg debugconvertbookmark -b hellos
+  changed topic to "hellos" on 1 revisions
+  $ hg log -G
+  o  [4:ca8825a7eb18] Second commit
+  |    topic: hellos
+  | @  [3:b985e4fea4a4] Fixing second
+  | |    bookmark: secondfix
+  | o  [2:8e79b09248c2] Fixing first
+  |/
+  o  [0:3caf92e45cfb] First commit
+  
+Changing all bookmarks to topic
+===============================
+
+  $ hg debugconvertbookmark --all
+  switching to topic secondfix
+  changed topic to "secondfix" on 2 revisions
+  $ hg log -G
+  @  [6:6efc0524f97a] Fixing second
+  |    topic: secondfix
+  o  [5:0a4244c62a16] Fixing first
+  |    topic: secondfix
+  | o  [4:ca8825a7eb18] Second commit
+  |/     topic: hellos
+  o  [0:3caf92e45cfb] First commit
+  
+Trying with multiple bookmarks on a single changeset
+====================================================
+
+  $ echo "multiple bookmarks" >> m
+  $ hg commit -Aqm "Trying multiple bookmarks"
+  $ hg bookmark book1
+  $ hg bookmark book2
+  $ hg log -G
+  @  [7:7c46b4bbdda3] Trying multiple bookmarks
+  |    bookmark: book1
+  |    bookmark:book2
+  |    topic: secondfix
+  o  [6:6efc0524f97a] Fixing second
+  |    topic: secondfix
+  o  [5:0a4244c62a16] Fixing first
+  |    topic: secondfix
+  | o  [4:ca8825a7eb18] Second commit
+  |/     topic: hellos
+  o  [0:3caf92e45cfb] First commit
+  
+XXX: When we have multiple bookmarks on the same changeset, we should skip that
+and do nothing. This should be fixed.
+
+  $ hg debugconvertbookmark --all
+  switching to topic book1
+  changed topic to "book1" on 3 revisions
+  changed topic to "book2" on 3 revisions
+  $ hg log -G
+  o  [13:f979f772bd7d] Trying multiple bookmarks
+  |    topic: book2
+  o  [12:2397fdab7b79] Fixing second
+  |    topic: book2
+  o  [11:0dd194861ea1] Fixing first
+  |    topic: book2
+  | @  [10:e738ed1df4b2] Trying multiple bookmarks
+  | |    topic: book1
+  | o  [9:4198fce21412] Fixing second
+  | |    topic: book1
+  | o  [8:221a9ddef504] Fixing first
+  |/     topic: book1
+  | o  [4:ca8825a7eb18] Second commit
+  |/     topic: hellos
+  o  [0:3caf92e45cfb] First commit
+