Mercurial > hg
changeset 13532:d4c2f2ac3ff7
Merge with stable
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Fri, 04 Mar 2011 14:11:15 +0100 |
parents | 5f69af0d2fb3 (current diff) 67fbe566eff1 (diff) |
children | b4f5f76386f2 |
files | mercurial/subrepo.py |
diffstat | 2 files changed, 59 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/subrepo.py Thu Mar 03 22:41:38 2011 +0100 +++ b/mercurial/subrepo.py Fri Mar 04 14:11:15 2011 +0100 @@ -625,7 +625,8 @@ def get(self, state, overwrite=False): if overwrite: self._svncommand(['revert', '--recursive']) - status = self._svncommand(['checkout', state[0], '--revision', state[1]]) + status = self._svncommand(['checkout', '--force', state[0], + '--revision', state[1]]) if not re.search('Checked out revision [0-9]+.', status): raise util.Abort(status.splitlines()[-1]) self._ui.status(status)
--- a/tests/test-subrepo-svn.t Thu Mar 03 22:41:38 2011 +0100 +++ b/tests/test-subrepo-svn.t Fri Mar 04 14:11:15 2011 +0100 @@ -438,3 +438,60 @@ $ svnversion 2 $ cd .. + +Test case where subversion would fail to update the subrepo because there +are unknown directories being replaced by tracked ones (happens with rebase). + + $ cd $WCROOT/src + $ mkdir dir + $ echo epsilon.py > dir/epsilon.py + $ svn add dir + A dir + A dir/epsilon.py + $ svn ci -m 'Add dir/epsilon.py' + Adding src/dir + Adding src/dir/epsilon.py + Transmitting file data . + Committed revision 6. + $ cd ../.. + $ hg init rebaserepo + $ cd rebaserepo + $ svn co -r5 --quiet "$SVNREPO"/src s + $ echo "s = [svn] $SVNREPO/src" >> .hgsub + $ hg add .hgsub + $ hg ci -m addsub + committing subrepository s + $ echo a > a + $ hg ci -Am adda + adding a + $ hg up 0 + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ svn up -r6 s + A s/dir + A s/dir/epsilon.py + + Fetching external item into 's/externals' + Updated external to revision 1. + + Updated to revision 6. + $ hg ci -m updatesub + committing subrepository s + created new head + $ echo pyc > s/dir/epsilon.pyc + $ hg up 1 + D $TESTTMP/rebaserepo/s/dir + + Fetching external item into '$TESTTMP/rebaserepo/s/externals' + Checked out external at revision 1. + + Checked out revision 5. + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg up 2 + E $TESTTMP/rebaserepo/s/dir + A $TESTTMP/rebaserepo/s/dir/epsilon.py + + Fetching external item into '$TESTTMP/rebaserepo/s/externals' + Checked out external at revision 1. + + Checked out revision 6. + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved