# HG changeset patch # User mpm@selenic.com # Date 1126654707 18000 # Node ID 67a28636ea6407a722129852f049e7cae776149d # Parent 5c0bd13bd77100c4fe82a8b09abcd981b2b066e7 Fix bug with co -C across branches, update tests diff -r 5c0bd13bd771 -r 67a28636ea64 mercurial/localrepo.py --- a/mercurial/localrepo.py Tue Sep 13 14:23:43 2005 -0500 +++ b/mercurial/localrepo.py Tue Sep 13 18:38:27 2005 -0500 @@ -1108,12 +1108,16 @@ self.ui.debug("other deleted %s\n" % f) remove.append(f) # other deleted it else: - if n == m1.get(f, nullid): # same as parent + # file is created on branch or in working directory + if force and f not in umap: + self.ui.debug("remote deleted %s, clobbering\n" % f) + remove.append(f) + elif n == m1.get(f, nullid): # same as parent if p2 == pa: # going backwards? self.ui.debug("remote deleted %s\n" % f) remove.append(f) else: - self.ui.debug("local created %s, keeping\n" % f) + self.ui.debug("local modified %s, keeping\n" % f) else: self.ui.debug("working dir created %s, keeping\n" % f) diff -r 5c0bd13bd771 -r 67a28636ea64 tests/test-merge1 --- a/tests/test-merge1 Tue Sep 13 14:23:43 2005 -0500 +++ b/tests/test-merge1 Tue Sep 13 18:38:27 2005 -0500 @@ -21,8 +21,8 @@ hg add c hg commit -m "commit #2" -d "0 0" echo This is file b1 > b +echo %% no merges expected env HGMERGE=../merge hg update -m 1 -# no merges expected cd ..; /bin/rm -rf t mkdir t @@ -40,9 +40,10 @@ hg add c hg commit -m "commit #2" -d "0 0" echo This is file b2 > b +echo %% merge of b expected env HGMERGE=../merge hg update -m 1 -# merge of b expected cd ..; /bin/rm -rf t +echo %% mkdir t cd t @@ -59,10 +60,13 @@ echo This is file c1 > c hg add c hg commit -m "commit #3" -d "0 0" + +echo 'Contents of b should be "this is file b1"' cat b + echo This is file b22 > b +echo %% merge expected! env HGMERGE=../merge hg update -m 2 -# merge expected! cd ..; /bin/rm -rf t mkdir t @@ -81,6 +85,6 @@ hg add c hg commit -m "commit #3" -d "0 0" echo This is file b33 > b +echo %% merge of b expected env HGMERGE=../merge hg update -m 2 -# merge of b expected cd ..; /bin/rm -rf t diff -r 5c0bd13bd771 -r 67a28636ea64 tests/test-merge1.out --- a/tests/test-merge1.out Tue Sep 13 14:23:43 2005 -0500 +++ b/tests/test-merge1.out Tue Sep 13 18:38:27 2005 -0500 @@ -1,7 +1,13 @@ +%% no merges expected +%% merge of b expected merging for b merging b +%% +Contents of b should be "this is file b1" This is file b1 +%% merge expected! merging for b merging b +%% merge of b expected merging for b merging b diff -r 5c0bd13bd771 -r 67a28636ea64 tests/test-revert-unknown --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-revert-unknown Tue Sep 13 18:38:27 2005 -0500 @@ -0,0 +1,20 @@ +#!/bin/sh + +hg init +touch unknown + +touch a +hg add a +hg ci -m "1" -d "0 0" + +touch b +hg add b +hg ci -m "2" -d "0 0" + +echo %% Should show unknown +hg status +hg revert -r 0 +echo %% Should show unknown and b removed +hg status +echo %% Should show a and unknown +ls diff -r 5c0bd13bd771 -r 67a28636ea64 tests/test-revert-unknown.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-revert-unknown.out Tue Sep 13 18:38:27 2005 -0500 @@ -0,0 +1,8 @@ +%% Should show unknown +? unknown +%% Should show unknown and b removed +R b +? unknown +%% Should show a and unknown +a +unknown diff -r 5c0bd13bd771 -r 67a28636ea64 tests/test-update-reverse --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-update-reverse Tue Sep 13 18:38:27 2005 -0500 @@ -0,0 +1,34 @@ +#!/bin/sh + +hg init +touch a +hg add a +hg commit -m "Added a" -d "0 0" + +touch main +hg add main +hg commit -t "Added main" -d "0 0" +hg checkout 0 + +echo Main should be gone +ls + +touch side1 +hg add side1 +hg commit -m "Added side1" -d "0 0" +touch side2 +hg add side2 +hg commit -m "Added side2" -d "0 0" + +hg log + +echo Should have two heads, side2 and main +hg heads + +echo Should show "a side1 side2" +ls + +hg update --debug -C 1 +echo Should only show "a main" +ls + diff -r 5c0bd13bd771 -r 67a28636ea64 tests/test-update-reverse.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-update-reverse.out Tue Sep 13 18:38:27 2005 -0500 @@ -0,0 +1,53 @@ +Warning: -t and --text is deprecated, please use -m or --message instead. +Main should be gone +a +changeset: 3:91ebc10ed028 +tag: tip +user: test +date: Thu Jan 1 00:00:00 1970 +0000 +summary: Added side2 + +changeset: 2:b932d7dbb1e1 +parent: 0:c2eda428b523 +user: test +date: Thu Jan 1 00:00:00 1970 +0000 +summary: Added side1 + +changeset: 1:71a760306caf +user: test +date: Thu Jan 1 00:00:00 1970 +0000 +summary: Added main + +changeset: 0:c2eda428b523 +user: test +date: Thu Jan 1 00:00:00 1970 +0000 +summary: Added a + +Should have two heads, side2 and main +changeset: 3:91ebc10ed028 +tag: tip +user: test +date: Thu Jan 1 00:00:00 1970 +0000 +summary: Added side2 + +changeset: 1:71a760306caf +user: test +date: Thu Jan 1 00:00:00 1970 +0000 +summary: Added main + +Should show a side1 side2 +a +side1 +side2 +resolving manifests + force 1 allow None moddirstate True linear False + ancestor 8515d4bfda76 local 1c0f48f8ece6 remote 0594b9004bae +remote deleted side2, clobbering +remote deleted side1, clobbering +remote created main +getting main +removing side1 +removing side2 +Should only show a main +a +main