annotate tests/test-merge4.t @ 25997:d4e1e947444b stable

convert: fix git copy file content conversions There was a bug in the git convert code where if you copied a file and modified the copy source in the same commit, and if the copy dest was alphabetically earlier than the copy source, the converted version would use the copy dest contents for both the source and the target. The root of the bug is that the git diff-tree output is formatted like so: :<mode> <mode> <oldhash> <newhash> <state> <src> <dest> :100644 100644 c1ab79a15... 3dfc779ab... C069 oldname newname :100644 100644 c1ab79a15... 03e2188a6... M oldname The old code would always take the 'oldname' field as the name of the file being processed, then it would try to do an extra convert for the newname. This works for renames because it does a delete for the oldname and a create for the newname. For copies though, it ends up associating the copied content (3dfc779ab above) with the oldname. It only happened when the dest was alphabetically before because that meant the copy got processed before the modification. The fix is the treat copy lines as affecting only the newname, and not marking the oldname as processed.
author Durham Goode <durham@fb.com>
date Thu, 06 Aug 2015 17:21:46 -0700
parents 63c817ea4a70
children 8561ad49915d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11977
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
1 $ hg init
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
2 $ echo This is file a1 > a
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
3 $ hg add a
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11977
diff changeset
4 $ hg commit -m "commit #0"
11977
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
5 $ echo This is file b1 > b
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
6 $ hg add b
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11977
diff changeset
7 $ hg commit -m "commit #1"
11977
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
8 $ hg update 0
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
9 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
10 $ echo This is file c1 > c
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
11 $ hg add c
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11977
diff changeset
12 $ hg commit -m "commit #2"
11977
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
13 created new head
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
14 $ hg merge 1
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
15 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
16 (branch merge, don't forget to commit)
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
17 $ rm b
db2a291e25e9 tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 2283
diff changeset
18 $ echo This is file c22 > c
16536
63c817ea4a70 commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents: 12156
diff changeset
19
63c817ea4a70 commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents: 12156
diff changeset
20 Test hg behaves when committing with a missing file added by a merge
63c817ea4a70 commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents: 12156
diff changeset
21
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11977
diff changeset
22 $ hg commit -m "commit #3"
16536
63c817ea4a70 commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents: 12156
diff changeset
23 abort: cannot commit merge with missing files
63c817ea4a70 commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents: 12156
diff changeset
24 [255]
416
5e9e8b8d2629 [PATCH] Removal of a file added by merging branches
mpm@selenic.com
parents:
diff changeset
25