tests/test-subrepo-svn.t
changeset 26374 048e41e9a6ac
parent 25382 6084926366b9
child 28533 dfd5a6830ea7
equal deleted inserted replaced
26373:aa610ffad4e8 26374:048e41e9a6ac
     4 #if windows
     4 #if windows
     5   $ SVNREPOURL=file:///`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
     5   $ SVNREPOURL=file:///`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
     6 #else
     6 #else
     7   $ SVNREPOURL=file://`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
     7   $ SVNREPOURL=file://`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
     8 #endif
     8 #endif
       
     9 
       
    10   $ filter_svn_output () {
       
    11   >     egrep -v 'Committing|Transmitting|Updating' || true
       
    12   > }
     9 
    13 
    10 create subversion repo
    14 create subversion repo
    11 
    15 
    12   $ WCROOT="`pwd`/svn-wc"
    16   $ WCROOT="`pwd`/svn-wc"
    13   $ svnadmin create svn-repo
    17   $ svnadmin create svn-repo
    22   $ mkdir externals
    26   $ mkdir externals
    23   $ echo other > externals/other
    27   $ echo other > externals/other
    24   $ svn add externals
    28   $ svn add externals
    25   A         externals
    29   A         externals
    26   A         externals/other (glob)
    30   A         externals/other (glob)
    27   $ svn ci -m 'Add alpha'
    31   $ svn ci -qm 'Add alpha'
    28   Adding         externals
       
    29   Adding         externals/other (glob)
       
    30   Adding         src
       
    31   Adding         src/alpha (glob)
       
    32   Transmitting file data ..
       
    33   Committed revision 1.
       
    34   $ svn up -q
    32   $ svn up -q
    35   $ echo "externals -r1 $SVNREPOURL/externals" > extdef
    33   $ echo "externals -r1 $SVNREPOURL/externals" > extdef
    36   $ svn propset -F extdef svn:externals src
    34   $ svn propset -F extdef svn:externals src
    37   property 'svn:externals' set on 'src'
    35   property 'svn:externals' set on 'src'
    38   $ svn ci -m 'Setting externals'
    36   $ svn ci -qm 'Setting externals'
    39   Sending        src
       
    40   
       
    41   Committed revision 2.
       
    42   $ cd ..
    37   $ cd ..
    43 
    38 
    44 create hg repo
    39 create hg repo
    45 
    40 
    46   $ mkdir sub
    41   $ mkdir sub
    96    1
    91    1
    97   branch: default
    92   branch: default
    98   commit: 1 modified, 1 subrepos
    93   commit: 1 modified, 1 subrepos
    99   update: (current)
    94   update: (current)
   100   phases: 2 draft
    95   phases: 2 draft
   101   $ hg commit --subrepos -m 'Message!' | grep -v Updating
    96   $ hg commit --subrepos -m 'Message!' | filter_svn_output
   102   committing subrepository s
    97   committing subrepository s
   103   Sending*s/alpha (glob)
    98   Sending*s/alpha (glob)
   104   Transmitting file data .
       
   105   Committed revision 3.
    99   Committed revision 3.
   106   
   100   
   107   Fetching external item into '*s/externals'* (glob)
   101   Fetching external item into '*s/externals'* (glob)
   108   External at revision 1.
   102   External at revision 1.
   109   
   103   
   126   $ svn revert s/alpha > /dev/null
   120   $ svn revert s/alpha > /dev/null
   127 
   121 
   128 add an unrelated revision in svn and update the subrepo to without
   122 add an unrelated revision in svn and update the subrepo to without
   129 bringing any changes.
   123 bringing any changes.
   130 
   124 
   131   $ svn mkdir "$SVNREPOURL/unrelated" -m 'create unrelated'
   125   $ svn mkdir "$SVNREPOURL/unrelated" -qm 'create unrelated'
   132   
       
   133   Committed revision 4.
       
   134   $ svn up -q s
   126   $ svn up -q s
   135   $ hg sum
   127   $ hg sum
   136   parent: 2:* tip (glob)
   128   parent: 2:* tip (glob)
   137    Message!
   129    Message!
   138   branch: default
   130   branch: default
   151   $ cd "$WCROOT/src"
   143   $ cd "$WCROOT/src"
   152   $ svn up -q
   144   $ svn up -q
   153   $ echo xyz >> alpha
   145   $ echo xyz >> alpha
   154   $ svn propset svn:mime-type 'text/xml' alpha
   146   $ svn propset svn:mime-type 'text/xml' alpha
   155   property 'svn:mime-type' set on 'alpha'
   147   property 'svn:mime-type' set on 'alpha'
   156   $ svn ci -m 'amend a from svn'
   148   $ svn ci -qm 'amend a from svn'
   157   Sending        *alpha (glob)
       
   158   Transmitting file data .
       
   159   Committed revision 5.
       
   160   $ cd ../../sub/t
   149   $ cd ../../sub/t
   161 
   150 
   162 this commit from hg will fail
   151 this commit from hg will fail
   163 
   152 
   164   $ echo zzz >> s/alpha
   153   $ echo zzz >> s/alpha
   427   $ mkdir dir
   416   $ mkdir dir
   428   $ echo epsilon.py > dir/epsilon.py
   417   $ echo epsilon.py > dir/epsilon.py
   429   $ svn add dir
   418   $ svn add dir
   430   A         dir
   419   A         dir
   431   A         dir/epsilon.py (glob)
   420   A         dir/epsilon.py (glob)
   432   $ svn ci -m 'Add dir/epsilon.py'
   421   $ svn ci -qm 'Add dir/epsilon.py'
   433   Adding         *dir (glob)
       
   434   Adding         *dir/epsilon.py (glob)
       
   435   Transmitting file data .
       
   436   Committed revision 6.
       
   437   $ cd ../..
   422   $ cd ../..
   438   $ hg init rebaserepo
   423   $ hg init rebaserepo
   439   $ cd rebaserepo
   424   $ cd rebaserepo
   440   $ svn co -r5 --quiet "$SVNREPOURL"/src s
   425   $ svn co -r5 --quiet "$SVNREPOURL"/src s
   441   $ echo "s =        [svn]       $SVNREPOURL/src" >> .hgsub
   426   $ echo "s =        [svn]       $SVNREPOURL/src" >> .hgsub
   493   [255]
   478   [255]
   494 
   479 
   495 Point to a Subversion branch which has since been deleted and recreated
   480 Point to a Subversion branch which has since been deleted and recreated
   496 First, create that condition in the repository.
   481 First, create that condition in the repository.
   497 
   482 
   498   $ hg ci --subrepos -m cleanup | grep -v Updating
   483   $ hg ci --subrepos -m cleanup | filter_svn_output
   499   committing subrepository obstruct
   484   committing subrepository obstruct
   500   Sending        obstruct/other (glob)
   485   Sending        obstruct/other (glob)
   501   Transmitting file data .
       
   502   Committed revision 7.
   486   Committed revision 7.
   503   At revision 7.
   487   At revision 7.
   504   $ svn mkdir -m "baseline" $SVNREPOURL/trunk
   488   $ svn mkdir -qm "baseline" $SVNREPOURL/trunk
   505   
   489   $ svn copy -qm "initial branch" $SVNREPOURL/trunk $SVNREPOURL/branch
   506   Committed revision 8.
       
   507   $ svn copy -m "initial branch" $SVNREPOURL/trunk $SVNREPOURL/branch
       
   508   
       
   509   Committed revision 9.
       
   510   $ svn co --quiet "$SVNREPOURL"/branch tempwc
   490   $ svn co --quiet "$SVNREPOURL"/branch tempwc
   511   $ cd tempwc
   491   $ cd tempwc
   512   $ echo "something old" > somethingold
   492   $ echo "something old" > somethingold
   513   $ svn add somethingold
   493   $ svn add somethingold
   514   A         somethingold
   494   A         somethingold
   515   $ svn ci -m 'Something old'
   495   $ svn ci -qm 'Something old'
   516   Adding         somethingold
   496   $ svn rm -qm "remove branch" $SVNREPOURL/branch
   517   Transmitting file data .
   497   $ svn copy -qm "recreate branch" $SVNREPOURL/trunk $SVNREPOURL/branch
   518   Committed revision 10.
       
   519   $ svn rm -m "remove branch" $SVNREPOURL/branch
       
   520   
       
   521   Committed revision 11.
       
   522   $ svn copy -m "recreate branch" $SVNREPOURL/trunk $SVNREPOURL/branch
       
   523   
       
   524   Committed revision 12.
       
   525   $ svn up -q
   498   $ svn up -q
   526   $ echo "something new" > somethingnew
   499   $ echo "something new" > somethingnew
   527   $ svn add somethingnew
   500   $ svn add somethingnew
   528   A         somethingnew
   501   A         somethingnew
   529   $ svn ci -m 'Something new'
   502   $ svn ci -qm 'Something new'
   530   Adding         somethingnew
       
   531   Transmitting file data .
       
   532   Committed revision 13.
       
   533   $ cd ..
   503   $ cd ..
   534   $ rm -rf tempwc
   504   $ rm -rf tempwc
   535   $ svn co "$SVNREPOURL/branch"@10 recreated
   505   $ svn co "$SVNREPOURL/branch"@10 recreated
   536   A    recreated/somethingold (glob)
   506   A    recreated/somethingold (glob)
   537   Checked out revision 10.
   507   Checked out revision 10.
   608   $ echo a > trunk/subdir/a
   578   $ echo a > trunk/subdir/a
   609   $ svn add trunk/subdir branches
   579   $ svn add trunk/subdir branches
   610   A         trunk/subdir (glob)
   580   A         trunk/subdir (glob)
   611   A         trunk/subdir/a (glob)
   581   A         trunk/subdir/a (glob)
   612   A         branches
   582   A         branches
   613   $ svn ci -m addsubdir
   583   $ svn ci -qm addsubdir
   614   Adding         branches
   584   $ svn cp -qm branchtrunk $SVNREPOURL/trunk $SVNREPOURL/branches/somebranch
   615   Adding         trunk/subdir (glob)
       
   616   Adding         trunk/subdir/a (glob)
       
   617   Transmitting file data .
       
   618   Committed revision 14.
       
   619   $ svn cp -m branchtrunk $SVNREPOURL/trunk $SVNREPOURL/branches/somebranch
       
   620   
       
   621   Committed revision 15.
       
   622   $ cd ..
   585   $ cd ..
   623 
   586 
   624   $ hg init repo2
   587   $ hg init repo2
   625   $ cd repo2
   588   $ cd repo2
   626   $ svn co $SVNREPOURL/branches/somebranch/subdir
   589   $ svn co $SVNREPOURL/branches/somebranch/subdir
   650   A         .hg
   613   A         .hg
   651   A         .hg/hgrc (glob)
   614   A         .hg/hgrc (glob)
   652   A         sub
   615   A         sub
   653   A         sub/.hg (glob)
   616   A         sub/.hg (glob)
   654   A         sub/.hg/hgrc (glob)
   617   A         sub/.hg/hgrc (glob)
   655   $ svn ci -m 'add .hg/hgrc to be sanitized at hg update'
   618   $ svn ci -qm 'add .hg/hgrc to be sanitized at hg update'
   656   Adding         .hg
       
   657   Adding         .hg/hgrc (glob)
       
   658   Adding         sub
       
   659   Adding         sub/.hg (glob)
       
   660   Adding         sub/.hg/hgrc (glob)
       
   661   Transmitting file data ..
       
   662   Committed revision 16.
       
   663   $ svn up -q
   619   $ svn up -q
   664   $ cd ..
   620   $ cd ..
   665   $ hg commit -S -m 'commit with svn revision including .hg/hgrc'
   621   $ hg commit -S -m 'commit with svn revision including .hg/hgrc'
   666   $ grep ' s$' .hgsubstate
   622   $ grep ' s$' .hgsubstate
   667   16 s
   623   16 s