tests/test-evolve-public-content-divergent.t
changeset 4383 3343eac099ec
child 4384 8993fd4805d0
equal deleted inserted replaced
4382:e6ba7e324015 4383:3343eac099ec
       
     1 Test for handling of content divergence with public cset using `hg evolve`
       
     2 ==========================================================================
       
     3 
       
     4 Setup
       
     5 =====
       
     6   $ cat >> $HGRCPATH <<EOF
       
     7   > [alias]
       
     8   > glog = log -GT "{rev}:{node|short} {desc|firstline}\n {phase} {troubles}\n\n"
       
     9   > [phases]
       
    10   > publish = False
       
    11   > [extensions]
       
    12   > rebase =
       
    13   > EOF
       
    14   $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
       
    15 
       
    16 Testing the case when both divergent cset are on the same parent and no-conflict in merging:
       
    17 -------------------------------------------------------------------------------------
       
    18 
       
    19 Prepare the repository:
       
    20 
       
    21   $ hg init pubdiv
       
    22   $ cd pubdiv
       
    23   $ for ch in a b; do
       
    24   >   echo $ch > $ch;
       
    25   >   hg ci -Aqm "added "$ch;
       
    26   > done;
       
    27   $ hg glog
       
    28   @  1:5f6d8a4bf34a added b
       
    29   |   draft
       
    30   |
       
    31   o  0:9092f1db7931 added a
       
    32       draft
       
    33   
       
    34 
       
    35 Make an amend and change phase to public:
       
    36 
       
    37   $ sed -i "1 i I am first" b
       
    38   $ hg amend
       
    39   $ hg phase --public
       
    40 
       
    41 Amend again to create a cset divergent to public one:
       
    42 
       
    43   $ hg up 1 --hidden -q
       
    44   updated to hidden changeset 5f6d8a4bf34a
       
    45   (hidden revision '5f6d8a4bf34a' was rewritten as: 44f360db368f)
       
    46   working directory parent is obsolete! (5f6d8a4bf34a)
       
    47 
       
    48   $ echo "I am second" >> b
       
    49   $ hg ci --amend -m "updated b"
       
    50   1 new content-divergent changesets
       
    51 
       
    52   $ hg glog
       
    53   @  3:dcdaf152280a updated b
       
    54   |   draft content-divergent
       
    55   |
       
    56   | o  2:44f360db368f added b
       
    57   |/    public
       
    58   |
       
    59   o  0:9092f1db7931 added a
       
    60       public
       
    61   
       
    62 
       
    63 Lets resolve the public content-divergence:
       
    64 
       
    65   $ hg evolve --content-divergent
       
    66   merge:[3] updated b
       
    67   with: [2] added b
       
    68   base: [1] added b
       
    69   merging "other" content-divergent changeset '44f360db368f'
       
    70   merging b
       
    71   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
       
    72   computing new diff
       
    73   committed as c1aa9cfb6cf8
       
    74   working directory is now at c1aa9cfb6cf8
       
    75 
       
    76 Following graph log shows that it correctly merged the two divergent csets:
       
    77 
       
    78   $ hg glog -p
       
    79   @  5:c1aa9cfb6cf8 phase-divergent update to 44f360db368f:
       
    80   |   draft
       
    81   |
       
    82   |  diff -r 44f360db368f -r c1aa9cfb6cf8 b
       
    83   |  --- a/b	Thu Jan 01 00:00:00 1970 +0000
       
    84   |  +++ b/b	Thu Jan 01 00:00:00 1970 +0000
       
    85   |  @@ -1,2 +1,3 @@
       
    86   |   I am first
       
    87   |   b
       
    88   |  +I am second
       
    89   |
       
    90   o  2:44f360db368f added b
       
    91   |   public
       
    92   |
       
    93   |  diff -r 9092f1db7931 -r 44f360db368f b
       
    94   |  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
       
    95   |  +++ b/b	Thu Jan 01 00:00:00 1970 +0000
       
    96   |  @@ -0,0 +1,2 @@
       
    97   |  +I am first
       
    98   |  +b
       
    99   |
       
   100   o  0:9092f1db7931 added a
       
   101       public
       
   102   
       
   103      diff -r 000000000000 -r 9092f1db7931 a
       
   104      --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
       
   105      +++ b/a	Thu Jan 01 00:00:00 1970 +0000
       
   106      @@ -0,0 +1,1 @@
       
   107      +a
       
   108   
       
   109   $ hg evolve -l