Skip to main content

A git remote ZServer type. Yeah. Seriously. It lets you pull TTW code.

Project description

Okay, I’m sorry. But yes. This is real.

Do you have a TTW developed Zope site? Do you really wish you didn’t? mr.tennant exposes a git remote that you can pull from and get a git repository that represents your TTW code as well as its transaction history.

Then change it.

Then push it.

Yeah.

For now it’s just utlity functions, but try:

from AccessControl.SecurityManagement import newSecurityManager
from AccessControl.SecurityManager import setSecurityPolicy
from Testing.makerequest import makerequest
from Products.CMFCore.tests.base.security import PermissiveSecurityPolicy, OmnipotentUser
import tempfile
from mr.tennant.git import dump_objects, serialise_directory, serialise_commit

_policy=PermissiveSecurityPolicy()
_oldpolicy=setSecurityPolicy(_policy)
newSecurityManager(None, OmnipotentUser().__of__(app.acl_users))
app=makerequest(app)
from mr.tennant.git import get_commits_for_history

repo = tempfile.mkdtemp()
objects, HEAD = get_commits_for_history(app.repository)
dump_objects(repo, objects, HEAD=HEAD)
print repo

When you go to the tempfolder it points you to and run ‘git reset –hard’ you’ll get a working repo with a history, containing the contents of app.repository

Project details


Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page