annotate tests/test-flags.out @ 616:d45d1c90032e

Fix zombie files in merge # HG changeset patch # User maf46@burn.cl.cam.ac.uk # Node ID 57667c9b93a5a743e4629d15a0e6bd76699130c3 # Parent d2994b5298fb20f87dc1d4747635b280db3c0526 Fix zombie files in merge Keir Fraser observed the following: > I made a small test case that illustrates the bug in merging changesets > with 'hg remove's in them: > > 1. Create a repository A containing files foo & bar. > 2. Create clone called B. > 3. A removes file bar, and commits this removal. > 4. B edits file foo, and commits this edit. > > Now, if B: > # hg pull ../A; hg update -m; hg commit > Then bar remains deleted. > > If A: > # hg pull ../B; hg update -m; hg commit > Then bar is resurrected! > > It looks as though, when you merge across a branch, any deletions in > your own branch are forgotten. > ... > Fixing this is a must, as zombie files are a real pain. :-) Keir later patched our local copy of hg as shown below, which fixes the problem. I've also enclosed a test which captures the test Keir outlined... Files deleted on a branch should not automatically reappear in a merge Patch notes: 1. The first chunk does not change behaviour, but cleans up the code to more closely match check of 'force' in the second chunk. I think it makes the code clearer. 2. The second chunk fixes two bugs -- i. If we choose to keep a remotely-changed locally-deleted file, then we need to 'get' that file. If we choose to delete it then no action need be taken (it is already deleted in the working manifest). Without this fix, choosing to delete would get a Python traceback. ii. The test for whether the file was remotely-created is insufficient. It is only true if f is not in the common ancestor. Otherwise the file was deleted locally, and should remain deleted. (this is the most important fix!) Index: hg/tests/test-merge6 ===================================================================
author maf46@burn.cl.cam.ac.uk
date Mon, 04 Jul 2005 12:38:34 -0800
parents eb46971fc57f
children d96c1153b25d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
491
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
1 + umask 027
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
2 + mkdir test1
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
3 + cd test1
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
4 + hg init
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
5 + touch a b
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
6 + hg add a b
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
7 + hg ci -t 'added a b' -u test -d '0 0'
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
8 + cd ..
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
9 + mkdir test2
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
10 + cd test2
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
11 + hg init
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
12 + hg pull ../test1
412
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
13 pulling from ../test1
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
14 requesting all changes
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
15 adding changesets
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
16 adding manifests
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
17 adding file revisions
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
18 modified 2 files, added 1 changesets and 2 new revisions
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
19 (run 'hg update' to get a working copy)
491
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
20 + hg co
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
21 + chmod +x a
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
22 + hg ci -t 'chmod +x a' -u test -d '0 0'
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
23 + cd ../test1
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
24 + echo 123
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
25 + hg ci -t 'a updated' -u test -d '0 0'
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
26 + hg pull ../test2
412
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
27 pulling from ../test2
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
28 searching for changes
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
29 adding changesets
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
30 adding manifests
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
31 adding file revisions
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
32 modified 1 files, added 1 changesets and 1 new revisions
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
33 (run 'hg update' to get a working copy)
491
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
34 + hg heads
412
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
35 changeset: 2:3ef54330565526bebf37a0d9bf540c283fd133a1
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
36 tag: tip
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
37 parent: 0:22a449e20da501ca558394c083ca470e9c81b9f7
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
38 user: test
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
39 date: Thu Jan 1 00:00:00 1970
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
40 summary: chmod +x a
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
41
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
42 changeset: 1:c6ecefc45368ed556d965f1c1086c6561a8b2ac5
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
43 user: test
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
44 date: Thu Jan 1 00:00:00 1970
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
45 summary: a updated
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
46
491
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
47 + hg history
412
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
48 changeset: 2:3ef54330565526bebf37a0d9bf540c283fd133a1
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
49 tag: tip
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
50 parent: 0:22a449e20da501ca558394c083ca470e9c81b9f7
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
51 user: test
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
52 date: Thu Jan 1 00:00:00 1970
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
53 summary: chmod +x a
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
54
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
55 changeset: 1:c6ecefc45368ed556d965f1c1086c6561a8b2ac5
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
56 user: test
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
57 date: Thu Jan 1 00:00:00 1970
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
58 summary: a updated
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
59
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
60 changeset: 0:22a449e20da501ca558394c083ca470e9c81b9f7
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
61 user: test
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
62 date: Thu Jan 1 00:00:00 1970
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
63 summary: added a b
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
64
591
eb46971fc57f options: kill -d for debug
mpm@selenic.com
parents: 495
diff changeset
65 + hg -v co -m
412
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
66 resolving manifests
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
67 merging a
40cfa2d0c088 [PATCH]: Typo in localrepository.update
mpm@selenic.com
parents:
diff changeset
68 resolving a
491
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
69 + ls -l ../test1/a ../test2/a
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
70 + cut -b 0-10
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
71 -rwxr-x---
66eb9905d0a2 Fixed test-flags and .out for arbitrary umask settings. Use -ex shell flags.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 414
diff changeset
72 -rwxr-x---