Same reasoning as previous patch.
Details
Details
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Lint Skipped - Unit
Unit Tests Skipped
Same reasoning as previous patch.
| Lint Skipped |
| Unit Tests Skipped |
| Path | Packages | |||
|---|---|---|---|---|
| M | mercurial/copies.py (3 lines) | |||
| M | tests/test-graft.t (2 lines) | |||
| M | tests/test-rename-merge2.t (21 lines) |
| Commit | Parents | Author | Summary | Date |
|---|---|---|---|---|
| Martin von Zweigbergk | Apr 15 2019, 5:09 PM |
| Status | Author | Revision | |
|---|---|---|---|
| Closed | martinvonz | ||
| Closed | martinvonz | ||
| Closed | martinvonz | ||
| Closed | martinvonz | ||
| Closed | martinvonz | ||
| Closed | martinvonz | ||
| Closed | martinvonz | ||
| Closed | martinvonz | ||
| Closed | martinvonz | ||
| Closed | martinvonz | ||
| Closed | martinvonz | ||
| Closed | martinvonz | ||
| Closed | martinvonz |
| if of not in c1 and of not in c2: | if of not in c1 and of not in c2: | ||||
| # renamed on one side, deleted on the other side, but filter | # renamed on one side, deleted on the other side, but filter | ||||
| # out files that have been renamed and then deleted | # out files that have been renamed and then deleted | ||||
| renamedelete[of] = [f for f in fl if f in c1 or f in c2] | renamedelete[of] = [f for f in fl if f in c1 or f in c2] | ||||
| renamedeleteset.update(fl) # reverse map for below | renamedeleteset.update(fl) # reverse map for below | ||||
| else: | else: | ||||
| divergeset.update(fl) # reverse map for below | divergeset.update(fl) # reverse map for below | ||||
| if bothnew: | |||||
| repo.ui.debug(" unmatched files new in both:\n %s\n" | |||||
| % "\n ".join(bothnew)) | |||||
| bothdiverge = {} | bothdiverge = {} | ||||
| bothincompletediverge = {} | bothincompletediverge = {} | ||||
| remainder = {} | remainder = {} | ||||
| both1 = {'copy': {}, | both1 = {'copy': {}, | ||||
| 'fullcopy': {}, | 'fullcopy': {}, | ||||
| 'incomplete': {}, | 'incomplete': {}, | ||||
| 'diverge': bothdiverge, | 'diverge': bothdiverge, | ||||
| 'incompletediverge': bothincompletediverge | 'incompletediverge': bothincompletediverge | ||||
| user: foo | user: foo | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: 2 | summary: 2 | ||||
| ... grafts of grafts unfortunately can't | ... grafts of grafts unfortunately can't | ||||
| $ hg graft -q 13 --debug | $ hg graft -q 13 --debug | ||||
| scanning for duplicate grafts | scanning for duplicate grafts | ||||
| grafting 13:7a4785234d87 "2" | grafting 13:7a4785234d87 "2" | ||||
| unmatched files new in both: | |||||
| b | |||||
| all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
| src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
| checking for directory renames | checking for directory renames | ||||
| resolving manifests | resolving manifests | ||||
| branchmerge: True, force: True, partial: False | branchmerge: True, force: True, partial: False | ||||
| ancestor: b592ea63bb0c, local: 7e61b508e709+, remote: 7a4785234d87 | ancestor: b592ea63bb0c, local: 7e61b508e709+, remote: 7a4785234d87 | ||||
| starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
| committing files: | committing files: | ||||
| C b | C b | ||||
| -------------- | -------------- | ||||
| $ tm "um a b" "um a b" " " "9 do merge with ancestor in a" | $ tm "um a b" "um a b" " " "9 do merge with ancestor in a" | ||||
| created new head | created new head | ||||
| -------------- | -------------- | ||||
| test L:um a b R:um a b W: - 9 do merge with ancestor in a | test L:um a b R:um a b W: - 9 do merge with ancestor in a | ||||
| -------------- | -------------- | ||||
| unmatched files new in both: | |||||
| b | |||||
| all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
| src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
| checking for directory renames | checking for directory renames | ||||
| resolving manifests | resolving manifests | ||||
| branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
| ancestor: 924404dff337, local: 62e7bf090eba+, remote: 49b6d8032493 | ancestor: 924404dff337, local: 62e7bf090eba+, remote: 49b6d8032493 | ||||
| preserving b for resolve of b | preserving b for resolve of b | ||||
| preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
| C b | C b | ||||
| -------------- | -------------- | ||||
| $ tm "nc a b" "up b " " " "12 merge b no ancestor" | $ tm "nc a b" "up b " " " "12 merge b no ancestor" | ||||
| created new head | created new head | ||||
| -------------- | -------------- | ||||
| test L:nc a b R:up b W: - 12 merge b no ancestor | test L:nc a b R:up b W: - 12 merge b no ancestor | ||||
| -------------- | -------------- | ||||
| unmatched files new in both: | |||||
| b | |||||
| resolving manifests | resolving manifests | ||||
| branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
| ancestor: 924404dff337, local: 86a2aa42fc76+, remote: af30c7647fc7 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: af30c7647fc7 | ||||
| preserving b for resolve of b | preserving b for resolve of b | ||||
| preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
| starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
| b: both created -> m (premerge) | b: both created -> m (premerge) | ||||
| picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | ||||
| C a | C a | ||||
| -------------- | -------------- | ||||
| $ tm "up b " "nm a b" " " "13 merge b no ancestor" | $ tm "up b " "nm a b" " " "13 merge b no ancestor" | ||||
| created new head | created new head | ||||
| -------------- | -------------- | ||||
| test L:up b R:nm a b W: - 13 merge b no ancestor | test L:up b R:nm a b W: - 13 merge b no ancestor | ||||
| -------------- | -------------- | ||||
| unmatched files new in both: | |||||
| b | |||||
| resolving manifests | resolving manifests | ||||
| branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
| ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a | ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a | ||||
| preserving b for resolve of b | preserving b for resolve of b | ||||
| preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
| a: other deleted -> r | a: other deleted -> r | ||||
| removing a | removing a | ||||
| starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
| M b | M b | ||||
| -------------- | -------------- | ||||
| $ tm "nc a b" "up a b" " " "14 merge b no ancestor" | $ tm "nc a b" "up a b" " " "14 merge b no ancestor" | ||||
| created new head | created new head | ||||
| -------------- | -------------- | ||||
| test L:nc a b R:up a b W: - 14 merge b no ancestor | test L:nc a b R:up a b W: - 14 merge b no ancestor | ||||
| -------------- | -------------- | ||||
| unmatched files new in both: | |||||
| b | |||||
| resolving manifests | resolving manifests | ||||
| branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
| ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a | ||||
| preserving b for resolve of b | preserving b for resolve of b | ||||
| preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
| a: remote is newer -> g | a: remote is newer -> g | ||||
| getting a | getting a | ||||
| b: both created -> m (premerge) | b: both created -> m (premerge) | ||||
| M b | M b | ||||
| -------------- | -------------- | ||||
| $ tm "up b " "nm a b" " " "15 merge b no ancestor, remove a" | $ tm "up b " "nm a b" " " "15 merge b no ancestor, remove a" | ||||
| created new head | created new head | ||||
| -------------- | -------------- | ||||
| test L:up b R:nm a b W: - 15 merge b no ancestor, remove a | test L:up b R:nm a b W: - 15 merge b no ancestor, remove a | ||||
| -------------- | -------------- | ||||
| unmatched files new in both: | |||||
| b | |||||
| resolving manifests | resolving manifests | ||||
| branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
| ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a | ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a | ||||
| preserving b for resolve of b | preserving b for resolve of b | ||||
| preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
| a: other deleted -> r | a: other deleted -> r | ||||
| removing a | removing a | ||||
| starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
| M b | M b | ||||
| -------------- | -------------- | ||||
| $ tm "nc a b" "up a b" " " "16 get a, merge b no ancestor" | $ tm "nc a b" "up a b" " " "16 get a, merge b no ancestor" | ||||
| created new head | created new head | ||||
| -------------- | -------------- | ||||
| test L:nc a b R:up a b W: - 16 get a, merge b no ancestor | test L:nc a b R:up a b W: - 16 get a, merge b no ancestor | ||||
| -------------- | -------------- | ||||
| unmatched files new in both: | |||||
| b | |||||
| resolving manifests | resolving manifests | ||||
| branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
| ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a | ||||
| preserving b for resolve of b | preserving b for resolve of b | ||||
| preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
| a: remote is newer -> g | a: remote is newer -> g | ||||
| getting a | getting a | ||||
| b: both created -> m (premerge) | b: both created -> m (premerge) | ||||
| M b | M b | ||||
| -------------- | -------------- | ||||
| $ tm "up a b" "nc a b" " " "17 keep a, merge b no ancestor" | $ tm "up a b" "nc a b" " " "17 keep a, merge b no ancestor" | ||||
| created new head | created new head | ||||
| -------------- | -------------- | ||||
| test L:up a b R:nc a b W: - 17 keep a, merge b no ancestor | test L:up a b R:nc a b W: - 17 keep a, merge b no ancestor | ||||
| -------------- | -------------- | ||||
| unmatched files new in both: | |||||
| b | |||||
| resolving manifests | resolving manifests | ||||
| branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
| ancestor: 924404dff337, local: 0b76e65c8289+, remote: 4ce40f5aca24 | ancestor: 924404dff337, local: 0b76e65c8289+, remote: 4ce40f5aca24 | ||||
| preserving b for resolve of b | preserving b for resolve of b | ||||
| preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
| starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
| b: both created -> m (premerge) | b: both created -> m (premerge) | ||||
| picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | ||||
| C a | C a | ||||
| -------------- | -------------- | ||||
| $ tm "nm a b" "up a b" " " "18 merge b no ancestor" | $ tm "nm a b" "up a b" " " "18 merge b no ancestor" | ||||
| created new head | created new head | ||||
| -------------- | -------------- | ||||
| test L:nm a b R:up a b W: - 18 merge b no ancestor | test L:nm a b R:up a b W: - 18 merge b no ancestor | ||||
| -------------- | -------------- | ||||
| unmatched files new in both: | |||||
| b | |||||
| resolving manifests | resolving manifests | ||||
| branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
| ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a | ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a | ||||
| preserving b for resolve of b | preserving b for resolve of b | ||||
| preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
| starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
| a: prompt deleted/changed -> m (premerge) | a: prompt deleted/changed -> m (premerge) | ||||
| picked tool ':prompt' for a (binary False symlink False changedelete True) | picked tool ':prompt' for a (binary False symlink False changedelete True) | ||||
| abort: unresolved merge conflicts (see 'hg help resolve') | abort: unresolved merge conflicts (see 'hg help resolve') | ||||
| -------------- | -------------- | ||||
| $ tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a" | $ tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a" | ||||
| created new head | created new head | ||||
| -------------- | -------------- | ||||
| test L:up a b R:nm a b W: - 19 merge b no ancestor, prompt remove a | test L:up a b R:nm a b W: - 19 merge b no ancestor, prompt remove a | ||||
| -------------- | -------------- | ||||
| unmatched files new in both: | |||||
| b | |||||
| resolving manifests | resolving manifests | ||||
| branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
| ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a | ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a | ||||
| preserving a for resolve of a | preserving a for resolve of a | ||||
| preserving b for resolve of b | preserving b for resolve of b | ||||
| preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
| starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
| a: prompt changed/deleted -> m (premerge) | a: prompt changed/deleted -> m (premerge) | ||||
| $ hg merge -f --tool internal:dump -v --debug -r2 | sed '/^resolving manifests/,$d' 2> /dev/null | $ hg merge -f --tool internal:dump -v --debug -r2 | sed '/^resolving manifests/,$d' 2> /dev/null | ||||
| unmatched files in local: | unmatched files in local: | ||||
| 5/g | 5/g | ||||
| 6/g | 6/g | ||||
| unmatched files in other: | unmatched files in other: | ||||
| 3/g | 3/g | ||||
| 4/g | 4/g | ||||
| 7/f | 7/f | ||||
| unmatched files new in both: | |||||
| 0/f | |||||
| 1/g | |||||
| all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
| src: '1/f' -> dst: '1/g' * | src: '1/f' -> dst: '1/g' * | ||||
| src: '3/f' -> dst: '3/g' * | src: '3/f' -> dst: '3/g' * | ||||
| src: '4/f' -> dst: '4/g' * | src: '4/f' -> dst: '4/g' * | ||||
| src: '5/f' -> dst: '5/g' * | src: '5/f' -> dst: '5/g' * | ||||
| src: '6/f' -> dst: '6/g' * | src: '6/f' -> dst: '6/g' * | ||||
| checking for directory renames | checking for directory renames | ||||
| $ hg mani | $ hg mani | ||||