--- a/hgext/bookmarks.py Wed Nov 05 18:57:54 2008 +0100
+++ b/hgext/bookmarks.py Thu Nov 06 10:39:52 2008 +0100
@@ -200,10 +200,7 @@
return node
def addchangegroup(self, source, srctype, url, emptyok=False):
- try:
- onode = repo.changectx('.').node()
- except RepoError, inst:
- pass
+ parents = repo.dirstate.parents()
result = super(bookmark_repo, self).addchangegroup(
source, srctype, url, emptyok)
@@ -214,7 +211,7 @@
marks = parse(repo)
update = False
for mark, n in marks.items():
- if n == onode:
+ if n in parents:
marks[mark] = node
update = True
if update:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-bookmarks-rebase Thu Nov 06 10:39:52 2008 +0100
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+echo "[extensions]" >> $HGRCPATH
+echo "rebase=" >> $HGRCPATH
+echo "bookmarks=" >> $HGRCPATH
+
+cleanoutput () {
+ sed -e 's/\(Rebase status stored to\).*/\1/' \
+ -e 's/\(Rebase status restored from\).*/\1/' \
+ -e 's/\(saving bundle to \).*/\1/'
+}
+
+echo % initialize repository
+hg init
+
+echo 'a' > a
+hg ci -A -d '0 0' -u test -m "0"
+
+echo 'b' > b
+hg ci -A -d '0 0' -u test -m "1"
+
+hg up 0
+echo 'c' > c
+hg ci -A -d '0 0' -u test -m "2"
+
+echo 'd' > d
+hg ci -A -d '0 0' -u test -m "3"
+
+hg bookmark -r 1 one
+hg bookmark -r 3 two
+
+echo % bookmark list
+hg bookmark
+
+echo % rebase
+hg rebase -s two -d one 2>&1 | cleanoutput
+
+hg log
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-bookmarks-rebase.out Thu Nov 06 10:39:52 2008 +0100
@@ -0,0 +1,42 @@
+% initialize repository
+adding a
+adding b
+0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+adding c
+created new head
+adding d
+% bookmark list
+ * two 3:2ae46b1d99a7
+ one 1:925d80f479bb
+% rebase
+saving bundle to
+adding branch
+adding changesets
+adding manifests
+adding file changes
+added 1 changesets with 1 changes to 1 files (-1 heads)
+rebase completed
+changeset: 3:9163974d1cb5
+tag: tip
+parent: 1:925d80f479bb
+parent: 2:db815d6d32e6
+user: test
+date: Thu Jan 01 00:00:00 1970 +0000
+summary: 3
+
+changeset: 2:db815d6d32e6
+parent: 0:f7b1eb17ad24
+user: test
+date: Thu Jan 01 00:00:00 1970 +0000
+summary: 2
+
+changeset: 1:925d80f479bb
+user: test
+date: Thu Jan 01 00:00:00 1970 +0000
+summary: 1
+
+changeset: 0:f7b1eb17ad24
+user: test
+date: Thu Jan 01 00:00:00 1970 +0000
+summary: 0
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-bookmarks-strip Thu Nov 06 10:39:52 2008 +0100
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+echo "[extensions]" >> $HGRCPATH
+echo "bookmarks=" >> $HGRCPATH
+echo "mq=" >> $HGRCPATH
+
+hg init
+
+echo qqq>qqq.txt
+
+echo % add file
+hg add
+
+echo % commit first revision
+hg ci -m 1 -u user -d "1 0"
+
+echo % set bookmark
+hg book test
+
+echo www>>qqq.txt
+
+echo % commit second revision
+hg ci -m 2 -u usr -d "1 0"
+
+echo % set bookmark
+hg book test2
+
+echo % update to -2
+hg update -r -2
+
+echo eee>>qqq.txt
+
+echo % commit new head
+hg ci -m 3 -u user -d "1 0"
+
+echo % bookmarks updated?
+hg book
+
+echo % strip to revision 1
+hg strip 1 2>&1 | sed 's/\(saving bundle to \).*/\1/'
+
+echo % list bookmarks
+hg book
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-bookmarks-strip.out Thu Nov 06 10:39:52 2008 +0100
@@ -0,0 +1,24 @@
+% add file
+adding qqq.txt
+% commit first revision
+% set bookmark
+% commit second revision
+% set bookmark
+% update to -2
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% commit new head
+created new head
+% bookmarks updated?
+ test 1:16b24da7e457
+ test2 1:16b24da7e457
+% strip to revision 1
+saving bundle to
+saving bundle to
+adding branch
+adding changesets
+adding manifests
+adding file changes
+added 1 changesets with 1 changes to 1 files
+% list bookmarks
+ * test 1:9f1b7e78eff8
+ * test2 1:9f1b7e78eff8