Mercurial > public > mercurial-scm > hg-stable
view tests/test-walkrepo.py @ 7415:6163ef936a00
protocol: use changegroupsubset() if possible (issue1389)
Due to the fix to the pull race, to avoid sending unnecessary
changesets, use changegroupsubset if possible.
This will increase the load on the server.
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Tue, 25 Nov 2008 23:26:33 +0100 |
parents | b1aea76f7001 |
children | 8649b2a3de75 85dc88630beb |
line wrap: on
line source
import os import os.path from mercurial import hg, ui from mercurial.util import walkrepos, set, frozenset from os import mkdir, chdir from os.path import join as pjoin u = ui.ui() sym = hasattr(os, 'symlink') and hasattr(os.path, 'samestat') hg.repository(u, 'top1', create=1) mkdir('subdir') chdir('subdir') hg.repository(u, 'sub1', create=1) chdir('sub1') hg.repository(u, 'inside_sub1', create=1) chdir('.hg') hg.repository(u, 'patches', create=1) chdir(os.path.pardir) chdir(os.path.pardir) mkdir('subsubdir') chdir('subsubdir') hg.repository(u, 'subsub1', create=1) chdir(os.path.pardir) if sym: os.symlink(os.path.pardir, 'circle') os.symlink(pjoin('subsubdir', 'subsub1'), 'subsub1') def runtest(): reposet = frozenset(walkrepos('.', followsym=True)) if sym and (len(reposet) != 5): print "reposet = %r" % (reposet,) raise SystemExit(1, "Found %d repositories when I should have found 5" % (len(reposet),)) if (not sym) and (len(reposet) != 4): print "reposet = %r" % (reposet,) raise SystemExit(1, "Found %d repositories when I should have found 4" % (len(reposet),)) sub1set = frozenset((pjoin('.', 'sub1'), pjoin('.', 'circle', 'subdir', 'sub1'))) if len(sub1set & reposet) != 1: print "sub1set = %r" % (sub1set,) print "reposet = %r" % (reposet,) raise SystemExit(1, "sub1set and reposet should have exactly one path in common.") sub2set = frozenset((pjoin('.', 'subsub1'), pjoin('.', 'subsubdir', 'subsub1'))) if len(sub2set & reposet) != 1: print "sub2set = %r" % (sub2set,) print "reposet = %r" % (reposet,) raise SystemExit(1, "sub1set and reposet should have exactly one path in common.") sub3 = pjoin('.', 'circle', 'top1') if sym and not (sub3 in reposet): print "reposet = %r" % (reposet,) raise SystemExit(1, "Symbolic links are supported and %s is not in reposet" % (sub3,)) runtest() if sym: # Simulate not having symlinks. del os.path.samestat sym = False runtest()