tests/test-narrow-merge-outside.t
branchstable
changeset 48796 c00d3ce4e94b
parent 48746 18e69f224e4b
equal deleted inserted replaced
48776:b84ff512b645 48796:c00d3ce4e94b
       
     1 ===================================================================
       
     2 Test merge behavior with narrow for item outside of the narrow spec
       
     3 ===================================================================
       
     4 
       
     5 This test currently check for  simple "outside of narrow" merge case. I suspect
       
     6 there might be more corner case that need testing, so extending this tests, or
       
     7 replacing it by a more "generative" version, comparing behavior with and without narow.
       
     8 
       
     9 This the feature is currently working with flat manifest only. This is the only
       
    10 case tested. Consider using test-case if tree start supporting this case of
       
    11 merge.
       
    12 
       
    13 Create some initial setup
       
    14 
       
    15   $ . "$TESTDIR/narrow-library.sh"
       
    16 
       
    17   $ hg init server
       
    18   $ echo root > server/root
       
    19   $ mkdir server/inside
       
    20   $ mkdir server/outside
       
    21   $ echo babar > server/inside/inside-change
       
    22   $ echo pom > server/outside/outside-changing
       
    23   $ echo arthur > server/outside/outside-removed
       
    24   $ hg -R server add server/
       
    25   adding server/inside/inside-change
       
    26   adding server/outside/outside-changing
       
    27   adding server/outside/outside-removed
       
    28   adding server/root
       
    29   $ hg -R server commit -m root
       
    30 
       
    31 
       
    32 
       
    33   $ hg clone ssh://user@dummy/server client --narrow --include inside
       
    34   requesting all changes
       
    35   adding changesets
       
    36   adding manifests
       
    37   adding file changes
       
    38   added 1 changesets with 1 changes to 1 files
       
    39   new changesets a0c415d360e5
       
    40   updating to branch default
       
    41   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    42 
       
    43 "trivial" change outside of narrow spec on the server
       
    44 
       
    45   $ echo zephir > server/outside/outside-added
       
    46   $ hg -R server add server/outside/outside-added
       
    47   $ echo flore > server/outside/outside-changing
       
    48   $ hg -R server remove server/outside/outside-removed
       
    49   $ hg -R server commit -m "outside change"
       
    50 
       
    51 Merge them with some unrelated local change
       
    52 
       
    53   $ echo celeste > client/inside/inside-change
       
    54   $ hg -R client commit -m "inside change"
       
    55   $ hg -R client pull
       
    56   pulling from ssh://user@dummy/server
       
    57   searching for changes
       
    58   adding changesets
       
    59   adding manifests
       
    60   adding file changes
       
    61   added 1 changesets with 0 changes to 0 files (+1 heads)
       
    62   new changesets f9ec5453023e
       
    63   (run 'hg heads' to see heads, 'hg merge' to merge)
       
    64   $ hg -R client merge
       
    65   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    66   (branch merge, don't forget to commit)
       
    67   $ hg -R client ci -m 'merge changes'
       
    68   $ hg -R client push -r .
       
    69   pushing to ssh://user@dummy/server
       
    70   searching for changes
       
    71   remote: adding changesets
       
    72   remote: adding manifests
       
    73   remote: adding file changes
       
    74   remote: added 2 changesets with 1 changes to 1 files
       
    75 
       
    76 Checking result
       
    77 ---------------
       
    78 
       
    79 general sentry of all output
       
    80 
       
    81   $ hg --repository server manifest --debug --rev 0
       
    82   360afd990eeff79e4a7f9f3ded5ecd7bc2fd3b59 644   inside/inside-change
       
    83   7db95ce5cd8e734ad12e3f5f37779a08070a1399 644   outside/outside-changing
       
    84   1591f6db41a30b68bd94ddccf4a4ce4f4fbe2a44 644   outside/outside-removed
       
    85   50ecbc31c0e82dd60c2747c434d1f11b85c0e178 644   root
       
    86   $ hg --repository server manifest --debug --rev 1
       
    87   360afd990eeff79e4a7f9f3ded5ecd7bc2fd3b59 644   inside/inside-change
       
    88   486c008d6dddcaeb5e5f99556a121800cdcfb149 644   outside/outside-added
       
    89   153d7af5e4f53f44475bc0ff2b806c86f019eda4 644   outside/outside-changing
       
    90   50ecbc31c0e82dd60c2747c434d1f11b85c0e178 644   root
       
    91 
       
    92   $ hg --repository server manifest --debug --rev 2
       
    93   1b3ab69c6c847abc8fd25537241fedcd4d188668 644   inside/inside-change
       
    94   7db95ce5cd8e734ad12e3f5f37779a08070a1399 644   outside/outside-changing
       
    95   1591f6db41a30b68bd94ddccf4a4ce4f4fbe2a44 644   outside/outside-removed
       
    96   50ecbc31c0e82dd60c2747c434d1f11b85c0e178 644   root
       
    97   $ hg --repository server manifest --debug --rev 3
       
    98   1b3ab69c6c847abc8fd25537241fedcd4d188668 644   inside/inside-change
       
    99   486c008d6dddcaeb5e5f99556a121800cdcfb149 644   outside/outside-added
       
   100   153d7af5e4f53f44475bc0ff2b806c86f019eda4 644   outside/outside-changing
       
   101   50ecbc31c0e82dd60c2747c434d1f11b85c0e178 644   root
       
   102 
       
   103 The file changed outside should be changed by the merge
       
   104 
       
   105   $ hg --repository server manifest --debug --rev 'desc("inside change")' | grep outside-changing
       
   106   7db95ce5cd8e734ad12e3f5f37779a08070a1399 644   outside/outside-changing
       
   107 
       
   108   $ hg --repository server manifest --debug --rev 'desc("outside change")' | grep outside-changing
       
   109   153d7af5e4f53f44475bc0ff2b806c86f019eda4 644   outside/outside-changing
       
   110   $ hg --repository server manifest --debug --rev 'desc("merge")' | grep outside-changing
       
   111   153d7af5e4f53f44475bc0ff2b806c86f019eda4 644   outside/outside-changing