merge: make test for fast-forward merge stricter (issue619)

don't allow merging with an ancestor
fix != on contexts
add a test
This commit is contained in:
Matt Mackall 2007-07-05 13:34:18 -05:00
parent d01208a3d1
commit cfe7a0a522
4 changed files with 37 additions and 1 deletions

View File

@ -40,6 +40,9 @@ class changectx(object):
except AttributeError:
return False
def __ne__(self, other):
return not (self == other)
def __nonzero__(self):
return self._rev != nullrev
@ -185,6 +188,9 @@ class filectx(object):
except AttributeError:
return False
def __ne__(self, other):
return not (self == other)
def filectx(self, fileid):
'''opens an arbitrary revision of the file without
opening a new filelog'''

View File

@ -523,7 +523,7 @@ def update(repo, node, branchmerge, force, partial, wlock):
raise util.Abort(_("outstanding uncommitted merges"))
if pa == p1 or pa == p2: # is there a linear path from p1 to p2?
if branchmerge:
if p1.branch() != p2.branch():
if p1.branch() != p2.branch() and pa != p2:
fastforward = True
else:
raise util.Abort(_("there is nothing to merge, just use "

20
tests/test-issue619 Executable file
View File

@ -0,0 +1,20 @@
#!/bin/sh
mkdir t
cd t
hg init
echo a > a
hg ci -Ama -d '1000000000 0'
echo b > b
hg branch b
hg ci -Amb -d '1000000000 0'
hg co -C 0
echo fast-forward
hg merge b
hg ci -Ammerge -d '1000000000 0'
echo bogus fast-forward should fail
hg merge b
echo done

10
tests/test-issue619.out Normal file
View File

@ -0,0 +1,10 @@
adding a
marked working directory as branch b
adding b
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
fast-forward
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
bogus fast-forward should fail
abort: there is nothing to merge, just use 'hg update' or look at 'hg heads'
done