tests/test-merge-criss-cross.t
changeset 45581 76b69f81629c
parent 45579 b9d6ab6cdeb4
child 45582 463ca8af8c72
equal deleted inserted replaced
45580:76d79b80d953 45581:76b69f81629c
   532   1 files updated, 1 files merged, 0 files removed, 0 files unresolved
   532   1 files updated, 1 files merged, 0 files removed, 0 files unresolved
   533   (branch merge, don't forget to commit)
   533   (branch merge, don't forget to commit)
   534   $ hg ci -m "merge-deleting-the-file-from-deleted"
   534   $ hg ci -m "merge-deleting-the-file-from-deleted"
   535   $ hg manifest
   535   $ hg manifest
   536   other-file
   536   other-file
       
   537   $ hg debugrevlogindex the-file
       
   538      rev linkrev nodeid       p1           p2
       
   539        0       0 4b69178b9bda 000000000000 000000000000
       
   540        1       1 59e363a07dc8 4b69178b9bda 000000000000
   537 
   541 
   538   $ hg update 'desc("updating-both-file")'
   542   $ hg update 'desc("updating-both-file")'
   539   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   543   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   540   $ hg merge 'desc("delete-the-file")' -t :other
   544   $ hg merge 'desc("delete-the-file")' -t :other
   541   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   545   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   542   (branch merge, don't forget to commit)
   546   (branch merge, don't forget to commit)
   543   $ hg ci -m "merge-deleting-the-file-from-updated"
   547   $ hg ci -m "merge-deleting-the-file-from-updated"
   544   created new head
   548   created new head
   545   $ hg manifest
   549   $ hg manifest
   546   other-file
   550   other-file
       
   551   $ hg debugrevlogindex the-file
       
   552      rev linkrev nodeid       p1           p2
       
   553        0       0 4b69178b9bda 000000000000 000000000000
       
   554        1       1 59e363a07dc8 4b69178b9bda 000000000000
   547 
   555 
   548   $ hg update 'desc("delete-the-file")'
   556   $ hg update 'desc("delete-the-file")'
   549   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   557   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   550   $ hg merge 'desc("updating-both-file")' -t :other
   558   $ hg merge 'desc("updating-both-file")' -t :other
   551   1 files updated, 1 files merged, 0 files removed, 0 files unresolved
   559   1 files updated, 1 files merged, 0 files removed, 0 files unresolved
   554   created new head
   562   created new head
   555   $ hg manifest
   563   $ hg manifest
   556   other-file
   564   other-file
   557   the-file
   565   the-file
   558 
   566 
       
   567 XXX: This should create a new filenode because user explicitly decided to keep
       
   568 the file. If we reuse the same filenode, future merges (criss-cross ones mostly)
       
   569 will think that file remain unchanged and user explicit choice will not be taken
       
   570 in consideration.
       
   571   $ hg debugrevlogindex the-file
       
   572      rev linkrev nodeid       p1           p2
       
   573        0       0 4b69178b9bda 000000000000 000000000000
       
   574        1       1 59e363a07dc8 4b69178b9bda 000000000000
       
   575 
   559   $ hg update 'desc("updating-both-file")'
   576   $ hg update 'desc("updating-both-file")'
   560   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   577   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   561   $ hg merge 'desc("delete-the-file")' -t :local
   578   $ hg merge 'desc("delete-the-file")' -t :local
   562   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   579   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   563   (branch merge, don't forget to commit)
   580   (branch merge, don't forget to commit)
   565   created new head
   582   created new head
   566   $ hg manifest
   583   $ hg manifest
   567   other-file
   584   other-file
   568   the-file
   585   the-file
   569 
   586 
       
   587 XXX: This should create a new filenode because user explicitly decided to keep
       
   588 the file. If we reuse the same filenode, future merges (criss-cross ones mostly)
       
   589 will think that file remain unchanged and user explicit choice will not be taken
       
   590 in consideration.
       
   591   $ hg debugrevlogindex the-file
       
   592      rev linkrev nodeid       p1           p2
       
   593        0       0 4b69178b9bda 000000000000 000000000000
       
   594        1       1 59e363a07dc8 4b69178b9bda 000000000000
       
   595 
       
   596   $ hg log -G -T '{node|short} {desc}\n'
       
   597   @    5e3eccec60d8 merge-keeping-the-file-from-updated
       
   598   |\
       
   599   +---o  e9b708131723 merge-keeping-the-file-from-deleted
       
   600   | |/
       
   601   +---o  a4e0e44229dc merge-deleting-the-file-from-updated
       
   602   | |/
       
   603   +---o  adfd88e5d7d3 merge-deleting-the-file-from-deleted
       
   604   | |/
       
   605   | o  7801bc9b9899 delete-the-file
       
   606   | |
       
   607   o |  9b610631ab29 updating-both-file
       
   608   |/
       
   609   o  955800955977 root-commit
       
   610   
       
   611 
   570 There the resulting merge together (leading to criss cross situation). Check
   612 There the resulting merge together (leading to criss cross situation). Check
   571 the conflict is properly detected.
   613 the conflict is properly detected.
   572 
   614 
   573 (merging two deletion together → no conflict)
   615 (merging two deletion together → no conflict)
   574 
   616