[issue635] test case for issue631 (unnecessary rename merges on linear update)

Giorgos Keramidas keramida at ceid.upatras.gr
Tue Jul 17 06:56:10 CDT 2007


On 2007-07-17 06:21, Thomas Arendsen Hein <mercurial-bugs at selenic.com> wrote:
>
> New submission from Thomas Arendsen Hein <thomas at intevation.de>:
>
> A test case for 931f901ab811 (fix for issue631: an update from parent to child
> requires a merge) would be nice.

Hi Thomas,

I tried reproducing this with the script shown below but failed.  I was
expecting at least some of the update commands done with HGMERGE=false
to fail.  Any idea why updates don't try to merge in this case?

------------------------------------------------------------------------
# HG changeset patch
# User Giorgos Keramidas <keramida at ceid.upatras.gr>
# Date 1184672544 -10800
# Node ID a6d102892343a04fdbe71b48ff106def0f68c367
# Parent  44b0031514c10116b3951d70fc330dcd98e466f7
tests: add test case for issue 631

diff --git a/tests/test-merge11 b/tests/test-merge11
new file mode 100755
--- /dev/null
+++ b/tests/test-merge11
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+# Test for changeset 931f901ab811361aaf0b8b7dd84937a849e31841
+# If one side's revision is identical to the ancestor, we skip the rest
+# of the copy detection logic.
+
+hg init a
+cd a
+
+echo % add unrelated file
+echo demo > demo
+hg add
+hg commit -u test -d '1000000 0' -m 'parent demo'
+
+echo % add foo to parent
+echo foo parent 0 > foo
+hg add
+hg commit -u test -d '1000001 0' -m 'parent foo'
+
+echo % modify unrelated file
+echo new demo > demo
+hg commit -u test -d '10000002 0' -m 'parent demo 2'
+branchtip=`hg tip --template '{node|short}\n'`
+echo "% branch tip $branchtip"
+
+echo % modify foo
+echo foo parent change > foo
+hg commit -u test -d '1000003 0' -m 'parent foo change'
+
+echo % clone before parent changes foo
+cd ..
+hg clone -r "$branchtip" a b
+cd b
+
+echo % rename and modify child foo
+hg rename foo bar
+hg commit -u test -d '1000004 0' -m 'rename foo'
+echo child foo > bar
+hg commit -u test -d '1000005 0' -m 'child foo'
+
+echo % modify unrelated file
+echo child demo > demo
+hg commit -u test -d '1000006 0' -m 'child demo'
+
+echo % pull and merge
+localtip=`hg tip --template '{node|short}\n'`
+echo "% local tip $localtip"
+hg pull ../a
+hg update -C "$localtip"
+env HGMERGE=true hg merge
+hg commit -u test -d '1000007 0' -m 'merge from parent'
+mergetip=`hg tip --template '{node|short}\n'`
+
+echo % commit new tip
+echo new tip > bar
+hg commit -u test -d '1000008 0' -m 'new local tip'
+
+echo % test linear update
+tiprev=`hg tip --template '{rev}\n'`
+rev=0
+while test $rev -lt $tiprev ; do
+	echo "% from rev $rev to merge tip $mergetip"
+	hg update -C "$rev"
+	HGMERGE=false hg update "$mergetip" || exit $?
+
+	echo "% from rev $rev to tip"
+	hg update -C "$rev"
+	HGMERGE=false hg update tip || exit $?
+	rev=`expr "$rev" + 1`
+done
diff --git a/tests/test-merge11.out b/tests/test-merge11.out
new file mode 100644
--- /dev/null
+++ b/tests/test-merge11.out
@@ -0,0 +1,79 @@
+% add unrelated file
+adding demo
+% add foo to parent
+adding foo
+% modify unrelated file
+% branch tip 96843506b777
+% modify foo
+% clone before parent changes foo
+requesting all changes
+adding changesets
+adding manifests
+adding file changes
+added 3 changesets with 3 changes to 2 files
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% rename and modify child foo
+% modify unrelated file
+% pull and merge
+% local tip b87e857a5588
+pulling from ../a
+searching for changes
+adding changesets
+adding manifests
+adding file changes
+added 1 changesets with 1 changes to 1 files (+1 heads)
+(run 'hg heads' to see heads, 'hg merge' to merge)
+0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+merging bar and foo
+0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+(branch merge, don't forget to commit)
+% commit new tip
+% test linear update
+% from rev 0 to merge tip 3337faf6cfc4
+1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% from rev 0 to tip
+1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% from rev 1 to merge tip 3337faf6cfc4
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+% from rev 1 to tip
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+% from rev 2 to merge tip 3337faf6cfc4
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+% from rev 2 to tip
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+% from rev 3 to merge tip 3337faf6cfc4
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% from rev 3 to tip
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% from rev 4 to merge tip 3337faf6cfc4
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% from rev 4 to tip
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% from rev 5 to merge tip 3337faf6cfc4
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% from rev 5 to tip
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% from rev 6 to merge tip 3337faf6cfc4
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+% from rev 6 to tip
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+% from rev 7 to merge tip 3337faf6cfc4
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% from rev 7 to tip
+0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
------------------------------------------------------------------------


More information about the Mercurial-devel mailing list