This will make its role clearer.
Details
Details
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
( )
This will make its role clearer.
| Automatic diff as part of commit; lint not applicable. |
| Automatic diff as part of commit; unit tests not applicable. |
| Path | Packages | |||
|---|---|---|---|---|
| M | tests/test-copies-chain-merge.t (22 lines) |
| history are relevant. | history are relevant. | ||||
| Note: | Note: | ||||
| | In this case, the merge get conflicting information since on one side we have | | In this case, the merge get conflicting information since on one side we have | ||||
| | "a -> c -> d". and one the other one we have "h -> i -> d". | | "a -> c -> d". and one the other one we have "h -> i -> d". | ||||
| | | | | ||||
| | The current code arbitrarily pick one side | | The current code arbitrarily pick one side | ||||
| $ case_desc="simple merge" | $ case_desc="merge - G side: content change, F side: copy overwrite, no content change" | ||||
| $ hg up 'desc("f-2")' | $ hg up 'desc("f-2")' | ||||
| 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
| $ hg merge 'desc("g-1")' --tool :union | $ hg merge 'desc("g-1")' --tool :union | ||||
| merging d (no-changeset !) | merging d (no-changeset !) | ||||
| 0 files updated, 1 files merged, 0 files removed, 0 files unresolved (no-changeset !) | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved (no-changeset !) | ||||
| 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !) | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !) | ||||
| (branch merge, don't forget to commit) | (branch merge, don't forget to commit) | ||||
| $ hg ci -m "mFGm-0 $case_desc - one way" | $ hg ci -m "mFGm-0 $case_desc - one way" | ||||
| created new head | created new head | ||||
| $ hg up 'desc("g-1")' | $ hg up 'desc("g-1")' | ||||
| 2 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !) | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !) | ||||
| 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !) | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !) | ||||
| $ hg merge 'desc("f-2")' --tool :union | $ hg merge 'desc("f-2")' --tool :union | ||||
| merging d (no-changeset !) | merging d (no-changeset !) | ||||
| 0 files updated, 1 files merged, 1 files removed, 0 files unresolved (no-changeset !) | 0 files updated, 1 files merged, 1 files removed, 0 files unresolved (no-changeset !) | ||||
| 0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !) | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !) | ||||
| (branch merge, don't forget to commit) | (branch merge, don't forget to commit) | ||||
| $ hg ci -m "mGFm-0 $case_desc - the other way" | $ hg ci -m "mGFm-0 $case_desc - the other way" | ||||
| created new head | created new head | ||||
| $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))' | $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))' | ||||
| @ 29 mGFm-0 simple merge - the other way | @ 29 mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way | ||||
| |\ | |\ | ||||
| +---o 28 mFGm-0 simple merge - one way | +---o 28 mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way | ||||
| | |/ | | |/ | ||||
| | o 25 g-1: update d | | o 25 g-1: update d | ||||
| | | | | | | ||||
| o | 22 f-2: rename i -> d | o | 22 f-2: rename i -> d | ||||
| | | | | | | ||||
| o | 21 f-1: rename h -> i | o | 21 f-1: rename h -> i | ||||
| |/ | |/ | ||||
| o 2 i-2: c -move-> d | o 2 i-2: c -move-> d | ||||
| mCBm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - the other way | mCBm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - the other way | ||||
| mCBm-1 re-add d | mCBm-1 re-add d | ||||
| mCGm-0 | mCGm-0 | ||||
| mCH-delete-before-conflict-m-0 | mCH-delete-before-conflict-m-0 | ||||
| mDBm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - the other way | mDBm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - the other way | ||||
| mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way | mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way | ||||
| mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way | mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way | ||||
| mFBm-0 simple merge - the other way | mFBm-0 simple merge - the other way | ||||
| mFGm-0 simple merge - one way | mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way | ||||
| mGCm-0 | mGCm-0 | ||||
| mGDm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - the other way | mGDm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - the other way | ||||
| mGFm-0 simple merge - the other way | mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way | ||||
| mHC-delete-before-conflict-m-0 | mHC-delete-before-conflict-m-0 | ||||
| Test that sidedata computations during upgrades are correct | Test that sidedata computations during upgrades are correct | ||||
| =========================================================== | =========================================================== | ||||
| We upgrade a repository that is not using sidedata (the filelog case) and | We upgrade a repository that is not using sidedata (the filelog case) and | ||||
| check that the same side data have been generated as if they were computed at | check that the same side data have been generated as if they were computed at | ||||
| M d | M d | ||||
| $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mDGm-0")' | $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mDGm-0")' | ||||
| M d | M d | ||||
| $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGDm-0")' | $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGDm-0")' | ||||
| M d | M d | ||||
| #if no-changeset | #if no-changeset | ||||
| $ hg log -Gfr 'desc("mDGm-0")' d | $ hg log -Gfr 'desc("mDGm-0")' d | ||||
| o 26 mDGm-0 simple merge - one way | o 26 mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way | ||||
| |\ | |\ | ||||
| | o 25 g-1: update d | | o 25 g-1: update d | ||||
| | | | | | | ||||
| o | 8 d-2 re-add d | o | 8 d-2 re-add d | ||||
| |/ | |/ | ||||
| o 2 i-2: c -move-> d | o 2 i-2: c -move-> d | ||||
| | | | | ||||
| o 1 i-1: a -move-> c | o 1 i-1: a -move-> c | ||||
| o 2 i-2: c -move-> d | o 2 i-2: c -move-> d | ||||
| | | | | ||||
| ~ | ~ | ||||
| #endif | #endif | ||||
| #if no-changeset | #if no-changeset | ||||
| $ hg log -Gfr 'desc("mDGm-0")' d | $ hg log -Gfr 'desc("mDGm-0")' d | ||||
| o 26 mDGm-0 simple merge - one way | o 26 mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way | ||||
| |\ | |\ | ||||
| | o 25 g-1: update d | | o 25 g-1: update d | ||||
| | | | | | | ||||
| o | 8 d-2 re-add d | o | 8 d-2 re-add d | ||||
| |/ | |/ | ||||
| o 2 i-2: c -move-> d | o 2 i-2: c -move-> d | ||||
| | | | | ||||
| o 1 i-1: a -move-> c | o 1 i-1: a -move-> c | ||||
| - one with change to a file (d) | - one with change to a file (d) | ||||
| - one overwriting that file with a rename (from h to i, to d) | - one overwriting that file with a rename (from h to i, to d) | ||||
| This case is similar to BF/FB, but an actual merge happens, so both side of the | This case is similar to BF/FB, but an actual merge happens, so both side of the | ||||
| history are relevant. | history are relevant. | ||||
| $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))' | $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))' | ||||
| o 29 mGFm-0 simple merge - the other way | o 29 mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way | ||||
| |\ | |\ | ||||
| +---o 28 mFGm-0 simple merge - one way | +---o 28 mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way | ||||
| | |/ | | |/ | ||||
| | o 25 g-1: update d | | o 25 g-1: update d | ||||
| | | | | | | ||||
| o | 22 f-2: rename i -> d | o | 22 f-2: rename i -> d | ||||
| | | | | | | ||||
| o | 21 f-1: rename h -> i | o | 21 f-1: rename h -> i | ||||
| |/ | |/ | ||||
| o 2 i-2: c -move-> d | o 2 i-2: c -move-> d | ||||
| R h | R h | ||||
| $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGFm-0")' | $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGFm-0")' | ||||
| M d (no-changeset !) | M d (no-changeset !) | ||||
| h (no-filelog no-changeset !) | h (no-filelog no-changeset !) | ||||
| R h | R h | ||||
| #if no-changeset | #if no-changeset | ||||
| $ hg log -Gfr 'desc("mFGm-0")' d | $ hg log -Gfr 'desc("mFGm-0")' d | ||||
| o 28 mFGm-0 simple merge - one way | o 28 mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way | ||||
| |\ | |\ | ||||
| | o 25 g-1: update d | | o 25 g-1: update d | ||||
| | | | | | | ||||
| o | 22 f-2: rename i -> d | o | 22 f-2: rename i -> d | ||||
| | | | | | | ||||
| o | 21 f-1: rename h -> i | o | 21 f-1: rename h -> i | ||||
| |/ | |/ | ||||
| o 2 i-2: c -move-> d | o 2 i-2: c -move-> d | ||||
| | | | | ||||
| o 2 i-2: c -move-> d | o 2 i-2: c -move-> d | ||||
| | | | | ||||
| ~ | ~ | ||||
| #endif | #endif | ||||
| #if no-changeset | #if no-changeset | ||||
| $ hg log -Gfr 'desc("mGFm-0")' d | $ hg log -Gfr 'desc("mGFm-0")' d | ||||
| o 29 mGFm-0 simple merge - the other way | o 29 mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way | ||||
| |\ | |\ | ||||
| | o 25 g-1: update d | | o 25 g-1: update d | ||||
| | | | | | | ||||
| o | 22 f-2: rename i -> d | o | 22 f-2: rename i -> d | ||||
| | | | | | | ||||
| o | 21 f-1: rename h -> i | o | 21 f-1: rename h -> i | ||||
| |/ | |/ | ||||
| o 2 i-2: c -move-> d | o 2 i-2: c -move-> d | ||||