tests/test-topic-push.t
changeset 1886 0504e76bfbd9
child 1887 68125d026b07
equal deleted inserted replaced
1885:d49f75eab6a3 1886:0504e76bfbd9
       
     1   $ . "$TESTDIR/testlib"
       
     2 
       
     3   $ cat << EOF >> $HGRCPATH
       
     4   > [ui]
       
     5   > logtemplate = {rev} {branch} {get(namespaces, "topics")} {phase} {desc|firstline}\n
       
     6   > [ui]
       
     7   > ssh =python "$RUNTESTDIR/dummyssh"
       
     8   > EOF
       
     9 
       
    10   $ hg init main
       
    11   $ hg init draft
       
    12   $ cat << EOF >> draft/.hg/hgrc
       
    13   > [phases]
       
    14   > publish=False
       
    15   > EOF
       
    16   $ hg clone main client
       
    17   updating to branch default
       
    18   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    19   $ cat << EOF >> client/.hg/hgrc
       
    20   > [paths]
       
    21   > draft=../draft
       
    22   > EOF
       
    23 
       
    24 
       
    25 Testing core behavior to make sure we did not break anything
       
    26 ============================================================
       
    27 
       
    28 Pushing a first changeset
       
    29 
       
    30   $ cd client
       
    31   $ echo aaa > aaa
       
    32   $ hg add aaa
       
    33   $ hg commit -m 'CA'
       
    34   $ hg outgoing -G
       
    35   comparing with $TESTTMP/main
       
    36   searching for changes
       
    37   @  0 default  draft CA
       
    38   
       
    39   $ hg push
       
    40   pushing to $TESTTMP/main
       
    41   searching for changes
       
    42   adding changesets
       
    43   adding manifests
       
    44   adding file changes
       
    45   added 1 changesets with 1 changes to 1 files
       
    46 
       
    47 Pushing two heads
       
    48 
       
    49   $ echo aaa > bbb
       
    50   $ hg add bbb
       
    51   $ hg commit -m 'CB'
       
    52   $ echo aaa > ccc
       
    53   $ hg up 'desc(CA)'
       
    54   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
    55   $ hg add ccc
       
    56   $ hg commit -m 'CC'
       
    57   created new head
       
    58   $ hg outgoing -G
       
    59   comparing with $TESTTMP/main
       
    60   searching for changes
       
    61   @  2 default  draft CC
       
    62   
       
    63   o  1 default  draft CB
       
    64   
       
    65   $ hg push
       
    66   pushing to $TESTTMP/main
       
    67   searching for changes
       
    68   abort: push creates new remote head 9fe81b7f425d!
       
    69   (merge or see "hg help push" for details about pushing new heads)
       
    70   [255]
       
    71   $ hg outgoing -r 'desc(CB)' -G
       
    72   comparing with $TESTTMP/main
       
    73   searching for changes
       
    74   o  1 default  draft CB
       
    75   
       
    76   $ hg push -r 'desc(CB)'
       
    77   pushing to $TESTTMP/main
       
    78   searching for changes
       
    79   adding changesets
       
    80   adding manifests
       
    81   adding file changes
       
    82   added 1 changesets with 1 changes to 1 files
       
    83 
       
    84 Pushing a new branch
       
    85 
       
    86   $ hg branch mountain
       
    87   marked working directory as branch mountain
       
    88   (branches are permanent and global, did you want a bookmark?)
       
    89   $ hg commit --amend
       
    90   $ hg outgoing -G
       
    91   comparing with $TESTTMP/main
       
    92   searching for changes
       
    93   @  4 mountain  draft CC
       
    94   
       
    95   $ hg push 
       
    96   pushing to $TESTTMP/main
       
    97   searching for changes
       
    98   abort: push creates new remote branches: mountain!
       
    99   (use 'hg push --new-branch' to create new remote branches)
       
   100   [255]
       
   101   $ hg push --new-branch
       
   102   pushing to $TESTTMP/main
       
   103   searching for changes
       
   104   adding changesets
       
   105   adding manifests
       
   106   adding file changes
       
   107   added 1 changesets with 1 changes to 1 files (+1 heads)
       
   108   2 new obsolescence markers
       
   109 
       
   110 Including on non-publishing
       
   111 
       
   112   $ hg push --new-branch draft
       
   113   pushing to $TESTTMP/draft
       
   114   searching for changes
       
   115   adding changesets
       
   116   adding manifests
       
   117   adding file changes
       
   118   added 3 changesets with 3 changes to 3 files (+1 heads)
       
   119   2 new obsolescence markers
       
   120 
       
   121 Testing topic behavior
       
   122 ======================
       
   123 
       
   124 Local peer tests
       
   125 ----------------
       
   126 
       
   127   $ hg up -r 'desc(CA)'
       
   128   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   129   $ hg topic babar
       
   130   $ echo aaa > ddd
       
   131   $ hg add ddd
       
   132   $ hg commit -m 'CD'
       
   133   created new head
       
   134   $ hg log -G # keep track of phase because I saw some strange bug during developement
       
   135   @  5 default babar draft CD
       
   136   |
       
   137   | o  4 mountain  public CC
       
   138   |/
       
   139   | o  1 default  public CB
       
   140   |/
       
   141   o  0 default  public CA
       
   142   
       
   143 
       
   144 Pushing a new topic to a non publishing server should not be seen as a new head
       
   145 
       
   146   $ hg push draft
       
   147   pushing to $TESTTMP/draft
       
   148   searching for changes
       
   149   adding changesets
       
   150   adding manifests
       
   151   adding file changes
       
   152   added 1 changesets with 1 changes to 1 files (+1 heads)
       
   153   $ hg log -G
       
   154   @  5 default babar draft CD
       
   155   |
       
   156   | o  4 mountain  public CC
       
   157   |/
       
   158   | o  1 default  public CB
       
   159   |/
       
   160   o  0 default  public CA
       
   161   
       
   162 
       
   163 Pushing a new topic to a publishing server should be seen as a new head
       
   164 
       
   165   $ hg push
       
   166   pushing to $TESTTMP/main
       
   167   searching for changes
       
   168   abort: push creates new remote head 67f579af159d!
       
   169   (merge or see "hg help push" for details about pushing new heads)
       
   170   [255]
       
   171   $ hg log -G
       
   172   @  5 default babar draft CD
       
   173   |
       
   174   | o  4 mountain  public CC
       
   175   |/
       
   176   | o  1 default  public CB
       
   177   |/
       
   178   o  0 default  public CA
       
   179   
       
   180 
       
   181 wireprotocol tests
       
   182 ------------------
       
   183 
       
   184   $ hg up -r 'desc(CA)'
       
   185   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   186   $ hg topic celeste
       
   187   $ echo aaa > eee
       
   188   $ hg add eee
       
   189   $ hg commit -m 'CE'
       
   190   created new head
       
   191   $ hg log -G # keep track of phase because I saw some strange bug during developement
       
   192   @  6 default celeste draft CE
       
   193   |
       
   194   | o  5 default babar draft CD
       
   195   |/
       
   196   | o  4 mountain  public CC
       
   197   |/
       
   198   | o  1 default  public CB
       
   199   |/
       
   200   o  0 default  public CA
       
   201   
       
   202 
       
   203 Pushing a new topic to a non publishing server should not be seen as a new head
       
   204 
       
   205   $ hg push ssh://user@dummy/draft
       
   206   pushing to ssh://user@dummy/draft
       
   207   searching for changes
       
   208   remote: adding changesets
       
   209   remote: adding manifests
       
   210   remote: adding file changes
       
   211   remote: added 1 changesets with 1 changes to 1 files (+1 heads)
       
   212   $ hg log -G
       
   213   @  6 default celeste draft CE
       
   214   |
       
   215   | o  5 default babar draft CD
       
   216   |/
       
   217   | o  4 mountain  public CC
       
   218   |/
       
   219   | o  1 default  public CB
       
   220   |/
       
   221   o  0 default  public CA
       
   222   
       
   223 
       
   224 Pushing a new topic to a publishing server should be seen as a new head
       
   225 
       
   226   $ hg push ssh://user@dummy/main
       
   227   pushing to ssh://user@dummy/main
       
   228   searching for changes
       
   229   abort: push creates new remote head 67f579af159d!
       
   230   (merge or see "hg help push" for details about pushing new heads)
       
   231   [255]
       
   232   $ hg log -G
       
   233   @  6 default celeste draft CE
       
   234   |
       
   235   | o  5 default babar draft CD
       
   236   |/
       
   237   | o  4 mountain  public CC
       
   238   |/
       
   239   | o  1 default  public CB
       
   240   |/
       
   241   o  0 default  public CA
       
   242   
       
   243 
       
   244 Check that we reject multiple head on the same topic
       
   245 ----------------------------------------------------
       
   246 
       
   247   $ hg up 'desc(CB)'
       
   248   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   249   $ hg topic babar
       
   250   $ echo aaa > fff
       
   251   $ hg add fff
       
   252   $ hg commit -m 'CF'
       
   253   $ hg log -G
       
   254   @  7 default babar draft CF
       
   255   |
       
   256   | o  6 default celeste draft CE
       
   257   | |
       
   258   | | o  5 default babar draft CD
       
   259   | |/
       
   260   | | o  4 mountain  public CC
       
   261   | |/
       
   262   o |  1 default  public CB
       
   263   |/
       
   264   o  0 default  public CA
       
   265   
       
   266 
       
   267   $ hg push draft
       
   268   pushing to $TESTTMP/draft
       
   269   searching for changes
       
   270   abort: push creates new remote head f0bc62a661be on branch 'default:babar'!
       
   271   (merge or see "hg help push" for details about pushing new heads)
       
   272   [255]
       
   273 
       
   274 Multiple head on a branch merged in a topic changesets
       
   275 ------------------------------------------------------------------------
       
   276 
       
   277 
       
   278   $ hg up 'desc(CA)'
       
   279   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
   280   $ echo aaa > ggg
       
   281   $ hg add ggg
       
   282   $ hg commit -m 'CG'
       
   283   created new head
       
   284   $ hg up 'desc(CF)'
       
   285   switching to topic babar
       
   286   2 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   287   $ hg merge 'desc(CG)'
       
   288   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   289   (branch merge, don't forget to commit)
       
   290   $ hg commit -m 'CM'
       
   291   $ hg log -G
       
   292   @    9 default babar draft CM
       
   293   |\
       
   294   | o  8 default  draft CG
       
   295   | |
       
   296   o |  7 default babar draft CF
       
   297   | |
       
   298   | | o  6 default celeste draft CE
       
   299   | |/
       
   300   | | o  5 default babar draft CD
       
   301   | |/
       
   302   | | o  4 mountain  public CC
       
   303   | |/
       
   304   o |  1 default  public CB
       
   305   |/
       
   306   o  0 default  public CA
       
   307   
       
   308 
       
   309 Reject when pushing to draft
       
   310 
       
   311   $ hg push draft -r .
       
   312   pushing to $TESTTMP/draft
       
   313   searching for changes
       
   314   abort: push creates new remote head 4937c4cad39e!
       
   315   (merge or see "hg help push" for details about pushing new heads)
       
   316   [255]
       
   317 
       
   318 
       
   319 Reject when pushing to publishing
       
   320 
       
   321   $ hg push -r .
       
   322   pushing to $TESTTMP/main
       
   323   searching for changes
       
   324   adding changesets
       
   325   adding manifests
       
   326   adding file changes
       
   327   added 3 changesets with 2 changes to 2 files
       
   328 
       
   329   $ cd ..
       
   330