def url_handler(repo_type, url, ui=None): if repo_type == 'hg': from rhodecode.lib.vcs.backends.hg.repository import MercurialRepository from mercurial.httppeer import httppeer if url.startswith('http'): ## initially check if it's at least the proper URL ## or does it pass basic auth MercurialRepository._check_url(url) httppeer(ui, url)._capabilities() elif url.startswith('svn+http'): from hgsubversion.svnrepo import svnremoterepo svnremoterepo(ui, url).capabilities elif url.startswith('git+http'): raise NotImplementedError() else: raise Exception('clone from URI %s not allowed' % (url)) elif repo_type == 'git': from rhodecode.lib.vcs.backends.git.repository import GitRepository if url.startswith('http'): ## initially check if it's at least the proper URL ## or does it pass basic auth GitRepository._check_url(url) elif url.startswith('svn+http'): raise NotImplementedError() elif url.startswith('hg+http'): raise NotImplementedError() else: raise Exception('clone from URI %s not allowed' % (url))
def http_peer_instance(orig, ui, path, create): """A wrapper for hg.httppeer.instance that supports creating repositories.""" if create: if path.startswith("https:"): inst = httppeer.httpspeer(ui, path) else: inst = httppeer.httppeer(ui, path) inst.requirecap("init", _("repo init")) inst._call("init") else: inst = orig(ui, path, create) return inst
def main(): ui = uimod.ui() # Needed so we can open a local repo with obsstore without a warning. ui.setconfig(b'experimental', b'evolution.createmarkers', True) checkzobject(badpeer()) ziverify.verifyClass(repository.ipeerbase, httppeer.httppeer) checkzobject(httppeer.httppeer(None, None, None, dummyopener(), None, None)) ziverify.verifyClass(repository.ipeerv2, httppeer.httpv2peer) checkzobject(httppeer.httpv2peer(None, b'', b'', None, None, None)) ziverify.verifyClass(repository.ipeerbase, localrepo.localpeer) checkzobject(localrepo.localpeer(dummyrepo())) ziverify.verifyClass(repository.ipeercommandexecutor, localrepo.localcommandexecutor) checkzobject(localrepo.localcommandexecutor(None)) ziverify.verifyClass(repository.ipeercommandexecutor, wireprotov1peer.peerexecutor) checkzobject(wireprotov1peer.peerexecutor(None)) ziverify.verifyClass(repository.ipeerbase, sshpeer.sshv1peer) checkzobject( sshpeer.sshv1peer(ui, b'ssh://localhost/foo', b'', dummypipe(), dummypipe(), None, None)) ziverify.verifyClass(repository.ipeerbase, sshpeer.sshv2peer) checkzobject( sshpeer.sshv2peer(ui, b'ssh://localhost/foo', b'', dummypipe(), dummypipe(), None, None)) ziverify.verifyClass(repository.ipeerbase, bundlerepo.bundlepeer) checkzobject(bundlerepo.bundlepeer(dummyrepo())) ziverify.verifyClass(repository.ipeerbase, statichttprepo.statichttppeer) checkzobject(statichttprepo.statichttppeer(dummyrepo())) ziverify.verifyClass(repository.ipeerbase, unionrepo.unionpeer) checkzobject(unionrepo.unionpeer(dummyrepo())) ziverify.verifyClass(repository.ilocalrepositorymain, localrepo.localrepository) ziverify.verifyClass(repository.ilocalrepositoryfilestorage, localrepo.revlogfilestorage) repo = localrepo.makelocalrepository(ui, rootdir) checkzobject(repo) ziverify.verifyClass(wireprototypes.baseprotocolhandler, wireprotoserver.sshv1protocolhandler) ziverify.verifyClass(wireprototypes.baseprotocolhandler, wireprotoserver.sshv2protocolhandler) ziverify.verifyClass(wireprototypes.baseprotocolhandler, wireprotoserver.httpv1protocolhandler) ziverify.verifyClass(wireprototypes.baseprotocolhandler, wireprotov2server.httpv2protocolhandler) sshv1 = wireprotoserver.sshv1protocolhandler(None, None, None) checkzobject(sshv1) sshv2 = wireprotoserver.sshv2protocolhandler(None, None, None) checkzobject(sshv2) httpv1 = wireprotoserver.httpv1protocolhandler(None, None, None) checkzobject(httpv1) httpv2 = wireprotov2server.httpv2protocolhandler(None, None) checkzobject(httpv2) ziverify.verifyClass(repository.ifilestorage, filelog.filelog) ziverify.verifyClass(repository.imanifestdict, manifest.manifestdict) ziverify.verifyClass(repository.imanifestrevisionstored, manifest.manifestctx) ziverify.verifyClass(repository.imanifestrevisionwritable, manifest.memmanifestctx) ziverify.verifyClass(repository.imanifestrevisionstored, manifest.treemanifestctx) ziverify.verifyClass(repository.imanifestrevisionwritable, manifest.memtreemanifestctx) ziverify.verifyClass(repository.imanifestlog, manifest.manifestlog) ziverify.verifyClass(repository.imanifeststorage, manifest.manifestrevlog) vfs = vfsmod.vfs(b'.') fl = filelog.filelog(vfs, b'dummy.i') checkzobject(fl, allowextra=True) # Conforms to imanifestlog. ml = manifest.manifestlog(vfs, repo, manifest.manifestrevlog(repo.svfs)) checkzobject(ml) checkzobject(repo.manifestlog) # Conforms to imanifestrevision. mctx = ml[repo[0].manifestnode()] checkzobject(mctx) # Conforms to imanifestrevisionwritable. checkzobject(mctx.new()) checkzobject(mctx.copy()) # Conforms to imanifestdict. checkzobject(mctx.read()) mrl = manifest.manifestrevlog(vfs) checkzobject(mrl) ziverify.verifyClass(repository.irevisiondelta, revlog.revlogrevisiondelta) rd = revlog.revlogrevisiondelta(node=b'', p1node=b'', p2node=b'', basenode=b'', linknode=b'', flags=b'', baserevisionsize=None, revision=b'', delta=None) checkzobject(rd) ziverify.verifyClass(repository.iverifyproblem, revlog.revlogproblem) checkzobject(revlog.revlogproblem())
def main(): ui = uimod.ui() # Needed so we can open a local repo with obsstore without a warning. ui.setconfig('experimental', 'evolution.createmarkers', True) checkzobject(badpeer()) ziverify.verifyClass(repository.ipeerbase, httppeer.httppeer) checkzobject(httppeer.httppeer(None, None, None, dummyopener(), None, None)) ziverify.verifyClass(repository.ipeerconnection, httppeer.httpv2peer) ziverify.verifyClass(repository.ipeercapabilities, httppeer.httpv2peer) checkzobject(httppeer.httpv2peer(None, b'', b'', None, None, None)) ziverify.verifyClass(repository.ipeerbase, localrepo.localpeer) checkzobject(localrepo.localpeer(dummyrepo())) ziverify.verifyClass(repository.ipeercommandexecutor, localrepo.localcommandexecutor) checkzobject(localrepo.localcommandexecutor(None)) ziverify.verifyClass(repository.ipeercommandexecutor, wireprotov1peer.peerexecutor) checkzobject(wireprotov1peer.peerexecutor(None)) ziverify.verifyClass(repository.ipeerbase, sshpeer.sshv1peer) checkzobject( sshpeer.sshv1peer(ui, b'ssh://localhost/foo', b'', dummypipe(), dummypipe(), None, None)) ziverify.verifyClass(repository.ipeerbase, sshpeer.sshv2peer) checkzobject( sshpeer.sshv2peer(ui, b'ssh://localhost/foo', b'', dummypipe(), dummypipe(), None, None)) ziverify.verifyClass(repository.ipeerbase, bundlerepo.bundlepeer) checkzobject(bundlerepo.bundlepeer(dummyrepo())) ziverify.verifyClass(repository.ipeerbase, statichttprepo.statichttppeer) checkzobject(statichttprepo.statichttppeer(dummyrepo())) ziverify.verifyClass(repository.ipeerbase, unionrepo.unionpeer) checkzobject(unionrepo.unionpeer(dummyrepo())) ziverify.verifyClass(repository.completelocalrepository, localrepo.localrepository) repo = localrepo.localrepository(ui, rootdir) checkzobject(repo) ziverify.verifyClass(wireprototypes.baseprotocolhandler, wireprotoserver.sshv1protocolhandler) ziverify.verifyClass(wireprototypes.baseprotocolhandler, wireprotoserver.sshv2protocolhandler) ziverify.verifyClass(wireprototypes.baseprotocolhandler, wireprotoserver.httpv1protocolhandler) ziverify.verifyClass(wireprototypes.baseprotocolhandler, wireprotov2server.httpv2protocolhandler) sshv1 = wireprotoserver.sshv1protocolhandler(None, None, None) checkzobject(sshv1) sshv2 = wireprotoserver.sshv2protocolhandler(None, None, None) checkzobject(sshv2) httpv1 = wireprotoserver.httpv1protocolhandler(None, None, None) checkzobject(httpv1) httpv2 = wireprotov2server.httpv2protocolhandler(None, None) checkzobject(httpv2) ziverify.verifyClass(repository.ifilestorage, filelog.filelog) vfs = vfsmod.vfs(b'.') fl = filelog.filelog(vfs, b'dummy.i') checkzobject(fl, allowextra=True)