tests/test-evolve-content-divergent-interrupted.t
branchstable
changeset 4481 d02a7c8cdee5
parent 3976 d081528bb372
child 4513 d70db7e455dc
child 4578 75e76141cba2
equal deleted inserted replaced
4480:d18044dfc584 4481:d02a7c8cdee5
       
     1 =======================================================
       
     2 Tests the resolution of content divergence: interrupted
       
     3 =======================================================
       
     4 
       
     5 This file intend to cover case where evolve has to be interrupted.
       
     6 
       
     7 This test aims at gather test case for --abort, --continue and --stop
       
     8 
       
     9 
       
    10 Tests for the --abort flag for `hg evolve` command while content-divergence resolution
       
    11 ======================================================================================
       
    12 
       
    13 The `--abort` flag aborts the interrupted evolve by undoing all the work which
       
    14 was done during resolution i.e. stripping new changesets created, moving
       
    15 bookmarks back, moving working directory back.
       
    16 
       
    17 This test contains cases when `hg evolve` is doing content-divergence resolution.
       
    18 
       
    19 Setup
       
    20 =====
       
    21 
       
    22   $ cat >> $HGRCPATH <<EOF
       
    23   > [phases]
       
    24   > publish = False
       
    25   > [alias]
       
    26   > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}"
       
    27   > [extensions]
       
    28   > EOF
       
    29   $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
       
    30 
       
    31   $ hg init abortrepo
       
    32   $ cd abortrepo
       
    33   $ echo ".*\.orig" > .hgignore
       
    34   $ hg add .hgignore
       
    35   $ hg ci -m "added hgignore"
       
    36   $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done;
       
    37 
       
    38   $ hg glog
       
    39   @  4:c41c793e0ef1 added d
       
    40   |   () draft
       
    41   o  3:ca1b80f7960a added c
       
    42   |   () draft
       
    43   o  2:b1661037fa25 added b
       
    44   |   () draft
       
    45   o  1:c7586e2a9264 added a
       
    46   |   () draft
       
    47   o  0:8fa14d15e168 added hgignore
       
    48       () draft
       
    49 
       
    50 Creating content divergence, resolution of which will lead to conflicts
       
    51 -----------------------------------------------------------------------
       
    52 
       
    53   $ echo bar > d
       
    54   $ hg amend
       
    55 
       
    56   $ hg up c41c793e0ef1 --hidden
       
    57   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    58   updated to hidden changeset c41c793e0ef1
       
    59   (hidden revision 'c41c793e0ef1' was rewritten as: e49523854bc8)
       
    60   working directory parent is obsolete! (c41c793e0ef1)
       
    61   (use 'hg evolve' to update to its successor: e49523854bc8)
       
    62 
       
    63   $ echo foobar > d
       
    64   $ hg amend
       
    65   2 new content-divergent changesets
       
    66   $ hg glog --hidden
       
    67   @  6:9c1631e352d9 added d
       
    68   |   () draft
       
    69   | *  5:e49523854bc8 added d
       
    70   |/    () draft
       
    71   | x  4:c41c793e0ef1 added d
       
    72   |/    () draft
       
    73   o  3:ca1b80f7960a added c
       
    74   |   () draft
       
    75   o  2:b1661037fa25 added b
       
    76   |   () draft
       
    77   o  1:c7586e2a9264 added a
       
    78   |   () draft
       
    79   o  0:8fa14d15e168 added hgignore
       
    80       () draft
       
    81 
       
    82   $ hg evolve --content-divergent
       
    83   merge:[6] added d
       
    84   with: [5] added d
       
    85   base: [4] added d
       
    86   merging "other" content-divergent changeset 'e49523854bc8'
       
    87   merging d
       
    88   warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
       
    89   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
       
    90   fix conflicts and see `hg help evolve.interrupted`
       
    91   [1]
       
    92 
       
    93   $ hg status -v
       
    94   M d
       
    95   # The repository is in an unfinished *evolve* state.
       
    96   
       
    97   # Unresolved merge conflicts:
       
    98   # 
       
    99   #     d
       
   100   # 
       
   101   # To mark files as resolved:  hg resolve --mark FILE
       
   102   
       
   103   # To continue:    hg evolve --continue
       
   104   # To abort:       hg evolve --abort
       
   105   # To stop:        hg evolve --stop
       
   106   # (also see `hg help evolve.interrupted`)
       
   107   
       
   108   $ hg parents
       
   109   changeset:   6:9c1631e352d9
       
   110   tag:         tip
       
   111   parent:      3:ca1b80f7960a
       
   112   user:        test
       
   113   date:        Thu Jan 01 00:00:00 1970 +0000
       
   114   instability: content-divergent
       
   115   summary:     added d
       
   116   
       
   117   changeset:   5:e49523854bc8
       
   118   parent:      3:ca1b80f7960a
       
   119   user:        test
       
   120   date:        Thu Jan 01 00:00:00 1970 +0000
       
   121   instability: content-divergent
       
   122   summary:     added d
       
   123   
       
   124 
       
   125   $ hg evolve --abort
       
   126   evolve aborted
       
   127   working directory is now at 9c1631e352d9
       
   128 
       
   129   $ hg glog --hidden
       
   130   @  6:9c1631e352d9 added d
       
   131   |   () draft
       
   132   | *  5:e49523854bc8 added d
       
   133   |/    () draft
       
   134   | x  4:c41c793e0ef1 added d
       
   135   |/    () draft
       
   136   o  3:ca1b80f7960a added c
       
   137   |   () draft
       
   138   o  2:b1661037fa25 added b
       
   139   |   () draft
       
   140   o  1:c7586e2a9264 added a
       
   141   |   () draft
       
   142   o  0:8fa14d15e168 added hgignore
       
   143       () draft
       
   144 
       
   145 Creating multiple content-divergence where resolution of last one results in
       
   146 conflicts and resolution of first one resulted in no new commit
       
   147 -----------------------------------------------------------------------------
       
   148 
       
   149   $ echo watbar > d
       
   150   $ hg amend
       
   151   $ hg up .^
       
   152   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   153   $ echo bar > c
       
   154   $ hg amend
       
   155   2 new orphan changesets
       
   156   $ hg up ca1b80f7960a --hidden
       
   157   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   158   working directory parent is obsolete! (ca1b80f7960a)
       
   159   (use 'hg evolve' to update to its successor: 2ba73e31f264)
       
   160   $ echo foobar > c
       
   161   $ hg amend
       
   162   2 new content-divergent changesets
       
   163   $ echo bar > c
       
   164   $ hg amend
       
   165 
       
   166   $ hg glog --hidden
       
   167   @  10:491e10505bae added c
       
   168   |   () draft
       
   169   | x  9:7398f702a162 added c
       
   170   |/    () draft
       
   171   | *  8:2ba73e31f264 added c
       
   172   |/    () draft
       
   173   | *  7:f0f1694f123e added d
       
   174   | |   () draft
       
   175   | | x  6:9c1631e352d9 added d
       
   176   | |/    () draft
       
   177   | | *  5:e49523854bc8 added d
       
   178   | |/    () draft
       
   179   | | x  4:c41c793e0ef1 added d
       
   180   | |/    () draft
       
   181   | x  3:ca1b80f7960a added c
       
   182   |/    () draft
       
   183   o  2:b1661037fa25 added b
       
   184   |   () draft
       
   185   o  1:c7586e2a9264 added a
       
   186   |   () draft
       
   187   o  0:8fa14d15e168 added hgignore
       
   188       () draft
       
   189 
       
   190   $ hg evolve --all --content-divergent
       
   191   merge:[8] added c
       
   192   with: [10] added c
       
   193   base: [3] added c
       
   194   updating to "local" side of the conflict: 2ba73e31f264
       
   195   merging "other" content-divergent changeset '491e10505bae'
       
   196   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   197   merge:[5] added d
       
   198   with: [7] added d
       
   199   base: [4] added d
       
   200   updating to "local" side of the conflict: e49523854bc8
       
   201   merging "other" content-divergent changeset 'f0f1694f123e'
       
   202   merging d
       
   203   warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
       
   204   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
       
   205   fix conflicts and see `hg help evolve.interrupted`
       
   206   [1]
       
   207 
       
   208   $ hg evolve --abort
       
   209   2 new content-divergent changesets
       
   210   evolve aborted
       
   211   working directory is now at 491e10505bae
       
   212 
       
   213   $ hg glog --hidden
       
   214   @  10:491e10505bae added c
       
   215   |   () draft
       
   216   | x  9:7398f702a162 added c
       
   217   |/    () draft
       
   218   | *  8:2ba73e31f264 added c
       
   219   |/    () draft
       
   220   | *  7:f0f1694f123e added d
       
   221   | |   () draft
       
   222   | | x  6:9c1631e352d9 added d
       
   223   | |/    () draft
       
   224   | | *  5:e49523854bc8 added d
       
   225   | |/    () draft
       
   226   | | x  4:c41c793e0ef1 added d
       
   227   | |/    () draft
       
   228   | x  3:ca1b80f7960a added c
       
   229   |/    () draft
       
   230   o  2:b1661037fa25 added b
       
   231   |   () draft
       
   232   o  1:c7586e2a9264 added a
       
   233   |   () draft
       
   234   o  0:8fa14d15e168 added hgignore
       
   235       () draft
       
   236 
       
   237   $ hg obslog -r . --all
       
   238   *  2ba73e31f264 (8) added c
       
   239   |
       
   240   | @  491e10505bae (10) added c
       
   241   | |
       
   242   | x  7398f702a162 (9) added c
       
   243   |/     rewritten(content) as 491e10505bae using amend by test (Thu Jan 01 00:00:00 1970 +0000)
       
   244   |
       
   245   x  ca1b80f7960a (3) added c
       
   246        rewritten(content) as 2ba73e31f264 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
       
   247        rewritten(content) as 7398f702a162 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
       
   248   
       
   249   $ cd ..
       
   250 
       
   251 Creating content-divergence on multiple parents when gca of divergent changesets
       
   252 is parent of one of the divergents and relocating leads to conflicts
       
   253 ---------------------------------------------------------------------------------
       
   254 
       
   255   $ hg init multiparent
       
   256   $ cd multiparent
       
   257   $ echo ".*\.orig" > .hgignore
       
   258   $ hg add .hgignore
       
   259   $ hg ci -m "added hgignore"
       
   260   $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done;
       
   261 
       
   262   $ hg glog
       
   263   @  4:c41c793e0ef1 added d
       
   264   |   () draft
       
   265   o  3:ca1b80f7960a added c
       
   266   |   () draft
       
   267   o  2:b1661037fa25 added b
       
   268   |   () draft
       
   269   o  1:c7586e2a9264 added a
       
   270   |   () draft
       
   271   o  0:8fa14d15e168 added hgignore
       
   272       () draft
       
   273 
       
   274   $ hg rebase -r . -d .^^^ --config extensions.rebase=
       
   275   rebasing 4:c41c793e0ef1 "added d" (tip)
       
   276   $ echo bar > c
       
   277   $ hg add c
       
   278   $ hg amend
       
   279 
       
   280   $ hg up --hidden c41c793e0ef1
       
   281   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   282   updated to hidden changeset c41c793e0ef1
       
   283   (hidden revision 'c41c793e0ef1' was rewritten as: 69bdd23a9b0d)
       
   284   working directory parent is obsolete! (c41c793e0ef1)
       
   285   (use 'hg evolve' to update to its successor: 69bdd23a9b0d)
       
   286   $ echo bar > d
       
   287   $ hg amend
       
   288   2 new content-divergent changesets
       
   289 
       
   290   $ hg glog
       
   291   @  7:e49523854bc8 added d
       
   292   |   () draft
       
   293   | *  6:69bdd23a9b0d added d
       
   294   | |   () draft
       
   295   o |  3:ca1b80f7960a added c
       
   296   | |   () draft
       
   297   o |  2:b1661037fa25 added b
       
   298   |/    () draft
       
   299   o  1:c7586e2a9264 added a
       
   300   |   () draft
       
   301   o  0:8fa14d15e168 added hgignore
       
   302       () draft
       
   303 
       
   304   $ hg evolve --content-divergent
       
   305   merge:[7] added d
       
   306   with: [6] added d
       
   307   base: [4] added d
       
   308   rebasing "other" content-divergent changeset 69bdd23a9b0d on ca1b80f7960a
       
   309   merging c
       
   310   warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
       
   311   fix conflicts and see `hg help evolve.interrupted`
       
   312   [1]
       
   313 
       
   314   $ hg evolve --abort
       
   315   evolve aborted
       
   316   working directory is now at e49523854bc8
       
   317 
       
   318   $ hg glog
       
   319   @  7:e49523854bc8 added d
       
   320   |   () draft
       
   321   | *  6:69bdd23a9b0d added d
       
   322   | |   () draft
       
   323   o |  3:ca1b80f7960a added c
       
   324   | |   () draft
       
   325   o |  2:b1661037fa25 added b
       
   326   |/    () draft
       
   327   o  1:c7586e2a9264 added a
       
   328   |   () draft
       
   329   o  0:8fa14d15e168 added hgignore
       
   330       () draft
       
   331 
       
   332 Creating content-divergence on multiple parents when gca of divergent changesets
       
   333 is parent of one of the divergents and merging divergent leads to conflicts
       
   334 ---------------------------------------------------------------------------------
       
   335 
       
   336   $ hg up 69bdd23a9b0d
       
   337   2 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   338   $ hg rm c
       
   339   $ echo wat > d
       
   340   $ hg amend
       
   341 
       
   342   $ hg glog
       
   343   @  8:33e4442acf98 added d
       
   344   |   () draft
       
   345   | *  7:e49523854bc8 added d
       
   346   | |   () draft
       
   347   | o  3:ca1b80f7960a added c
       
   348   | |   () draft
       
   349   | o  2:b1661037fa25 added b
       
   350   |/    () draft
       
   351   o  1:c7586e2a9264 added a
       
   352   |   () draft
       
   353   o  0:8fa14d15e168 added hgignore
       
   354       () draft
       
   355 
       
   356   $ hg evolve --content-divergent
       
   357   merge:[7] added d
       
   358   with: [8] added d
       
   359   base: [4] added d
       
   360   rebasing "other" content-divergent changeset 33e4442acf98 on ca1b80f7960a
       
   361   updating to "local" side of the conflict: e49523854bc8
       
   362   merging "other" content-divergent changeset 'a663d1567f0b'
       
   363   merging d
       
   364   warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
       
   365   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
       
   366   fix conflicts and see `hg help evolve.interrupted`
       
   367   [1]
       
   368 
       
   369   $ hg evolve --abort
       
   370   evolve aborted
       
   371   working directory is now at 33e4442acf98
       
   372 
       
   373   $ hg glog
       
   374   @  8:33e4442acf98 added d
       
   375   |   () draft
       
   376   | *  7:e49523854bc8 added d
       
   377   | |   () draft
       
   378   | o  3:ca1b80f7960a added c
       
   379   | |   () draft
       
   380   | o  2:b1661037fa25 added b
       
   381   |/    () draft
       
   382   o  1:c7586e2a9264 added a
       
   383   |   () draft
       
   384   o  0:8fa14d15e168 added hgignore
       
   385       () draft
       
   386   $ cd ..
       
   387 
       
   388 Tests for the --stop flag for `hg evolve` command while resolving content-divergence
       
   389 ==================================================================================
       
   390 
       
   391 The `--stop` flag stops the interrupted evolution and delete the state file so
       
   392 user can do other things and comeback and do evolution later on
       
   393 
       
   394 This is testing cases when `hg evolve` command is doing content-divergence resolution.
       
   395 
       
   396 Setup
       
   397 =====
       
   398 
       
   399   $ hg init stoprepo
       
   400   $ cd stoprepo
       
   401   $ echo ".*\.orig" > .hgignore
       
   402   $ hg add .hgignore
       
   403   $ hg ci -m "added hgignore"
       
   404   $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done;
       
   405 
       
   406   $ hg glog
       
   407   @  4:c41c793e0ef1 added d
       
   408   |   () draft
       
   409   o  3:ca1b80f7960a added c
       
   410   |   () draft
       
   411   o  2:b1661037fa25 added b
       
   412   |   () draft
       
   413   o  1:c7586e2a9264 added a
       
   414   |   () draft
       
   415   o  0:8fa14d15e168 added hgignore
       
   416       () draft
       
   417 
       
   418 Creating content divergence, resolution of which will lead to conflicts
       
   419 -----------------------------------------------------------------------
       
   420 
       
   421   $ echo bar > d
       
   422   $ hg amend
       
   423 
       
   424   $ hg up c41c793e0ef1 --hidden
       
   425   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   426   updated to hidden changeset c41c793e0ef1
       
   427   (hidden revision 'c41c793e0ef1' was rewritten as: e49523854bc8)
       
   428   working directory parent is obsolete! (c41c793e0ef1)
       
   429   (use 'hg evolve' to update to its successor: e49523854bc8)
       
   430 
       
   431   $ echo foobar > d
       
   432   $ hg amend
       
   433   2 new content-divergent changesets
       
   434   $ hg glog --hidden
       
   435   @  6:9c1631e352d9 added d
       
   436   |   () draft
       
   437   | *  5:e49523854bc8 added d
       
   438   |/    () draft
       
   439   | x  4:c41c793e0ef1 added d
       
   440   |/    () draft
       
   441   o  3:ca1b80f7960a added c
       
   442   |   () draft
       
   443   o  2:b1661037fa25 added b
       
   444   |   () draft
       
   445   o  1:c7586e2a9264 added a
       
   446   |   () draft
       
   447   o  0:8fa14d15e168 added hgignore
       
   448       () draft
       
   449 
       
   450   $ hg evolve --content-divergent
       
   451   merge:[6] added d
       
   452   with: [5] added d
       
   453   base: [4] added d
       
   454   merging "other" content-divergent changeset 'e49523854bc8'
       
   455   merging d
       
   456   warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
       
   457   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
       
   458   fix conflicts and see `hg help evolve.interrupted`
       
   459   [1]
       
   460 
       
   461   $ hg evolve --stop
       
   462   stopped the interrupted evolve
       
   463   working directory is now at 9c1631e352d9
       
   464 
       
   465   $ hg glog --hidden
       
   466   @  6:9c1631e352d9 added d
       
   467   |   () draft
       
   468   | *  5:e49523854bc8 added d
       
   469   |/    () draft
       
   470   | x  4:c41c793e0ef1 added d
       
   471   |/    () draft
       
   472   o  3:ca1b80f7960a added c
       
   473   |   () draft
       
   474   o  2:b1661037fa25 added b
       
   475   |   () draft
       
   476   o  1:c7586e2a9264 added a
       
   477   |   () draft
       
   478   o  0:8fa14d15e168 added hgignore
       
   479       () draft
       
   480 
       
   481 Content divergence with parent change which will result in conflicts while
       
   482 merging
       
   483 ---------------------------------------------------------------------------
       
   484 
       
   485   $ hg rebase -r . -d .^^^ --config extensions.rebase=
       
   486   rebasing 6:9c1631e352d9 "added d" (tip)
       
   487 
       
   488   $ hg glog
       
   489   @  7:517d4375cb72 added d
       
   490   |   () draft
       
   491   | *  5:e49523854bc8 added d
       
   492   | |   () draft
       
   493   | o  3:ca1b80f7960a added c
       
   494   | |   () draft
       
   495   | o  2:b1661037fa25 added b
       
   496   |/    () draft
       
   497   o  1:c7586e2a9264 added a
       
   498   |   () draft
       
   499   o  0:8fa14d15e168 added hgignore
       
   500       () draft
       
   501 
       
   502   $ hg evolve --content-divergent
       
   503   merge:[5] added d
       
   504   with: [7] added d
       
   505   base: [4] added d
       
   506   rebasing "other" content-divergent changeset 517d4375cb72 on ca1b80f7960a
       
   507   updating to "local" side of the conflict: e49523854bc8
       
   508   merging "other" content-divergent changeset '606ad96040fc'
       
   509   merging d
       
   510   warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
       
   511   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
       
   512   fix conflicts and see `hg help evolve.interrupted`
       
   513   [1]
       
   514 
       
   515   $ hg evolve --stop
       
   516   stopped the interrupted evolve
       
   517   working directory is now at 517d4375cb72
       
   518 
       
   519   $ hg glog
       
   520   @  7:517d4375cb72 added d
       
   521   |   () draft
       
   522   | *  5:e49523854bc8 added d
       
   523   | |   () draft
       
   524   | o  3:ca1b80f7960a added c
       
   525   | |   () draft
       
   526   | o  2:b1661037fa25 added b
       
   527   |/    () draft
       
   528   o  1:c7586e2a9264 added a
       
   529   |   () draft
       
   530   o  0:8fa14d15e168 added hgignore
       
   531       () draft
       
   532 
       
   533 Content-divergence with parent-change which will result in conflicts while
       
   534 relocation
       
   535 ---------------------------------------------------------------------------
       
   536 
       
   537   $ echo babar > c
       
   538   $ hg add c
       
   539   $ hg amend
       
   540   $ hg glog
       
   541   @  8:8fd1c4bd144c added d
       
   542   |   () draft
       
   543   | *  5:e49523854bc8 added d
       
   544   | |   () draft
       
   545   | o  3:ca1b80f7960a added c
       
   546   | |   () draft
       
   547   | o  2:b1661037fa25 added b
       
   548   |/    () draft
       
   549   o  1:c7586e2a9264 added a
       
   550   |   () draft
       
   551   o  0:8fa14d15e168 added hgignore
       
   552       () draft
       
   553 
       
   554   $ hg evolve --content-divergent
       
   555   merge:[5] added d
       
   556   with: [8] added d
       
   557   base: [4] added d
       
   558   rebasing "other" content-divergent changeset 8fd1c4bd144c on ca1b80f7960a
       
   559   merging c
       
   560   warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
       
   561   fix conflicts and see `hg help evolve.interrupted`
       
   562   [1]
       
   563 
       
   564   $ hg diff
       
   565   diff -r ca1b80f7960a c
       
   566   --- a/c	Thu Jan 01 00:00:00 1970 +0000
       
   567   +++ b/c	Thu Jan 01 00:00:00 1970 +0000
       
   568   @@ -1,1 +1,5 @@
       
   569   +<<<<<<< destination: ca1b80f7960a - test: added c
       
   570    foo
       
   571   +=======
       
   572   +babar
       
   573   +>>>>>>> evolving:    8fd1c4bd144c - test: added d
       
   574   diff -r ca1b80f7960a d
       
   575   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
       
   576   +++ b/d	Thu Jan 01 00:00:00 1970 +0000
       
   577   @@ -0,0 +1,1 @@
       
   578   +foobar
       
   579 
       
   580   $ hg evolve --stop
       
   581   stopped the interrupted evolve
       
   582   working directory is now at ca1b80f7960a
       
   583 
       
   584 XXX: we should have preserved the wdir to be at rev 8
       
   585   $ hg glog
       
   586   *  8:8fd1c4bd144c added d
       
   587   |   () draft
       
   588   | *  5:e49523854bc8 added d
       
   589   | |   () draft
       
   590   | @  3:ca1b80f7960a added c
       
   591   | |   () draft
       
   592   | o  2:b1661037fa25 added b
       
   593   |/    () draft
       
   594   o  1:c7586e2a9264 added a
       
   595   |   () draft
       
   596   o  0:8fa14d15e168 added hgignore
       
   597       () draft
       
   598   $ cd ..