--- a/mercurial/context.py Thu Jul 05 15:40:29 2007 -0700
+++ b/mercurial/context.py Fri Jul 06 08:48:28 2007 +0200
@@ -40,6 +40,9 @@
except AttributeError:
return False
+ def __ne__(self, other):
+ return not (self == other)
+
def __nonzero__(self):
return self._rev != nullrev
@@ -185,6 +188,9 @@
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'''
--- a/mercurial/merge.py Thu Jul 05 15:40:29 2007 -0700
+++ b/mercurial/merge.py Fri Jul 06 08:48:28 2007 +0200
@@ -478,6 +478,9 @@
repo.dirstate.forget([f])
elif m == "d": # directory rename
f2, fd, flag = a[2:]
+ if not f2 and f not in repo.dirstate:
+ # untracked file moved
+ continue
if branchmerge:
repo.dirstate.update([fd], 'a')
if f:
@@ -523,7 +526,7 @@
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 "
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-issue612 Fri Jul 06 08:48:28 2007 +0200
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+mkdir t
+cd t
+
+hg init
+mkdir src
+echo a > src/a.c
+hg ci -Ama -d "10000000 0"
+
+hg mv src source
+hg ci -Ammove -d "1000000 0"
+
+hg co -C 0
+echo new > src/a.c
+echo compiled > src/a.o
+hg ci -mupdate -d "1000000 0"
+
+hg st
+
+hg merge
+
+hg st
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-issue612.out Fri Jul 06 08:48:28 2007 +0200
@@ -0,0 +1,11 @@
+adding src/a.c
+copying src/a.c to source/a.c
+removing src/a.c
+1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+? src/a.o
+merging src/a.c and source/a.c
+1 files updated, 1 files merged, 0 files removed, 0 files unresolved
+(branch merge, don't forget to commit)
+M source/a.c
+R src/a.c
+? source/a.o
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-issue619 Fri Jul 06 08:48:28 2007 +0200
@@ -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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-issue619.out Fri Jul 06 08:48:28 2007 +0200
@@ -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