--- a/tests/test-subrepo-svn.t Thu Jun 30 12:55:19 2011 -0500
+++ b/tests/test-subrepo-svn.t Thu Jun 30 13:22:12 2011 -0500
@@ -519,3 +519,67 @@
$ hg co tip
abort: crosses branches (merge branches or use --clean to discard changes)
[255]
+
+Point to a Subversion branch which has since been deleted and recreated
+First, create that condition in the repository.
+
+ $ hg ci -m cleanup
+ committing subrepository obstruct
+ Sending obstruct/other
+ Transmitting file data .
+ Committed revision 7.
+ At revision 7.
+ $ svn mkdir -m "baseline" $SVNREPO/trunk
+
+ Committed revision 8.
+ $ svn copy -m "initial branch" $SVNREPO/trunk $SVNREPO/branch
+
+ Committed revision 9.
+ $ svn co --quiet "$SVNREPO"/branch tempwc
+ $ cd tempwc
+ $ echo "something old" > somethingold
+ $ svn add somethingold
+ A somethingold
+ $ svn ci -m 'Something old'
+ Adding somethingold
+ Transmitting file data .
+ Committed revision 10.
+ $ svn rm -m "remove branch" $SVNREPO/branch
+
+ Committed revision 11.
+ $ svn copy -m "recreate branch" $SVNREPO/trunk $SVNREPO/branch
+
+ Committed revision 12.
+ $ svn up
+ D somethingold
+ Updated to revision 12.
+ $ echo "something new" > somethingnew
+ $ svn add somethingnew
+ A somethingnew
+ $ svn ci -m 'Something new'
+ Adding somethingnew
+ Transmitting file data .
+ Committed revision 13.
+ $ cd ..
+ $ rm -rf tempwc
+ $ svn co "$SVNREPO/branch"@10 recreated
+ A recreated/somethingold
+ Checked out revision 10.
+ $ echo "recreated = [svn] $SVNREPO/branch" >> .hgsub
+ $ hg ci -m addsub
+ committing subrepository recreated
+ $ cd recreated
+ $ svn up
+ D somethingold
+ A somethingnew
+ Updated to revision 13.
+ $ cd ..
+ $ hg ci -m updatesub
+ committing subrepository recreated
+ $ hg up -r-2
+ D $TESTTMP/rebaserepo/recreated/somethingnew
+ A $TESTTMP/rebaserepo/recreated/somethingold
+ Checked out revision 10.
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ test -e recreated/somethingold
+