mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
bookmarks: Use dirstate to determine the current node in addchangegroup
Using the changectx might result in a lookup error during the strip command. Thefore we use the current dirstate to get the parents of the working directory.
This commit is contained in:
parent
43ed73b993
commit
d23187bf3d
@ -200,10 +200,7 @@ def reposetup(ui, repo):
|
||||
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 @@ def reposetup(ui, repo):
|
||||
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:
|
||||
|
44
tests/test-bookmarks-strip
Executable file
44
tests/test-bookmarks-strip
Executable file
@ -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
|
||||
|
24
tests/test-bookmarks-strip.out
Normal file
24
tests/test-bookmarks-strip.out
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user